hashcat破解windows密码 CVE

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 握手包跑包

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

AdFind.exe -h dc-ip -u username -up
userpass -b "DC=test,DC=local" -f "(&(&(UserAccountControl:1.2.840.113556.1.4.803:=4194304)(!
(UserAccountControl:1.2.840.113556.1.4.803:=2)))(!(objectCategory=computer)))"

最近,Bdenneu在GitHub上发布了CVE-2022-33679的POC,我正好最近一直在研究域提权问题,于是就去看了一下。这个漏洞的本质是存在一个开启了不需要预认证的用户(创建用户时默认关闭,需要手动开启)的情况下,可以构造一个要求加密降级的AS-REQ请求。在未开启Kerberos预认证的情况下,一个AS-REQ可以用来请求一个AS-REP,而AS-REP中包含一个加密过的TGT。默认情况下,加密算法是AES,所以以前我们是使用彩虹表和hashcat来爆破。所以,首先我们需要找到一个设置了不需要预认证的用户。

python GetNPUsers.py windows.local/windows -dc-ip 172.16.178.9 -format hashcat
hashcat -m 18200 --force -a 0 hash password.txt
def prepareAsReq(self, requestPAC=True):
       rsadsi_rc4_md4 = -128
       self.__asReq = AS_REQ()
       .....
       .....
        self.__reqBody['realm'] = domain
       self.__reqBody['till'] = KerberosTime.to_asn1(now)
       self.__reqBody['rtime'] = KerberosTime.to_asn1(now)
       self.__reqBody['nonce'] =  rand.getrandbits(31)
       supportedCiphers = (rsadsi_rc4_md4,)
       seq_set_iter(self.__reqBody, 'etype', supportedCiphers)

hashcat破解windows密码

找到之后,我们可以直接使用impacket来请求TGT的哈希值,然后使用hashcat进行爆破。然而,在最新的POC中,AS-REQ将加密协议降级为了RC4。攻击者成功获得加密票据后,AS-REP数据包中包含一个40位长的加密TGT会话密钥。使用历史悠久的RC4-MD4加密类型,攻击者可以利用对加密数据包固定开头的了解,提取45个字节的密钥流。现在,攻击者可以使用该密钥流重新加密并向KDC请求TGT票证,并使用定制的预身份验证来验证密钥流是否正确,并逐字节破解剩余的40位TGT会话密钥。这是通过滥用用于Kerberos编码的ASN.1协议中的两个弱点来实现的,以利用攻击者对预身份验证字段大小的有限控制:KDC解析器忽略对象末尾的NUL终止字符串。这使我们能够在KerberosTime对象的末尾添加一个NUL字符。这将适用于单字节猜测,但我们仍然需要猜测额外的四个字节。KDC解析器不验证编码长度的长度。ASN.1字符串长度由1-4个字节表示,KDC ASN.1解析器不强制执行最短路径。因此,我们可以根据需要用1-4个字节的大小来表示我们的时间戳字符串长度。这意味着我们可以进一步扩大纯文本的长度,并将NUL字节推到下一个位置,并猜测密钥流的下一个字节。最后,攻击者可以通过发送带有加密预认证的AS-REQ重新加密时间戳,并验证每个猜测。如果加密的预认证日期不正确,则会收到错误消息。如果预认证成功,攻击者就能够从密钥流中发现另一个字节,因为每个字节有多达256个猜测选项。重复此过程可以获取所有必需的密钥流字节,以解密存储在原始票证中的会话密钥。大约经过1280次请求后,就可以获得TGT。给出的脚本添加了server参数,所以可以直接根据TGT请求对应server的TGS,并将其保存在本地。作者提供的脚本直接给出了TGS,如果想要TGT的话,可以修改脚本输出,或者直接使用另一个脚本github.com/Blyth0He/CVE-2022-33679。

hashcat破解windows密码hashcat破解windows密码hashcat破解windows密码

如果对应的账号没有该服务的权限,就会出现如下报错。如果使用未开启不需要预认证的账户进行爆破,得到的报错结果如下。简单总结一下,只要存在不需要预认证的账号,就可以获得TGT。需要付出的代价是可能会触发告警的1280次请求。不过目前来看,一般情况下很少有人会开启这个功能(至少我没有遇到过)。可能只是我倒霉吧。这个漏洞有点鸡肋。如果没有不需要预认证的账号,可以使用CVE-2022-33647,该漏洞要求客户端采用RC4-MD4进行降级加密请求。

赞(0)