前言
痕迹清理,是“肾透”测试后期最重要的环节。”肾透“的最后一定会触发一场追踪与反追踪的游戏,为避免入侵行为被发现,攻击者总是会通过各种方式来隐藏自己,比如:隐藏自己的真实IP、清除系统日志、删除上传的工具、隐藏后门文件、擦除入侵过程中所产生的痕迹等。
日志清除
尝试清除或修改系统日志,以删除入侵的行动痕迹。这可能包括删除事件日志、安全日志、应用程序日志等。
windows 日志路径:
攻击者可能需要删除的日志包括以下几种:
系统日志(System Log):系统日志记录了系统启动、关闭、错误、警告等事件。攻击者可能需要清除系统日志,以避免留下有关他们的入侵活动的记录。系统日志文件存储在 %SystemRoot%\System32\winevt\Logs\System.evtx
中。
安全日志(Security Log):安全日志记录了与系统安全相关的事件,例如登录尝试、权限更改等等。攻击者可能需要清除安全日志,以掩盖他们的入侵活动。安全日志文件存储在 %SystemRoot%\System32\winevt\Logs\Security.evtx
中。
应用程序日志(Application Log):应用程序日志记录了与应用程序相关的事件,例如应用程序崩溃、错误等等。攻击者可能需要清除应用程序日志,以掩盖他们的入侵活动。应用程序日志文件存储在 %SystemRoot%\System32\winevt\Logs\Application.evtx
中。
PowerShell 日志:PowerShell 日志记录了系统上执行的 PowerShell 命令。攻击者可能会使用 PowerShell 来进行攻击,因此他们可能需要清除 PowerShell 日志,以避免留下有关他们的活动的记录。PowerShell 日志分为操作日志和分析日志。默认情况下,这些日志存储在以下位置:
操作日志:操作日志存储在 %SystemRoot%\System32\WindowsPowerShell\v1.0\Operational.evtx
中。
分析日志:分析日志存储在 %SystemRoot%\System32\WindowsPowerShell\v1.0\ScriptBlockLogging\Microsoft-Windows-PowerShell%4Operational.evtx
中。
注:应用程序日志,安全日志,系统日志,DNS服务器日志,它们这些LOG文件在注册表中的位置:
HKEY_LOCAL_MACHINE\system\CurrentControlSet\Services\Eventlog
windows 日志清除方式:
(1)全部清除,这种方式有个缺点,就是容易被发现。
方法一:开始→运行,输入 eventvwr
进入事件查看器,右边栏选择清除日志。
方法二:命令行一键清除Windows事件日志
PowerShell -Command "& {Clear-Eventlog -Log Application,System,Security}"
Get-WinEvent -ListLog Application,Setup,Security -Force | % {Wevtutil.exe cl $_.Logname}
这两个命令分别使用了不同的方式来清除 Windows 事件日志:
PowerShell -Command "& {Clear-Eventlog -Log Application,System,Security}"
这个命令使用 PowerShell 的 Clear-Eventlog
命令来清除 Application
、System
和 Security
三个日志。Get-WinEvent -ListLog Application,Setup,Security -Force | % {Wevtutil.exe cl $_.Logname}
这个命令使用 Get-WinEvent
命令列出 Application
、Setup
和 Security
三个日志,并使用 Wevtutil.exe cl
命令清除它们。-Force
参数用于强制列出受保护的日志。
(2)利用脚本停止日志的记录
这里给大家 推荐一个脚本工具来停止日志服务,这个工具通过该脚本遍历事件日志服务进程(专用svchost.exe)的线程堆栈,并标识事件日志线程以杀死事件日志服务线程。
因此,系统将无法收集日志,但是因为 Phant0m 没有终止进程,所以事件日志服务还有一种在系统中运行的错觉。
工具提供了两种定位日志服务线程的方法,在编译时要注意选择下。注意待日志清除后要恢复日志服务,命令是net start evevtlog。
github项目地址:https://github.com/hlldz/Phant0m
(3)Windows日志伪造
使用eventcreate这个命令行工具来伪造日志,该命令可用于创建自定义事件并将其写入事件日志。具体使用方法及参数如下:
eventcreate -id <eventID> -l <logname> -t <type> -so <source> -d <description>
<eventID>
是新事件的 ID,<logname>
是新事件日志的名称,<type>
是事件类型(例如,成功、失败或警告),<source>
是用于将事件写入该日志的应用程序名称,<description>
是事件的说明。
使用示例:eventcreate -id 500 -l system -t warning -so administrator -d "this is a test"
应用日志删除:
在删改windows安装的中间件应用程序的日志相对简单,应为定位其中路径后就可以手动进行删除:
找到应用程序的日志路径,
停止其响应服务。
对日志内容进行修改
日志类型 | 默认路径 | 响应服务 |
---|---|---|
IIS | %SystemDrive%\inetpub\logs\LogFiles\W3SVC1\ | World Wide Publishing Service |
Apache | C:\\Apache x.x\logs\ | Apache x.x |
Tomcat | C:\\Tomcat x.x\logs\ | Tomcat x.x |
停止服务的命令一般用net stop
即可,如net stop “World Wide Publishing Service”
,删除命令用Shift + Delete
或cmd
命令del
,启用服务用net start
。
永久擦除技巧(粉碎文件数据)
利用Windows自带命令进行安全擦除
(1)Shift+Delete快捷键永久删除
直接删除文件,还是能在回收站找到的,使用Shift+Delete快捷键可以直接永久删除了。但是用数据恢复软件,在短时间内删除的文件还是可以恢复的,否则新的文件存入覆盖了原来的文件痕迹就很难恢复了。
(2)Cipher 命令多次覆写
在删除文件后,可以利用Cipher 命令,这个命令将在指定的文件所在位置创建一个新的、全零的文件,并用它覆盖原始文件的硬盘空间,彻底删除数据防止被恢复。命令可以通过以下方式使用:cipher /w:drive\path\filename
。
比如,删除D:\tools
目录下的文件,然后执行这条命令:
cipher /w:D:\tools
这样一来,D 盘上未使用空间就会被覆盖三次:一次 0x00、一次 0xFF,一次随机数,所有被删除的文件就都不可能被恢复了。
(3)Format命令覆盖格式化
format
命令通常用于将磁盘分区进行格式化,以便对其进行重用。但是,如果你使用 format
命令对磁盘进行格式化,那么会清空整个磁盘分区,包括分区中的所有文件和文件夹。这意味着,所有数据都将被永久删除,从而达到粉碎文件的效果。Format 命令加上 /P 参数后,就会把每个扇区先清零,再用随机数覆盖。而且可以覆盖多次。比如:
format D: /P:8
这条命令表示把 D 盘用随机数覆盖 8 次。
(4)使用文件粉碎工具
还有一些专门的文件粉碎工具,如 CCleaner、Eraser、File Shredder 等等。这些工具通常提供了多种粉碎方式,可以按需选择。
清除远程桌面连接记录
当通过本机远程连接其他客户端或服务器后,会在本机存留远程桌面连接记录。代码保存为desktopLogClean.bat
文件,双击运行即可自动化清除远程桌面连接记录。
@echo off
rem 删除注册表中的连接记录
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /va /f
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /f
rem 添加空的连接记录,避免远程桌面连接出错
reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers"
rem 取消连接配置文件的系统属性和隐藏属性
cd %userprofile%\documents\
attrib Default.rdp -s -h
rem 删除连接配置文件
del Default.rdp
rem 显示完成信息
echo 远程桌面连接记录已清除完成。
echo 连接配置文件已删除。
pause
利用Metasploit 进行痕迹清除
查看事件日志。
meterpreter > run event_manager -i
[*] Retriving Event Log Configuration
Event Logs on System
====================
Name Retention Maximum Size Records
---- --------- ------------ -------
Application Disabled 20971520K 2149
HardwareEvents Disabled 20971520K 0
Internet Explorer Disabled K 0
Key Management Service Disabled 20971520K 0
Security Disabled 20971520K 1726
System Disabled 20971520K 3555
Windows PowerShell Disabled 15728640K 138
清除事件日志。
run event_manager -c
是 Metasploit 框架中的一个模块,可以在 Meterpreter 下直接使用,可用于清除远程系统上的 Windows 事件日志。执行此命令后,它会自动清除所有日志中的所有记录。但是,它不能保证完全删除日志文件,只是清除了其中的记录。
meterpreter > run event_manager -c
[*] Clearing logs on '192.168.1.1'
[*] Clearing Application log
[*] Clearing System log
[*] Clearing Security log
[*] Done
clearev
是 Windows 自带的一个命令行工具,可以用于清除本地系统上的 Windows 事件日志。需要以管理员身份运行命令行才能使用该工具。使用此命令时,可以选择清除某个特定的事件日志或所有日志。与 run event_manager -c
不同,clearev
会完全清除日志文件,而不仅仅是删除其中的记录。
meterpreter > clearev
[*] Clearing all Windows Event Logs...
[*] Event Logs cleared successfully
修改文件时间戳
在 Meterpreter 提示符下,输入 timestomp
命令,修改文件的时间戳,以掩盖攻击行为。例如,输入 timestomp C:\windows\system32\cmd.exe
将修改 cmd.exe 文件的时间戳。
meterpreter > timestomp C:\windows\system32\cmd.exe
[-] TimeStampStomper error: The file or directory is not a reparse point.
[-] Timestomp failed to modify timestamp: C:\windows\system32\cmd.exe
注:如果使用 timestomp 命令修改了文件的时间戳,会产生异常行为,可能会被防痕迹检测工具识别出来。
使用数据覆盖算法清除文件
在 Meterpreter 提示符下,输入 shred
命令,使用数据覆盖算法清除文件。例如,输入 shred C:\Users\username\Documents\secret.txt
将使用默认的数据覆盖算法清除 secret.txt 文件。
meterpreter > shred C:\Users\username\Documents\secret.txt
[*] Shredding C:\Users\username\Documents\secret.txt ...
[*] Successfully shredded 1 file(s)
最后的忠告
自计算机网络安全以来,追踪与反追踪、隐身与反隐身之间的技术对抗一直在持续。如果你认为自己已经掌握了一些反追踪与隐身技术,就可以为所欲为,那么这种想法可能会让你陷入巨大的危险之中。现今,黑客技术已经日益发展,许多安全公司和组织已经在不断地加强对追踪与反追踪、隐身与反隐身技术的研究和监控。如果你使用的反追踪与隐身技术被发现,可能会受到法律的制裁,甚至被判刑入狱。事实上,像凯文·米特尼克、凯文·鲍尔森这样的世界级黑客,也不是永远可以逍遥法外的。因此,在计算机网络中保持谨慎和谦逊,遵守相关的法律法规,才是长期安全和成功的关键。
END
点击下方名片,关注我们