(一)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)功能,有三个基本功能:
-
探测一组主机是否在线。
-
扫描主机端口,嗅探所提供的网络服务。
-
推断主机的操作系统。
Nmap可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。Nmap 还允许用户定制扫描技巧。通常,一个简单的使用ICMP协议的ping操作可以满足一般需求;也可以深入探测UDP或者TCP端口,直至主机所 使用的操作系统;还可以将所有探测结果记录到各种格式的日志中, 供进一步分析操作。
(3)nmap安装,使用yum安装方便快捷。也可以登录官网(https://nmap.org/download.html)下载压缩包进行下载安装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
[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
常用的实例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
进行
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
1
2
3
4
5
6
|
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
[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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
[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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[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
1
2
3
4
5
6
7
8
9
10
11
12
|
[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
1
2
3
4
5
6
7
8
9
10
11
|
[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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[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 :端口是关闭的或被屏蔽。
本文转自 lqbyz 51CTO博客,原文链接:http://blog.51cto.com/liqingbiao/1956473