"最棒的感受就是一拳KO获胜。" - 诺尼托·多奈尔
KnockOutlook 是一个 C# 项目,它通过 Outlook 的 COM 对象进行交互,以执行一系列在红队行动中有用的操作。
__ __ __ ____ __ __ __
/ //_/____ ____ _____/ /__/ __ \__ __/ /_/ /___ ____ / /__
/ ,< / __ \/ __ \/ ___/ //_/ / / / / / / __/ / __ \/ __ \/ //_/
/ /| |/ / / / /_/ / /__/ ,< / /_/ / /_/ / /_/ / /_/ / /_/ / ,<
/_/ |_/_/ /_/\____/\___/_/\_\\____/\__,_/\__/_/\____/\____/_/\_\
参数:
--operation : 指定要执行的操作
--keyword : 为“search”操作指定关键字
--id : 为“save”操作指定 EntryID
--bypass : 绕过程序访问安全设置(需要管理员权限)
操作:
check : 执行一系列检查以确保操作安全性
contacts : 提取每个账户的所有联系人
mails : 提取每个账户的邮箱元数据
search : 在每个邮箱中搜索提供的关键字
save : 通过 EntryID 保存指定的邮件
示例:
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
check
枚举 Outlook 安装详情以构建正确的注册表项,并获取程序访问安全设置。
如果该值设置为“当防病毒软件处于非活动状态或过期时发出警告”,则它会查询 WMI 以获取已安装的防病毒产品,并解析它们的当前状态。
contacts
枚举每个已配置账户的联系人,并提取以下信息:
mails
枚举每个已配置账户的邮件,并提取以下元数据:
search
使用 Outlook 内置的搜索引擎在每个已配置账户的邮箱中搜索,并返回在其正文中包含所提供关键字的邮件的 EntryID。
save
使用 Outlook 内置的“另存为”机制导出由 EntryID 引用的邮件。
--bypass 开关可与 contacts、mails、search 和 save 操作配合使用,前提是当前进程以高完整性级别运行。
它将尝试快照 Outlook 的当前安全策略,将其修补为自动允许程序访问安全提示,然后在操作完成后将其恢复到初始状态。
所有操作将在屏幕上输出基本信息。
contacts 和 mails 操作将以 JSON 格式输出结果到 Gzip 压缩文件。
save 操作将以 .MSG 格式导出请求的邮件。
所有文件名在运行时随机生成。
默认情况下,Outlook 的安全临时文件夹用作所有导出文件的目标位置。