中間人攻擊(MITM)是一種由來已久的攻擊手段,簡單點說也就是截獲你的流量,然後篡改或者偵測流量,而且就算是老成的網絡“高手”也不一定能發現自己中招了,接下來就由筆者給大家逐一介紹其中的攻擊原理和防禦手段。
0x01. ARP協定分析
ARP即地址解析協定,數据包在以太網中傳輸時需要有兩個地址,一個是IP地址,另一個就是MAC地址。其中的IP地址只是用來進行邏輯定址的,以太網並不能通過IP地址進行通信,因為IP地址是可以變換的,基於IP的通信不可靠也不安全,所以在以太網中主要是靠MAC地址進行物理通信,因為電腦的MAC地址在出產時就已經設定好,一般不會改變,而ARP協定就是用來幫助主機獲取目標主機的MAC地址!
ARP通信過程:
1.首先,每臺主機都會在自己的ARP緩衝區建立一個ARP清單,用於表示IP地址和MAC地址的對應關係
2.當源主機需要向目標主機發送數据包時,會先檢查自己的ARP緩衝區是否有該IP對應的MAC地址,如果有就直接發送數据包到該MAC地址;如果沒有那麼源主機就會在本網段發ARP廣播包,査詢目標主機的IP對應的MAC地址(注:這裡只討論局域網環境)
3.收到ARP廣播包的主機會檢查數据包中的目的IP地址和自己的IP地址是否一致,如果不同則丟棄數据包;如果相同那麼目標主機會先將數据包中的IP/MAC對應關係緩存到自己的ARP清單中,並且會覆蓋原本屬於這個IP對應的MAC(注:這是中間人攻擊的關鍵),然後給源主機發送一個ARP響應數据包,告訴對方自己是它需要查找的MAC地址
4.源主機收到這個ARP響應數据包後,將得到的目的主機的IP地址和MAC地址添加到自己的ARP清單中,並利用此資訊開始數據的傳輸。
0x02. ARP劫持原理
如上圖所示,中間人攻擊也就是將原本正常client<——>server之間的通信劫持下來變成client<——>attacker<——>server,讓用戶端和服務端的流量都從attacker的電腦經過,此時的attacker就可以偵聽流經本機的流量並進行篡改和偵測。下麵介紹如何讓attacker成為中間人。
client<——>server
client<——>attacker<——>server
MITM原理:
1.一開始筆者就介紹了ARP協定的通信原理,之所以這麼做是想讓大家對協定有更深入的理解,然後更好的弄清楚中間人的本質,這樣才知道如何防禦
2.其實電腦是很笨的,它並不能向人類那樣靈敏的思考,就好比我們直接給client發送一個ARP數据包聲稱:我的MAC對應的IP就是閘道IP,以後把你的的數据包發給我讓我幫你轉發吧,然後client想都不想就會相信,而且也不理會自己是否發送了ARP廣播包
3.欺騙閘道時也是一樣的,那麼之後的通信就會成為client<——>attacker<——>gateway
client<——>attacker<——>gateway
0x03. MITM攻擊實戰
環境準備:
kali Linux
win 7靶機IP=192.168.1.106
攻擊流程:
1.啟動kali的流量轉發功能,然後啟動arpspoof對靶機和閘道進行雙向欺騙,成為中間人
echo 1 > /proc/sys/net/ipv4/ip_forward && arpspoof -t 192.168.1.106 -r 192.168.1.1
2.啟動urlsnarf監聽靶機訪問的URL
urlsnarf -i eth0
3.通過dnsspoof進行DNS欺騙(注:筆者使用這個工具時不太穩定,有時成功有時失敗,但是大多數情况下都失敗了,可能是我的靶機緩存有DNS記錄,所以大家儘量選擇沒訪問過的網站)
echo“192.168.1.1 *.wmpic.me”> dnsspoof.host && dnsspoof -i eth0 -f dnsspoof.host
4.通過dsniff偵測密碼
dsniff -cm
0x04.防禦措施
關於中間人的利用就介紹到這裡吧,大家可以自行Google一下其他的工具,下麵介紹一下防禦方法。基於ARP的中間人攻擊只需要在閘道上設定IP/MAC綁定就能杜絕了,其實原理很簡單,這就是上面我給大家介紹ARP原理的原因。
0x05.結語
祝大家國慶快樂!!如果有任何問題可以加群與作者溝通
想要投稿者可以加群聯系群主