1.NMAP介绍

 

  Nmap是一款开放源代码的网络探测和安全审核工具。它被设计用来快速扫描大型网络,包括主机探测与发现、开放的端口情况、操作系统与应用服务指纹、WAF识别及常见安全漏洞。它的图形化界面是Zenmap,分布式框架为Dnmap。

 

Nmap的主要特点如下所示:

 

主机探测:探测网络上的主机,如列出相应tcp和ICMP请求、ICMP请求、开放特别端口的主机。

端口扫描:探测目标主机所开放的端口。

版本检测:探测目标主机的网络服务,判断其服务名称及版本号。

系统检测:探测目标主机的操作系统及网络设备的硬件特性。

支持探测脚本的编写:使用Nmap的脚本引擎和Lua编程语言。

2.NAMP入门

 

2.1 扫描单个目标地址

 

Nmap 192.168.181.129

2.2 扫描多个目标地址

 

Nmap 150.109.68.57 192.168.181.129

2.3 扫描一个范围内的目标地址

 

Nmap 192.168.181.100-110

2.4 扫描目标地址所在的某个网段

 

Nmap 192.168.181.100/24

2.5 扫描主机列表targets.txt中所有的目标地址

 

Nmap –iL C:\Users\targets.txt

 

 

2.6 扫描除某一目标地址之外的所有目标地址

 

Nmap 192.168.181.100/24 –exclude 192.168.181.128

2.7 扫描除某一文件中的目标地址之外的目标地址

 

Nmap 192.168.0.100/24 –excludefile C:\Users\targests.txt

2.8 扫描某一目标地址的21、22、23、80端口

 

Nmap 192.168.0.100 –p 21,22,23,80

2.9 对目标地址进行路由追踪

 

Nmap –traceroute 192.168.0.105

2.10 扫描目标地址所在C段的在线状况

 

Nmap –sP 192.168.0.100/24

2.11 目标地址的操作系统指纹识别

 

Nmap –O 192.168.0.100

 

 

2.12 目标地址提供的服务版本检测

 

Nmap –sV 192.168.0.100

 

 

2.13 探测防火墙状态

 

Nmap –sF –T4 192.168.181.129

 

 

状态识别

 

复制代码

状态     含义

Open     开放的,表示应用程序正在监听该端口的连接,外部可以访问

Filtered   被过滤的,表示端口被防火墙或其他网络设备阻止,不能访问

Closed   关闭的,表示目标主机未开启该端口

Unfiltered 未被过滤的,表示Nmap无法确定端口所处状态,需进一步探测

open/filtered 开放的或被过滤的,Nmap不能识别

Closed/filtered 关闭的或未被过滤的,Nmap不能识别

复制代码

  

 

3.NMAP进阶

 

3.1 鉴权扫描

 

使用–script=auth可以对目标主机或目标主机所在的网段进行应用弱口令检测。

Nmap –script=auth 192.168.0.105

3.2 暴力破解攻击

 

Nmap具有暴力破解的功能,可对数据库,smb,snmp等进行简单密码的暴力猜解。

Nmap –script=brute 192.168.0.105

3.3 扫描常见漏洞

 

Nmap具有漏洞扫描的功能,可以检查目标主机或网段是否存在常见的漏洞。

Nmap –script=vuln 192.168.0.105

3.4 应用服务扫描

 

Nmap具有很多常见应用服务的扫描脚本,例如vnc服务、mysql服务、Telnet服务、rsync服务等,此处以vnc服务为例。

Nmap –script=realvnc-auth-bypass 192.168.0.105

3.5 探测局域网内更多服务开启的情况

 

Nmap –n –p 445 –script=broadcast 192.168.0.105

3.6 Whois解析

 

Nmap –script external baidu.com

 

 

 

 

 

 

4.参数详解

 

复制代码

用法:nmap [扫描类型] [选项] {目标规范}

目标规格:可以传递主机名,IP地址,网络等。

-iL <输入文件名>:从主机/网络列表中输入

-iR <num主机>:选择随机目标

–exclude <host1 [,host2] [,host3],…>:排除主机/网络

–excludefile <exclude_file>:从文件中排除列表

主机发现:

-sL:列表扫描-仅列出要扫描的目标

-sP:Ping扫描-只能确定主机是否在线

-P0:将所有主机视为在线-跳过主机发现

-PS / PA / PU [端口列表]:对给定端口的TCP SYN / ACK或UDP发现探针-PE / PP / PM:ICMP回显,时间戳和网络掩码请求发现探针                                                                           

-n / -R:从不进行DNS解析/始终解决

扫描技术:

-sS / sT / sA / sW / sM:TCP SYN / Connect()/ ACK / Window / Maimon扫描

-sN / sF / sX:TCP Null,FIN和Xmas扫描

–scanflags <标志>:自定义TCP扫描标志

-sI <僵尸主机[:probeport]>:Idlescan

-sO:IP协议扫描

-b <ftp中继主机>:FTP退回扫描

端口规格和扫描顺序:-p <端口范围>:仅扫描指定的端口,例如:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080

-F:快速-仅扫描nmap-services文件中列出的端口)

-r:连续扫描端口-不要随机化

OS检测:

-O:启用OS检测

–osscan-limit:将OS检测限制在有希望的目标上

–osscan-guess:猜测OS

-T [0-6]:设置定时模板(越高越快)

–min-hostgroup / max-hostgroup <msec>:并行主机扫描组大小

–min-parallelism / max-parallelism <msec>:探针并行化

–min-rtt-timeout / max-rtt-timeout / initial-rtt -timeout <msec>:指定

服务/版本检测:

-sV:探测打开的端口以确定服务/版本信息

–version-light :仅限于可能的探针以进行更快的识别

–version-all:尝试对每个探针进行版本检测

–version-trace:显示详细的版本扫描活动(用于调试)

MISC的XSL样式表:

-6:启用IPv6扫描

-A:启用OS检测和版本检测

–datadir <dirname>:指定自定义Nmap数据文件位置

–send-eth /-send-ip:使用原始以太网帧或IP数据包发送数据包

–privileged:假定用户具有完全特权

-V:打印版本号

-h:打印此帮助摘要页面。

     例子:

     nmap -v -A scanme.nmap.org

     nmap -v -sP 192.168.0.0/16 10.0.0.0/8

     nmap -v -iR 10000 -P0 -p 80

探针往返时间

–host-timeout <msec>:经过很长的时间后放弃目标

–scan-delay /-max-scan-delay <msec>:调整两次探查之间的延迟防火墙/ ID闪避和溢出

-f; –mtu <val>:分片数据包(可选的/具有给定的MTU)

-D <decoy1,decoy2 [,ME],…>:用诱饵掩盖扫描

-S <IP_Address>:欺骗源地址

-e <iface >:使用指定的接口

-g /-source-port <端口号>:

–data-length <num>:将随机数据附加到发送的数据包中

–ttl <val>:设置IP生存时间字段

–spoof-mac <mac地址,前缀或供应商名称>:欺骗您的MAC地址