nmap使用教程

news2024/11/16 23:57:55

nmap使用教程

  • 一、nmap简介
  • 二、nmap常用命令
    • 2.1、target specification(目标规范)
      • 2.1.1、用法
      • 2.1.2、详情
    • 2.2、HOST DISCOVERY(主机发现)
      • 2.2.1、用法
      • 2.2.2、详情
    • 2.3、SCAN TECHNIQUES(扫描技术)
    • 2.4、PORT SPECIFICATION AND SCAN ORDER(端口规格和扫描顺序)
    • 2.5、SERVICE/VERSION DETECTION(服务/版本检测)
    • 2.6、SCRIPT SCAN(脚本扫描)
    • 2.7、OS DETECTION(OS 识别)
    • 2.8、TIMING AND PERFORMANCE(时间与性能)
    • 2.9、FIREWALL/IDS EVASION AND SPOOFING(防火墙/ IDS逃避和欺骗)
    • 2.10、(OUTPUT(Nmap 输出)
    • 2.11、MISC(其他 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							# 输出帮助

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1676464.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Web】HNCTF 2024 题解(部分)

目录 Please_RCE_Me ezFlask GoJava ez_tp GPTS Please_RCE_Me <?php if($_GET[moran] flag){highlight_file(__FILE__);if(isset($_POST[task])&&isset($_POST[flag])){$str1 $_POST[task];$str2 $_POST[flag];if(preg_match(/system|eval|assert|call|…

从零开始开发企业培训APP:在线教育系统源码剖析

今天&#xff0c;小编将深入剖析企业培训APP的开发&#xff0c;从零开始为企业构建一个高效、实用的在线教育系统。 一、需求分析 1.主要功能需求 包括但不限于&#xff1a; -用户管理 -课程管理 -学习计划 -互动功能 -考核评估 -统计分析 二、技术选型 1.前端技术 …

PG数据文件和块管理与Oracle比较

之前有说过PG数据库中的对象oid与数据文件一一对应&#xff0c;创建的数据库如果没有指定表空间&#xff0c;则会默认放在默认表空间中&#xff0c;例如&#xff1a; 1.对象OID与数据文件对应关系 Oracle的逻辑与物理对应关系如下&#xff1a; 两种结果相比较而言&#xff1a; …

拯救者杯OPENAIGC开发者大赛城市巡回沙龙,苏州站报名开启!

由联想拯救者、AIGC开放社区、英特尔联合主办的“AI生成未来第二届拯救者杯OPENAIGC开发者大赛”自上线以来&#xff0c;吸引了广大开发者的热情参与。 为了向技术开发者、业务人员、高校学生、以及个体创业人员等参赛者们提供更充分的帮助与支持&#xff0c;AIGC开放社区特别…

RockChip Android8.1 EthernetService分析

一:概述 本篇文章将围绕RK Android8.1 SDK对Ethernet做一次框架分析,包含Framework层和APP层。 当前版本SDK默认只支持一路Ethernet,熟悉Ethernet工作流程后通过修改最终会在系统Setting以太网中呈现多路选项(可以有多种实现方式),博主通过增加ListPreference实现的效果…

C++设计模式|创建型 5.原型模式

1.什么是原型模式&#xff1f; 原型模式⼀种创建型设计模式&#xff0c;该模式的核⼼思想是基于现有的对象创建新的对象&#xff0c;⽽不是从头开始创建。 在原型模式中&#xff0c;通常有⼀个原型对象&#xff0c;它被⽤作创建新对象的模板。新对象通过复制原型对象的属性和状…

namenode启动失败 org.apache.hadoop.hdfs.server.common.InconsistentFSStateException:

小白的Hadoop学习笔记 2024/5/14 18:26 文章目录 问题解决报错浅浅分析一下core-ste.xml 问题 namenode启动失败 读日志 安装目录下 vim /usr/local/hadoop/logs/hadoop-tangseng-namenode-hadoop102.log2024-05-14 00:22:46,262 ERROR org.apache.hadoop.hdfs.server.namen…

开源可视化表单服务商:提升自主研发 助力流程化办公!

当前&#xff0c;做好流程化办公可以为企业实现提质增效的办公效果&#xff0c;助力企业进入数字化转型。作为开源可视化表单服务商&#xff0c;流辰信息坚持研发创新理念&#xff0c;努力提升自主研发能力&#xff0c;专为广大客户朋友提供集产品、框架定制、产品交付为一体的…

Java面试八股之Java中有哪些原子类,原理是什么

Java中有哪些原子类&#xff0c;原理是什么 AtomicInteger 和 AtomicLong&#xff1a; 用于对整数&#xff08;int&#xff09;和长整数&#xff08;long&#xff09;进行原子操作。 原理&#xff1a;它们内部封装了一个整型或长整型变量&#xff0c;并通过使用Unsafe类提供…

查找总价格为目标值的两个商品(双指针)

算法原理&#xff1a; 其实我们首先想到的方法肯定是暴力&#xff0c;两个for循环嵌套就能找到&#xff0c;但肯定会超时。 其实啊一切算法的总结都是在暴力的基础上进行的&#xff0c;算法其实就是对暴力进一步的优化。 定义两个指针&#xff0c;分别指向两端&#xff0c;然后…

单用户模式破解root密码

目录 一. 破解root密码 1. 查看操作系统版本 2.重启系统&#xff0c;进入grub菜单&#xff0c;选择要使用的内核&#xff0c;按e进入​编辑 3. 找到linux16那一行&#xff0c;把光标移动到最后&#xff0c;添加 init/bin/sh 然后ctrlx保存退出会自动进入系统 4. 进入系统后…

程序员就是管道工

程序是由指令和数据组成的。 指令是按照特定的顺序执行的&#xff0c;这些顺序好比水的流向。 要想让水高效地流向我们想要的地方&#xff0c;就要设计一个精良的管道系统&#xff0c;这好比算法。 剩下的就是修建管道了&#xff0c;你要知道各种管的型号、用途&#xff0c;然…

Java 包语句,看这一篇就够了

1.设计的文件层级 我们将“Package”文件夹称为根目录&#xff0c;“Level01”称为一级目录&#xff0c;“Level02”称为二级目录&#xff0c;以此类推。 2.发现在不同目录下的包名有如下特征&#xff1a; 根目录下的文件不需要包名&#xff0c;可以理解成包名为 “”一级目录…

洁太司检测试剂盒:肝癌早诊新利器,共筑健康未来

随着科技进步及医疗技术的不断创新&#xff0c;人类对疾病的早期诊断和治疗提出了更高的要求。 先思达生物近期推出的“洁太司-寡糖链检测试剂盒”&#xff0c;在原发性肝细胞癌的诊断领域实现了重大突破&#xff0c;获得了国家药品监督管理局&#xff08;NMPA&#xff09;的三…

8.基于鱼鹰优化算法(OOA)优化VMD参数(OOA-VMD)

代码原理 鱼鹰优化算法&#xff08;Osprey Optimization Algorithm, OOA&#xff09;是一种基于仿生学原理的启发式优化算法&#xff0c;它模拟了鱼鹰觅食的行为&#xff0c;通过调整搜索空间中的个体位置来优化目标函数。 鱼鹰优化算法可参考&#xff1a;鱼鹰优化算法(Ospre…

【系统运维】如何查找用户账号锁定位置

【问题】AD环境下&#xff0c;经常会遇到用户账号因输错密码次数超限而被锁的情况。 如果AD环境较简单还好说&#xff0c;但如果域控很多&#xff0c;要定位用户账号被锁在哪里就有点小麻烦了&#xff0c;比如开发人员可能会频繁登录多台服务器&#xff0c;如果某台服务器缓存了…

【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手

文章目录 一、前言二、绘制效果三、ConstraintLayout 使用方法3.1 创建布局文件3.2 替换配置3.3 设置约束&#xff0c;步骤13.4 设置约束&#xff0c;步骤23.5 其他设置 四、结束 一、前言 在进行Android APP开发过程中&#xff0c;减少layout嵌套即可改善UI的绘制性能&#x…

2024CCPC全国邀请赛(郑州)暨河南省赛

2024CCPC全国邀请赛&#xff08;郑州站&#xff09;暨河南省赛 一铜一银&#xff0c;虽不是线下第一次参赛但是第一次拿xcpc奖牌&#xff0c;还有个国赛奖真是不戳。感谢学长&#xff0c;感谢队友&#xff01; 虽然遗憾没有冲到省赛金&#xff0c;不过还有icpc商丘&#xff08…

【Transformer-BEV编码(10)】CVPR2021 PYVA 第一个明确提到 cross-attention decoder可用于视图转BEV

论文信息 论文名&#xff1a;Projecting Your View Attentively: Monocular Road Scene Layout Estimation via Cross-view Transformation 中文&#xff1a;通过交叉视图变换&#xff08;crossview transform module&#xff09;估计单目道路场景布局 数据集&#xff1a;KITT…

【Android】Apk图标的提取、相同目录下相同包名提取的不同图标apk但是提取结果相同的bug解决

一般安卓提取apk图标我们有两种常用方法&#xff1a; 1、如果已经获取到 ApplicationInfo 对象&#xff08;假设名为 appInfo&#xff09;&#xff0c;那么我们获取方法为&#xff1a; appInfo.loadIcon(packageManager)// 返回一个 Drawable 对象2、 如果还没获取到 Applica…