0x01 由LLMNR协议引发的一系列中间人,在开始真正的内容之前,我们需要先来了解下,在同一内网环境下的windows机器之间的一些通信细节,当一台win机器向另一台win机器以域名[其实是机器名] 的形式请求相应的资源时,正常的通信流程如下
0x02 而基于LLMNR的中间人攻击,也就发生在上面流程的最后一步:
假设现在有三台机器,A[正常的客户机],B[攻击者的机器],C[要访问的服务器],当A向C发起共享资源请求时,由于本地dns解析失败,正常情况下该请求会被交给LLMNR然后执行netbios查询,但不巧的是攻击者此时正在监听网络中的所有netbios查询请求,自然也就会捕捉到这条查询,当攻击者捕捉到该查询之后,它会告请求者也就是A,我[B]就是你要请求的那台服务器,接着A会把自己的账号密码提供给B认证,也就是说,此时B已经截获到了A的账号密码,一次简易的基于LLMNR中间人的攻击就这样被完成了,下面的流程图已经很好的说明了这一攻击过程
此时,我们再利用responder 来获取目标的smb hash,虽然不是明文,但我们可以配合类似hashcat的hash破解工具尝试破解该hash,当然,如果你有自己的GPU矩阵就再好不过了,或许很快就可以拿到对应的明文
在C上,也就是我们的服务器上先创建一个共享目录
然后再回到A上通过smb进行访问
此时,回到B上我们就轻松截获了A发来的登陆凭证
0x03 说完netbios,我们再来说说WPAD,还是先大致了解下WPAD是个东西
正常情况下,一些公司为了提高网络利用率,尽量减小带宽消耗,在内部一般都会采用代理服务器的方式来上网,这也就意味着公司内部的员工要想上网则需要把自己的系统代理地址设为公司代理服务器的地址,说了一大堆没用的,WPAD又是干什么的呢,说白点主要用它来查找网络中的wpad.dat文件的,有了该文件以后,客户端以后就会根据文件中的内容自动配置代理,但如何查找到这个文件的位置呢,一种方式可以通过dns查询,另一种方式是通过dhcp服务进行检索,还有就是利用LLMNR查询,我们确实是可以利用dns或者dhcp毒化,来操控流量指向,但这种方式很容易被拦截,而LLMNR则不一样,它是通过广播告诉同一内网下的所有windows,它就是wpad服务器,这样当你的浏览器设置为’自动检测代理设置’的情况下,它就会下载攻击者事先准备好的wpad.dat文件,这样一来,客户端的流量就会经过攻击者的机器,相信下面的图已经描述的非常清楚了
利用responders获取内网明文密码
利用responder 在内网中伪造钓鱼页面批量挂后门 [内网社工也许会用得上]
|
|
|
|
|
|
利用responder进行smbrelay攻击 [后面可以连续提供多个用户名进行尝试,记得用空格分开即可]:
一点小结:
相对于各类传统的中间人,类似的攻击,成功率相对来说可能会更高,关于responder的用法,这里只简单列举了一部分,观察到最新版的里面又加了很多貌似很好用的功能,抽空再续吧,另外,也期待大家能一起积极深入交流讨论