這個倉庫有兩個目的。首先,它提供了一組在信標物件檔案 (BOF) 中實現的基本態勢感知命令。這允許您在開始執行可能更具侵入性的命令之前對主機執行一些檢查。
其更大的目標是為其他人提供程式碼範例和工作流程,以開始製作更多 BOF。這是此處發布的部落格文章的配對文件:https://www.trustedsec.com/blog/a-developers-introduction-to-beacon-object-files/
如果您想使用與此儲存庫相同的工作流程,則基本步驟如下:
實際上,這可以壓縮到幫助程式腳本中,但並未為此目的採取這些步驟。
命令 | 用法 | 筆記 |
---|---|---|
adcs_枚舉 | adcs_枚舉 | 使用 Win32 函數列舉 AD 中的 CA 和模板 |
adcs_enum_com | adcs_enum_com | 使用 ICertConfig COM 物件列舉 AD 中的 CA 和模板 |
adcs_enum_com2 | adcs_enum_com2 | 使用 IX509PolicyServerListManager COM 物件列舉 AD 中的 CA 和模板 |
adv_audit_policies | adv_audit_policies | 檢索進階安全審核策略 |
ARP | ARP | 列出 ARP 表 |
鈣鹽 | cacls [檔案路徑] | 列出使用者對指定檔案的權限,支援通配符 |
目錄 | dir [目錄] [/s] | 列出目錄中的檔案。與 CobaltStrike ls 指令不同,支援通配符(例如「C:WindowsS*」) |
驅動程式簽名 | 驅動程式簽名 | 枚舉已安裝的服務 Imagepaths 以根據已知 AV/EDR 供應商檢查簽署證書 |
枚舉過濾器驅動程式 | enum_filter_driver [選擇:計算機] | 枚舉過濾器驅動程式 |
列舉本機會話 | 列舉本機會話 | 枚舉本機和透過 RDP 目前連線的使用者會話 |
環境 | 環境 | 列出進程環境變數 |
尋找載入模組 | findLoadedModule [模組部分] [opt:procnamepart] | 尋找 *modulepart* 載入到哪些進程,可以選擇僅搜尋 *procnamepart* |
取得密碼策略 | get_password_policy [主機名稱] | 取得目標伺服器或網域的設定密碼原則和鎖定 |
ip配置 | ip配置 | 列出 IPv4 位址、主機名稱和 DNS 伺服器 |
LDAP搜尋 | ldapsearch [查詢] [選擇:屬性] [選擇:結果限制] [選擇:DC 主機名稱或 IP] [選擇:可分辨名稱] | 執行LDAP 搜尋(注意:如果您想要物件的所有屬性+ base64 編碼的ACL,請指定*,ntsecuritydescriptor 作為屬性參數,然後可以使用BOFHound 解決此問題。可能會破壞分頁,儘管在測試期間一切看起來都很好。 |
列表域名 | 列表域名 | 列出 DNS 快取項目。嘗試查詢並解決每個問題 |
清單_防火牆_規則 | 清單_防火牆_規則 | 列出 Windows 防火牆規則 |
列表模組 | listmods [選項:pid] | 列出進程模組 (DLL)。如果 PID 為空,則目標目前進程。補充 driversigs 以確定我們的進程是否是由 AV/EDR 注入的 |
列表管道 | 列表管道 | 列出命名管道 |
語言環境 | 語言環境 | 列出系統區域設定語言、區域設定 ID、日期、時間和國家/地區 |
網路組列表 | netGroupList [選項:網域] | 列出預設或指定網域中的群組 |
網路群組清單成員 | netGroupListMembers [群組名稱] [選項:網域] | 列出預設或指定網域中的群組成員 |
網路本地群組列表 | netLocalGroupList [選項:伺服器] | 列出本機或指定電腦中的本機群組 |
網路本地群組清單成員 | netLocalGroupListMembers [群組名稱] [選項:伺服器] | 列出本機或指定電腦中的本機群組 |
網路本地群組清單成員2 | netLocalGroupListMembers2 [選擇:群組名稱] [選擇:伺服器] | 支援 BOFHound 的netLocalGroupListMembers 修改版本 |
網路登入 | netloggedon [主機名稱] | 返回登入本機或遠端電腦的用戶 |
網路登入2 | netloggedon2 [選項:主機名稱] | 支援 BOFHound 的netloggedon 修改版本 |
網路會話 | netsession [選擇:計算機] | 枚舉本機或指定電腦上的會話 |
網路會話2 | netsession2 [opt:電腦] [opt:解析方法] [opt:dns 伺服器] | 支援BOFHound的netsession 修改版本 |
網路分享 | 網路共享 [主機名稱] | 列出本機或遠端電腦上的共用 |
網路統計 | 網路統計 | TCP 和 UDP IPv4 列出連接埠 |
網路時間 | 網路時間 [主機名稱] | 在遠端電腦上顯示時間 |
網路啟動時間 | netuptime [主機名稱] | 傳回有關本機或遠端電腦上的啟動時間的信息 |
網路使用者 | netuser [使用者名稱] [選項:網域] | 取得有關特定使用者的資訊。如果指定了域名,則從域中提取 |
netuse_add | netuse_add [共享名稱] [opt:使用者名稱] [opt:密碼] [opt:/DEVICE:裝置名稱] [opt:/PERSIST] [opt:/REQUIREPRIVACY] | 將新連線綁定到遠端計算機 |
netuse_刪除 | netuse_delete [裝置||共用名稱] [opt:/PERSIST] [opt:/FORCE] | 刪除綁定的裝置/共享名] |
網路使用列表 | netuse_list [選擇:目標] | 列出所有綁定的共享資源或目標本地資源的信息 |
網視 | 網視 | 列出目前網域中可存取的計算機 |
查詢 | nslookup [主機名稱] [opt:dns 伺服器] [opt: 記錄類型] | 進行 DNS 查詢。 DNS伺服器是您要查詢的伺服器(不指定或預設為0) 記錄類型類似 A、AAAA 或 ANY。由於觀察到崩潰,某些情況受到限制 |
探測 | 探測[主機][連接埠] | 檢查特定連接埠是否開放 |
回歸 | regsession [選項:主機名稱] | 透過列舉 HKEY_USERS 返回登入的使用者 SID。 BOF獵犬相容 |
註冊查詢 | [opt:主機名稱] [hive] [路徑] [opt:要查詢的值] | 查詢登錄值或枚舉單一鍵 |
reg_query_recursive | [opt:主機名稱] [設定單元] [路徑] | 遞歸枚舉從路徑開始的鍵 |
資源 | 資源 | 列出主硬碟上的記憶體使用情況和可用磁碟空間 |
路線列印 | 路線列印 | 列出 IPv4 路由 |
sc_枚舉 | sc_enum [選擇:伺服器] | 列舉 qc、查詢、qfailure 和 qtriggers 資訊的服務 |
品質管制 | sc_qc [服務名稱] [選項:伺服器] | BOF 中 sc 品質控制的實施 |
sc_q描述 | sc_qdescription [服務名稱] [選項:伺服器] | BOF 中的 sc qdescription 實現 |
sc_qfailure | sc_qfailure [服務名稱] [opt:伺服器] | 查詢服務的故障狀況 |
sc_qtriggerinfo | sc_qtriggerinfo [服務名稱] [opt:伺服器] | 查詢服務的觸發條件 |
sc_查詢 | sc_query [opt: 服務名稱] [opt: 伺服器] | BOF中的sc查詢實現 |
施塔斯特森姆 | schtasksenum [選項:伺服器] | 枚舉本機或遠端電腦上的排程任務 |
schtasksquery | schtasksquery [選項:伺服器] [任務路徑] | 查詢本地或遠端電腦上的給定任務 |
任務清單 | 任務清單 [選擇:伺服器] | 列出正在運行的進程,包括 PID、PPID 和 ComandLine(使用 wmi) |
正常運作時間 | 正常運作時間 | 列出系統啟動時間以及已經運行了多長時間 |
維塞努姆 | vssenum [主機名稱] [opt:共用名稱] | 列舉某些 Server 2012+ 伺服器上的磁碟區副本 |
瓦阿米 | 瓦阿米 | 列出 whoami /全部 |
視窗列表 | 視窗清單 [選擇:全部] | 列出目前使用者會話中可見的視窗 |
wmi_查詢 | wmi_query 查詢 [選擇:伺服器] [選擇:命名空間] | 執行 wmi 查詢並以 CSV 格式顯示結果 |
請注意,當 CS 具有內建 reg query(v) 命令時,包含 reg_query 的原因是因為該命令可以針對遠端計算機,並且能夠遞歸枚舉整個密鑰。
大多數這些命令的功能程式碼取自 Reactos 專案或 MSDN 上託管的程式碼範例。 driversigs 程式碼庫來自 https://gist.github.com/jthuraisamy/4c4c751df09f83d3620013f5d370d3b9
感謝貢獻者下面列出的所有貢獻者。你們每個人都為這個儲存庫貢獻了一些有意義的東西,並與我和我的審查流程打交道。我感謝你們每一個人的教導和幫助,使這個 BOF 儲存庫成為最好的!
在這個專案中提供了預編譯的 BOF,並使用通常從 Brew 安裝的最新版本的 Mingw-w64 進行編譯。
這些 BOF 是在編寫時考慮到對 Windows Vista+ 的支援。如果您需要在那些舊系統上使用主要的 BOF 集,則會建立一個名為 winxp_2003 的新分支。該分支將保持在較少支援的狀態。它將發揮作用,但不會隨著我們可能添加的每個新推送/功能而更新。