Nmap-Tool-Base-1

Nmap简介

Nmap 也称 Network Mapper,是一款多平台的网络连接扫描软件,可以探测计算机网络上的主机和服务。在渗透出其为了绘制目标网络拓补图,需用到Nmap对目标网络发送特定的数据包,对返回的数据报进行分析。

Nmap 在网络扫描中的常见作用

1、查看存活主机。
2、扫描目标主机开放端口
3、鉴别安全过滤机制
4、识别目标主机的操作系统
5、查看目标主机服务的版本信息
6、利用脚本扫描漏洞

Nmap 主要使用平台

Windows系统,MAC OS X 系统,Linux系统

Nmap常见运行方式

Zenmap GUI方式
命令行方式

Nmap 主要参数

Nmap 的功能参数主要分为以下几大类

1、目标说明
2、主机发现
3、端口扫描
4、端口说明和扫描顺序
5、服务与版本探测
6、脚本扫描
7、操作系统探测
8、时间和性能
9、防火墙/IDS规避和欺骗
10、输出选项

1、TARGET SPECIFICATION 目标说明

-iL				从主机地址列表文件中导入扫描地址
-iR				随机选择目标进行扫描,num hosts表示数目,设置为0则无休止扫描
--exclude		排除某个主机地址
--excludefile	排除主机地址列表文件中的地址

范例:创建一个文件 ip.txt

使用nmap 扫描

2、HOST DISCOVERY 主机发现

-sL   			列表扫描,仅将指定的目标 IP 列举出来,不进行主机发现
-sn				和 -sP 一样,只利用 ping 扫描进行主机发现,不扫描主机的端口
-Pn				将所有指定的主机视为已开启状态,跳过主机发现过程
-PS  			TCP SYN ping,发下哦那个一个 SYN 标志位的空 TCP 报文,默认端口为 80,也可指定端口
-PA				TCP	ACK	ping,发送一个设置了 ACK 标志位的空 TCP 报文,默认端口为 80,也可指定端口
-PU  			UDP ping,发送一个空的 UDP 保温到指定端口,可穿透只过滤 TCP 的防火墙
-P0   			使用 IP 协议 ping
-PR	 			使用 IP 协议 ping
-n/-R  			-n 不用域名解析,加速扫描,-R 为目标 IP 做反向域名解析,扫描较慢一些
-dns-servers  	自定义域名解析服务器地址
-traceroute		目标主机路由追踪

3、SCAN TECHNIQUES 端口扫描

Nmap 产生结果是基于目标机器的响应报文的,而这些主机可能是不可信任的,会产生迷惑或者误导Nmap的报文。

Nmap 将目标端口分为 6 种状态

open				(开放的)
closed				(关闭的)
filtered  			(被过滤的)
unfiltered			(未被过滤)可访问但不确定开放情况
open|filered 		(开放或者被过滤)无法确定端口是开放的还是被过滤的
closed|filtered 	(关闭或者被过滤)无法确定端口是关闭的还是被过滤的

-sS	 			TCP SYN 扫描,半开放扫描,速度快隐蔽性好(不完成 TCP 连接),能够明确区分端口状态
-sT				TCP 连接扫描,容易产生记录,效率低
-sA				TCP ACK 扫描,只设置 ACK 标志位,区别被过滤与未被过滤的
-sU				UDP 服务扫描,例如 DNS/DHCP 等,效率低
-sN;-sF;-sX		TCP Null,Fin,Xmas 扫描,从 RFC 挖掘微妙方法来区分开放关闭端口
-sl    			利用僵尸主机上已知 IP 分段 ID 序列生成算法来探测目标上开放端口的信息,极端隐蔽
-sO				IP 协议扫描,可以确定目标主机支持哪些 IP 协议,例如 TCP/ICMP 等

4、PORT SPECIFICATION AND SCAN ORDER 端口说明和扫描顺序

-p					指定扫描的端口,可以是单个端口,也可以是端口范围,可以指定UDP或TCP协议扫描特定端口
-p <name> 			指定扫描的协议,例如-p http 即可扫描http协议的端口状态
--exclude-ports 	排除指定端口不扫描
-F		 			快速模式,仅扫描100个常用端口

5、SERVICE/VERSION DETECTION 服务与版本探测

Nmap-services 包含大量的数据库,Nmap通过查询该数据库可以报告那些端口可能对应于什么服务,但不一定正确

-sV							进行服务版本探测
--version-intensity<level>	设置版本扫描强度,范围为0-9,默认是7,强度越高,时间越长,服务越可能被正确识别

6、SCRIPT SCAN 扫描

允许用户自己编写脚本来执行自动化的操作或扩展 Nmap 的功能,使用 Lua 脚本语言

-sC						使用默认类别的脚本呢进行扫描
--script=<Lua scripts> 	使用某个或某类脚本进行扫描,支持通配符描述

7、OS DETECTION 操作系统探测

用 TCP/IP 协议栈 fingerprinting 进行探测,Nmap 发送一系列 TCP 和 UDP 报文到远程主机,检查相应种的每一个比特。测试后Nmap把结果和数据库种超过 1500 个已知的 fingerprints 比较,如匹配则输出结果

-O							启用操作系统探测
-A							同时启用操作系统探测和服务版本探测
--osscan-limit				针对指定的目标进行操作系统检测
--osscan-guess				当Nmap无法确定所检测的操作系统时,尽可能地提供最相近的匹配

8、TIMING AND PERFORMANCE 时间和性能

Nmap 开发的最高优先级是性能,但实际应用中很多因素会增加扫描时间,比如特定的扫描选项,防火墙配置以及版本扫描等。

-T <0-5>  设置时间模板级数,在0-5种选择。T0、T1用户IDS规避,T2降低了扫描速度使用更少的带宽和资源。默认为T3,未做任何优化。T4假设具有合适及可靠的网络从而加速扫描。T5假设具有特别快的网络或者愿为速度牺牲准确性
-host-timeout <time>  放弃低速目标主机,时间单位为毫秒

9、FIREWALL/IDS EVASION AND SPOOFING 防火墙/IDS规避和欺骗

-f(报文分段); --mtu(使用指定的MTU)将TCP头分段在几个包中,使得包过滤器、IDS以及其它工具的检测更加困难
-D <decoy1 [,decoy2] [,ME]...> 隐蔽扫描;使用逗号分隔每个诱饵主机,用自己真实IP作为诱饵使用ME选项。如在6号或更后的位置使用ME选项,一些检测器就不报告真实IP。如不使用ME,真实IP将随机放置
-S <IP_Address>  伪造数据包的源地址
-source-port<portnumber> / -g <portnumber> 伪造源端口

10、OUTPUT 输出选项

-oN					标准输出
-oX					XML输出写入指定的文件
-oS					脚本小子输出,类似于交互工具输出
-oG					Grep输出
-oA					输出至所有格式
-v					提高输出信息的详细度
-resume <filename> 	继续中断的扫描

Nmap常用扫描技巧

1、扫描单一目标主机

nmap	192.168.0.1
nmap	www.baidu.com

2、扫描整个子网

nmap	192.168.0.1/24

3、扫描多个目标

nmap 	192.168.0.1   www.baidu.com

4、扫描一个范围内的目标

nmap	192.168.0.1-200

5、导入IP列表进行扫描

nmap	-iL  ip.txt (要求在Nmap目录)

6、列举目标地址,但不进行扫描

nmap	-sL	192.168.0.1/24

7、排除某 IP 进行扫描

nmap	192.168.0.1/24  -exclude 192.168.0.1
nmap	192.168.0.1/24  -exclude file  ip.txt

8、扫描特定主机的特定端口

nmap	-p80,21,8080,135  192.168.0.1
nmap	-p50-900    192.168.0.1

9、简单扫描,详细输出返回结果

nmap 	-vv 192.168.0.1

10、简单扫描并进行路由跟踪

nmap 	-traceroute  baidu.com

11、ping扫描,不扫描端口(需要root权限)

nmap 	-sP  192.168.0.1
nmap  	-sn	192.168.0.1

12、探测操作系统类型

nmap	-O	192.168.0.1

13、Nmap 万能开关 -A 参数

nmap	-A	192.168.0.1

-A包含1-10000端口的ping扫描,操作系统扫描。脚本扫描,路由跟踪,服务探测

14、混合命令扫描

nmap 	-vv -p1-1000  -O 192.168.0.1/24  -exclude 192.168.0.1

15、半开放TCP SYNC端口扫描

nmap	-sS	192.168.0.1

16、扫描UDP服务端口

nmap	-sU 192.168.0.1

17、TCP连接扫描端口

nmap	-sT	192.168.0.1

18、由于IDS/IPS系统的存在,防火墙可能会阻止掉

SYN数据包,此时可发送设置了FIN标指的数据包,不需要完成TCP握手,不会在目标产生日志

nmap	-sF	maizitime.com

19、服务版本探测

nmap	-sV 192.168.0.1

Nmap脚本扫描

Nmap 允许用户自己编写脚本进行自动化扫描操作,或扩展 Nmap 现有的功能
脚本文件的默认目录为:/usr/share/nmap/scripts

-sC 参数等价于 -sC=default  使用默认类别的脚本进行扫描,可更换其他脚本类别
--script-args=<n1=v1,[n2=v2]...>  为脚本提供默认参数
--script-args-file=filename  使用文件来为脚本提供参数
--script-updated  更新脚本数据库
--script-trace	显示脚本执行过程中所有数据的发送与接收
--script-help=<scripts> 显示脚本的帮助信息

Nmap的脚本主要分为以下几大类,扫描过程中可以使用-script=类别名称 这种方式进行扫描

auth:负责处理鉴权证书(绕开鉴权)的脚本
broadcast:在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务
brute:提供暴力破解方式,针对常见的应用如http/snmp等
default:使用-sC或-A选项扫描时默认的脚本,提供基本脚本扫描能力
discovery:对网络进行更多的信息,如SMB枚举、SNMP查询等
dos:用户进行拒绝服务攻击
exploit:利用已知的漏洞入侵系统
external:利用第三方的数据库或资源,例如进行whois解析
fuzzer:模糊测试的脚本, 发送异常的包到目标机,探测出潜在漏洞
intrusive:入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽
malware:探测目标机是否感染了病毒、开启了后门等信息
safe:此类与intrusive相反,属于安全性脚本
version:负责增强服务与版本扫描(Version Detection)功能的脚本
vuln:负责检查目标机是否有常见的漏洞(Vulnerability),如是否有MS08_067

扫描实例演示:

使用auth脚本进行扫描,处理鉴权证书方面的脚本呢,也可以作为部分弱口令的检测

Nmap --script=auth <target IP>

Contents
  1. 1. Nmap简介
    1. 1.1. Nmap 在网络扫描中的常见作用
    2. 1.2. Nmap 主要使用平台
    3. 1.3. Nmap常见运行方式
    4. 1.4. Nmap 主要参数
      1. 1.4.1. 1、TARGET SPECIFICATION 目标说明
      2. 1.4.2. 2、HOST DISCOVERY 主机发现
      3. 1.4.3. 3、SCAN TECHNIQUES 端口扫描
      4. 1.4.4. 4、PORT SPECIFICATION AND SCAN ORDER 端口说明和扫描顺序
      5. 1.4.5. 5、SERVICE/VERSION DETECTION 服务与版本探测
      6. 1.4.6. 6、SCRIPT SCAN 扫描
      7. 1.4.7. 7、OS DETECTION 操作系统探测
      8. 1.4.8. 8、TIMING AND PERFORMANCE 时间和性能
      9. 1.4.9. 9、FIREWALL/IDS EVASION AND SPOOFING 防火墙/IDS规避和欺骗
      10. 1.4.10. 10、OUTPUT 输出选项
    5. 1.5. Nmap常用扫描技巧
    6. 1.6. Nmap脚本扫描
|