Python寫ARP區域網主機存活掃描與ARP欺騙工具
起源
最近一直在研究網路協議,為了加深理解就自己構造了資料包傳送並用抓包工具進行分析,在研究arp協議時順便寫了一個簡單的類似網路剪刀手的小指令碼用於測試,下面開始我們的arp研究吧。
簡單協議分析
網路協議大致分為應用層•傳輸層•網路層•鏈路層,以http為例,傳輸層封裝tcp頭,網路層封裝ip頭,鏈路層封裝以太頭(如下圖所示),而arp報文就是包含在鏈路層以太幀的資料包裡面,下面我們來講講以太幀格式。
以太幀
以太幀工作在鏈路層,以太幀格式多達五種,但今天的tcp/ip應用都是用Ethernet V2格式,下面我們分析Ethernet V2格式(如圖),各資料段的解釋圖上也標出來了,其中“型別”是指明上層協議,0x800代表網際協議,0x0806代表arp協議
下面我用wireshark抓一個arp回覆包來分析一下是否能與上面資料格式對應上(如下面截圖)此處wireshark把前導碼與CRC包給丟棄了,截圖中的“資料”裡面就包含著我們要研究的arp報文
Arp報文資料結構的研究
Arp報文資料結構就是對上面截圖中“資料”的具體研究,arp報文格式如下圖,操作型別有四種,這裡只講arp的兩種:1表示傳送的包為請求包,2表示傳送的包為回覆包:
下面我用wireshark對上面截圖“資料”展開進行研究:
好,說了這麼多我們下面來講講arp欺騙的原理吧!
Arp欺騙
兩臺計算機通訊需要ip地址與mac地址,此時把兩臺計算機當作快遞的起始站和終點站,要傳送的資料當作你要郵寄的物品,那麼ip地址就相當於起始站的寄件地址和終點站的收件地址,而mac地址就相當於中間要經過的中轉站地址。當一個資料發出後,要經過一個一個mac中轉站才能到達終點站。
(1)此時如果你把起始站要發往中轉站的mac地址改為你的mac地址,那麼起始站的資料包就直接發到你手中,如果你做一個路由轉換,再轉換到正確的mac地址,那麼起始站能正常收發郵件,而你卻能看其中的內容,如果不做路由轉換便實現了斷網功能
(2)如果你把mac中轉站(閘道器)要發往起始站的mac地址改為你的mac地址,那麼回覆的請求包就發到你手中,起始站就得不到回覆包,實現斷網功能。
方法一是欺騙目標機,修改目標機的mac快取表,如果目標機有arp防火牆便成功不了;
方法二是欺騙路由器,修改路由器的mac快取表,即使目標機有arp防火牆,也能實現斷網功能,因為目標機的mac快取表並沒有修改
Arp協議是一個不安全的協議,只要你傳送資料包就能修改目標的mac快取表,基於這種不安全性,便能實現arp欺騙。
Python寫arp欺騙工具
思路(及資料包的構造):不斷髮送修改對方mac快取表的arp
欺騙目標機:以太頭:本機mac•目標機mac資料(Arp包):目標機mac•目標機ip•操作型別請求或回覆都行•本機mac•閘道器ip
欺騙路由器:以太頭:閘道器mac•本機mac資料(arp包):閘道器mac•閘道器ip•操作型別請求或回覆都行•本機mac•目標機ip
Arp主機存活掃描
遍歷你要掃描的ip段地址併傳送一個廣播mac地址的請求包,收到回覆則代表這臺主機存活,並列印其ip地址及mac地址,用於arp欺騙。
Python寫掃描工具
思路:
以太頭:本機mac•ff:ff:ff:ff:ff:ff
資料:00:00:00:00:00:00(因為不知道目標mac於是用0填充)•目標機ip(一個一個遍歷)•操作型別請求•本機mac•本機ip
具體程式碼如下:
程式碼效果(以欺騙目標機為例):
注意
使用arp欺騙路由器時,不能用本機和虛擬機器做路由欺騙實驗,因為無論你怎麼分配虛擬機器mac地址,在路由器上的mac快取表中本機和虛擬機器mac地址都是用的本機mac地址,如下圖
原文釋出時間為:2016-12-03
本文作者:exploit
本文來自雲棲社群合作伙伴“Python中文社群”,瞭解相關資訊可以關注“Python中文社群”微信公眾號
相關文章
- Kali 實現區域網 ARP 欺騙和 ARP 攻擊
- ARP掃描工具arp-scan
- ARP欺騙防禦工具arpon
- 網路安全測試---ARP欺騙
- DNS欺騙和ARP欺騙是什麼?有何區別?DNS
- 基於ARP的網路掃描工具netdiscover
- 樹莓派上使用KickThemOut對區域網內的裝置進行ARP欺騙樹莓派
- Linux獨享主機繫結IP和MAC地址,防止ARP欺騙LinuxMac
- WindowsServer入門系列21防範ARP欺騙WindowsServer
- .net6+wpf製作指定區域網ip無法上網的arp欺詐工具
- 區域網內實現ARP攻擊
- 主機安全掃描工具-- vuls
- 如何高效實現掃描區域網IP、主機名、MAC和埠Mac
- 基於ARP的網路掃描工具netdiscover常用命令集合大學霸IT達人
- ARP協議詳解之Gratuitous ARP(免費ARP)協議UI
- NetBIOS主機名掃描工具nbtscaniOS
- ARP獲取另一臺主機的MAC地址Mac
- ARP監控工具ARPalert
- ARP偵查工具Netdiscover
- ARP協議介紹與ARP協議的攻擊手法協議
- LLMNR欺騙工具Responder
- 一篇故事講述了計算機網路裡的基本概念:閘道器,DHCP,IP定址,ARP欺騙,路由,DDOS等......計算機網路路由
- 交換機ARP代理詳解
- ARP原理
- ARP監測工具Arpwatch
- Linux ARP代理 與 NATLinux
- win7下的NETSH命令防止區域網內的ARP攻擊【Z】Win7
- 網路欺騙工具Ettercap大學霸IT達人
- 掃描技術和掃描工具
- 網站漏洞掃描工具Uniscan網站
- 網路掃描整合工具SPARTA
- Joomla!網站掃描工具joomscanOOM網站
- 【論文】網路安全與入門-ARP攻擊
- Python獲取網路中的存活主機以及哪些主機是LinuxPythonLinux
- 主機掃描程式實現方法 (轉)
- ARP協議詳解之ARP動態與靜態條目的生命週期協議
- 網咖頻繁掉線(ARP)與解決方法(轉)
- 埠掃描網路安全工具——NMAP