内网渗透学习之 Net-NTLM Relay Attack

Net-NTLM Relay Attack漏洞原理

Net-NTLM Relay 原理,它是发生在 NTLM 认证的第三步,客户端发送使用服务端 NTLM Hash 加密的 Challenge 值,得到 Net-NTLMHash。我们就是要重放这个 Net-NTLMHash 来进行攻击。

所以,进行NTLM Relay攻击的第一步我们首先要获得这个Net-NTLMHash值。那么如何能获得这个Net-NTLMHash值呢?思路是让受害者把 Net-NTLMhash 自己发送给攻击者,也就是说只要是使用 SMBHTTPLDAPMSSQL 等协议来进行 NTLM 认证的程序,都可以尝试用来向攻击者发送 Net-NTLM hash

在内网渗透中若利用 LLMNR/NetBIOS 成功劫持并获得了目标主机的 Net-NTLM Hash,如果我们有一个强大的字典也可以进行爆破。

Net-NTLM Hash 不像 NTLM-Hash,我们不能用 Net-NTLM Hash 来进行 Pass The Hash。所以我们可以试着通过NTLM Relay Attack来实现。

通过 SMB 来进行 Relay Attack

SMB 协议的 Relay攻击,可直接 Relaysmb 服务器,是最直接最有效的方法。

通过 SMB Relay Attack 我们可以在目标远程服务器上执行命令,上传我们的恶意 exe ,又或者到远程服务上执行恶意代码 ... 等等

Relay Attack 的两种场景:

1:工作组环境

在工作组环境里面,工作组中的机器之间相互没有信任关系,每台机器的账号密码 Hash 只是保存在自己的 SAM 文件中,这个时候 Relay 到别的机器可能性就不大,除非两台机器的账号密码一样,不然毫无意义。

2:域环境

我们知道在域环境下所有域用户的账号密码 Hash 都保存在域控的 ntds.dit 里面。若没有限制域用户登录到某台机子,那就可以将该域用户 Relay 到别人的机子,或者是拿到域控的请求,将域控 Relay 到普通的机子,比如域管运维所在的机器。

PS:域环境下域控默认开启 smb 签名

当前环境

目标 机器 IP 子网掩码
攻击人员21r000 Kali Linux 10.211.55.15 255.0.0.0
域控制器 Windows 20012server 10.211.55.12 255.0.0.0
域内机器 Win 7 10.211.55.7 255.0.0.0

Kali 加入域

配置如下:

Windows Server 2012 R2 x64
计算机名: Server2012
计算机全名: Server2012.21r000.org
域: 21r000.org
域控管理员: administrator
普通用户:21r000

image-20211207175302148

安装软件:

sudo apt install aptitude
sudo aptitude install sssd realmd -y
sudo apt-get install adcli realmd krb5-user samba-common-bin samba-libs samba-dsdb-modules sssd sssd-tools libnss-sss libpam-sss packagekit policykit-1 
sudo apt-get install samba # 如果需要samba共享目录给Windows。需要安装这个

编辑/etc/resolve.conf文件, 将DNS指向Server2012

sudo vim /etc/resolv.conf

image-20211207180356222

编辑/etc/hosts文件, 添加Server2012IP及域的对应关系

image-20211207183014658

编辑IP地址

vi /etc/network/interfaces

image-20211207181420632

inface eth0 inet static    #设置 eth0 使用默认的静态地址

address 10.211.55.15   #设置 eth0 的ip 地址

gatework 10.211.55.1    #配置当前主机的默认网关

netmask  255.0.0.0   #设置 eth0 的子网掩码

image-20211207183602996

重新配置网卡信息

dhclient

Linux机器加入域

realm join Server2012.21r000.org -U administrator

-- Server2012.21r000.org 为 DC 主机名
-- administrator 为域管理员账号

image-20211207185640793

查看是否成功加入

realm list

通过 smbrelayx.py 进行 Relay Attack

1、在攻击人员21r000 上执行如下命令监听 80445 端口,伪造 httpsmb 服务:

#SMBRelay 攻击 10.211.55.7 主机,并执行 whoami 命令
python3 smbrelayx.py -h 10.211.55.7 -c whoami

image-20211207191230754

2、通过钓鱼或者其他手段诱导域管理员或域用户访问了攻击人员21r000 伪造的 HTTPSMB 服务,访问 http://10.211.55.15 ,并输入账号密码进行认证:

image-20211207191427263

3、此时就 Relay 成功获取到 10.211.55.7system 权限(当然只是 whoami 命令,实战中可以直接远程加载 powershell 或者其他手段反弹 ShellC2

通过 ntlmrelayx.py 进行 Relay Attack

1、在攻击人员21r000 上执行如下命令监听 80445 端口,伪造 httpsmb 服务:

# SMBRelay 攻击 10.211.55.7 主机,并执行 whoami 命令
python3 ntlmrelayx.py -t smb://10.211.55.7 -c whoami -smb2support

image-20211207192015624

2、通过钓鱼或者其他手段诱导域管理员或域用户访问了攻击人员21r000伪造的 HTTPSMB 服务,访问 http://10.211.55.15,并输入账号密码进行认证:

image-20211207191427263

或者让域控随便访问一个资源使用 smb 触发:(因为它会检查本地 host 文件,然后检查 DNS,如果都不存在,就会通过 LLMNR 协议进行多播,在局域网中进行搜索。此时可以在攻击机上看到 Responder 的响应,然后受害者的 Windows 机器会向攻击者进行身份验证)

image-20211207192149736

3、此时就 Relay 成功获取到 10.211.55.7system 权限:

感言

这里贴上项目地址:https://github.com/21r000/impacket

image-20211207192947911

参考链接:

内网渗透中的 Net-NTLM Relay

posted @ 2021-12-07 19:42  404p3rs0n  阅读(223)  评论(0编辑  收藏  举报