首页 > 系统相关 >Linux基础+基本病毒编写

Linux基础+基本病毒编写

时间:2024-11-17 15:44:38浏览次数:3  
标签:文件 sudo 用户 命令 Linux 编写 权限 目录 病毒

**免责声明**学习视频来自 B 站up主泷羽sec,如涉及侵权马上删除文章。笔记的只是方便各位师傅学习知识,以下代码、网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。B站地址:泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频

一:openssl

openssl是一个开源的加密工具包,提供了各种加密,解密,签名,验证等功能

passwd 表示这个命令用于处理处理密码的操作

-1:指定使用“MD5”加密算法

-5:表示使用了”SHA-256“哈希算法,SHA-256是一种更安全的加密算法,他生长的哈希值长度为256位,没次对相同的密码进行SHA-256加密时,由于加密过程中通常会引入随机因素,所以每次生成的密文都是不一样的,这样增加了密码的安全性,及时攻击者获得了密文,也很难通过逆向计算得到原始密码

文件管理

创建空文件

touch newfile #创建空文件
rm new #删除文件
mkdir demo #新建目录
rmdir demo #删除空目录,非空不行
mv file file.txt #重命名文件
mv file.txt demmo1 #移动文件
cp file.txt file1.txt #拷贝文件
ln -s original.txt symilnk1.txt #软连接
ln ~/offsec.txt hardlink.txt #硬连接

软硬链接的区别:

本质区别:

硬连接:同一个人文件,多个名称,共享一个inode信息

软连接:不同的文件,指向另一个文件的路径

可用性:

硬连接:只能在同一个文件系统中使用,不支持跨文件系统

软连接:可以跨文件系统和操作系统

支持的对象:

硬连接:不支持对目录的创建,只能对为文件创建

软连接:可以对文件和目录创建

删除的影响:

硬连接:删除其中一个硬连接不会影响其他硬连接,只有当所有硬连接都被删除时,原始文件才会被删除

软连接:删除软连接不会影响原始文件,但是原始文件被删除,软连接就会失效

创建方式:

硬连接:使用 ln 命令创建

软连接:使用 ln -s 命令创建,需要指定原始文件的路径

软连接常用于方便管理

例如:将复杂路径的文件连接到简单路径下或者解决文件系统不足的问题

硬连接则主要用于防止误删除文件

搜索文件命令

which
echo $PATH

locate(local.db)
sudo updatedb
locate whoami.exe
find ~ -mtime 2 -ls | sort -k9 -k10 | more
find . -type f -iname '* .sh' -mmin 30 -ls
find . -name '* .svn' -exec rm -rf {} \; 
find / -user root -type f -perm -o=w -name '*.sh' 2>/dev/null

which:

作用是查找命令的可执行文件路径

如:如果你想知道“ls”命令在系统的具体位置,”which ls“

echo $PATH

echo 是用于输出内容的命令

PATH 所列出的目录中依次查找该命令的可执行文件

locate(locate.db)

locate 用于快速查找文件,它通过查询一个预先构建的数据库来实现

sudo 用于以管理员权限执行命令的前缀

update 用于更新 “locate”命令所使用的文件数据库,这个操作可能需要一些时间,因为他会扫描整个文件系统并将文件信息添加到数据库中

locate whoami.txt 使用“locate”命令查找问“whoami.exe”的文件在系统中的位置,如果系统中有这个文件,该命令就会输出其路径

find 表示在用户的主目录(~代表主目录)下查找

-mtime 2 表示查找在两天内被修改的文件

-ls 用于以长列表的形式显示找的文件信息

sort -k9 -k10 是按照第九列和第十列的内容对文件信息进行排序

| 是管道符号,将前一个命令的输出作为后一个命令的输入

more 用于分页查看

find. 在当前目录下查找

-type f 表示查找类型位普通文件

-name ‘*.sh’ 查找文件名以.sh 结尾的文件 这里的空格可能会岛主不准确匹配 一般通配符应该紧贴在前面的字符后门“*sh”

--mmin -30 表示查找30分钟内被修改的文件

-name ‘.svn’查找名为“.svn”的文件或目录

-exec -rm -rf {} ; 表示对找到的每个结果执行“rm -rf”命令,即删除找到的文件或目录

-user root 表示查找所有者为root用户的文件

-perm -o=w 表示查找其他用户有写权限的文件

-type f 表示查找类型为普通文件

-name ‘*.sh’ 查找文件名以 .sh 结尾的文件

2>/dev/null/ 将错误输出重定向到 /dev/null 即不显示错误信息

用户账号数据库

/etc/passwd

/etc/shadow

组账号

cat /etc/shadow

禁用账号

sudo passwd -l username

chage -E 1990-01-01 kali

passwd -S username

一.用户账号数据库相关文件

/etc/passwd

这是一个重要的系统文件,存储了系统中用户账号的基本信息

每一行代表应该用户,包含:用户名,用户id,密码占位符,用户组id,用户描述信息,用户主目录,用户默认,shell等字段

/etc/shadow

这个文件也与用户账户相关,组要存储用户密码以及密码的一些属性,如密码的最后一次修改时间,密码最短使用期限,这个具有足够的权限的用户(root)才能读取这个文件,以提高密码的安全性

二.组账号相关命令

etc/group 查看用户账号信息的同时,也可以间接了解用户所属的组信息,因为其中包含了用户组id

三.禁用账号相关命令

sudo 表示以管理员执行命令

passwd 用于管理用户命令的命令

-l 选项用于锁定用户账号,当前执行这个命令后,指定的“username(name)”用户账号被锁定,无法登录系统

chage 用于修改用户密码过期信息

-E 选项后面跟着一个日期,表示设置用户账号的过期时间,如 kali 用户设置过期时间为1990-01-01 ,这个日期过后,kali这个账号将无法使用,除非重新设置过期时间或进行其他管理操作

文件系统权限

始终记住一句话:在Linux中系统中一切皆是文件

几乎所有的资源都被抽象为文件,包括硬件设备(硬盘。网卡),进程间通信,网络连接等,这种设计理念使得各种资源的管理可以通过统一的文件操作方式来进行,大大的简化了系统的架构和管理

查看权限

ls -al /etc/passwd

更改文件所有者

chown root file

修改文件权限

sudo chmod u=rwx,g+rw,o-r hardlink.txt

sudo chmod u+x,g+w,o-r hardlink.txt

chmod 400 <file>

查看权限

ls 列出目录内容

-l 选项以长格式显示文件信息,包括文件的权限,所有者,所属组,文件大小,修改时间等详细信息

-a 显示包括隐藏文件

/etc/passwd 要查看的路经,这个文件存储了用户账号的基本信息,使用这个目录看一查看到这个文件的权限设置,所有者,所属组等

更改文件所有者

chown 是改变文件所有者的命令

root 是新的所有者用户名,表示将文件的所有者变为“root”用户

file 是要更改所有者的文件名称,执行这个命令后,文件的所有者将变为“root”用户

修改文件权限

sudo 以管理员执行命令

sudo chmod u=rwx,g+rw,,o-r file

chmod 改变文件权限命令

u=rwx 表示文件所有者(user)具有读(r),写(w),执行(x)权限

g+rw 表示文件内所属组(group)增加读(r),写(w)权限

o-r表示其他用户(other)去除读(r)权限

file 是要修改权限的名称

sudo chmod u+x,g+w,o-r file

u+x表示给文件所有者增加执行权限

g+w表示给文件所属组增加写的权限

o-r表示去除去其他用户的读取权限

file是目标文件

chmod 400 <file>

chmod 命令直接以数字方式设置温嘉你权限

400是权限的数字表示,其中第一位数字“4 ”表示文件所有者的权限

(r)代表读权限,相对应的数字是“4”

后两位数子“00”

分别表示文件所属组和其他用户没有任何权限

系统日志

#系统日志	ls -l /var/log
#认证信息日志	sudo tail -3 /var/logh/auth.log
#二进制日志	who/var/log/wtmp | tail -5	dmesg
#systemd日志	journalctl

一:系统日志

ls 列出目录内容

-l选项以长格式显示文件和目录的详细信息

/var/log是系统日志文件所在的目录

二:认证信息日志相关命令

sudo 以管理员权限执行命令

tail 用于查看文件末尾部分

-3 显示文件最后内容三行

/var/log/auth.log 是存储系统认证信息的日志文件,包括用户登录,认证失败等,执行这个命令可以查看最近的三条认证相关日志记录

三:二进制日志相关命令

who 显示当前用户登录的用户信息

/var/log/wtmp 是一个二进制文件,记录了系统的登录和注销记录

|管道符,将前一道命令的输入作为后一道命令的输出

tail -5 显示最后5行内容,执行这个命令卡伊查看最近5次登录和注销记录

四:dmesg

dmesg 用于显示内核环形缓冲区中的信息,包括系统启动时的硬件检测信息,内核模块加载信息,设备驱动的初始化信息等,它可以帮助用户了解系统的硬件状态和内核的运行情况

五:systemd日志相关记录

journalctl:这是一个用于查看和管理sysytemd时Linux系统的初始化和服务管理器,他会记录和服务的启动,运行和错误信息等日志, journalctl可以根据不同的参数来筛选,查看特定时间段,特定服务或优先级的日志记录

内存管理

内存使用量#free -m
磁盘使用量#df -hT
文件或目录大小#sudo du./* -hsc
查看硬盘分区#sudo fdisk -l
挂载分区#sudo mount /dev/sdb1/mnt/usb

一:内存使用量

free 用于显示系统内存的使用情况

-m 选项表示以兆字节(mb)为单位显示内存信息,执行这个命令之后,会显示系统的踪内存,已使用内存,可用内存,缓冲内存和缓存内存等信息,帮助用户了解系统当前的内存使用状态

二:磁盘使用量

df 用于显示磁盘空间使用情况

-h 表示以人类可读的格式(mb,kb,gb)等显示空间的大小

-T 显示文件系统类型,执行这个命令可以查看各个磁盘分区的总大小,已使用,可用空间以及文件系统类型等信息

三:文件或目录大小

sudo 表示以管理员权限执行命令

du用于统计文件或目录的磁盘使用空间

./* 表示当前目录下的所有文件和目录

-h 以人类可读形式显示

-s 表示汇总显示每个参数的总大小

-c 表示在最后显示总计,执行这个命令可以查看当前目录下每个文件和目录的小小,最后显示总计大小

四:查看硬盘分区

sudo 以管理员权限执行命令

fdisk 他这一个磁盘分区根据

-l 表示列出系统中所有磁盘分区信息,包括磁盘的大小,分区编号,起始和结束扇区等,它可以帮助用户了解系统硬盘的分区情况

五:挂载分区

sudo mount /dev/sdb1/mnt/usb

sudo 以管理员权限执行

mount 用于将一个文件系统挂载到指定的目录

/dev/sdb1 是要挂载的磁盘分区设备路径

/mnt/usb 是挂载点,即要将分区挂载到的目录,执行这条命令后,系统可以访问该分区中的文件和目录,就像访问本地文件系统中的其他目录一样

基本网络枚举

ifconfig
ip addr
sudo ifdown eth0
sudo ifup eth0
网络配置
/etc/network/interfaces
Networkmanager

一:基本网络工具

ifconfig:

是一个用于配置和显示网络接口信息的命令行工具,它可以显示网络接口的IP地址,子网掩码,mac地址等信息,还可以用于启动,停止或配置网络接口

IP addr

也是用于查看和管理网络接口的命令,他提供了比ifconfig更详细和灵活的网络接口信息显示,包括接口的状态,IP地址,子网掩码,广播地址等

sudo ifdown eth0

sudo表示以管理员权限执行命令

ifdown用于关闭指定的网络接口

eth0是网络接口名称,这里表示关闭关闭名为“eth0”的网络接口

sudo ifup eth0

ifup是指定启动指定的网络接口

eth0是网络接口名称,这里表示开启名为“eth0”的网络接口

二,网络配置

/etc/network/interfaces

这是一个系统文件,用于配置网络接口的静态IP地址,子网掩码,网关等信息

在一些Linux发行版中,通过编辑这个可以可以实现网络接口的手动配置

Networkmanager

是一个动态网络控制和配置守护进程

它可以自动管理网络连接,包括有线网络,无线网络和VPN连接等

Networkmanager提供了图形化和命令行工具配置和管理网络,使得网络配置更加方便和灵活,它可以自动检测网络变化,并根据自动连接到可用的网络

网络连接

netstat -natup
ss -natup
arp -en
route
iproute
sudo ip route add 10.13.37.0/24 dev eth1
traceroute 域名&&网址

一:网络连接状态查看工具

netstat -antup
netstat #是用于显示网络连接,路由表,接口统计等信息
-a #显示所有的连接和监听端口
-n #表示已数字形式显示地址和端口号,避免进行域名解析
-t #显示tcp连接
-u #显示udp连接
-p #显示与连接相关进程ID和程序名称,执行这个命令可以查看当前的网络连接状态,包括连接的协议,本地地址和端口,远程地址和端口等信息
ss -natup
ss #是另一个用于显示网络套接子状态,他比netstat更快更高效
选项更netstat像似

二:二层地址查看工具

arp -en
arp #是地址解析协议
-e #以详细格式显示ARP缓存表
-n #以数字形式显示IP地址,避免进行域名解析,执行这条命令可以查看arp缓存表,其中包含了IP地址和对应的mac地址映射关系,用于在局域网中进行二层地址解析

三:路由信息相关工具

route:
用于显示和管理的路由表
可以查看系统当前的路由信息,包括目标网络,网关,子网掩码等,还可以用于添加,删除或修改路由条目
ip addr
是ip命令的而一部分,用于管理系统的路由表
它提供了更强大和灵活的路由管理功能,可以进行更复杂的路由配置操作
sudo ip route add ip/24 dev eth1
sudo 管理员权限执行
ip route add用于添加一条路由条目
IP/24 是目标网络地址和子网掩码
dev eth1表示通过名为“eth1”的网络接口到达目标网络,执行这条命令可以向系统的路由表添加一条路由

四:路由跟踪工具

traceroute www.baidu.com
traceroute #是一个用于跟踪数据包从本地主机到目标主机所经过的路由路径的工具
www.baidu.com #是目标主机的域名或IP地址,执行这条命令会逐渐显示数据包经过的路由器的IP地址和响应时间

ssh服务

一:启动服务

sudo systenctl start ssh
sysytemctl #用于管理系统服务的工具
start #开启
status #查看
stop #停止
enable #自启动

二:连接本地主机

ssh root@localhost
ssh #Secure Shell客户端命令
root #是以root身份登录
localhost #本地

三:配置文件

/etc/ssh/sshd_config
ssh服务器的配置主要文件
其中包含各种参数,可以用来配置ssh服务的行为,比如端口号,允许登录用户,认证方式,访问控制等,通过编辑这个文件,可以根据具体需求对ssh服务器进行定制化配置

四:客户端配置

hash knownHosts yes;
通常情况下, ~/ssh/known_hosts文件用于存储已知远程主机的公钥信息,以确保连接的安全性,这个选项可能指示已知主机文件中的主机名进行哈希处理,这样可以提高一定的安全性,但具体效果可能因不同的ssh实现而有所差异
~/.ssh;
这是用户主目录下的一个目录,用于存储ssh客户端的配置和相关文件
通常包含私钥文件(id_rsa),公钥文件(id_rsa.pub)以及已知主机文件(known_hosts)等,这些文件用于SSH客户端的身份认证和连接管理

Linux目录介绍

/bin

二进制可执行命令

/etc

系统管理和配置文件

/etc/rc.d

启动的配置文件和脚本

/home

用户主目录的基点

/lib

标准程序设计库。又叫动态链接共享库

/sbin

超级管理员命令。这里存放的是系统管理员使用程序

/tmp

公共的临时文件存储点

/root

系统管理员的主目录

/mnt

系统提供这个目录是让用户临时挂载的文件系统

/lost+found

目录平时是空的,系统非正常关机而留下“无家可归”的文件就在这

/proc

虚拟目录,是系统内存的映射,可以直接访问这个目录来获取系统信息

/var

某些大文件的溢出区,例如:各种服务器的日志文件

/usr

最庞大的目录,要用到的应用程序和文件几乎都在这个目录

/usr/sbin

众多的应用程序

/usr/sbin

超级用户的一些管理程序

基本命令

cd #切换目录
ls #显示当前目录的文件,相当于win的dir
clear #清空
pwd #显示当前所在的目录
vim #文本编辑器
  vim 1.txt
  i 输入
  esc
  !wq #!强制 w 保存 q 退出
touch 创建文件
mkdir -p (-p参数 遍历)
mkdir -p 123/1/2/3
rm -rf 123 (删除123目录)
-i 递归删除
-r 删除文件夹和它的所有内容
-f 强制删除
cp (copy的简写 就是复制)
mv (move的简写 移动文件)
cat (查看内容)
head (查看前半段内容)
head -5 #就是查看前五行内容
tail (查看后半段内容)
tail -5 #就是查看后五段内容
more (查看内容并翻页)
chmod rwx -R (数值4:读,数值2:写,数值1:执行,数值0:没有相对应权限)
r:读 w:写 x:执行
0777 #最高权限
chow #改变当前所处的用户和所处的用户组
useradd&&adduser
adduser #会自动为创建的用户指定木,系统shell版本,会在创建是输入密码
useradd #需要使用承诺书选项指定上述基本设置,如果不使用任何参数,则创建的用户无密码,无主目录,没有指定shell版本
userdel -f y4er #删除y4er用户
sudo #以管理员权限使用,root下使用
password #修改用户密码
password root

Linux资源耗尽病毒

使用alert或notify-send等工具发送通知

#!/bin/bash
while true
do
  notify-send "无线弹窗" "这是一个无线循环的弹窗"
  sleep 2
done

保存这个脚本到一个文件当中,例如:

infinite_popup.sh #然后给她一个执行的权限

chmod +x infinite_popup.sh #最后运行这个脚本

./infinite_popup.sh

最后再补充一个

Windows使用的是dos变成

Linux使用的是bash编程

标签:文件,sudo,用户,命令,Linux,编写,权限,目录,病毒
From: https://blog.csdn.net/2301_78098553/article/details/143822980

相关文章

  • 网络安全之Linux基础
    目录文件管理创建空文件删除文件新建目录删除目录重命名文件移动文件软链接(SymbolicLink)硬链接(HardLink)搜索文件基本语法优点缺点基本语法常用选项示例注意事项功能基本语法常用选项示例输出解释注意事项功能基本语法常用选项示例输出解释注意......
  • 使用 ESP-IDF 进行esp32-c3开发第二步:Linux 和 macOS 平台工具链的标准设置
    先上文档,后面实践Linux和macOS平台工具链的标准设置[English]详细安装步骤请根据下方详细步骤,完成安装过程。设置开发环境以下是为ESP32-C3设置ESP-IDF的具体步骤。第一步:安装准备第二步:获取ESP-IDF第三步:设置工具第四步:设置环境变量第五步:开始使用ES......
  • 【Linux】信号
    文章目录概要整体架构流程信号的发送与接收信号的处理技术名词解释信号分析查看信号信号的产生方式键盘产生信号终端按键产生信号系统函数向进程发信号软件条件产生信号硬件异常产生信号信号处理函数忽略信号自定义处理函数信号的执行流程小结概要Linux信号是一......
  • 对比 win32 linux原生 和 qt 的 所有 socket api
    以下是Win32原生、Linux原生和Qt的SocketAPI对比,包括TCP和UDP的功能、特性及优缺点。我们从核心API、特性、性能和常见应用等方面进行分析。1.核心API对比1.1Socket创建与初始化操作Win32(原生)Linux(原生)Qt(跨平台)创建套接字socket()socket()......
  • 使用 Raku 编写简单的文字识别模拟程序
    Raku(以前称为Perl6)是一种现代的多范式编程语言,支持函数式编程、面向对象编程等多种编程风格。它有着强大的正则表达式支持,并且语法灵活,适合用于文本处理和其他各类程序设计。本文将使用Raku编写一个简单的模拟文字识别程序,判断输入的字符矩阵是否与预定义的字符模式匹配。项......
  • 使用 Elm 编写简单文字识别模拟程序
    Elm是一种主要用于构建Web应用程序的函数式编程语言。它以其强大的类型系统和无运行时错误的设计闻名。虽然Elm的主要用途是前端开发,但我们可以通过其纯函数式的特性,模拟一个简单的文字识别程序。项目目标通过Elm创建一个字符模式匹配模拟程序,识别一个5x5像素矩阵是否......
  • ssh配置密钥登录linux
    1、生成sshkey示例ssh-keygen-trsa2、将生成的公钥内容拷贝到linux服务器的~/.ssh/authorized_keys如果是root用户,那就放在根目录的.ssh目录下,如果是其它用户,放置在用户目录的.ssh目录下3、在本机.ssh目录下,创建config文件,内容如下Hostdata01.rootHostNam......
  • 【Linux之权限】理论篇
    前言Linux的权限是我们学习Linux初期非常重要的基础知识,接下来我将通过一个系列【Linux之权限】,共三篇文章,对此进行较为全面和详细的解说。sudo情况:如果我们不是超级管理员,但是想执行一个权限级别比较高的指令,比如我们想以超级管理员的身份来创建一个文件,那么就:sudotou......
  • 这款信创CAD Linux与麒麟国产系统高效适配,荣获麒麟用户挚爱奖
    本文为CAD芯智库原创,未经允许请勿复制、转载!原文转自:www.xwzsoft.com/h-nd-493.html信创国产化发展至今已经陆续取得不少突破,作为工程建设/工业制造企业的核心设计/生产软件之一,CAD对国产信创操作系统、硬件设备的适配度发展也至关重要。对此,中望2016就开始投入CAD......
  • Linux 实例:配置 NTP 服务
    网络时间协议(NetworkTimeProtocol,NTP),用于同步网络中各个计算机的时间的协议。其用途是将计算机的时钟同步到世界协调时UTC。腾讯云提供了内网NTP服务器供腾讯云内网设备使用,对于非腾讯云设备,可以使用腾讯云提供的公网NTP服务器。操作场景ntpd(NetworkTimeProtocold......