Linux ‘nmap’ 命令的 10 个实际例子

关于地图

地图 是一种用于确定正在运行的主机以及这些主机正在运行哪些服务的工具。 Nmap 可以成为网络管理员的宝贵诊断工具,同时也可以成为黑帽社区(Hackers、Crackers、Script Kiddies 等)的强大侦察工具。 使用 Lan MapShot 等工具绘制网络图后,Nmap 可用于确定网络中运行的服务和主机的类型。

在本文中,我们将介绍一些有用的 Linux 实践示例 纳米命令. 的主要用途 映射 是:

  • 确定主机中运行的开放端口和服务
  • 确定主机上运行的操作系统
  • 更改扫描的源 IP(一种方法是使用 -S 选项)

安装 Nmap

要在 Ubuntu/Debian 下安装 namap 命令,请打开您的终端并输入以下命令:

sudo apt-get install nmap

在 Centos/Redhat 下安装 nmap 可以使用这个命令。

sudo yum install nmap

在你的 linux 服务器上安装 nmap 后,我们将看到这个真棒命令的 10 个实际例子。

发现子网中的 IP

这是 nmap 最简单的用法之一。 这个命令通常被称为“ping 扫描”,它告诉 nmap 向指定子网中的所有主机发送 icmp 回显请求、TCP SYN 到端口 443、TCP ACK 到端口 80 和 icmp 时间戳请求。

然后你会得到一个有 ip 响应的主机列表。

 $ nmap -sP 172.16.0.0/24
 Starting Nmap 5.21 ( https://nmap.org ) at 2015-06-23 09:37 EST
 Nmap scan report for 172.16.0.1
 Host is up (0.0010s latency).
 Nmap scan report for 172.16.0.95
 Host is up (0.0031s latency).
 Nmap scan report for 172.16.0.110
 Host is up (0.0018s latency).

检查并扫描开放端口

该命令是 nmap 的默认使用。 因为 nmap 将尝试与 1000 个最常见端口的 TCP SYN 连接以及 icmp 回显请求来确定主机是否启动,所以需要时间来给您响应。 nmap 还将对识别的 ip 执行 DNS 反向查找,因为这有时可能是有用的信息。

$ nmap 172.16.0.0/24
 Starting Nmap 5.21 ( https://nmap.org ) at 2015-06-23 09:39 EST
 Nmap scan report for 172.16.0.1
 Host is up (0.0043s latency).
 Not shown: 998 closed ports
 PORT STATE SERVICE
 22/tcp open ssh
 80/tcp open http
 443/tcp open https

识别主机的操作系统

要使用 nmap 识别主机的操作系统,您可以使用选项 -O 来完成。 但是操作系统扫描确实需要 root 权限。

 # nmap -O 172.16.0.15
 Starting Nmap 5.21 ( https://nmap.org ) at 2015-06-23 09:49 EST
 Nmap scan report for 172.16.0.15
 Host is up (0.00032s latency).
 Not shown: 996 closed ports
 PORT STATE SERVICE
 88/tcp open kerberos-sec
 139/tcp open netbios-ssn
 445/tcp open microsoft-ds
 631/tcp open ipp
 MAC Address: 00:00:00:00:00:00 (Unknown)
 Device type: general purpose
 Running: Apple Mac OS X 10.5.X
 OS details: Apple Mac OS X 10.5 - 10.6 (Leopard - Snow Leopard) (Darwin 9.0.0b5 - 10.0.0)
 Network Distance: 1 hop

识别主机名

此外,namp 允许您查找子网中所有 ip 的主机名,而无需向各个主机本身发送数据包。

使用-sL

选项告诉 nmap 为指定的 ip 做一个简单的 DNS 查询。 此扫描不需要 root 权限。

 $ nmap -sL 172.16.0.0/24
 Starting Nmap 5.21 ( https://nmap.org ) at 2015-06-23 09:59 EST
 Nmap scan report for 172.16.0.0
 Nmap scan report for router.local (172.16.0.1)
 Nmap scan report for myhost.local (172.16.0.2)
 Nmap scan report for another.myhost.local (172.16.0.3)

扫描 TCP 和 UDP 端口

这个命令 nmap -sS -sU -PN 将检查大约 2000 个常见的 tcp 和 udp 端口​​,看看它们是否有响应。 当您使用该选项时

-Pn,

nmap 将跳过 ping 扫描并假设主机已启动。 这对于检查防火墙是否阻止 icmp 回复很有用。 但是这个扫描需要root权限。

 # nmap -sS -sU -PN 172.16.0.16
 Starting Nmap 5.21 ( https://nmap.org ) at 2015-06-23 10:25 EST
 Nmap scan report for 172.16.0.16
 Host is up (0.00029s latency).
 Not shown: 1494 closed ports, 496 filtered ports
 PORT STATE SERVICE
 88/tcp open kerberos-sec
 139/tcp open netbios-ssn
 445/tcp open microsoft-ds
 631/tcp open ipp
 88/udp open|filtered kerberos-sec
 123/udp open ntp
 137/udp open netbios-ns
 138/udp open|filtered netbios-dgm
 631/udp open|filtered ipp
 5353/udp open zeroconf

扫描所有端口 TCP 和 UDP

此命令需要 root 权限,它与上面相同,但是通过指定从 1 到 65535 的完整端口范围,nmap 将扫描以查看主机是否正在侦听所有可用端口。 您可以在执行端口扫描的任何扫描中使用端口范围规范。

# nmap -sS -sU -PN -p 1-65535 172.16.0.14
 Starting Nmap 5.21 ( https://nmap.org ) at 2015-06-23 10:18 EST
 Nmap scan report for 172.16.0.14
 Host is up (0.00029s latency).
 Not shown: 131052 closed ports
 PORT STATE SERVICE
 88/tcp open kerberos-sec
 139/tcp open netbios-ssn
 445/tcp open microsoft-ds
 631/tcp open ipp
 17500/tcp open unknown
 88/udp open|filtered kerberos-sec
 123/udp open ntp
 137/udp open netbios-ns
 138/udp open|filtered netbios-dgm
 631/udp open|filtered ipp
 5353/udp open zeroconf
 17500/udp open|filtered unknown
 51657/udp open|filtered unknown
 54658/udp open|filtered unknown
 56128/udp open|filtered unknown
 57798/udp open|filtered unknown
 58488/udp open|filtered unknown
 60027/udp open|filtered unknown

扫描 TCP 连接

此命令将要求操作系统与 1000 个公共端口建立 TCP 连接。

 $ nmap -sT 172.16.0.14
 Starting Nmap 5.21 ( https://nmap.org ) at 2015-06-23 10:48 EST
 Nmap scan report for 172.16.0.14
 Host is up (0.0014s latency).
 Not shown: 964 closed ports, 32 filtered ports
 PORT STATE SERVICE
 88/tcp open kerberos-sec
 139/tcp open netbios-ssn
 445/tcp open microsoft-ds
 631/tcp open ipp

快速扫描

您可以使用此扫描来检查最常见的 100 个端口。

$ nmap -T4 -F 172.16.0.14
 Starting Nmap 6.01 ( https://nmap.org ) at 2015-06-23 10:49 EST
 Nmap scan report for 172.16.0.14
 Host is up (0.00047s latency).
 Not shown: 96 closed ports
 PORT STATE SERVICE
 88/tcp open kerberos-sec
 139/tcp open netbios-ssn
 445/tcp open microsoft-ds
 631/tcp open ipp

侵略性和侵入性扫描

与之前的命令不同,此扫描非常激进且非常突兀。 选项

-遗嘱

告诉 nmap 执行操作系统检查和版本检查。 这

-T4

用于速度模板,这些模板告诉 nmap 执行扫描的速度。

$ nmap -T4 -A 172.16.0.0/24
 Nmap scan report for 172.16.0.9
 Host is up (0.00060s latency).
 Not shown: 996 closed ports
 PORT STATE SERVICE VERSION
 22/tcp open ssh OpenSSH 5.9p1 Debian 5ubuntu1 (protocol 2.0)
 | ssh-hostkey: 1024 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:6c (DSA)
 |_2048 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:6c (RSA)
 80/tcp open http nginx 1.1.19
 |_http-title: 403 Forbidden
 |_http-methods: No Allow or Public header in OPTIONS response (status code 405)
 111/tcp open rpcbind
 | rpcinfo:
 | program version port/proto service
 | 100000 2,3,4 111/tcp rpcbind
 | 100000 2,3,4 111/udp rpcbind
 | 100003 2,3,4 2049/tcp nfs
 | 100003 2,3,4 2049/udp nfs
 | 100005 1,2,3 46448/tcp mountd
 | 100005 1,2,3 52408/udp mountd
 | 100021 1,3,4 35394/udp nlockmgr
 | 100021 1,3,4 57150/tcp nlockmgr
 | 100024 1 49363/tcp status
 | 100024 1 51515/udp status
 | 100227 2,3 2049/tcp nfs_acl
 |_ 100227 2,3 2049/udp nfs_acl
 2049/tcp open nfs (nfs V2-4) 2-4 (rpc #100003)
 Service Info: OS: Linux; CPE: cpe:/o:linux:kernel

冗长的

最后一个命令是详细的。当您向上面的命令行添加详细信息时,您将获得有关 nmap 正在做什么和检查的更好信息 example:

 $ nmap -T4 -A -v 172.16.0.16
 Starting Nmap 6.01 ( https://nmap.org ) at 2015-06-23 12:50 EST
 NSE: Loaded 93 scripts for scanning.
 NSE: Script Pre-scanning.
 Initiating Ping Scan at 12:50
 Scanning 192.168.0.164 [2 ports]
 Completed Ping Scan at 12:50, 0.00s elapsed (1 total hosts)
 Initiating Parallel DNS resolution of 1 host. at 12:50
 Completed Parallel DNS resolution of 1 host. at 12:50, 0.01s elapsed
 Initiating Connect Scan at 12:50
 Scanning 192.168.0.164 [1000 ports]
 Discovered open port 139/tcp on 172.16.0.16
 Discovered open port 445/tcp on 172.16.0.16
 Discovered open port 88/tcp on 172.16.0.16
 Discovered open port 631/tcp on 172.16.0.16
 Completed Connect Scan at 12:50, 5.22s elapsed (1000 total ports)
 Initiating Service scan at 12:50
 Scanning 4 services on 172.16.0.16
 Completed Service scan at 12:51, 11.00s elapsed (4 services on 1 host)
 NSE: Script scanning 172.16.0.16.
 Initiating NSE at 12:51
 Completed NSE at 12:51, 12.11s elapsed
 Nmap scan report for 172.16.0.16
 Host is up (0.00026s latency).
 Not shown: 996 closed ports
 PORT STATE SERVICE VERSION
 88/tcp open kerberos-sec Mac OS X kerberos-sec
 139/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)
 445/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)
 631/tcp open ipp CUPS 1.4
 | http-methods: GET HEAD OPTIONS POST PUT
 | Potentially risky methods: PUT
 |_See https://nmap.org/nsedoc/scripts/http-methods.html
 | http-robots.txt: 1 disallowed entry
 |_/
 Service Info: OS: Mac OS X; CPE: cpe:/o:apple:mac_os_x

我们几乎涵盖了 纳米命令. 如果我们仍然遗漏了任何选项,并且您希望将其包含在此列表中,请通过评测框更新我们。 谢谢你🙂