Canarytokens的基本使用

https://www.canarytokens.org/generate

image.png
image.png

Sensitive command token

当某些敏感的windows程序运行时可以给指定的邮箱发送警报。
其会生成一个注册表文件,导入注册表中就会监视指定程序的运行,然后在执行程序后向canarytoken网站回传警报信息,并向指定邮箱发送警报邮件。

Windows Registry Editor Version 5.00
; Sensitive command token generated by Thinkst Canary
; Run with admin privs on Windows machine as: reg import FILENAME

; command that will be watched for
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\whoami.exe]
"GlobalFlag"=dword:00000200

; magic unique canarytoken that will be fired when this command is executed
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\whoami.exe]
"ReportingMode"=dword:00000001
"MonitorProcess"="cmd.exe /c start /min powershell.exe -windowstyle hidden -command \"$($u=$(\\\"u$env:username\\\" -replace('[^\\x00-\\x7f]|\\s', ''))[0..63] -join '';$c=$(\\\"c$env:computername\\\" -replace('[^\\x00-\\x7f]|\\s', ''));Resolve-DnsName -Name \\\"$c.UN.$u.CMD.3gt4ni9tt5jjhbuwb0tjuodqz.canarytokens.com\\\")\""

注:

1、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options 是 Windows 操作系统注册表中的一个键路径。它用于配置图像文件执行选项,即控制特定可执行文件的行为和设置。
在该注册表路径下,可以创建以可执行文件名命名的子项。每个子项代表一个可执行文件,用于配置该文件的执行选项。

这些执行选项可以用于调试、监视和控制可执行文件的行为。以下是一些常见的用途:
1)调试器设置:你可以配置一个特定的调试器来附加到某个可执行文件,以进行调试和故障排除。

2)应用程序监视:你可以通过设置钩子、监视器或其他调试选项来监视特定可执行文件的行为,例如跟踪函数调用、性能分析等。

3)兼容性设置:你可以为特定可执行文件设置兼容性选项,以模拟不同的操作系统环境或行为,以确保其在特定配置下正常运行。

4)行为修改:你可以修改特定可执行文件的默认行为,例如禁用某些功能、修改配置参数等。

上述的 "GlobalFlag" 配置项的值为 0x00000200,表示启用了堆标记(Heap Tagging)功能。
在执行 "whoami.exe" 时,堆分配和释放的操作会附加特殊的标记或签名,并且启用堆标记后,系统会在访问堆内存时验证标记的正确性。如果发现对已释放或损坏的堆内存的非法访问,系统将能够检测到并发出警告或引发异常,以帮助检测堆溢出和损坏问题。
"GlobalFlag" 的设置可以增强 "whoami.exe" 可执行文件的安全性和稳定性,确保对堆内存的访问遵循正确的规则和流程,从而减少堆相关的问题。



2、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit 是 Windows 操作系统注册表中的一个键路径,用于配置静默进程退出(Silent Process Exit)的行为。

在该注册表路径下,可以创建以可执行文件名命名的子项。每个子项代表一个可执行文件,用于配置该文件的静默进程退出选项。

"ReportingMode"=dword:00000001:
表示启用了报告模式(Reporting Mode)。该模式下,当 "whoami.exe" 进程异常退出时,系统会生成相应的报告。

"MonitorProcess"="......":
这个键值对指定了 "MonitorProcess" 的值为一个命令行字符串。该命令行将在 "whoami.exe" 进程异常退出时执行。


image.png


导入后:

image.png

image.png


执行后,会先弹出一个黑窗框,证明运行了exit时需要执行的cmd命令:

image.png

image.png

Microsoft Word document

生成word文档后下载即可。

原理是利用了DDE

动态数据交换(DDE),它是在Microsoft Windows操作系统中实现的客户端/服务器通信方法,自1987年早期的Windows 2.0基于Windows Messaging,并使用其功能来启动双方之间的连接,服务器侦听某些主题和消息,对其进行响应到客户端并终止连接。它被用于向诸如办公产品和浏览器的应用程序发送参数,发送命令到shell -explorer-来创建开始菜单组和链接,并在不同的应用程序和服务之间进行集成。

image.png

image.png

使用oletools分析一下该文档,发现存在DDE链接,使用了includepicture引入了canarytokens域下的链接,在url路径中包含我们下载的word文件名,只要访问就会被记录,被判断该文件被访问,并且从日志中提取出访问者的IP和浏览器指纹等信息。

<w:instrText xml:space="preserve"> INCLUDEPICTURE "http://canarytokens.com/static/8fj1c5kckqd8l6jbv5cl2hdyw/index.html" \d * MERGEFORMAT </w:instrText>


image.png

也可以在doc文档里搜索"w:instrText"发现该行命令(这里重新换了一个诱饵文件):

image.png

image.png

image.png

或者yara规则检测(https://blog.nviso.eu/2017/10/11/detecting-dde-in-ms-office-documents/

或者最简单、直接、全面的方式就是扔沙箱里检测。。
image.png


以上方法暂时只适用于未加密的docx文件,并且只能检测到一些常见的DDE链接(DDE攻击存在很多更复杂的方式),但如果是沙箱检测,如果DDE链接存在外联行为,则沙箱检测就能发现异常。
posted @ 2023-07-21 10:25  zw1sh  阅读(197)  评论(0编辑  收藏  举报