李成笔记网

专注域名、站长SEO知识分享与实战技巧

安全运维工具Nmap介绍——主机发现研究(下篇)

一、前言

接上一篇安全运维工具Nmap介绍——主机发现研究(上篇)发现当时的环境并不严谨,所以搭建了个测试环境,如下:

192.168.23.170 HFish和防火墙都没开
192.168.23.171 HFish和防火墙都开(应该可以被扫描到) 
192.168.23.172 HFish开,防火墙没开 
192.168.23.173 HFish没开,防护墙开(应该可以被扫描到)
192.168.23.174 都没开 
192.168.23.175-192.168.23.178 没有这三台机器

注意上面的HFish是一个蜜罐软件,用来模拟端口打开,因为我给测试环境的机器开真实服务端口,很浪费时间,所以就有蜜罐来代替!

二、主机发现测试

  • 2.1 基础主机发现
nmap -sn 192.168.23.170-178

如上23.171和23.173果然被发现,这确实是由于防火墙没打开,可以ping通的结果,但其他机器23.170、23.172、23.174开启了,却没有扫描到,以至于认为不存在,这也是很多系统运维人的误区。

  • 2.2 无Ping扫描
nmap -sn -Pn 192.168.23.170-178

扫描的结果都返回存在,证明-sn 和-Pn不能同时使用,是错误的用法

查询官方文档发现,Pn参数的意思是将所有指定的主机视作开启的,跳过主机发现的过程,所以会出现全部存在的状况!!

  • 2.3 sP扫描
nmap -sP 192.168.23.170-178

sP参数也只进行主机发现,不进行端口扫描。结果与sn参数相同,但是sP参数只进行ping扫描,而sn会发送四种不同类型的数据包来探测目标主机是否在线,只要收到其中一个包的回复,那就证明目标机开启。使用四种不同类型的数据包可以避免因防火墙或丢包造成的判断错误。

不过sP选项扫描也有一个优点,它可以轻易的获取目标信息而又不被轻易发现。在默认的情况下Nmap会发送一个ICMP回声请求和一个TCP报文到目标端口。ping扫描的优点是不会返回太多的信息造成对结果的分析干扰,并且这是一种非常高效的扫描方式。简而言之,sP扫描到的机器一定存在,那么可以用来确定网段,如果出现sP扫描完全没有任何结果,但是确认存在某网段,那么该网络一定配置了禁ping的安全设备。

  • 2.4 自定义扫描

-PS/PA/PU/PY 这些选项是通过发送SYN/ACK/UDP/SCTP包探测确认端口号的,在参数后面都可以添加端口列表来自定义扫描的端口

SCTP与TCP的最大不同之处在于它是多宿主(Multi-homing)连接,而TCP是单地址连接。

用法如下:

nmap -PS[portlist] 192.168.100.0/24
nmap -PA[portlist] 192.168.100.0/24 
nmap -PU[portlist] 192.168.100.0/24
nmap -PY[portlist] 192.168.100.0/24

经过分析,默认情况下本机地址通过发TCP连接,将SYN置1,如果收到ACK+RST包,则判定主机存活,并进一步探测端口。ACK/UDP/SCTP探测原理相同。(这里如果判定不存活,就不会再扫描端口),-PO选项,使用IP协议ping,通过抓包分析,探测过程与PS一致,这里不多描述。

TCP SYN Ping 扫描发送了一个设置了SYN标志的空TCP报文。默认是扫描目标的80端口,这样太单一了,所以我们通过"-PS22,23,25,80,115,3306,3389"进行设定扫描常用的端口。

通常情况下,nmap默认使用TCP ACK 和ICMP Echo请求对目标进行是否存活的响应,当目标主机的防火墙阻止这些请求时,可以使用 TCP SYN Ping扫描对目标主机是否存活进行判断。

Nmap是通过SYN/ACK和RST响应来对目标主机是否存活进行判断,但在特定的情况下防火墙会丢弃RST包,这种情况下扫描的结果会不准确,这时需要指定一个端口或者端口范围来避免这种情况。

例如输入命令:nmap -PS21-1000,3389 -sn 192.168.23.170-178,可以看到下面输出了完全正确的结果,但是注意这里扫描的端口还是比较多,可以选择一些特定服务的端口来扫描最好,可以减少被发现的可能

这里的逻辑是这样的,171和173可以ping通,并且一旦有端口回应便认为存在,而170,172,174不可以ping通,但有端口回应也视为存在,而175-178,不可以ping通过, 所有端口不回应便认为不存在!!

到现在我们总结一下:

nmap -sP 192.168.23.170-178 速度最快,但结果最差,也最安全,但是有防火墙禁ping的话完全无效

nmap -PU -sn 192.168.23.170-178 如果网络在设备禁ping,但是主机防火墙开放,使用PU更方便快捷安全

nmap -sn 192.168.23.170-178 速度最快,结果一般,比较安全,除可以ping通的,其他80或443开放

nmap -PS21-1000,3389 -sn 192.168.23.170-178 速度最慢,结果最准确,但是容易被发现,自由度最高,可以自定义端口只扫描开放某端口的存活机器,后者比端口扫描识别服务不容易被发现

  • 2.5 无ping扫描

用法如下,注意 -P0 是0而不是字母o

nmap -P0 192.168.xx.xx

防火墙禁止ping的情况下,可以用无ping扫描,有穿透防火墙,避免被防火墙发现的效果。但测试后发现结果并不准确,只能用来探测网段。

  • 2.6 ARP ping 扫描

用法如下:

nmap -PR 192.168.xx.xx

局域网内的扫描,如果我们发现目标主机就在它所在的局域网上,可以使用ARP扫描,这个扫描速度最快,且最为精准。

三、主机扫描总结

前面部分写得稍微复杂,有很多运维同学反映还是有点看不懂,所以我这里给大家写了一个总结,如果不想了解原理,可以直接收藏下面的总结,详细总结了各种网络情况下主机扫描的使用。

nmap -PR -sn 192.168.23.171-178 局域网内扫描最快,最精确,最安全

nmap -sP 192.168.23.170-178 速度最快,但结果最差,也最安全,但是有防火墙禁 ping 的话完全无效

nmap -PU -sn 192.168.23.170-178 如果网络有安全设备禁ping,但是主机防火墙开放, 使用PU更方便快捷安全

nmap -sn 192.168.23.170-178 速度最快,结果一般,比较安全,除可以ping通的,其他80或443端口开放

nmap -PS21-1000,3389 -sn 192.168.23.170-178 速度最慢,结果最准确,但是容易被发现,自由度最高,可以自定义端口只扫描开放某端口的存活机器,后者比端口扫描识别服务不容易被发现

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言