(一)Port scan简介

port Scan的方法介绍 port Scan就是一种通过检测对方服务器的开放端口,侦测对方服务器服务的方法。一般可分为主动式和被动式两种。 主动式就是通过向对方服务器的特定端口发送数据包,根据应答来判断,以nmap 为代表。

        被动式,不主动发出数据包,而是在网络上长时侦听,分析网上的transaction,来分析,严格的来被动式不应该被称作是端口扫描。以nwatch为代表

(二)优缺点比较 

(1)主动式的优点

主动式只要在对方没有把通信阻断的情况下,可以在较短的时间内获得结果

(2)主动式的缺点

   1 现在带有阻断功能的防火墙越来越多,有些防火墙当检测到端口扫描时,会将端口关闭一定的时间,还有的机器使用了很多filter功能,只对特定的IP地址提供服务,这种情况下,主动式的正确性大打折扣。

   2  主动式只是在一瞬间对端口进行扫描,只有当服务器那个时候使用的服务才有可能被侦测到。

   3  端口扫描是一种广义上的***行为,对于末经许可的机器,一般不能施行。

被动式的优点 :被动式只是侦听网络,不会成为网络***,它长期运行,可以侦测到一个长时间间内服务器的变化。

被动式的缺点: 由于它不会主动发出请求包,即使端口开着,如果没有发生实际的通信,被动式也无法侦测到服务

    本文主要简述nmap的原理及功能。

(三)nmap功能和使用

(1)nmap(network mapper) ,最早是Linux下的网络扫描和嗅探工具包。 nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。     ----百度百科

(2)功能,有三个基本功能:

  1. 探测一组主机是否在线。

  2. 扫描主机端口,嗅探所提供的网络服务。

  3. 推断主机的操作系统。

Nmap可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。Nmap 还允许用户定制扫描技巧。通常,一个简单的使用ICMP协议的ping操作可以满足一般需求;也可以深入探测UDP或者TCP端口,直至主机所 使用的操作系统;还可以将所有探测结果记录到各种格式的日志中, 供进一步分析操作。

(3)nmap安装,使用yum安装方便快捷。也可以登录官网(https://nmap.org/download.html)下载压缩包进行下载安装

[root@Monitor conf]# yum install nmap -y
已加载插件:fastestmirror
设置安装进程
Determining fastest mirrors
epel/metalink                                                                                                                  | 6.5 kB     00:00     
 * epel: mirrors.ustc.edu.cn
base                                                                                                                           | 3.7 kB     00:00     
dockerrepo                                                                                                                     | 2.9 kB     00:00     
epel                                                                                                                           | 4.3 kB     00:00     
epel/primary_db                                                                                                                | 5.9 MB     00:49     
extras                                                                                                                         | 3.4 kB     00:00     
extras/primary_db                                                                                                              |  29 kB     00:00     
updates                                                                                                                        | 3.4 kB     00:00     
updates/primary_db                                                                                                             | 2.5 MB     00:01     
解决依赖关系
--> 执行事务检查
---> Package nmap.x86_64 2:5.51-6.el6 will be 安装
--> 完成依赖关系计算
依赖关系解决
======================================================================================================================================================
 软件包                           架构                               版本                                      仓库                              大小
======================================================================================================================================================
正在安装:
 nmap                             x86_64                             2:5.51-6.el6                              base                             2.8 M
事务概要
======================================================================================================================================================
Install       1 Package(s)
总下载量:2.8 M
Installed size: 9.7 M
下载软件包:
nmap-5.51-6.el6.x86_64.rpm                                                                                                     | 2.8 MB     00:00     
运行 rpm_check_debug 
执行事务测试
事务测试成功
执行事务
Warning: RPMDB altered outside of yum.
  正在安装   : 2:nmap-5.51-6.el6.x86_64                                                                                                           1/1 
  Verifying  : 2:nmap-5.51-6.el6.x86_64                                                                                                           1/1 
已安装:
  nmap.x86_64 2:5.51-6.el6                                                                                                                            
完毕!

(4)nmap常见的扫描方式

  •  TCP同步(SYN)端口扫描(-sS参数)。TCP SYN扫描创建的是半打开的连接,它与TCP connect()扫描的不同之处在于,TCP SYN扫描发送的是复位(RST)标记而不是结束ACK标记(即,SYN,SYN-ACK,或RST):如果远程主机正在监听且端口是打开的,远程主机用 SYN-ACK应答,Nmap发送一个RST;如果远程主机的端口是关闭的,它的应答将是RST,此时Nmap转入下一个端口。

  • Ping扫描(-sP参数)。Ping扫描通过发送ICMP (Internet Control Message Protocol Internet控制消息协议)回应请求数据包和TCP应答(Acknowledge,简写ACK)数据包,确定主机的状态,非常适合于检测指定网段内正在运行的主机数量。

  • TCP connect()端口扫描(-sT参数)。在TCP connect()扫描中,扫描器利用操作系统本身的系统调用打开一个完整的TCP连接——也就是说,扫描器打开了两个主机之间的完整握手过程(SYN,SYN-ACK,和ACK)。一次完整执行的握手过程表明远程主机端口是打开的。

  • UDP端口扫描(-sU参数)。

                                                                                                --------------百度百科

    具体例子如下:

  • -sS 使用SYN+ACK的方法,使用TCP SYN,

  • -sT 使用TCP的方法, 3次握手全做

  • -sU 使用UDP的方法

  • -sP ICMP ECHO Request 送信,有反应的端口进行调查

  • -sF FIN SCAN

  • -sX

  • -sN 全部FLAG OFF的无效的TCP包送信,根据错误代码判断端口情况

  • -P0 无视ICMP ECHO request的结果,SCAN

  • -p scan port range 指定SCAN的目端口的范围

  •    1-100, 或者使用25,100的方式

  • -O 侦测OS的种类

  • -oN 文件名 通常格式文件输出

  • -oX 文件名 通过DTD,使用XML格式输出结果

  • -oG 文件名,grep容易的格式输出

  • -sV 服务的程序名和版本SCAN

常用的实例:

进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):
nmap -sP 192.168.1.0/24
仅列出指定网络上的每台主机,不发送任何报文到目标主机:
nmap -sL 192.168.1.0/24
探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80):
nmap -PS 192.168.1.234
使用UDP ping探测主机:
nmap -PU 192.168.1.0/24
使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快:
nmap -sS 192.168.1.0/24   以SYN的方式进行扫描,以报文回复来判断端口状态,但不建立的完整的TCP连接,所以相对比较隐蔽,而且效率比较高,适用范围广
当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描:
nmap -sT 192.168.1.0/24
UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口:
nmap -sU 192.168.1.0/24  #UDP扫描,向目标主机的UDP端口发送探测包,如果收到回复“ICMP port unreachable”就说明该端口是关闭的,反之则为开启
确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等):
nmap -sO 192.168.1.19
探测目标主机的操作系统:
nmap -O 192.168.1.19
nmap -A 192.168.1.19 全面扫描包括端口主机版本探测,但速度较慢
namp  -ST  #TCP扫描,如果对方端口无法建立TCP连接,则判断为关闭状态,但扫描速度较慢,并且会在对方主机日志上会有记录,所以不推荐使用
另外,nmap官方文档中的例子:
nmap -v scanme.
这个选项扫描主机scanme中 所有的保留TCP端口。选项-v启用细节模式。
nmap -sS -O scanme./24
进行秘密SYN扫描,对象为主机Saznme所在的“C类”网段 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描 和操作系统检测,这个扫描需要有根权限。
nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127
进行主机列举和TCP扫描,对象为B类188.116网段中255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。
nmap -v -iR 100000 -P0 -p 80
随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段 发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因 此使用-P0禁止对主机列表。
nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20
扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。
host -l | cut -d -f 4 | nmap -v -iL -
进行DNS区域传输,以发现中的主机,然后将IP地址提供给 Nmap。上述命令用于GNU/Linux -- 其它系统进行区域传输时有不同的命令。
其他选项:
-p (只扫描指定的端口)
单个端口和用连字符表示的端口范 围(如 1-1023)都可以。当既扫描TCP端口又扫描UDP端口时,可以通过在端口号前加上T: 或者U:指定协议。 协议限定符一直有效直到指定另一个。 例如,参数 -p U:53,111,137,T:21-25,80,139,8080 将扫描UDP 端口53,111,和137,同时扫描列出的TCP端口。
-F (快速 (有限的端口) 扫描)


重点备注:最常用的实例如下:

(一)主机发现:1,探测单个主机在线情况(nmap -sP ip)  2,探测一个网段的主机现在情况(nmap -sP 网络地址192.168.180.0/24  )   3,扫描自定义的IP范围(nmap -sP 192.168.180.1-200)  。具体例子如下:


1,探测单个主机在线情况:nmap -sP 192.168.180.2

root@localhost yunwen]# nmap -sP 192.168.180.2   
Starting Nmap 6.40 ( http://nmap.org ) at 2017-08-16 10:04 CST
Nmap scan report for localhost (192.168.180.2)
Host is up (0.00020s latency).
MAC Address: 18:A9:05:77:38:14 (Hewlett-Packard Company)
Nmap done: 1 IP address (1 host up) scanned in 2.53 seconds

2,探测一个网段的主机现在情况:nmap -sP 192.168.180.0/24

[root@localhost yunwen]# nmap -sP 192.168.180.0/24
Starting Nmap 6.40 ( http://nmap.org ) at 2017-08-16 10:06 CST
Nmap scan report for localhost (192.168.180.2)
Host is up (0.00064s latency).
MAC Address: 18:A9:05:77:38:14 (Hewlett-Packard Company)
Nmap scan report for localhost (192.168.180.3)
Host is up (0.00072s latency).
MAC Address: 00:15:5D:6E:28:02 (Microsoft)
Nmap scan report for xn1.lqb.com (192.168.180.4)
Host is up (0.00064s latency).
MAC Address: 00:15:5D:6E:28:05 (Microsoft)
Nmap scan report for 192.168.180.5
Host is up (0.00081s latency).
MAC Address: 00:15:5D:6E:28:0F (Microsoft)
Nmap scan report for localhost (192.168.180.6)
Host is up (0.00071s latency).
MAC Address: 00:15:5D:6E:28:13 (Microsoft)
Nmap scan report for 192.168.180.7
Host is up (0.00063s latency).

3,扫描自定义的IP范围:nmap -sP 192.168.180.1-10

[root@localhost yunwen]# nmap -sP 192.168.180.1-10
Starting Nmap 6.40 ( http://nmap.org ) at 2017-08-16 10:17 CST
Nmap scan report for localhost (192.168.180.2)
Host is up (0.00058s latency).
MAC Address: 18:A9:05:77:38:14 (Hewlett-Packard Company)
Nmap scan report for 192.168.180.3
Host is up (0.00057s latency).
MAC Address: 00:15:5D:6E:28:02 (Microsoft)
Nmap scan report for xn1.lqb.com (192.168.180.4)
Host is up (0.00075s latency).
MAC Address: 00:15:5D:6E:28:05 (Microsoft)
Nmap scan report for 192.168.180.5
Host is up (0.00074s latency).
MAC Address: 00:15:5D:6E:28:0F (Microsoft)
Nmap scan report for localhost (192.168.180.6)
Host is up (0.00057s latency).
MAC Address: 00:15:5D:6E:28:13 (Microsoft)
Nmap scan report for 192.168.180.7
Host is up (0.00057s latency).
MAC Address: D8:CB:8A:BF:6F:D3 (Unknown)
Nmap scan report for 192.168.180.8
Host is up (0.00057s latency).
MAC Address: 00:15:5D:6E:28:14 (Microsoft)
Nmap scan report for 192.168.180.9
Host is up (0.00066s latency).
MAC Address: 00:15:5D:6E:28:15 (Microsoft)
Nmap scan report for localhost (192.168.180.10)
Host is up (0.00073s latency).
MAC Address: 00:15:5D:6E:28:0A (Microsoft)
Nmap done: 10 IP addresses (9 hosts up) scanned in 9.24 seconds


(二)端口扫描。常见的端口扫描有:1,扫描主机常见的端口(nmap -F ip)   2,自定义扫描端口(nmap -p port1-port2 ip)  3,自定义连续的端口扫描(nmap -p1-200 ip) 4,扫描危险的端口(nmap -sT -sV -p port  ip) 


1,扫描主机常见的端口:nmap -F 192.168.180.2

[root@localhost yunwen]# nmap -F 192.168.180.2
Starting Nmap 6.40 ( http://nmap.org ) at 2017-08-16 10:19 CST
Nmap scan report for localhost (192.168.180.2)
Host is up (0.00033s latency).
Not shown: 93 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
443/tcp  open  https
3306/tcp open  mysql
8009/tcp open  ajp13
8080/tcp open  http-proxy
8081/tcp open  blackice-icecap
MAC Address: 18:A9:05:77:38:14 (Hewlett-Packard Company)
Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds

2,自定义扫描端口:nmap -p22,25,3306,8801 192.168.180.2

[root@localhost yunwen]# nmap -p22,25,27,3306,8801 192.168.180.2
Starting Nmap 6.40 ( http://nmap.org ) at 2017-08-16 10:28 CST
Nmap scan report for localhost (192.168.180.2)
Host is up (0.00029s latency).
PORT     STATE  SERVICE
22/tcp   open   ssh
25/tcp   closed smtp
27/tcp   closed nsw-fe
3306/tcp open   mysql
8801/tcp closed unknown
MAC Address: 18:A9:05:77:38:14 (Hewlett-Packard Company)
Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds

3,自定义连续的端口扫描:nmap -p 1-1024 192.168.180.2

[root@localhost yunwen]# nmap -p 1-1024 192.168.180.2
Starting Nmap 6.40 ( http://nmap.org ) at 2017-08-16 10:27 CST
Nmap scan report for localhost (192.168.180.2)
Host is up (0.00028s latency).
Not shown: 1021 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https
MAC Address: 18:A9:05:77:38:14 (Hewlett-Packard Company)
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds

4,扫描危险的端口:nmap -sT -sV -p 21,80,22,443,8081,8082,2443,3306 --max-hostgroup 10 --max-parallelism 10 --max-rtt-timeout 1000ms --host-timeout 800s --max-scan-delay 2000ms   --open 192.168.180.2

[root@localhost yunwen]# nmap -sT -sV -p 21,80,22,443,8081,8082,2443,3306 --max-hostgroup 10 --max-paralle
lism 10 --max-rtt-timeout 1000ms --host-timeout 800s --max-scan-delay 2000ms   --open 192.168.180.2
Starting Nmap 6.40 ( http://nmap.org ) at 2017-08-16 10:34 CST
Nmap scan report for localhost (192.168.180.2)
Host is up (0.00029s latency).
Not shown: 2 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 5.3 (protocol 2.0)
80/tcp   open  http    nginx
443/tcp  open  http    nginx
2443/tcp open  http    nginx
3306/tcp open  mysql   MySQL 5.6.27
8081/tcp open  http    Apache Tomcat/Coyote JSP engine 1.1
MAC Address: 18:A9:05:77:38:14 (Hewlett-Packard Company)
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.16 seconds

重要说明:以上显示端口的都有如下重要信息在端口STATE一栏中:

  • open:端口是开放的。

  • closed:端口是关闭的。

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

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

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

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


(三)系统与服务信息扫描:nmap -A或-O ip

nmap -O 192.168.180.30 

nmap -A 192.168.180.30

[root@localhost ~]# nmap -O 192.168.180.30   
Starting Nmap 6.40 ( http://nmap.org ) at 2017-08-15 15:37 CST
Nmap scan report for 192.168.180.30
Host is up (0.00023s latency).
Not shown: 995 filtered ports
PORT      STATE SERVICE
80/tcp    open  http
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
3389/tcp  open  ms-wbt-server
49154/tcp open  unknown
MAC Address: 00:15:5D:6E:28:01 (Microsoft)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Microsoft Windows Vista|2008|7
OS CPE: cpe:/o:microsoft:windows_vista::- cpe:/o:microsoft:windows_vista::sp1 cpe:/o:microsoft:windows_server_2008::sp1 cpe:/o:microsoft:windows_7
OS details: Microsoft Windows Vista SP0 or SP1, Windows Server 2008 SP1, or Windows 7, Microsoft Windows Vista SP2, Windows 7 SP1, or Windows Server 2008
Network Distance: 1 hop
OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 16.51 seconds
[root@localhost ~]# nmap -A 192.168.180.30
Starting Nmap 6.40 ( http://nmap.org ) at 2017-08-15 15:44 CST
Stats: 0:00:02 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 25.05% done; ETC: 15:44 (0:00:09 remaining)
Stats: 0:00:03 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 41.20% done; ETC: 15:44 (0:00:04 remaining)
Stats: 0:00:03 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 44.95% done; ETC: 15:44 (0:00:04 remaining)
Stats: 0:00:03 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 48.70% done; ETC: 15:44 (0:00:04 remaining)
Nmap scan report for 192.168.180.30
Host is up (0.00025s latency).
Not shown: 995 filtered ports
PORT      STATE SERVICE       VERSION
80/tcp    open  http          Microsoft IIS httpd 7.5
| http-methods: Potentially risky methods: TRACE
|_See http://nmap.org/nsedoc/scripts/http-methods.html
|_http-title: Site doesn't have a title.
135/tcp   open  msrpc         Microsoft Windows RPC
139/tcp   open  netbios-ssn
3389/tcp  open  ms-wbt-server Microsoft Terminal Service
49154/tcp open  msrpc         Microsoft Windows RPC
MAC Address: 00:15:5D:6E:28:01 (Microsoft)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose|phone
Running: Microsoft Windows 7|Phone|Vista|2008
OS CPE: cpe:/o:microsoft:windows_7::-:professional cpe:/o:microsoft:windows cpe:/o:microsoft:windows_vista::- cpe:/o:microsoft:windows_vista::sp1 cpe:/o:microsoft:windows_server_2008::sp1
OS details: Microsoft Windows 7 Professional, Microsoft Windows Phone 7.5, Microsoft Windows Vista SP0 or SP1, Windows Server 2008 SP1, or Windows 7, Microsoft Windows Vista SP2, Windows 7 SP1, or Windows Server 2008
Network Distance: 1 hop
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
|_nbstat: NetBIOS name: GJB-WIN08, NetBIOS user: <unknown>, NetBIOS MAC: 00:15:5d:6e:28:01 (Microsoft)
| smb-os-discovery: 
|   OS: Windows Server 2008 R2 Enterprise 7601 Service Pack 1 (Windows Server 2008 R2 Enterprise 6.1)
|   OS CPE: cpe:/o:microsoft:windows_server_2008::sp1
|   Computer name: GJB-WIN08
|   NetBIOS computer name: GJB-WIN08
|   Workgroup: WORKGROUP
|_  System time: 2017-08-15T15:46:28+08:00
| smb-security-mode: 
|   Account that was used for smb scripts: guest
|   User-level authentication
|   SMB Security: Challenge/response passwords supported
|_  Message signing disabled (dangerous, but default)
|_smbv2-enabled: Server supports SMBv2 protocol
TRACEROUTE
HOP RTT     ADDRESS
1   0.25 ms 192.168.180.30
OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 95.34 seconds