本文最后更新于 2023-12-17,文章内容可能已经过时。

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

一:安装

nmap可以到http://nmap.org/download.html 下载最新版本,然后下一步下一步的安装就好了。然后进入命令提示符(cmd),输入nmap,如果可以看到nmap的帮助信息,说明安装成功。

二:使用

1、Nmap 简单扫描

Nmap 默认发送一个arp的ping数据包,来探测目标主机在1-10000范围内所开放的端口。

命令语法:

nmap

解释:Target ip address 为你目标主机的ip地址

例子:`nmap 192.168.1.1`

如果觉得命令行的不直观,也可以使用gui版nmap–Zenmap 看起来很直接很舒服对不对?

只要在目标的那栏,输入你想扫描的目标即可,如下图,我输入192.168.1.1-254其实也可以输入192.168.1.1/24 效果一样。

nmap常用组合

快速检测一个网段中的存活主机

nmap-sP x.x.x.x/24

从文本中读取相关IP,进行端口扫描,同时识别服务

nmap -p80,22-sV-iL ip.txt

只显示开放该端口的主机

nmap-p80–open 1.1.1.0/24

不使用反向解析,扫描80端口开放的主机,同时保存为xml文件

nmap-n-p80-iL ip.txt -sV–open-oX80.xml

识别一台主机的操作系统

nmap-O 1.1.1.1

在不检测一个存活主机的情况下,进行全端口扫描,识别服务

nmap-Pn-p1-65535-A-sV 1.1.1.1

扫描mysql的空口令:

nmap-p3306–script=mysql-empty-password.nse 192.168.5.1

暴力破解mssql的账户密码

nmap-p1433–script=ms-sql-brute –script-args=userdb=/var/passwd,passdb=/var/passwd 192.168.5.1

按照具体分类,参数如下

tcp:

-sT TCP连续扫描

-sS SYN扫描

-sN -sF -sX

-sM TCP Maimon扫描

-sA TCP ACK扫描

-sW TCP窗口扫描

-sI TCPIdle扫描

UDP:

-sU

–host-timeout 跳过响应过慢的主机

-p:端口范围

-F 快速扫描

-r 顺序扫描

输出选项:

-oN 正常输出

-0X XML文件输出

-oG

-sV 服务版本识别

-sO 识别目标操作系统

-Pn 禁用主机检测 (用于屏蔽了PING请求的主机) //个人感觉这个参数挺有用的。

-A 强力检测

ipv6 -6

脚本引擎:

auth: 使用暴力破解等技术找出目标系统上的认证信息

default:启动–sC 或者-A选项时运行的此类脚本

discovery:该类脚本用于探索网络

dos:使目标系统拒绝服务,

exploit 利用目标系统的安全漏洞

external:该类脚本可能泄露信息给第三方

fuzzer: 对目标系统进行模糊测试

instrusive 可能导致目标系统崩溃,或者耗尽目标系统所有资源

malware : 检查目标系统上是否存在后门

safe:

version : 配合版本检测选项-sV ,这类脚本对目标系统的服务程序进行深入的版本检测

vuln 检查目标系统上的安全漏洞

-sC 启动默认类NSE脚本

–script ||

–script-args 这个选项用于给脚本指定参数

规避检测的选项:

-f 使用小数据包

–mtu 调整数据包的大小

-D 诱饵

–source-port或者 -g 模拟源端口

–data-length 改变发动书记宝的默认数据长度

–max-parallelism 限制nmap并发的最大连接数

–scan-denlay<time>控制发送探测数据的时间间隔</time>

后记:有一天去图书馆看看书,无意间就在书架上看到了一本《Nmap渗透测试指南》 没想到nmap都有人出书了,说明有人对nmap还是挺有研究的,以前只是用来做扫描端口的,感觉自己还是太浅显。文中后一部分的内容都是参考该书。 前一部分参考了乌云知识库。关注与学习安全,乌云都是一个不错的选择。