
SILPH 是一款开源红队工具,旨在完全在内存中转储 LSA 机密、SAM 哈希和 DCC2 凭据,无需将任何文件写入磁盘。
与上游项目 go-secdump 不同,SILPH 旨在集成到 Orsted C2 框架 中,并计划直接在 Windows 主机上运行,从而避免通过 RPC 创建服务的需要。
首先克隆并编译(你需要 go 来执行):
git clone [email protected]:almounah/silph.git
cd silph
GOOS=windows GOARCH=amd64 go build -trimpath -ldflags="-s -w"
然后运行 silph.exe。
PS C:\Users\haroun> Z:\silph.exe
███████╗██╗██╗ ██████╗ ██╗ ██╗
██╔════╝██║██║ ██╔══██╗██║ ██║
███████╗██║██║ ██████╔╝███████║
╚════██║██║██║ ██╔═══╝ ██╔══██║
███████║██║███████╗██║ ██║ ██║
╚══════╝╚═╝╚══════╝╚═╝ ╚═╝ ╚═╝
Stealthy In-Memory Password Harvester
"Well… I think I wanted to be like Eris."
Usage: Z:\silph.exe [options]
-dcc2
dump dcc2
-lsa
dump lsa
-sam
dump sam
一个新的 silph 模块将很快添加到 Orsted C2。请参考 Orsted 文档了解使用方法。
我希望有一个工具能集成到我的 C2 中,用来转储 SAM 和 LSA。
问题是我没有找到(或者至少我错过了)满足以下两个条件的工具:
此外,在了解相关内容时,我发现了一篇非常有趣的文章 https://g3tsyst3m.com/threat%20hunting/Detecting-SAM-registry-hive-dumps-using-Elastic!/。
基本上,作者展示了如何通过激活某些选项,触发一个事件,从而告知蓝队成员 SAM 正在被转储。然后他将该事件输入到 Elastic 中。你可以在此处看到触发的事件

文章中提供的生成该事件的 Python 代码使用了 RegOpenKeyEx 和 RegSaveKeyEx。
存在多种用于转储敏感 Windows 注册表配置单元的技术。常见方法包括使用 reg 命令或自定义脚本等工具将 SAM、SYSTEM 和 SECURITY 配置单元保存到磁盘的实用程序和 BOF。
另一种方法是创建卷影副本,并从快照中提取注册表配置单元。
go-secdump 引入了一种不同的技术。当它于 2023 年首次发布时,它依赖于一项服务来修改注册表 DACL,以便为自己授予足够的访问权限。这使得服务能够枚举子项并查询其名称和值,从而能够恢复明文机密。
用于枚举键和值的 Windows 注册表 API 在注册表句柄(而非文件支持的对象)上运行,从而可以在不将数据写入磁盘的情况下执行这些操作。
2025 年,Synacktiv 向 Impacket 提交了一个拉取请求,引入了 regsecrets.py,它实现了类似的方法。与 go-secdump 不同,此方法避免修改 DACL,而是使用 REG_OPTION_BACKUP_RESTORE 标志打开注册表句柄,从而授予枚举和查询所需的权限。
SILPH 遵循此方法,通过从 ntdll 解析的原生 NT 调用来使用 REG_OPTION_BACKUP_RESTORE,并利用 Superdeye 项目进行间接系统调用。由于 SILPH 设计为在目标系统上本地运行,因此无需创建服务,从而减少了与 Impacket 等远程工具相关的潜在网络检测。
在测试中,与基线执行相比,在相同条件下运行 SILPH 不会生成额外的 Windows 事件日志条目。
SILPH 的名字来源于 Mushoku Tensei 中的 希露菲叶特。
在她早年的生活中,希露菲因绿发而面临孤立和欺凌,这导致他人将她与令人恐惧的超级族联系起来。她没有通过武力或地位来克服这一点,而是通过学习、毅力和指导成长,逐渐培养出纪律和自控力。
这反映了 SILPH 的设计理念:一个自包含的工具,悄悄地运行,完全在内存中执行,无需留下持久痕迹就能无缝集成。