使用Kali 進行ARP斷網攻擊:
1、ARP協議:
ARP(Address Resolution Protocol,地址解析協議),位於TCP/IP協議棧中的網絡層,負責將某個IP地址轉化成對應的MAC地址。主機發送信息時將包含目標IP地址的ARP請求廣播到網絡上的所有主機,並接收返回消息,以此確定目標的物理地址;收到返回消息后將該IP地址和物理地址存入本機ARP緩存中並保留一定時間,下次請求時直接查詢ARP緩存以節約資源。
地址解析協議是建立在網絡中各個主機互相信任的基礎上的,網絡上的主機可以自主發送ARP應答消息,其他主機收到應答報文時不會檢測該報文的真實性就會將其記入本機ARP緩存;
由此攻擊者就可以向某一主機發送偽ARP應答報文,使其發送的信息無法到達預期的主機或到達錯誤的主機,這就構成了一個ARP欺騙。ARP命令可用於查詢本機ARP緩存中IP地址和MAC地址的對應關系、添加或刪除靜態對應關系等
攻擊原理:
ARP地址轉換表(ARP緩存)是依賴於計算機中高速緩沖存儲器動態更新的,而高速緩沖存儲器的更新是受到更新周期的限制的,只保存最近使用的地址的映射關系表項,這使得攻擊者有了可乘之機,可以在高速緩沖存儲器更新表項之前修改地址轉換表,實現攻擊。ARP請求為廣播形式發送的,網絡上的主機可以自主發送ARP應答消息,並且當其他主機收到應答報文時不會檢測該報文的真實性就將其記錄在本地的MAC地址轉換表,這樣攻擊者就可以向目標主機發送偽ARP應答報文,從而篡改本地的MAC地址表。這就是所謂的APR欺騙攻擊。
ARP欺騙可以導致目標計算機與網關通信失敗,更會導致通信重定向,所有的數據都會通過攻擊者的機器,因此存在極大的安全隱患,這里我們是使目標主機通信失敗,之后的教程會介紹重定向的方法。
ARP攻擊大致流程:
1:假設主機A訪問某網站,那么要告知某網站我的IP和MAC地址,但這是以廣播的方式告知的。
2:由於是廣播方式告知,猥瑣的B主機也知道了A的IP和Mac地址,於是猥瑣的B主機把自己偽裝成某網站,給A發送回復,
A誤以為B就是某網站,因此更新了自己本機的ARP緩存。
3:兩者建立連接,A不斷將自己的請求發給B,可憐的某網站被掛在一遍了。如果B轉發A的請求給某網站,再轉發給A,
那相當於A的流量都從B經過,這就是步驟4,因此可以會話劫持;如果B給A的是一個假地址,那么可憐的A永遠上不了網了。
如何進行偽造地址的詳細資料在參考資料里有詳細說明,讀者可以自己仔細了解下原理。
下面講解如何在Kali下進行ARP斷網攻擊:
注意:如果你是在使用虛擬機的kali系統,你需要設置虛擬機是已橋接的方式連入網,否則虛擬機會找不到同在局域網的主機。
1、首先你需要查看自己的ip、網卡以及網關。輸入>> ifconfig
2、通過命令:arpspoof -i eth0 -t 192.168.106 192.168.1.1 后面先是IP地址后是網關地址。
3、 查看攻擊效果。可以看出,在Windows XP上輸入arp -a時,兩次的MAC地址不同,說明ARP攻擊成功。此時Windows XP的主機再訪問百度頁面時,將不能訪問成功。(因為arp緩存表中緩存的是錯誤的網關MAC地址)
fping命令:
fping程序類似於ping(ping是通過ICMP(網絡控制信息協議InternetControl Message Protocol)協議回復請求以檢測主機是否存在)。Fping與ping不同的地方在於,fping可以在命令行中指定要ping的主機數量范圍,也可以指定含有要ping的主機列表文件。

-a Lists targets that responded 顯示可ping通的目標 -A Lists targets by address instead of hostname 將目標以ip地址的形式顯示 -b <num> Sends <num> bytes of data per ICMP packet (default 56) ping 數據包的大小。(默認為56) -B <f> Tells fping to wait <f> times longer for a reply after each successive failed request (default 1.5) 設置指數反饋因子到f -c <num> Number of Pings to send to each target (default 1) ping每個目標的次數 (默認為1) -C <num> Same as above but prints additional statistics for each host 同-c,返回的結果為冗長格式 -e Displays elapsed time on return packets 顯示返回數據包所費時間 -f <file> Reads the target list from <file> (use "-" for standard input) (only if no -g specified) 從文件獲取目標列表( - 表示從標准輸入)(不能與 -g 同時使用) -g Tells fping to generate a target list by specifying the start and end address (ex. ./fping -g 192.168.1.0 192.168.1.255) or an IP/subnet mask (ex. ./fping -g 192.168.1.0/24) 通過指定開始和結束地址來生成目標列表(例如:./fping –g 192.168.1.0 192.168.1.255)或者一個IP/掩碼形式(例如:./fping –g 192.168.1.0/24) -i <num> Interval (in milliseconds) to wait between Pings (default 25) 設置ip的TTL值 (生存時間) -l Sends Pings forever 循環發送ping -m Pings multiple interfaces on target host ping目標主機的多個網口 -n Displays targets by name (-d is equivalent) 將目標以主機名或域名顯示(等價於 -d ) -p <num> Interval (in milliseconds) between Pings to an individual target (in looping and counting modes, default 1000) 對同一個目標的ping包間隔(毫秒) (在循環和統計模式中,默認為1000) -q Doesn't show per-target/per-Ping results 安靜模式(不顯示每個目標或每個ping的結果) -Q <num> Same as -q, but show summary every <num> seconds 同-q, 但是每n秒顯示信息概要 -r <num> When a host doesn't respond, retries the host <num> times (default 3) 當ping失敗時,最大重試次數(默認為3次) -s Displays summary statistics 打印最后的統計數據 -t <num> Timeout (in milliseconds) for individual targets (default 500) 單個目標的超時時間(毫秒)(默認500) -u Displays targets that are unreachable 顯示不可到達的目標 -v Displays version number
常用方法:
fping IP1 IP2 IP3 ...; # ping多個ip fping -f filename; fping -g IP1 IP2(IP1地址開始范圍,IP2地址結束范圍)