iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 11
0
Software Development

那些年還給老師的TCP/IP五層結構 - 用Python進行網路封包分析系列 第 11

Day11 題外話 - 如何利用ARP發起中間人攻擊(Man-in-the-Middle)

講了太多硬知識,來講個有趣的,也就是中間人攻擊(Man-in-the-Middle)的原理,中間人攻擊能讓同個局域網下的電腦在發送封包時經過你的電腦,再轉給路由器,你成為了一個中間人,可以對流過你的封包進行加工及監視

首先,一般的局域網網路架構如下所示,有HostA和HostB,直接連上router並透過router連上internet
https://ithelp.ithome.com.tw/upload/images/20200921/20130271zl6zP58hLr.png

我們現在要想個辦法,弄成如下結構,且不止request要經過HostB,response也要
https://ithelp.ithome.com.tw/upload/images/20200921/201302712300ftuSWe.png

那要怎麼做呢?這就要用到前一天講的ARP協議,ARP的IP和MAC address的映射表分別存在電腦主機和路由器裡面,電腦程式在組建封包時是寫入ip地址的,而mac地址則是根據本地的ARP映射表產生,所以只要能修改HostA和Router的ARP映射表就好了!那要怎麼改其他主機的ARP映射表呢?

假設

Host名稱 IP地址 MAC地址
Router 192.168.1.1 02:42:ac:12:00:02
HostA 192.168.1.2 02:42:ac:12:00:03
HostB 192.168.1.3 02:42:ac:12:00:04

只要兩個步驟:

  1. HostB一直對HostA傳遞Router IP和自己Mac address的映射
  2. HostB一直對Router傳遞HostA IP和自己Mac address的映射

HostA的ARP映射表

IP MAC Address
192.168.1.1 02:42:ac:12:00:04
192.168.1.3 02:42:ac:12:00:04

Router的ARP映射表

IP MAC Address
192.168.1.2 02:42:ac:12:00:04
192.168.1.3 02:42:ac:12:00:04

確保封包走過自己後就能偷偷做很多事啦!可以竄改DNS,把網址指向的ip指向自己的ip、可以阻止受害者使用https協議,就能看到明文密碼等等


上一篇
Day10 聊聊ARP
下一篇
Day12 解析第四層-UDP的封包結構
系列文
那些年還給老師的TCP/IP五層結構 - 用Python進行網路封包分析30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言