nmap 简介
Nmap(诸神之眼)是一款用于网络发现和安全审计的网络安全工具,它是自由软件。软件名字 Nmap 是 Network Mapper 的简称。通常情况下,Nmap 用于︰列举网络主机清单管理服务升级调度监控主机服务运行状况 Nmap 可以检测目标主机是否在线、端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等信息。。 nmap 支持很多扫描技术,例如:UDP、TCP connect().TCP SYN(半开扫描)、ftp 代理(bounce 攻击)、反向标志、ICMP、FIN、ACK 扫描、圣诞树(Xmas Tree)、SYN 扫描和 null 扫描。还可以探测操作系统类型。
namp 基本功能
- 主机发现:检测目标主机是否在线
- 端口扫描:检测端口状态和提供的服务
- 版本侦测:检测端口提供服务的包或软件的版本信息
- 操作系统侦测:检测主机使用的操作系统
nmap 安装
下载地址:https://nmap.org 根据自己的操作系统来选择下载的对应版本! 命令行模式下启动 nmap
namp 基本信息
PORT:端口 STATE:端口状态 SERVICE:端口服务 open:端口是开放的 closed:端口是关闭的 filtered:端口被防火墙 IDS/IPS 屏蔽,无法确定状态 unfiltered:端口未被防火墙 IDS/IPS 屏蔽,但是否开放需要进一步确认 open|filtered:端口是开放的或被过滤 closed|filteres:端口关闭或者被过滤
nmap 基本参数
Nmap 支持主机名,ip,网段的表示方式 例如: 192.168.0.1;10.0.0-25.1-254 -iL filename 从文件中读取待检测的目标,文件中的表示方法支持机名,ip,网段 -iR hostnum 随机选取,进行扫描.如果-iR 指定为 0,则是无休止的扫描 –exclude host1[, host2] 从扫描任务中需要排除的主机 –exculdefile exclude_file 排除文件中的 IP,格式和-iL 指定扫描文件的格式相同
主机发现
-sL 仅仅是显示,扫描的 IP 数目,不会进行任何扫描 -sn ping 扫描,即主机发现 -Pn 不检测主机存活 -PS/PA/PU/PY[portlist] TCP SYN Ping/TCP ACK Ping/UDP Ping 发现 -PE/PP/PM 使用 ICMP echo, timestamp and netmask 请求包发现主机 -PO[prococol list] 使用 IP 协议包探测对方主机是否开启 -n/-R 不对 IP 进行域名反向解析/为所有的 IP 都进行域名的反响解析
扫描技巧
-sS/sT/sA/sW/sM TCP SYN/TCP connect()/ACK/TCP 窗口扫描/TCP Maimon 扫描 -sU UDP 扫描 -sN/sF/sX TCP Null,FIN,and Xmas 扫描 –scanflags 自定义 TCP 包中的 flags -sI zombie host[:probeport] Idlescan -sY/sZ SCTP INIT/COOKIE-ECHO 扫描 -sO 使用 IP protocol 扫描确定目标机支持的协议类型 -b “FTP relay host” 使用 FTP bounce scan
指定端口和扫描顺序
-p 特定的端口 -p80,443 或者 -p1-65535 -p U:PORT 扫描 udp 的某个端口, -p U:53 -F 快速扫描模式,比默认的扫描端口还少 -r 不随机扫描端口,默认是随机扫描的 –top-ports “number” 扫描开放概率最高的 number 个端口,出现的概率需要参考 nmap-services 文件,ubuntu 中该文件位于/usr/share/nmap.nmap 默认扫前 1000 个 –port-ratio “ratio” 扫描指定频率以上的端口
服务版本识别
-sV 开放版本探测,可以直接使用-A 同时打开操作系统探测和版本探测 –version-intensity “level” 设置版本扫描强度,强度水平说明了应该使用哪些探测报文。数值越高,服务越有可能被正确识别。默认是 7 –version-light 打开轻量级模式,为–version-intensity 2 的别名 –version-all 尝试所有探测,为–version-intensity 9 的别名 –version-trace 显示出详细的版本侦测过程信息
脚本扫描
-sC 根据端口识别的服务,调用默认脚本 –script=”Lua scripts” 调用的脚本名 –script-args=n1=v1,[n2=v2] 调用的脚本传递的参数 –script-args-file=filename 使用文本传递参数 –script-trace 显示所有发送和接收到的数据 –script-updatedb 更新脚本的数据库 –script-help=”Lua script” 显示指定脚本的帮助
OS 识别
-O 启用操作系统检测,-A 来同时启用操作系统检测和版本检测 –osscan-limit 针对指定的目标进行操作系统检测(至少需确知该主机分别有一个 open 和 closed 的端口) –osscan-guess 推测操作系统检测结果,当 Nmap 无法确定所检测的操作系统时,会尽可能地提供最相近的匹配,Nmap 默认进行这种匹配
防火墙/IDS 躲避和哄骗
-f; –mtu value 指定使用分片、指定数据包的 MTU. -D decoy1,decoy2,ME 使用诱饵隐蔽扫描 -S IP-ADDRESS 源地址欺骗 -e interface 使用指定的接口 -g/ –source-port PROTNUM 使用指定源端口 –proxies url1,[url2],… 使用 HTTP 或者 SOCKS4 的代理 –data-length NUM 填充随机数据让数据包长度达到 NUM –ip-options OPTIONS 使用指定的 IP 选项来发送数据包 –ttl VALUE 设置 IP time-to-live 域 –spoof-mac ADDR/PREFIX/VEBDOR MAC 地址伪装 –badsum 使用错误的 checksum 来发送数据包
Nmap 输出
-oN 将标准输出直接写入指定的文件 -oX 输出 xml 文件 -oS 将所有的输出都改为大写 -oG 输出便于通过 bash 或者 perl 处理的格式,非 xml -oA BASENAME 可将扫描结果以标准格式、XML 格式和 Grep 格式一次性输出 -v 提高输出信息的详细度 -d level 设置 debug 级别,最高是 9 –reason 显示端口处于带确认状态的原因 –open 只输出端口状态为 open 的端口 –packet-trace 显示所有发送或者接收到的数据包 –iflist 显示路由信息和接口,便于调试 –log-errors 把日志等级为 errors/warings 的日志输出 –append-output 追加到指定的文件 –resume FILENAME 恢复已停止的扫描 –stylesheet PATH/URL 设置 XSL 样式表,转换 XML 输出 –webxml 从 namp.org 得到 XML 的样式 –no-sytlesheet 忽略 XML 声明的 XSL 样式表
时间性能优化
-T 时间优化(0-5)(paranoid|sneaky|polite|normal|aggressive|insane) -F 快速扫描。 –max-retries 调整重传次数。 –min-hostgroup/–max-hostgroup size 设置组的大小 –min-parallelism/–max-parellelism time 指定时间内的探针数 –min-rtt-timrout/–max-rtt-timrout/initial-rtt-timrouttime 指定探针超时 –scan-delay/-max-scan-delay time 指定探针之间的时延 –max-retries tries 指定探针重传转发数 –host-timeout time 设置扫描主机的最大时间 –defeat-rst-ratelimit 设置 rst 的限制
其他 nmap 选项
-6 开启 IPv6 -A OS 识别,版本探测,脚本扫描和 traceroute –datedir DIRNAME 说明用户 Nmap 数据文件位置 –send-eth / –send-ip 使用原以太网帧发送/在原 IP 层发送 –privileged 假定用户具有全部权限 –unprovoleged 假定用户不具有全部权限,创建原始套接字需要 root 权限 -V 打印版本信息 -h 输出帮助
namp 补充知识
查找一个网段内所有机器的操作系统类型。 namp -O 192.168.1.0/24 随机扫描,延时扫描,达到隐藏自己的效果 nmap –randomize-hosts –scan-delay 5 192.168.1.0/24
zenmap 介绍
Zenmap 是经典端口漏洞扫描工具 NMap 的官方 GUI(图形界面)版本,集通过 tcp/ip 来甄别操作系统类型、秘密扫描、动态延迟和重发、平行扫描、通过并行的 PING 侦测下属的主机、欺骗扫描、端口过滤探测、直接的 RPC 扫描、分布扫描、灵活的目标选择以及端口的描述等多种功能为一体,是目前为止使用最广的端口扫描工具之一。可以检测活在网络上的主机、检测主机上开放的端口、检测到相应的端口的软件和版本以及扫描端口的安全漏洞。 与命令行操作方式的 NMap 相比,虽然 Zenmap 的操作方式更为直观简单,但是高手们还是习惯用命令行的 NMap,当然,如果你不是大神,那么 Zenmap 更适合你。
zenmap 常用参数
Intense scan
(nmap -T4 -A -v)
一般来说,Intense scan 可以满足一般扫描
-T4
加快执行速度
-A
操作系统及版本探测
-v
显示详细的输出
Intense scan plus UDP
(nmap -sS -sU -T4 -A -v)
即 UDP 扫描
-sS
TCP SYN 扫描
-sU
UDP 扫描
Intense scan,all TCP ports
(nmap -p 1-65536 -T4 -A -v)
扫描所有 TCP 端口,范围在 1-65535,试图扫描所有端口的开放情况,速度比较慢。
-p
指定端口扫描范围
Intense scan,no ping
(nmap -T4 -A -v -Pn)
非 ping 扫描
-Pn
非 ping 扫描
Ping scan
(nmap -sn)
Ping 扫描优点:速度快。缺点:容易被防火墙屏蔽,导致无扫描结果
-sn
ping 扫描
Quick scan
(nmap -T4 -F)
快速的扫描
-F
快速模式。
Quick scan plus
(nmap -sV -T4 -O -F –version-light)
快速扫描加强模式
-sV
探测端口及版本服务信息。
-O
开启 OS 检测
–version-light
设定侦测等级为 2。
Quick traceroute
(nmap -sn –traceroute)
路由跟踪
-sn Ping
扫描,关闭端口扫描
-traceroute
显示本机到目标的路由跃点。
Regular scan
规则扫描
Slow comprehensive scan
(nmap -sS -sU -T4 -A -v -PE -PP -PS80,443,-PA3389,PU40125 -PY -g 53 –script all)
慢速全面扫描。
namp 防火墙
端口的状态:```
open,端口开放;
filtered,端口被防火墙或安全软件阻止了,也可能是网络堵塞;
closed,端口关闭。
1 |
|
(不一定所有的都能绕过)
-PS 选项来实施 TCP SYN ping 可绕过防火墙(简单的可以绕过,但是大部分未必能绕过)
-PA 这种类型的扫描将只会扫描 ACK 包,可绕过防火墙
-PU 扫描只会对目标进行 udp ping 扫描。这种类型的扫描会发送 UDP 包来获取一个响应,可绕过防火墙
-P 选项进行一个 ICMP 时间戳 ping 扫描,可绕过防火墙
-PE 参数进行一个 IEMP(Internet 控制报文协议)在指定的系统上输出 ping,可绕防火墙–Pn 不采用 ping 方式进行扫描,可绕过防火墙。-
-sA 用于发现防火墙规则,比如扫到的端口是过滤的,那么可以使用这个参数进行绕过。
1 |
|