当我们拿到一台主机准备横向移动的时候我们需要做以下这些事情这样会比较快速的定位到内网中存活的其他主机

确定IP段

通常内网地址分三段:10.0.0.0/8、172.16.0.0/12以及192.168.0.0/16。在没有做任何操作之前,我们可以大概知道内网的IP地址段,不过也有些公司,在内网又会有公网IP的情况,也就是说在内网中可以访问到的IP段有很多。


下面就主要介绍一下收集IP段的方式。

查看本机的IP地址

Windows下使用:

ipconfig /all

Linux下使用:

ifconfig -a

以Windows为例,执行结果如图:

从图中看到,我本机的IP以及下面的子网掩码,可以说明我所在的IP段是一个C段,我们就可以首先探测一下我所处的IP段,即:192.168.188.0/24。
图中还有一个IP值得注意,就是dns服务器的IP,通常在内网中,DNS服务器的IP地址未必与我们在同一个C段或者B段,所以从这里也可以看到一个存在的IP段,也是我们要做主机发现扫描的目标IP段。


查看路由表

Windows下使用:

route print

linux下使用:

route -n

以Windows为例,结果如图:

在上图可以看出,在路由表中也存在我们上面确定的IP段,这是我自己家的网络,所以没有那么复杂,大家在实际环境或者公司网络中可以看到有多个IP段,这些IP段都是我们可以访问到的,也是要做主机发现扫描的目标IP段。


查看本地连接信息

Windows下执行:

netstat -ano

linux下执行:

netstat -anp

以Windows为例执行结果如图:

从图中看到有很多的IP连接信息,我们并没有看到内网的IP地址,那是因为内网没有主机与我这台主机相连,你想象一下,如果我这台主机是台服务器,那么内网用户访问服务器时必定会有连接出现,这也是我们收集内网IP段信息的一种方式。


利用net命令

我们知道,在Windows内网环境下,我们可以使用

net view

命令用于显示一个计算机上共享资源的列表。我们从这个资源列表可以获取到一些主机名,然后解析出IP地址,这样不光收集到了一些存活主机,而且还收集了一些IP段。由于没有环境,就盗用网络上的图来填补一下:


我们还可以使用

net session

命令来查看管理员的登录IP,linux下可以使用

who

利用dns信息

当我们进入内网的时候,第一时间,我们应该先探测一下内网的dns服务是否存在dns域传送漏洞,如果存在,我们就可以剩下很多时间并且可以获取非常全的域名列表,这个列表基本很全的包含了内网所有的存活主机。如何探测dns域传送请点我

如果不存在dns域传送漏洞,在我们收集了一定的主机名之后,我们可以根据主机名的命名规则生成一份主机名字典,然后使用dns解析这些名字,获得IP之后,再根据IP确定IP段。

利用域信息

如果我们已经获取到一台域内的主机权限,那么我们就可以访问域内的所有信息,这是就可以通过域控制器查询加入域中的所有主机信息,可以使用如下命令获取:

dsquery computer 以及 dsquery server

获得主机以及服务器列表后,解析其IP获取IP段信息。


用以上几种方式,在新获取到一台主机权限之后做一下这个处理,就可能会收集到更多的IP段。但是有人说了,这样做多累啊,直接使用Namp或者其他大型扫描器多线程扫描内网的所有IP段不就行了,这样做当然可以,但是这个动静多大,会造成各种安全设备报警,还没赶上进一步渗透,你就直接game over了。老板给的任务完不成了,奖金没了~~~~

在内网的活动要非常谨慎,动静越小越好,否则,这篇文章的意义何在?