《网络攻防技术(第2版)》 —2.5 网络拓扑探测
2.5 网络拓扑探测
对于攻击者而言,掌握目标网络的拓扑结构,了解目标网络的设备类型,明确目标设备实体对应的地理位置,可以更好地指导其实施入侵行为。这就像在军事作战中,指挥官拥有战场的精确地图,就能够准确地部署兵力,重点打击要害据点。攻击者可以通过网络信息挖掘或者社会工程学的方法获取目标网络的拓扑结构,利用网络设备的多维特征探测网络设备的类型,通过网络实体IP 地理位置定位技术确定目标设备的地理位置。除此以外,还有一些技术性的方法可以帮助攻击者尽可能还原目标网络的拓扑结构。
2.5.1 拓扑探测
通过主机扫描,攻击者可以确定目标网络中有哪些存活主机,然后再进一步确定这些存活主机的位置信息。如果攻击者要获得到达这些存活主机的路径信息或者路由级的拓扑信息,就需要其他一些技术手段。拓扑探测主要有基于Traceroute技术和基于SNMP(Simple Network Manager Protocol,简单网络管理协议)两种方式。
1. Traceroute技术
Traceroute原本是用于计算源主机与目标主机之间的路由器数量的命令行工具,它在Windows系统中的版本名称为Tracert。图2-10展示了Tracert的工作情况。
图2-10 Tracert应用示例
从图2-10可以看出,通过Tracert可以获得通往目标主机的路径中每一个节点的IP地址,这就为攻击者了解目标网络的拓扑结构提供了丰富的信息。下面简要介绍一下Tracert的工作原理。
Tracert向目标主机依次发送一系列UDP数据包(缺省大小为38字节),并且这些IP包的TTL字段(IP包生存期)从1开始依次递增,根据IP数据包路由的规则,每经过一跳,交换设备都会将TTL字段减1,一旦TTL字段减到0,就会向源端送回ICMP Time Exceeded应答消息。UDP包的端口则设置为一个不太可能用到的值(缺省为33434),因此目标主机会向源端送回ICMP Destination Unreachable消息,指示端口不可达,Tracert监听所有返回的ICMP报文,从而确定路径上每个节点的IP地址。
如果攻击者在目标网络中已经获取了一台主机的控制权,就可以将这台主机作为跳板(称之为跳板主机或者肉鸡),逐步探测网络中其他主机的路径信息,同时也可以通过查看跳板主机的路由表,获取路由信息。随着攻击者对目标网络渗透的逐步深入,结合之前获得的大量路由信息,攻击者就能够比较准确地还原出目标网络的拓扑结构图。
2. SNMP
简单网络管理协议(SNMP)是各种网络设备之间客户机/服务器模式的简单通信协议。路由器、交换机、打印机、主机等各种网络设备都可以成为SNMP系统中的服务器。SNMP系统中的客户机往往是单独的一台计算机,轮询网络设备并记录它们返回的数据。
20世纪80年代中期,由于当时绝大多数网络规模很小,因此网络管理通常使用Ping、Traceroute、Tcpdump以及类似的工具。1988年,IETF(The Internet Engineering Task Force,国际互联网工程任务组)制定了RFC1067标准,提出了SNMP,用于在大型的网络环境中管理各种网络设备。SNMP提供的丰富信息对于攻击者来说是十分有用的。
SNMP有两个基本的命令模式:Read和Read/Write。Read是指可以通过SNMP观察设备的配置细节,而Read/Write表示管理员有权写入一些内容,例如路由器的配置文件。表2-2列出了一些基本网络设备的Read、Read/Write名称(Community String)。
表2-2 常用设备的Community String
利用SNMP,可以很方便地看到一个网段的情况,包括机器名字、硬件信息、系统配置、路由表以及网络连接情况,当然这要在口令允许的情况下。利用默认的口令,可以很轻松地获得Cisco路由器的配置文件,或者上传经过修改以后的配置文件,这是因为如果Cisco支持OLD-CISCO-SYS-MIB的话,则允许通过Read/Write命令和TFTP装载配置文件。图2-11显示了通过SNMP获取的网络设备的各种信息。
图2-11 SNMP信息
一旦攻击者获取了SNMP提供的信息,特别是路由器等网络交换设备的配置信息,就可以根据路由表还原出目标网络的拓扑结构图。
- 点赞
- 收藏
- 关注作者
评论(0)