第四课 理解Meterpreter的网络命令

    Meterpreter中提供了一些有用的网络命令。这些命令可以帮助我们理解目标主机所在的网络结构。我们可以分析出该系统是属于一个局域网还是一个独立的系统。我们开可以找到IP地址范围、DNS和其它信息。当我们必须执行pivoting数据透视时,此类网络信息可能会很有用。pivoting数据透视是一个概念,也就是说我们可以利用被攻破的目标主机作为跳板进一步攻陷同一网络中的其它计算机。

准备工作

    在开始本节课之前,我先简单解释三个网络术语。

1)子网

    所谓子网就是一个大网络中更小的、可识别的部分。之所以使用子网是出于增加地址利用率以及安全性的考虑。

2)掩码

    掩码是用来区分IP地址中的子网和子网中的可用主机地址的32位二进制数。

3)网关

    网关指定转发或下一跳IP地址。

    我们在之后介绍的网络命令中会用到上面这三个概念,尤其是route命令。

操作步骤

1、Meterpreter中提供了许多网络相关的命令。我们通过help命令后跟net(代表网络)来查看它们的简介。如下图所示:

Meterpreter精通与入门(四)_Meterpreter

图1: 查看网络相关命令

2、arp命令显示了主机中的ARP缓存,如下图所示:

Meterpreter精通与入门(四)_Meterpreter_02

图2: 查看ARP缓存

3、getproxy命令允许我们查看当前的代理配置。如下图所示: 

Meterpreter精通与入门(四)_Meterpreter_03

图3: 查看代理配置

4、ipconfig/ifconfig命令是用来显示目标主机所有TCP/IP网络配置。它们显示的信息包括目标主机的IP地址、MAC地址以及子网掩码等。如下图所示:

Meterpreter精通与入门(四)_Meterpreter_04

图4: 查看TCP/IP网络配置

5、netstat命令显示了网络连接。如下图所示:

Meterpreter精通与入门(四)_Meterpreter_05

Meterpreter精通与入门(四)_Meterpreter_06

图5: 查看网络连接

6、portfwd命令用于将传入的TCP或UDP连接转发到远程主机。我们通过以下的例子来理解这句话的意思:

    我们有A、B、C三台主机,B位于中间。主机A想要连接到主机C,但是由于某种原因不可能直连,而B恰好能与C直连。如果我们把B作为一个枢纽,将A的流量转发给C,我们说主机B正在做端口转发。实际上发生的是:主机B上运行的软件打开了一个TCP的监听端口,比如说端口20。主机C也在运行一个侦听器,该侦听器用于连接到主机B。如果主机A向B的端口20发送任意数据包,那么B会将它自动转发给主机C。由此,主机B实现了将数据包转发给主机C。

7、接下来是网络命令中的route命令。这与MS-DOS中的route命令相似。此命令用于显示或修改目标计算机上的本地IP路由表。如下图所示:

Meterpreter精通与入门(四)_Meterpreter_07

图6: 查看IP路由表

8、想要查看某一个命令的帮助信息,您可以使用-h参数,例如route命令:

Meterpreter精通与入门(四)_Meterpreter_08

图7: 查看route命令的帮助信息

工作原理

    在利用远程主机进行转发之前,我们需要先添加转发规则。如下图所示:

Meterpreter精通与入门(四)_Meterpreter_09

图8: 添加转发规则

    我们来解释一下命令中各个参数的含义。-a参数表示我们要添加一条新的端口转发规则。-L参数定义将转发的套接字绑定到的IP地址。由于我们是在主机A上使用这条命令,想要在同一台主机上完成转发,因此IP地址设置为127.0.0.1:

1)-l:表示将在主机A上打开以接受传入连接的端口号;

2)-h:定义主机C的IP地址,或者其它内网上您想要的建立连接的主机地址;

3)-p:表示主机C上您想连接的端口。

    上面是使用端口转发的一个简单示例。实际中,这项技术一般用来绕过防火墙和***检测系统。