# NMAP 基础教程

Author: 乌云历史资料库 (@wooyun_archive)
Published: 2014-05-18T07:50:00Z
Canonical: https://wepostx.com/topics/469

> 乌云历史资料归档
>
> **原始作者：** he1renyagao
> **原始编号：** superkieran-wooyundrops:252
> **原始发布时间：** 2014-05-18 15:50
> **声明：内容仅用于技术研究和个人使用，版权归 wooyun.org。**

---

原文地址：http://infotechbits.wordpress.com/2014/05/04/introduction-to-basic-nmap/

## 0x00 nmap 介绍

Nmap  （网络映射器）是由 Gordon Lyon设计，用来探测计算机网络上的主机和服务的一种安全扫描器。为了绘制网络拓扑图，Nmap的发送特制的数据包到目标主机，然后对返回数据包进行分析。Nmap是一款枚举和测试网络的强大工具。
Nmap 特点：

```text
主机探测：探测网络上的主机，例如列出响应TCP和ICMP请求、icmp请求、开放特别端口的主机。 端口扫描：探测目标主机所开放的端口。 版本检测：探测目标主机的网络服务，判断其服务名称及版本号。 系统检测：探测目标主机的操作系统及网络设备的硬件特性。 支持探测脚本的编写：使用Nmap的脚本引擎（NSE）和Lua编程语言。
```
Nmap 能扫描出目标的详细信息包括、DNS反解、设备类型和mac地址。
(DNS 反解详情移步[http://www.debouncer.com/reverse-dns-check](http://www.debouncer.com/reverse-dns-check))

## 0x01 Nmap 典型用途：

```text
1、通过对设备或者防火墙的探测来审计它的安全性。 2、探测目标主机所开放的端口。 3、网络存储，网络映射，维护和资产管理。（这个有待深入） 4、通过识别新的服务器审计网络的安全性。 5、探测网络上的主机。
```

## 0x02 nmap 安装

nmap可以到[http://nmap.org/download.html](http://nmap.org/download.html)下载最新版本

![原文图片](/media/2016/06/90a70e0d2ca677a2cbd311b64892e0b9)

Nmap 安装、根据提示向导，下一步、下一步进行安装。

![原文图片](/media/2016/06/3ff3a3018e0a81780656770d304d615a)

![原文图片](/media/2016/06/a2049599e9c3b6a8a7ab6c3114ffa3c6)

![原文图片](/media/2016/06/e29bfc5a96faf4b3ae454fc0bb45c144)

![原文图片](/media/2016/06/06f3bc6305783ec05861d786df081071)

进入命令提示符（cmd），输入nmap，可以看到nmap的帮助信息，说明安装成功。

![原文图片](/media/2016/06/7dc5799a534583ee662065489b900078)

## 0x03 nmap 命令操作

注意：请自己通过各种设备来搭建模拟实际的网络环境（如虚拟机，手机等设备），请在道德和法律的允许下进行测试。不然你懂的。

### 1、Nmap 简单扫描
Nmap 默认发送一个arp的ping数据包，来探测目标主机在1-10000范围内所开放的端口。
命令语法：

```text
#!bash nmap <target ip address>
```
解释：Target ip address 为你目标主机的ip地址
例子：

```text
#!bash nmap 10.1.1.254
```
效果：

![原文图片](/media/2016/06/e9d868b97fe83550b7dd578e23bff52b)

### 2、Nmap 简单扫描，并对返回的结果详细描述输出。
命令语法：

```text
#!bash nmap -vv 10.1.1.254
```
介绍：-vv 参数设置对结果的详细输出。
例子：

```text
#!bash nmap -vv 10.1.1.254
```
效果：

![原文图片](/media/2016/06/2253706eda648929585c7671ed13de58)

### 3、nmap 自定义扫描
nmap 默认扫描目标1-10000范围内的端口号。我们则可以通过参数-p 来设置我们将要扫描的端口号。
命令语法：

```text
#!bash nmap -p(range) <target IP>
```
解释：（rangge）为要扫描的端口（范围），端口大小不能超过65535，Target ip  为目标ip地址
例子：扫描目标主机1-50号端口：
效果：

![原文图片](/media/2016/06/d4ba46449c587cd1c5bf87bf4f861939)

例子：扫描目标主机1-100号端口：
效果：

![原文图片](/media/2016/06/166b571c911ce516146daf2f3122c12d)

例子：扫描目标主机50-500号端口：
效果：

![原文图片](/media/2016/06/64eb74912001881399f0601478340c62)

### 4、nmap 指定端口扫描
有时不想对所有端口进行探测，只想对80,443,1000,65534这几个特殊的端口进行扫描，我们还可以利用参数p 进行配置。
命令语法：

```text
#!bash nmap -p(port1,port2,port3,...) <target ip>
```
例子：

```text
#!bash nmap -p80,443,22,21,8080,25,53 10.1.1.254
```
效果：

![原文图片](/media/2016/06/f2485cd113baf8419185e65a17631aff)

### 5、nmap ping 扫描
nmap 可以利用类似window/linux 系统下的ping方式进行扫描。
命令语法：

```text
#!bash nmap -sP <target ip>
```
解释：sP 设置扫描方式为ping扫描
例子：

```text
#!bash nmap -sP 10.1.1.254
```
效果：

![原文图片](/media/2016/06/41e327b71a70a90ba56dd28684a73b83)

6、nmap 路由跟踪
路由器追踪功能，能够帮网络管理员了解网络通行情况，同时也是网络管理人员很好的辅助工具！通过路由器追踪可以轻松的查处从我们电脑所在地到目标地之间所经常的网络节点，并可以看到通过各个节点所花费的时间（百度百科）
命令语法:

```text
#!bash nmap --traceroute <target ip>
```
例子：

```text
#!bash nmap --traceroute 8.8.8.8 (google dns服务器ip)
```
效果：

![原文图片](/media/2016/06/7294d631a9b5a6c3f73de087ec7e946d)

### 7、nmap 还可以设置扫描一个网段下的ip
命令语法：

```text
#!bash nmap -sP <network address > </CIDR >
```
解释：CIDR 为你设置的子网掩码(/24 , /16 ,/8 等)
例子：

```text
#!bash nmap -sP 10.1.1.0 /24
```
效果：

![原文图片](/media/2016/06/886ce182df6b924b85ae70ae3b952341)

例子：

```text
#!bash nmap -sP 10.1.1.1-255
```
效果:

![原文图片](/media/2016/06/d2b1010b145c04ff95abe8bcc84702f9)

上面两个都是扫描10.1.1.0/24 网络段的主机
其中
Windown:10.1.1.103

![原文图片](/media/2016/06/2382dcc0acb06284030c939216a91745)

Android:10.1.1.101

![原文图片](/media/2016/06/6f22aa5ab86cf9c86c81f2abbc1a7ff6)

### 8、nmap 操作系统类型的探测
nmap 通过目标开放的端口来探测主机所运行的操作系统类型。这是信息收集中很重要的一步，它可以帮助你找到特定操作系统上的含有漏洞的的服务。
命令语法：

```text
#!bash nmap -O <target ip>
```
例子：

```text
#!bash nmap -O 10.1.1.254
```
效果：

![原文图片](/media/2016/06/05e2b63aba1e6e459c9d8674e9bbedb9)

例子：

```text
#!bash nmap -O 10.1.1.101 （扫描android手机）
```
效果：

![原文图片](/media/2016/06/194aa008ff5d516027491489939c96cf)

Nmap 默认不能扫描本机，如果你想扫描你的电脑，你可以通过虚拟机来进行扫描。
例子：

```text
#!bash nmap -O 10.1.1.103（Windows 7 SP2 Home Premium ）
```
效果：

![原文图片](/media/2016/06/3a127e0bcc690065a78a1e9256fe12ec)

### 9、nmap 万能开关
次选项设置包含了1-10000的端口ping扫描，操作系统扫描，脚本扫描，路由跟踪，服务探测。
命令语法：

```text
#!bash nmap -A <target ip>
```
例子：

```text
#!bash nmap -A 10.1.1.254
```
效果：

![原文图片](/media/2016/06/e64162adbfe4aa868698d56fe6c456c9)

### 10、nmap 命令混合式扫描
命令混合扫描，可以做到类似参数-A所完成的功能，但又能细化到我们所需特殊要求。
命令语法：

```text
#!bash nmap -vv -p1-1000 -O <target ip>
```
例子：

```text
#!bash nmap -vv -p1-1000 -O 10.1.1.105
```
效果：

![原文图片](/media/2016/06/9f5ce330d7d69274ca1b4d03373fa8a7)

例子:对目标主机的80,8080,22,23端口进行扫描，并且对目标进行路由跟踪和操作系统探测。

```text
#!bash nmap -p80,8080,22,23 -traceroute -O 10.1.1.254
```
效果：

![原文图片](/media/2016/06/caaea98ca88015f82371183ef32732c7)

Nmap提供的这些参数，可根据自己的需求，灵活的组合使用。
由于个人水平有限，如有错误欢迎指出。

## Replies
