(⚠️本文仅用于授权渗透测试与防御研究,禁止非法用途)
0x00为什么要清理痕迹?
渗透后残留的日志、历史记录、文件时间戳等可能暴露攻击路径,导致溯源或防御反制。专业清理可降低风险,但需注意:完全隐身几乎不可能,对抗高级流量监控仍需更复杂手段。
0x01 隐藏SSH登录记录
SSH登录信息通常记录在以下日志中:
/var/log/auth.log
/var/log/secure
(部分系统)
/var/log/wtmp
(二进制登录记录)
用last可以擦黄看最近的登陆记录
隐藏技巧:
-
禁用伪终端分配:
ssh -T root@目标IP /bin/bash -i
-T
参数禁止分配伪终端,/bin/bash -i
启动交互式Shell,减少日志生成(但部分系统仍可能记录)。 -
手动清理日志:
# 删除含特定IP的日志行 sed -i '/你的IP/d' /var/log/auth.log # 清空wtmp(需root权限) echo > /var/log/wtmp
0x02 清除命令历史记录
Bash/Zsh历史文件(~/.bash_history
、~/.zsh_history
)会记录所有执行命令。
清除方法:
-
实时禁用记录:
unset HISTFILE # 当前会话不记录历史 export HISTCONTROL=ignorespace # 命令前加空格不记录
-
彻底删除历史:
history -c && history -w # 清空内存并覆盖文件 rm ~/.bash_history ~/.zsh_history
-
覆盖其他用户历史(需root):
find /home -name ".*_history" -exec rm -f {} \;
0x03 修改文件时间戳
管理员常通过文件修改时间(mtime
)追踪异常文件。
伪装技巧:
touch -r 参照文件.txt 目标文件.php # 将目标文件时间设为参照文件时间
touch -t 202401010000 目标文件.php # 自定义时间戳(格式:年月日时分)
0x04 清理系统日志
核心日志路径:
Web服务:
/var/log/apache2/*
、/var/log/nginx/*
系统日志:
/var/log/syslog
、/var/log/messages
清理方法:
-
直接清空文件:
echo > /var/log/apache2/access.log
-
选择性删除日志行:
sed -i '/攻击者IP/d' /var/log/syslog # 删除含特定IP的行
⚠️ 注意:
-
清空日志可能触发告警(如
auditd
监控文件变更)。 -
优先备份原始日志:
cp /var/log/auth.log /tmp/auth.log.bak
0x05 进阶对抗与防御检测
-
防恢复删除:
shred -zu 文件名 # 覆盖后彻底删除(避免恢复)
-
伪造正常日志:
向日志文件插入正常条目(需严格匹配日志格式)。 -
防御建议:
-
部署文件完整性检查工具(如
AIDE
)。 -
启用实时日志监控(如
ELK
+Wazuh
)。
-