CVE-2020-0665 的概念验证,该漏洞允许绕过 Active Directory 森林中的 SID 筛选(跨森林攻击)。
SYSTEM 用户)。双向传递信任关系。python2.7,以及在被攻陷的信任森林中安装了 frida 库 (pip2 install frida)。P.S.:我尚未用 python3 测试过,但或许也能运行?contoso.local,则需要一个子域 child.contoso.local。test.local(与我们的被攻陷域 contoso.local 存在双向传递信任),则需要一个工作站,比如 SQL.test.local、DEV.test.local、MSSQL01.test.local 等。如果使用 DC 作为工作站,攻击将不会成功。lsass.exe。NetLogon 调用 NetrGetForestTrustInformation。这每24小时发生一次,所以请耐心等待。将子 SID和本地 SID(工作站)传递给脚本。它使用 frida_intercept.py 脚本的一部分,通过进程名或 PID 来拦截并钩取进程。请注意,此脚本已在 python2.7 上测试通过,但或许也能在 python3 上运行(两者都需要在相应软件中安装 frida 库):
在被攻陷的域控制器上以 nt authority/system 身份运行的 shell 中,执行:
python .\CVE-2020-0665.py --process <要钩取的进程> --child-sid <子SID> --local-sid <本地SID>
例如:
python .\CVE-2020-0665.py --child-sid S-1-5-21-3878752286-62540090-653003637 --local-sid S-1-5-21-2327345182-1863223493-3435513819 -p lsass.exe -v
这将把工作站目标 SID(S-1-5-21-2327345182-1863223493-3435513819)替换为我们当前控制的 Active Directory 森林中一个子域的 SID(S-1-5-21-3878752286-62540090-653003637)。
[!警告] 这将更改受害者工作站的 SID。在执行此攻击之前,请尝试保存所有 SID 值,以便之后恢复。
有关此攻击的更多信息,请查看此博客,其中介绍了如何继续攻击(例如,通过 ExtraSid 攻击伪造黄金票据)。
出于道德目的。始终遵守道德规范 (: