乔丹二世 发表于 2011-1-16 00:58:50

用 Junction 绕过数字签名检测

好久没写技术文章,写一篇充数。

Junction 是 NTFS 的功能之一,属于 Reparse Point 的一种,自 Windows 2000 就有。

简单的来说,Junction 提供了对于应用程序透明的目录到目录的链接。

典型例子有 Windows Vista 下的 Documents and Settings 目录,通过 Junction 链接到了 Users 目录。对于一般的(non-Junction aware)的应用程序来说,这两个目录的内容是一样的,所以对于那些只为 XP 设计的应用程序来说,还是可以正常地访问用户文件夹。但是实际上,Documents and Settings 在 Vista 下只是个空目录而已。

我在很久以前的一篇日志中提到,这东西是可以被用来做坏事的。怎么做呢?

假设我有一个没有签名的恶意程序 C:\Malware\A.exe,还有一个已知的微软签名程序,比如 C:\Windows\System32\csrss.exe。

现在我想让 A.exe 在 SREng 日志里显示为已经经过微软签名,那该怎么办呢?

首先,我们创建一个 Junction 目录 C:\JunctionTest,链接到 C:\Malware。

然后将 A.exe 重命名为 csrss.exe,启动 C:\JunctionTest\csrss.exe

然后将 JunctionTest 链接到 C:\Windows\System32。

现在用 SREng 扫描一下,是不是通过签名验证了?

当然,Junction 还有更多更邪恶的用法,为避免被滥用,就请各位自行研究吧。

testid 发表于 2011-10-21 08:46:07


好帖就要顶!
页: [1]
查看完整版本: 用 Junction 绕过数字签名检测