nmap使用教程

一、nmap简介

  • nmap是一款非常强大的主机发现和端口扫描工具,而且nmap运用自带的脚本,还能完成漏洞检测,同时支持多平台。
  • 官方文档:https://nmap.org/man/zh/
  • 查看用法:nmap -h
    在这里插入图片描述

二、nmap常用命令

  • 用法:
nmap [Scan Type(s)] [Options] {target specification}

2.1、target specification(目标规范)

  • 可以使用主机名、IP地址、网络等
  • 例如:scanme.nmap.orgmicrosoft.com/24192.168.0.110.0.0-255.1-254

2.1.1、用法

-iL <inputfilename>				# Input from list of hosts/networks 输入主机/网络列表
-iR <num hosts>					# Choose random targets 随机选择目标
# 选项 0 意味着永无休止的扫描
# nmap -sS -PS80 -iR 0 -p 80	随机地找一些网站浏览

--exclude <host1[,host2][,host3],...>	# Exclude hosts/networks 排除主机/网络
--excludefile <exclude_file>			# Exclude list from file 排除文件中的列表

2.1.2、详情

  1. -iL <inputfilename> Input from list of hosts/networks 输入主机/网络列表
    在这里插入图片描述
    在这里插入图片描述

  2. -iR <num hosts> Choose random targets 随机选择目标

    • 选项 0 意味着永无休止的扫描
    • nmap -sS -PS80 -iR 0 -p 80 随机地找一些网站浏览
      在这里插入图片描述
  3. --exclude <host1[,host2][,host3],...> Exclude hosts/networks 排除主机/网络
    在这里插入图片描述
    在这里插入图片描述

  4. --excludefile <exclude_file> Exclude list from file 排除文件中的列表

    • 举例:略

2.2、HOST DISCOVERY(主机发现)

2.2.1、用法

-sL                          			# List Scan - simply list targets to scan 简单的扫描目标
-sn                          			# Ping Scan - disable port scan Ping扫描 - 禁用端口扫描
-Pn                          			# Treat all hosts as online -- skip host discovery 将所有主机视为在在线,跳过主机发现
-PS[portlist]                			# (TCP SYN ping) 需要root权限
-PA[portlist]                			# (TCP ACK ping)
-PU[portlist]                			# (UDP  ping)
-PY[portlist]                			# (SCTP ping)
-PE/PP/PM                    			# ICMP echo, timestamp, and netmask request discovery probes ICMP回显,时间戳和网络掩码请求探测
-PO[protocol list]          		 	# IP Protocol Ping IP协议Ping
-n/-R                        			# Never do DNS resolution/Always resolve [default: sometimes] 从不执行DNS解析/始终解析[默认:有时]
--dns-servers <serv1[,serv2],...>		# Specify custom DNS servers 指定自定义DNS服务器
--system-dns                 			# Use OS's DNS resolver 使用OS的dns服务器
--traceroute                 			# Trace hop path to each host 跟踪到每个主机的跃点路径

2.2.2、详情

  1. -sL List Scan - simply list targets to scan 简单的扫描目标

    • 仅仅只是列出ip区域内的主机,不进行主机发现
    • nmap -sL 192.168.9.140-150 这个参数会列举出140-150内全部ip,但并不会进行主机发现
      在这里插入图片描述
      在这里插入图片描述
  2. -sn Ping Scan - disable port scan Ping扫描 - 禁用端口扫描

    • 这个参数可以和 -sP 归为一类,使用ping进行主机发现,不进行端口扫描
      在这里插入图片描述
      在这里插入图片描述
  3. -Pn Treat all hosts as online – skip host discovery 将所有主机视为在在线,跳过主机发现

    • 过主机发现阶段,直接进行端口扫描,该参数会认为主机为存活状态,端口为全部开放状态,扫描时间较长,在目标有防火墙的情况下,使用该参数,效果较好,等同于-PO
      在这里插入图片描述
  4. -PS[portlist] (TCP SYN ping) 需要root权限

  5. -PA[portlist] (TCP ACK ping)

  6. -PU[portlist] (UDP ping)

  7. -PY[portlist] (SCTP ping)
    在这里插入图片描述

  8. PE/PP/PM ICMP echo, timestamp, and netmask request discovery probes ICMP回显,时间戳和网络掩码请求探测

    • 根据ICMP协议判断端口开放状态,相较于 -sP 更有成效
      在这里插入图片描述
  9. -PO[protocol list] IP Protocol Ping IP协议Ping

  10. -n/-R Never do DNS resolution/Always resolve [default: sometimes] 从不执行DNS解析/始终解析[默认:有时]

    • -n 代表不需要反向解析域名,-R 代表需要反向解析域名
  11. --dns-servers <serv1[,serv2],...> Specify custom DNS servers 指定自定义DNS服务器

  12. --system-dns Use OS’s DNS resolver 使用OS的dns服务器

  13. --traceroute Trace hop path to each host 跟踪到每个主机的跃点路径
    在这里插入图片描述

2.3、SCAN TECHNIQUES(扫描技术)

-sS     			# 使用TCP的SYN进行扫描
-sT    				# 使用TCP进行扫描
-sA                 # 使用TCP的ACK进行扫描
-sW					# Window
-sM					# Maimon scans
-sU                 # UDP扫描
-sN/sF/sX			# TCP Null, FIN, and Xmas scans
--scanflags <flags>	# Customize TCP scan flags 自定义 TCP 包中的 flags
-sI                 # Idle扫描 空闲扫描
-sY/sZ				# SCTP INIT/COOKIE-ECHO scans 
-sO					# IP protocol scan 使用 IP protocol 扫描确定目标机支持 的协议类型
-b<FTP中继主机>     	# FTP反弹扫描

2.4、PORT SPECIFICATION AND SCAN ORDER(端口规格和扫描顺序)

-p <port ranges>				# Only scan specified ports 扫描指定端口 -p : 只扫描指定的端口,-p-代表全端口扫描
    Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
--exclude-ports <port ranges>	# Exclude the specified ports from scanning	 从扫描中排除指定端口
-F								# Fast mode - Scan fewer ports than the default scan 快速模式-扫描比默认扫描更少的端口
-r								# Scan ports sequentially - don't randomize 连续扫描端口-不随机化
--top-ports <number>			# Scan <number> most common ports  扫描开放概率最高的 number 个端口
--port-ratio <ratio>			# Scan ports more common than <ratio> 扫描指定频率以上的端口 

2.5、SERVICE/VERSION DETECTION(服务/版本检测)

-sV								# Probe open ports to determine service/version info 开放版本探测,可以直接使用 -A 同时打开 操作系统探测和版本探测
--version-intensity <level>		# Set from 0 (light) to 9 (try all probes) 设置版本扫描强度,强度水平说明了应该使 用哪些探测报文。数值越高,服务越有可能被正确识别 。默认是 7
--version-light					# Limit to most likely probes (intensity 2) # 打开轻量级模式,为 --version-intensity 2 的别名
--version-all					# Try every single probe (intensity 9) # 尝试所有探测,为 --version-intensity 9 的别名
--version-trace					# Show detailed version scan activity (for debugging) # 显示出详细的版本侦测过程信息

2.6、SCRIPT SCAN(脚本扫描)

-sC										# 根据端口识别的服务,调用默认脚本 等效于 --script=defult
--script=<Lua scripts>					# 调用的脚本名
--script-args=<n1=v1,[n2=v2,...]>		# 调用的脚本传递的参数
--script-args-file=filename				# 使用文本传递参数
--script-trace 							# 显示所有发送和接收到的数据
--script-updatedb						# 更新脚本的数据库
--script-help=<Lua scripts>				# 显示指定脚本的帮助

在这里插入图片描述

2.7、OS DETECTION(OS 识别)

-O 					# 启用操作系统检测,-A 来同时启用操作系统检测和版本检测
--osscan-limit 		# 针对指定的目标进行操作系统检测 (至少需确知该主机分别有 一个 open 和 closed 的端口)
--osscan-guess 		# 推测操作系统检测结果,当 Nmap 无法确定所检测的操作系统 时,会尽可能地提供最相近的匹配,Nmap 默认进行这种匹配

2.8、TIMING AND PERFORMANCE(时间与性能)

  • 选择“<时间>”的选项以秒为单位,或追加“毫秒”(毫秒),s(秒)、M(分钟),或 “ H ” (小时)的值(如30m)
-T < 0-5 >											# 设置时序模板(更高更快)
--min-hostgroup / max-hostgroup < size >			# 并行主机扫描组大小
--min-parallelism / max-parallelism < numprobes >	# 探针并行
--min-rtt-timeout / max-rtt-timeout / initial-rtt-timeout < time > # 指定探头往返时间
--max-retries < tries >								# 扫描探针重发的端口盖数
--scan-delay / --max-scan-delay < time >			# 调整探针间的延迟
--min-rate < number >								# 每秒发送的数据包不比 < 数字 > 慢
--max-rate < number >								# 发送包的速度不比 < 每秒 > 数字快

2.9、FIREWALL/IDS EVASION AND SPOOFING(防火墙/ IDS逃避和欺骗)

-f; --mtu < val > 							# 指定使用分片、指定数据包的 MTU
-D < decoy1 , decoy2 [,ME ]... >			# 使用诱饵隐蔽扫描
-S < IP_Address >							# 源地址欺骗
-e < interface >							# 使用指定的接口
-g / --source-port < portnum >				# 使用指定源端口
--proxies < url1,[ url2 ]... >			# 使用 HTTP 或者 SOCKS4 的代理
--data < hex string >						# 向发送的数据包追加自定义有效载荷
--data-string < string >					# 添加一个自定义的ASCII字符串发送的数据包
--data-length < num >						# 填充随机数据让数据包长度达到 NUM
--ip-options < options >					# 使用指定的 IP 选项来发送数据包
--ttl < val >								# 设置 IP time-to-live 域
--spoof-mac < mac address / prefix / vendor name >	# MAC 地址伪装
--badsum 									# 使用错误的 checksum 来发送数据包

2.10、(OUTPUT(Nmap 输出)

-oN							# 将标准输出直接写入指定的文件
-oX							# 输出 xml 文件
-oS							# 将所有的输出都改为大写
-oG							# 输出便于通过 bash 或者 perl 处理的格式,非 xml
-oA < basename >			# 可将扫描结果以标准格式、XML 格式和 Grep 格式一 次性输出
-v 							# 提高输出信息的详细度
-d level 					# 设置 debug 级别,最高是 9
--reason					# 显示端口处于带确认状态的原因
--open						# 只输出端口状态为 open 的端口
--packet-trace				# 显示所有发送或者接收到的数据包
--iflist					# 显示路由信息和接口,便于调试
--append-output				# 追加到指定的文件
--resume < filename >		# 恢复已停止的扫描
--stylesheet < path / URL >	# 设置 XSL 样式表,转换 XML 输出
--webxml 					# 从 http://namp.org 得到 XML 的样式 
--no-sytlesheet				# 忽略 XML 声明的 XSL 样式表

2.11、MISC(其他 nmap选项)

-6							# 开启 IPv6
-A 							# OS 识别,版本探测,脚本扫描和 traceroute
--datadir < dirname >		# 说明用户 Nmap 数据文件位置
--send-eth / --send-ip		# 使用原以太网帧发送/在原 IP 层发送
--privileged 				# 假定用户具有全部权限
--unprovoleged				# 假定用户不具有全部权限,创建原始套接字需要 root 权限
-V 							# 打印版本信息
-h							# 输出帮助

相关推荐

  1. Nmap工具详细使用过程

    2024-05-11 10:50:05       46 阅读
  2. 如何使用Nmap加强网络安全?

    2024-05-11 10:50:05       52 阅读
  3. 【kali工具】NMAP 高级使用技巧

    2024-05-11 10:50:05       61 阅读
  4. Namp扫描工具的使用

    2024-05-11 10:50:05       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-11 10:50:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-11 10:50:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-11 10:50:05       87 阅读
  4. Python语言-面向对象

    2024-05-11 10:50:05       96 阅读

热门阅读

  1. sql分页查询

    2024-05-11 10:50:05       34 阅读
  2. pytorch 梯度更新过程

    2024-05-11 10:50:05       28 阅读
  3. PyTorch与深度学习:从入门到精通

    2024-05-11 10:50:05       32 阅读
  4. pytorch2ONNX时,AdaptiveAvgPool2d的相关问题

    2024-05-11 10:50:05       23 阅读
  5. 【python】Flask开发感悟

    2024-05-11 10:50:05       24 阅读
  6. 【软考】scrum的步骤

    2024-05-11 10:50:05       31 阅读
  7. 【C++】每日一题 103 二叉树的锯齿形层序遍历

    2024-05-11 10:50:05       34 阅读
  8. K8S 删除pod的正确步骤

    2024-05-11 10:50:05       42 阅读
  9. 500行代码实现贪吃蛇(2)

    2024-05-11 10:50:05       23 阅读
  10. 右键使用VSCode打开文件/文件夹目录

    2024-05-11 10:50:05       35 阅读
  11. [openwrt-21.02]MT7981+MT7976 WiFi debug指令

    2024-05-11 10:50:05       54 阅读
  12. 图像处理、计算机视觉和深度学习,区别与联系

    2024-05-11 10:50:05       30 阅读