一步步学NetNTL

极客

一步步学NetNTL:从懵圈到破防,我的血泪实战笔记(附内网渗透干货)

嘿,兄弟们!今天咱们不聊那些虚头巴脑的理论,直接上硬菜——一步步学NetNTL,说实话,我刚开始接触这玩意儿的时候,整个人是懵逼的,什么NTLM、NetNTLMv1/v2、Challenge/Response,看着就头大,但没办法,搞内网渗透,这关必须过啊!所以今天我就把自己踩过的坑、总结的干货,全部掏心窝子分享给你,保证你看完能少走三个月弯路。

第一步:NetNTL到底是什么鬼?别慌,我用大白话给你讲明白

首先啊,咱们得搞清楚NetNTL(网络NTLM认证)是个啥,你想象一下,你在公司内网访问一个共享文件夹,Windows背后其实在进行一场“三方会谈”——客户端、服务器、域控(或者本地SAM),这个过程就是NTLM认证,但NetNTL呢,是它跑在网络上的版本,核心就是那个Challenge/Response(挑战/响应)机制

我第一次抓包看到那三组数据(Type1消息、Type2消息、Type3消息)的时候,心里想:这啥玩意儿?后来才明白,说白了就是:

  • 客户端说:“我要访问”(Type1协商)
  • 服务器说:“行,给你个随机数,你拿去算”(Type2挑战,那个8字节的随机数就是Challenge)
  • 客户端拿着密码哈希去加密这个Challenge,丢回来(Type3响应)

注意了! 这里最容易误解的一点是:网络上传输的不是密码本身,而是用哈希加密后的Challenge结果,但正是这个结果,给了我们离线爆破的机会!你说气不气人?微软这设计,简直是对攻击者敞开大门啊。

咱们一步步学NetNTL,第一步就是装个Wireshark,抓一次真实的NTLM认证包看看,我当初抓包的时候,看着那一堆十六进制数据,差点放弃,但咬牙坚持下来,再去对比RFC文档,瞬间就通了。这个过程特别像学骑自行车,光看理论没用,必须摔几跤才记得住。

第二步:NetNTL v1 vs v2,差别大到你想哭

兄弟们,这里有个大坑,必须得说!NetNTLM v1和v2的加密方式天差地别,爆破难度也是两个级别。 我刚开始傻乎乎的,以为都一样,结果拿v1的字典去跑v2的包,跑了三天三夜,零结果,气得我差点砸电脑。

简单说:

  • NetNTLM v1:用DES加密Challenge,关键是把NT Hash拆成三段分别加密,这就有漏洞了——因为DES的密钥只有56位,爆破起来相对容易,而且v1版本里,如果密码长度超过14位,最后一段全是一样的,这就给了攻击者更多可乘之机。
  • NetNTLM v2:用HMAC-MD5算法,把Challenge和用户的NT Hash、用户名、域名一起做哈希,这安全性就高多了,爆破的时候只能跑纯字典,GPU跑一天的效率也就那样吧。

我的血泪教训: 在公司内网遇到的真实环境,90%都是v2,如果你拿到一个v1的包,那绝对是老天赏饭吃,优先级最高!一步步学NetNTL的第二步,就是学会用工具识别版本。 比如用Responder抓包后,它会自动告诉你抓到的是v1还是v2,千万别漏看。

第三步:实战抓包!Responder + 内网里的“钓鱼执法”

OK,理论铺垫到位了,咱们上真家伙。一步步学NetNTL,最爽的一刻就是看着目标自己送上门来。 我用的最多的就是Responder这个神器,它就像一个“网络嗅探兽”,在内网里到处喊:“我是域控,谁要找我认证明细啊?”

具体操作我早就练得滚瓜烂熟:

responder -I eth0 -wv

跑起来之后,只要内网任何一台机器尝试访问一个不存在的SMB共享路径,比如错误输入\\192.168.1.1\share,它的访问请求就会被Responder截胡,然后乖乖回应Challenge,这时候你的终端上就会疯狂滚动,显示抓到一堆NetNTLMv2哈希。

说实话,我第一次抓到真实内网的NetNTLMv2哈希时,手都在抖! 那个激动劲儿,跟中了彩票差不多,但别高兴太早,挑战才刚开始。

第四步:暴力破解,我和hashcat的爱恨情仇

拿到哈希文件,保存为hash.txt,格式大概长这样:

admin::WIN-XXXX:1122334455667788:998877665544332211:0123456789abcdef

然后请出hashcat,注意参数啊兄弟们,NetNTLMv1对应哈希模式是5500,NetNTLMv2是5600,别搞混了! 我一开始就输错数字,跑了好久才发现模式不对,那种绝望你懂吗?

命令示例:

hashcat -m 5600 hash.txt rockyou.txt --show

但说实话,纯字典爆破效率真的低。我的独门诀窍是:先跑规则组合,再跑字典。 比如用best64.rule,能变出很多花样来,但有时候,真的跑不动,这时候就得考虑到放弃,换思路——比如去嗅探抓包,看看目标是不是还在用明文FTP或HTTP,那比破解NTLM快多了。

这里必须插一句: 爆破NetNTLM真的很吃CPU/GPU,我为了跑一个强密码,用云主机跑了一天一夜,电费都花了快一百块,结果还是没跑出来,那时候真是气得想骂娘。

第五步:中继攻击,不爆破也能拿权限!

你如果觉得爆破太累,那中继攻击(Relay Attack)就是你的福音。一步步学NetNTLM到精髓,你会发现,与其费劲破解,不如直接“借力打力”。

原理超简单:你抓到别人的Challenge和Response,不需要知道密码,直接把这些数据转发给目标服务器(比如SMB服务),让服务器以为你就是那个用户,这就像你捡到了别人的身份证复印件,虽然不知道密码,但刷身份证就能过门禁。

我用impacket的ntlmrelayx.py做实验的时候,一条命令直接获取域管的SHELL:

ntlmrelayx.py -t smb://192.168.1.100 -c "whoami"

当场执行成功,弹回一个SYSTEM权限的命令行那一刻,我整个人都麻了。那种感觉,就像武侠小说里突然打通了任督二脉,太爽了!

不过要注意,中继攻击现在受限于SMB签名和EPA(扩展保护认证),成功率低了很多,但对付一些老版本Windows或者配置不当的服务器,依然是大杀器。

第六步:防御与反思,知己知彼百战百胜

咱们学了这么多“坏”招数,也得知道怎么防,不然被人搞了都不知道。一步步学NetNTL,最后一步反而是最重要的一步——学会防御。

我总结了几个关键点:

  1. 开启SMB签名,这能直接终结中继攻击。
  2. 开启EPA(扩展保护认证),让Challenge绑定到具体连接上。
  3. 在内网部署Network Monitor,看到Responder那种抓包行为就报警。
  4. 尽量不用NTLM,改用Kerberos,但说实话,内网环境千奇百怪,总有些老系统得开NTLM,所以最实用的还是监控。

我之前在一家客户那里做安全评估,就是发现了他们内网一个开发服务器开着NTLMv1,而且SMB签名没开,结果我用Relay直接拿到了域管权限,事后帮他们加固的时候,看着对方运维那目瞪口呆的表情,我这虚荣心直接爆棚,哈哈!

我想对你说几句掏心窝子的话

兄弟们,一步步学NetNTL的过程真的不轻松,但当你看到那个成功的哈希被破解,或者一句命令拿下域控的时候,那种成就感是任何游戏都比不了的。 这条路需要耐心,更需要动手去抓包、去实验,光看文章是学不会的。

当然啦,我这篇分享只是冰山一角,NetNTL的世界里还有更多细节值得挖掘,比如不同版本的Windows对Challenge的生成差异、LLMNR/NBNS毒化的高级玩法等等。如果你也正在死磕内网渗透,或者对NetNTL有什么不懂的地方,欢迎加我QQ:7654321(备注“网络安全”即可),咱们可以聊聊实战中的那些趣事和坑,也方便我给你分享些独家的工具脚本。

最后送你一句话:“真正的黑客精神,从来不是一蹴而就的,而是一步步学,一天天练出来的。” 加油,咱们内网见!等你搞定第一个NetNTL哈希的时候,记得回来感谢我,哈哈!

一步步学NetNTL


(注:本文所有操作均在合法授权环境下进行,请勿用于非法用途,不然被抓了我可不负责啊哈哈哈!)

文章版权声明:除非注明,否则均为咸鱼-即刻攻防原创文章,转载或复制请以超链接形式并注明出处。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码