[命令] Linux 端口扫描工具 nmap 的使用(转载)

注意:在使用 nmap 命令之前要先安装 nmap 软件包

Nmap

简介

Nmap (“Network Mapper(网络映射器)”) 是一款开放源代码的 网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个 主机也没有问题。Nmap以新颖的方式使用原始IP报文来发现网络上有哪些主机,那些 主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息), 它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。虽然Nmap通常用于安全审核, 许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息, 管理服务升级计划,以及监视主机和服务的运行。

用法

sT 	 TCP connect()扫描,这种方式会在目标主机的日志中记录大批连接请求和错误信息。
-sS 	 半开扫描,很少有系统能把它记入系统日志。不过,需要Root权限。
-sF  -sN 	 秘密FIN数据包扫描、Xmas Tree、Null扫描模式
-sP 	 ping扫描,Nmap在扫描端口时,默认都会使用ping扫描,只有主机存活,Nmap才会继续扫描。
-sU 	 UDP扫描,但UDP扫描是不可靠的
-sA 	 这项高级的扫描方法通常用来穿过防火墙的规则集
-sV 	 探测端口服务版本
-Pn 	 扫描之前不需要用ping命令,有些防火墙禁止ping命令。可以使用此选项进行扫描
-v 	 显示扫描过程,推荐使用
-h 	 帮助选项,是最清楚的帮助文档
-p 	 指定端口,如“1-65535、1433、135、22、80”等
-O 	 启用远程操作系统检测,存在误报
-A 	 全面系统检测、启用脚本检测、扫描等
-oN/-oX/-oG 	 将报告写入文件,分别是正常、XML、grepable 三种格式
-T4 	 针对TCP端口禁止动态扫描延迟超过10ms
-iL 	 读取主机列表,例如,“-iL C:\ip.txt”

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16

端口扫描
nmap默认发送一个ARP的PING数据包,来探测目标主机1-1000范围内所开放的所有端口

nmap ip

    1

在这里插入图片描述

nmap简单扫描,并对结果返回详细的描述输出

nmap -vv IP

    1

在这里插入图片描述

使用 -sT来实现tcp全连接扫描,与目标端口进行三次握手,尝试建立连接。如果建立连接成功,则说明端口开放,但是扫描速度慢。

 nmap -sT ip

    1

在这里插入图片描述

nmap 操作系统类型的探测

nmap -O IP

    1

在这里插入图片描述

nmap万能开关

nmap -A IP

    1


root@kali:~# nmap -A 192.168.124.3
Starting Nmap 7.70 ( https://nmap.org ) at 2018-09-27 04:27 EDT
Nmap scan report for 192.168.124.3
Host is up (0.044s latency).
Not shown: 998 filtered ports
PORT    STATE SERVICE      VERSION
139/tcp open  netbios-ssn  Microsoft Windows netbios-ssn
445/tcp open  microsoft-ds Windows 10 Home China 10586 microsoft-ds (workgroup: WORKGROUP)
MAC Address: F0:03:8C:09:C6:C9 (AzureWave Technology)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Aggressive OS guesses: Microsoft Windows 10 1511 - 1607 (95%), Microsoft Windows Vista SP0 or SP1, Windows Server 2008 SP1, or Windows 7 (93%), Microsoft Windows Vista SP2, Windows 7 SP1, or Windows Server 2008 (93%), Microsoft Windows Phone 7.5 or 8.0 (92%), Microsoft Windows 10 1607 (92%), Microsoft Windows 10 1511 (92%), Microsoft Windows Server 2008 R2 or Windows 8.1 (92%), Microsoft Windows Server 2016 (92%), Microsoft Windows 7 Professional or Windows 8 (92%), Microsoft Windows Embedded Standard 7 (91%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop
Service Info: Host: DESKTOP-ME19QK1; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
|_clock-skew: mean: -2h39m59s, deviation: 4h37m07s, median: 0s
|_nbstat: NetBIOS name: DESKTOP-ME19QK1, NetBIOS user: <unknown>, NetBIOS MAC: f0:03:8c:09:c6:c9 (AzureWave Technology)
| smb-os-discovery: 
|   OS: Windows 10 Home China 10586 (Windows 10 Home China 6.3)
|   OS CPE: cpe:/o:microsoft:windows_10::-
|   Computer name: DESKTOP-ME19QK1
|   NetBIOS computer name: DESKTOP-ME19QK1\x00
|   Workgroup: WORKGROUP\x00
|_  System time: 2018-09-27T16:27:43+08:00
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb2-security-mode: 
|   2.02: 
|_    Message signing enabled but not required
| smb2-time: 
|   date: 2018-09-27 04:27:43
|_  start_date: 2018-09-24 08:00:45

TRACEROUTE
HOP RTT      ADDRESS
1   44.42 ms 192.168.124.3

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 79.39 seconds

    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
    42
    43

SYN扫描(-sS),也被称为 “半开连接”或者 “SYN stealth”。nmap发送syn包后等待回应,如果接受SYS/ACK包说明端口开放,如果收到RST包,说明端口关闭,如果没有回应或者回应icmp不可达错误信息,则说明端口被过滤。

nmap -sS IP

    1

NULL扫描

nmap -sN IP

    1

探测服务版本

nmap -sV IP
————————————————
版权声明:本文为CSDN博主「孤君」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Wu000999/article/details/82859621

注明:所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来

CC 4.0 BY-SA 版权协议网址:https://creativecommons.org/licenses/by-sa/4.0/deed.z
站主补充:
案例一:扫描某一台服务器的所有 UDP 端口
# nmap -sU 192.168.1.1 -Pn

(补充:这里以扫描 192.168.1.1 为例,这里的 -Pn 是指不测试 icmp 而直接测试端口)

案例二:扫描某一台服务器的所有 TCP 端口
# nmap -sT 192.168.1.1 -Pn

(补充:这里以扫描 192.168.1.1 为例,这里的 -Pn 是指不测试 icmp 而直接测试端口)

案例三:扫描某一台服务器某一个 UDP 端口
# nmap -sU 192.168.1.1 -p 161 -Pn

(补充:这里以扫描 192.168.1.1 为例,这里的 -Pn 是指不测试 icmp 而直接测试端口)

案例四:扫描某一台服务器某一个 TCP 端口
# nmap -sU 192.168.1.1 -t 443 -Pn

(补充:这里以扫描 192.168.1.1 为例,这里的 -Pn 是指不测试 icmp 而直接测试端口)

案例五:扫描某一台服务器多个 TCP 端口
# nmap -sU 192.168.1.1 -t 1-65535 -Pn

(补充:这里以扫描 192.168.1.1 为例,这里的 -Pn 是指不测试 icmp 而直接测试端口)

案例六:扫描多个 IP 地址
6.1 一次性扫描多个 IP 地址
# nmap 192.168.1.1 192.168.1.2 192.168.1.3

或者:

# nmap 192.168.1.1,2,3

或者:

# nmap 192.168.1.1-3

(补充:这里以扫描 192.168.1.1、192.168.1.2、192.168.1.3 为例)

6.2 扫描某一个网段

# nmap 192.168.1.0/24

(补充:这里以扫描 192.168.1.0 网段为例)

6.3 扫描某一个文件里记录的 IP 地址
# cat ip_list.txt
192.168.1.1
192.168.1.2
# nmap -iL ip_list.txt 

(补充:这里以扫描 ip_list.txt 文本里 192.168.1.1 和 192.168.1.2 IP 地址为例)

案例七:扫描时排除 IP 地址
7.1 扫描时排除某一个 IP 地址
# nmap 192.168.1.1-192.168.1.5 --exclude 192.168.1.3

(补充:这里以扫描 192.168.1.1 到 192.168.1.5 但排除 192.168.1.3 为例)

7.1 扫描时排除多个 IP 地址
# nmap 192.168.1.1-192.168.1.5 --exclude 192.168.1.3,192.168.1.4

或者:

# nmap 192.168.1.1-192.168.1.5 --exclude 192.168.1.3,4

或者:

# nmap 192.168.1.1-192.168.1.5 --exclude 192.168.1.3-4

(补充:这里以扫描 192.168.1.1 到 192.168.1.5 但排除 192.168.1.3 和 192.168.1.4 为例)

6.3 扫描时排除某一个文件里记录的 IP 地址
# cat ip_list.txt
192.168.1.3
192.168.1.4
# nmap 192.168.1.1-192.168.1.5 --excludefile ip_list.txt 

(补充:这里以扫描 192.168.1.1 到 192.168.1.5,但是排除 ip_list.txt 文本里 192.168.1.1 和 192.168.1.2 IP 地址为例)