【网络安全】nmap端口扫描软件

一、介绍

Nmap(全称Network Mapper)是一款开源免费的网络探测和安全审核工具。可以用来扫描大型网络,执行主机探测、端口扫描、操作系统指纹识别及漏洞审计。

二、安装

bash 复制代码
yum install nmap -y

三、使用方法

bash 复制代码
nmap [选项] 目标

全部参数解释

TARGET SPECIFICATION(目标指定)

参数 说明
主机/IP/网段 可指定主机名、IP、网络段等
示例 scanme.nmap.org192.168.0.110.0.0-255.1-254
-iL <文件> 从文件读取目标列表
-iR <数量> 随机选择目标主机
--exclude <主机> 排除指定主机或网络
--excludefile <文件> 从文件中读取排除列表

HOST DISCOVERY(主机发现)

参数 说明
-sL 列表扫描,仅显示目标,不进行扫描
-sn Ping扫描,不进行端口扫描
-Pn 不检测主机是否在线,直接扫描
-PS/PA/PU/PY[端口] TCP SYN、ACK、UDP、SCTP 主机发现
-PE/PP/PM ICMP Echo、时间戳、网络掩码请求
-PO[协议] IP协议探测
-n 不解析 DNS
-R 总是进行 DNS 解析
--dns-servers 指定 DNS 服务器
--system-dns 使用系统 DNS
--traceroute 路由追踪

SCAN TECHNIQUES(扫描技术)

参数 类型 说明
-sS SYN扫描 半开放扫描(推荐)
-sT Connect扫描 完整 TCP 连接
-sA ACK扫描 防火墙检测
-sW Window扫描 基于 TCP Window
-sM Maimon扫描 特殊 FIN/ACK 扫描
-sU UDP扫描 UDP端口扫描
-sN Null扫描 不设置标志位
-sF FIN扫描 FIN包扫描
-sX Xmas扫描 FIN+PSH+URG
--scanflags 自定义 TCP 标志位
-sI Idle扫描 僵尸主机扫描
-sY SCTP INIT
-sZ SCTP COOKIE-ECHO
-sO IP协议扫描
-b FTP Bounce扫描

PORT SPECIFICATION(端口指定)

参数 说明
-p 22 扫描指定端口
-p 1-65535 扫描端口范围
-p U:53,T:80 指定协议类型端口
-F 快速模式,仅扫描常见端口
-r 顺序扫描,不随机
--top-ports <数量> 扫描最常见的 N 个端口
--port-ratio <比例> 扫描出现频率高于指定比例的端口

示例

复制代码
nmap -p22 192.168.1.1
nmap -p1-65535 192.168.1.1
nmap --top-ports 100 192.168.1.1

SERVICE/VERSION DETECTION(服务与版本识别)

参数 说明
-sV 探测服务和版本
--version-intensity 0-9 探测强度
--version-light 轻量探测(等级2)
--version-all 尝试全部探针(等级9)
--version-trace 显示详细调试信息

SCRIPT SCAN(NSE脚本扫描)

参数 说明
-sC 默认脚本扫描
--script= 指定脚本
--script-args= 给脚本传递参数
--script-args-file= 从文件读取参数
--script-trace 显示收发数据
--script-updatedb 更新脚本数据库
--script-help= 查看脚本帮助

示例:

复制代码
nmap -sC 192.168.1.1

nmap --script=http-title 192.168.1.1

OS DETECTION(操作系统识别)

参数 说明
-O 开启操作系统识别
--osscan-limit 仅对可能成功的目标进行识别
--osscan-guess 更积极猜测操作系统

TIMING AND PERFORMANCE(性能优化)

参数 说明
-T0~T5 时间模板,越大越快
--min-hostgroup 最小主机组大小
--max-hostgroup 最大主机组大小
--min-parallelism 最小并发
--max-parallelism 最大并发
--min-rtt-timeout 最小超时时间
--max-rtt-timeout 最大超时时间
--initial-rtt-timeout 初始超时时间
--max-retries 最大重试次数
--host-timeout 主机扫描超时
--scan-delay 探测延迟
--max-scan-delay 最大延迟
--min-rate 最低发送速率
--max-rate 最高发送速率

时间模板

参数 速度
-T0 极慢(隐蔽)
-T1
-T2 较慢
-T3 默认
-T4
-T5 极快

FIREWALL / IDS EVASION(防火墙绕过与伪装)

参数 说明
-f IP分片
--mtu 指定 MTU
-D 诱饵扫描
-S 伪造源 IP
-e 指定网卡
-g 指定源端口
--data-length 添加随机数据
--ip-options 指定 IP 选项
--ttl 设置 TTL
--spoof-mac 伪造 MAC 地址
--badsum 错误校验和

OUTPUT(输出)

参数 说明
-oN 普通格式输出
-oX XML输出
-oS Script Kiddie格式
-oG Grep格式
-oA 同时生成三种格式
-v 增加详细级别
-vv 更详细
-d 调试模式
--reason 显示端口状态原因
--open 仅显示开放端口
--packet-trace 显示所有数据包
--iflist 显示网络接口
--log-errors 记录错误
--append-output 追加输出
--resume 恢复中断扫描
--stylesheet XML转HTML样式
--webxml 使用 Nmap 官方样式
--no-stylesheet 不使用样式

MISC(其它)

参数 说明
-6 IPv6 扫描
-A 综合扫描(OS+版本+脚本+路由)
--datadir 指定数据目录
--send-eth 原始以太网发送
--send-ip 原始 IP 发送
--privileged 以特权模式运行
--unprivileged 非特权模式
-V 查看版本
-h 查看帮助

四、常用命令

扫描默认 1000 个端口

复制代码
nmap 192.168.1.1

指定端口

复制代码
nmap -p 22,80,443 192.168.1.1

扫描端口范围

复制代码
nmap -p 1-65535 192.168.1.1

扫描所有端口

复制代码
nmap -p- 192.168.1.1

扫描192.168.1.101主机开放的tcp端口,并探测开放的服务与版本

bash 复制代码
nmap -sS -sV -p- 192.168.1.101

按顺序扫描192.168.1.101主机开放的tcp端口(半连接扫描)和udp端口

bash 复制代码
nmap -sSU -p- -r 192.168.1.101

按顺序扫描192.168.1.101的tcp端口和udp端口,使用T4快速扫描,并输出更详细信息

bash 复制代码
nmap -sT -sU -p- -r -T4 -vv 192.168.1.101