【内网渗透】NLTM网络认证之PTH攻击【详解】

admin 2022年5月16日09:35:41评论640 views字数 2818阅读9分23秒阅读模式


相信大家在基本的内网渗透当中也经常使用PTH的手法展开攻击,今天就由小编来带大家了解下原理和PTH的攻击吧!


也可以带着思考去看该文章,我们为什么用到pth攻击pth可以用来喷射吗?



0x01 NTLM的分类

 

NTLM认证分为本地认证网络认证


简单的理解如下

认证的实质,就是把用户输入的凭证(帐号密码),去对比系统里面对应的凭证,来判断是否登录成功。

本地认证:将用户输入的帐号和密码,做这样的处理,密码经过加密后,形成密码密文,用来代替原本的密码,然后将帐号和密码密文和系统里面的进行对比,来判断登录情况。

网络认证:和本地认证类似,但是将对比的工作交给服务器去处理,并且期间利用随机数的方式验证请求有没有被篡改。




本地认证


指用户在输入账户密码机械能登录时,winlogon.exe进程接收用户输入的帐号和密码,然后发送给lsass.exe进行以下处理:密码进行ntlm-hash的加密方式(或lm-hash)进行加密,然后将帐号和密码密文系统中的SAM文件中对应的帐号和密码密文进行对比,从而进行认证




我们重点来说说网络认证


【内网渗透】NLTM网络认证之PTH攻击【详解】



为什么说 重点说网络认证呢?相信大家知道,也百度过 哈希传递攻击,包括smb中继,ldap中继,Telnet  dhcp6 等等 这些在内网/域 实战当中,用到的也还是挺多的



网络认证


NTLM协议的网络认证有NTLMv1NTLMv2两种版本,网络认证常常用于工作组或者是域环境下


实现原理有点绕,请大家耐心点观看


实现原理

在实现网络认证的时,采用的方式为挑战/应答(Chalenge/Response)模式。

可分为三步:

协商->质询->验证

 

具体过程:

协商:

客户端发送 TYPE 1 Negotiate 协商消息去协商需要认证的主体,用户(用户名)机器以及需要使用的安全服务等信息

 

质询:

1.客户端向服务器端明文发送用户名,将输入的密码对应的ntlm-hash保存到本地并抛弃原始明文密码(与协商同时进行)


2.服务器接收到TYPE 1 消息后,读取内容并选择自己所能接受的服务内容,加密等级,安全服务传入NTLM SSP(SSP是安全服务提供,用于实现SSPI安全服务提供接口,而这个接口用于身份验证机制、信息完整性等),得到TYPE2 Challenge,其中,TPYE 2包含一组随机生成的16位数,称为Challenge,发送TPYE 2给用户之后,服务器保存Challenge


3.客户端收到TPYE 2之后,读取其中的Challenge,使用之前保存的ntlm-hash对其进行加密,并与用户名、Challenge等组合成net-ntlm-hash将net-ntlm-hash封装到TYPE 3 Authenticate 消息中(被称为 Authenticate 认证消息),发往服务器。

 

验证(接下来过程,在工作组和域中不一样):

工作组环境:

4.服务器收到TYPE 3之后,将对应密码的ntlm-hash加密Challenge,并组合net-ntlm-hash,比对TPYE 3中的net-ntlm-hash判断登录情况

 

域环境:

4.服务器收到TYPE 3之后,取出net-ntlm-hash,向域控制器(DC)发送验证请求,请求包括用户名、Challenge、net-ntlm-hash

5.DC根据用户名取密码的ntlm-hash,并计算net-ntlm-hash,比对两者的net-ntlm-hash判断登录情况

6.服务器根据域控的返回结果回复客户端




NTLM协议版本区别


NTLMv1:Challenge为8位,主要加密算法为DES

NTLMv2:Challenge为16位,主要加密算法为HMAC-MD5




Net-ntlm-hashv1的格式为:

username::hostname:LMresponse:NTLM response:challenge



 



Net-ntlm-hashv2的格式为:

username::domain:challenge:HMAC-MD5:blob



 



0x02 哈希传递攻击PTH




net-ntlm-hashntlm-hash


net-ntlm-hash只有在网络认证的时候才会使用,而ntlm-hash是认证的基础,贯穿整个NTLM认证


Net-ntlm-hash不会像ntlm-hash一样被攻击者用来哈希传递,但可以被截获从而进行爆破,或进行NTLM中继攻击




哈希传递攻击PTH在网络认证的TYPE 3生成的时候,由于只使用ntlm-hash进行加密而不需要密码,所以攻击者可以模拟用户登录或者身份认证的时候,利用获取到的ntlm-hash直接进行登录




实战演示:利用mimikatza的方式去测试


域环境

攻击者win7

被攻击者xp  ip:192.168.68.131

这里我们模拟已经拿到xp的ntlm-hash  (实战中,比如我们拿到xp的webshell)

【内网渗透】NLTM网络认证之PTH攻击【详解】



然后,在win7机器上,通过mimikatza进行pth:


【内网渗透】NLTM网络认证之PTH攻击【详解】


sekurlsa::pth/user:username /domain:domainnanme /ntlm:ntlm-hash /run:cmd


user是一般使用目标主机中具有管理员用户权限的用户名称

ntlm是对应用户的ntlm-hash

/run:cmd会在pth成功时弹出一个cmd窗口,不写这个参数也默认弹cmd

当需要提权时,非管理员需要配合提权漏洞,管理员组的非administrators需要借助bypassuac、administrator等工具



【内网渗透】NLTM网络认证之PTH攻击【详解】



当pth成功时,会回弹一个cmd,然后在此cmd下进行类似远程dir的操作是不需要登录的,如上图所示.,可以直接连接




查看过图,是不是很好奇dir,我们创建了一个ipc连接,其实我们也可以利用


我们除了用mimikatza,还可以用 impacket套件

(psexec.py,smbexec.py,wmiexec.py)


psexec.py -hashes :<hash> 域/域用户名@192.168.10.2

【内网渗透】NLTM网络认证之PTH攻击【详解】





那问题来了,为什么我们要用到 pth?pth可以不可以喷射?


(一)首先我们为什么用到PTH?


1:目标主机在win server 2012之后,lsass.exe进程中是抓不到明文密码的;

2:随着信息安全意识的提高,弱口令情况逐渐降低,我们经常会遇到拿到hash却解不开,综上,只要我们获取到hash,我们依然可以正常登录


(二)PTH可以不可以喷射?


我们看完原理之后知道我们获取的是 ntlm-hash,我们是不是可以用这个ntlm-hash进行域内,内网喷射?相信你们都已经有了答案






关注黑客街,回复 burp 即可 获取 最新版破解burp 



【内网渗透】NLTM网络认证之PTH攻击【详解】


 


【内网渗透】NLTM网络认证之PTH攻击【详解】




本文始发于微信公众号(亿人安全):【内网渗透】NLTM网络认证之PTH攻击【详解】

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月16日09:35:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【内网渗透】NLTM网络认证之PTH攻击【详解】https://cn-sec.com/archives/561414.html

发表评论

匿名网友 填写信息