0x00 迅速了解Nmap

Nmap是一款扫描目标网络信息的工具,可以是***用来探测主机信息,收集情报的神器。也可以是运维人员扫描网络环境,及时发现系统漏洞的好帮手。

0x01 它的功能

1.png

1、主机发现(Host Discovery)#探测目标网络环境中有哪些主机是可以进行通信的,当然你也可以用ping命令试一下

2、端口扫描(Port Scanning) #扫描主机的端口,通过端口对对应的服务来判断目标主机运行了哪些应用

3、版本侦测(Version Detection)#使用各种特征来判断主机运行了哪些服务应用

4、操作系统侦测(OS detection)#通过特征来识别当前主机的系统版本,不只是计算机,也有可能会是路由交换

5、防火墙/IDS规避(Firewall/IDS evasion)#Nmap可以通过各种方法来规避目标防火墙的拦截,从而达到目的

6、NSE脚本引擎(Nmap Scripting Engine) #这是Nmap自带的扩展脚本,通过加载对应脚本来扫描目标有哪些在脚本已记录的漏洞和弱点

0x02 安装Nmap

1、可以在http://nmap.org/download.html这个网站中得到获取Nmap的各个版本的方法。

2、如果是Centos的话可以使用YUM安装Nmap,如果是debian或ubuntu的话,可以使用apt-get 来安装。

1.png

3、如果你使用的是Kali linux 或Back Track系列的话,那就不需要额外去安装了,但升级还是需要的。

0x03 主机发现

1、探测单个主机的在线情况:nmap -sP <target ip> 

1.png

2、探测一个网段的主机在线情况:nmap -sP <network address > </CIDR >

1.png

3、扫描自定义的IP范围:nmap -sP <target ip-digital>

1.png

0x04 端口扫描

1、扫描一百个常见主机端口:nmap -F <target ip> 

1.png

2、自定义扫描端口:nmap -p<port1>-<port2> <target ip> 

1.png

3、自定连续的端口扫描:nmap -p(range) <target IP>  

1.png

4、扫描系统的危险端口:

nmap -sT -sV -p 21,80,443,873,2601,2604,3128,4440,6082,6379,8000,8008,8080,8081,8090,8099,8088,8888,9000,9090,9200,11211,27017,28017 --max-hostgroup 10 --max-parallelism 10 --max-rtt-timeout 1000ms --host-timeout 800s --max-scan-delay 2000ms -iL iplist.txt -oN result/port.txt --open 
<target IP>

5、端口状态:使用Nmap扫描端口信息,一般会有6种状态信息

1.png

  1. open:端口是开放的。

  2. closed:端口是关闭的。

  3. filtered:端口被防火墙IDS/IPS屏蔽,无法确定其状态。

  4. unfiltered:端口没有被屏蔽,但是否开放需要进一步确定。

  5. open|filtered:端口是开放的或被屏蔽。

  6. closed|filtered :端口是关闭的或被屏蔽。

0x05 系统与服务信息扫描

1、扫描系统服务及版本信息:nmap -o <target IP>

1.png

0x06 防火墙逃逸

1、源IP欺骗:nmap -S <IP_Address> <target ip> #伪造一个IP,那么防火墙的日志里将不会出现你的真正IP。

2、源端口欺骗:nmap --source-port <portnumber> <target ip> 

3、源MAC欺骗:nmap –spoof-mac<mac address,prefix,or vendor name> <target ip>

4、数据报分段扫描:nmap -f <指定MTU> <target ip>

0x07 扫描参数

-A #进行全面的扫描,包括端口及主机版本探测,速度较慢。

-sS  #以SYN的方式进行扫描,以报文回复来判断端口状态,但不建立的完整的TCP连接,所以相对比较隐蔽,而且效率比较高,适用范围广

-ST  #TCP扫描,如果对方端口无法建立TCP连接,则判断为关闭状态,但扫描速度较慢,并且会在对方主机日志上会有记录,所以不推荐使用

-sU  #UDP扫描,向目标主机的UDP端口发送探测包,如果收到回复“ICMP port unreachable”就说明该端口是关闭的,反之则为开启

0x08 时间参数

-T0  #非常非常慢的发包,用于躲避IDS/IPS

-T1  #相当慢,用于躲避防火墙,比T0稍微快一些

-T2  #降低速度以消耗更小的带宽,比默认慢十倍

-T3  #默认选项,根据目标的反应自动调整时间模式

-T4  #假定处在一个很好的网络环境,会很快完成扫描,或被防火墙发现

-T5  #非常快速的发包,很可能会漏掉一些开放端口

0x09 常见的危险端口

21  ftp  主要看是否支持匿名,也可以跑弱口令 
80  web  常见web漏洞以及是否为一些管理后台 
443  openssl  心脏滴血以及一些web漏洞测试 
873  rsync  主要看是否支持匿名,也可以跑弱口令 
2601,2604 zebra路由,默认密码zebra 
3128  squid代理默认端口,如果没设置口令很可能就直接漫游内网了 
4440  rundeck  参考
WooYun: 借用新浪某服务成功漫游新浪内网
6082  varnish  参考WooYun: Varnish HTTP accelerator CLI 未授权访问易导致网站被直接篡改或者作为代理进入内网
6379  redis 一般无认证,可直接访问 
8000-9090  都是一些常见的web端口,有些运维喜欢把管理后台开在这些非80的端口上 
9200  elasticsearch  参考
WooYun: 多玩某服务器ElasticSearch命令执行漏洞
11211  memcache  未授权访问 
27017  mongodb  未授权访问 
28017  mongodb统计页面