KnockOutlook:一款針對Outlook的紅隊安全研究工具
關于KnockOutlook
KnockOutlook是一款基于C#開發的工具,該工具可以跟Outlook的COM對象進行交互,并且能夠幫助紅隊安全研究人員執行各種安全操作。
工具下載
廣大研究人員可以使用下列命令將該項目源碼克隆至本地:
- git clone https://github.com/eksperience/KnockOutlook.git
命令行使用
- __ __ __ ____ __ __ __
- / //_/____ ____ _____/ /__/ __ \__ __/ /_/ /___ ____ / /__
- / ,< / __ \/ __ \/ ___/ //_/ / / / / / / __/ / __ \/ __ \/ //_/
- / /| |/ / / / /_/ / /__/ ,< / /_/ / /_/ / /_/ / /_/ / /_/ / ,<
- /_/ |_/_/ /_/\____/\___/_/\_\\____/\__,_/\__/_/\____/\____/_/\_\
- Parameters:
- --operation : 指定需要執行的操作
- --keyword : 指定搜索操作的關鍵詞
- --id : 指定保存操作的目標
- --bypass : 繞過編程訪問安全設置(需要管理員權限)
- Operations:
- check : 執行各種檢測以確保操作安全
- contacts : 提取每一個賬號的所有聯系人
- mails : 提取每一個賬號的郵箱元數據
- search : 根據關鍵詞搜索每一個郵箱
- save : 保存指定EntryID的郵件
- Examples:
- KnockOutlook.exe --operation check
- KnockOutlook.exe --operation contacts
- KnockOutlook.exe --operation mails --bypass
- KnockOutlook.exe --operation search --keyword password
- KnockOutlook.exe --operation save --id {EntryID} --bypass
功能操作
(1) 安全檢測(check)
枚舉Outlook安裝詳細信息,以便構造正確的注冊表項并檢索編程訪問安全設置。
如果此值設置為“Warn when antivirus is inactive or out-of-date”,它將會查詢WMI以查找任何已安裝的防病毒產品并分析其當前狀態。
(2) 聯系人信息枚舉(contacts)
枚舉每個已配置帳戶的聯系人并提取以下信息:
- 完整名稱(全名)
- 電子郵件地址
(3) 電子郵件枚舉(mails)
枚舉每個已配置帳戶的郵件并提取以下元數據:
- ID
- 時間戳
- 主題
- 郵件發送者
- 郵件接收者
- 附件
(4) 搜索查詢(search)
使用Outlook的內置搜索引擎在每個已配置帳戶的郵箱中搜索,并返回郵件正文中包含所提供關鍵字的EntryID。
(5) 數據保存(save)
使用Outlook內置的另存為機制導出由其EntryID引用的郵件。
對象模型保護繞過
由于當前進程是以高級完整權限運行的,因此該工具所提供的“--bypass”選項可以與聯系人信息枚舉(contacts)、電子郵件枚舉(mails)、搜索查詢(search)以及數據保存(save)這幾個功能結合使用。
KnockOutlook將嘗試獲取當前Outlook安全策略的快照,并以自動允許編程訪問安全提示的方式對其進行篡改操作,在操作完成后還會將其恢復為初始狀態。
數據輸出
KnockOutlook的所有操作都會將基礎數據直接輸出在屏幕上。
聯系人信息枚舉(contacts)和電子郵件枚舉(mails)操作將會把輸出數據以JSON格式保存至gzip壓縮文件中。
數據保存(save)操作將會把輸出數據以.msg格式導出。
所有的文件名都會在運行時隨機生成。
默認配置下,Outlook的安全臨時目錄會用來存儲所有的導出文件。
項目地址
KnockOutlook:【GitHub傳送門】