nmap命令说明
平时看到别人的nmap命令都是一大串,根本看不懂为什么,自己只会nmap ip,所以记录下对nmap -h的说明,方便以后的使用。有的指令单独没什么,是要配合其他指令一起使用。
主机发现
1. -iL <inputfilename> 批量扫描指定主机/网络的文件列表
2. -sL <scan List> 仅列出指定目标的ip
3. -sn Ping扫描,只进行主机发现
4. -Pn 将所有主机视为在线,有的主机会禁Ping
5. -PS/PA/PU/PY 给指定端口使用TCP SYN/ACK UDP SCTP 进行发现
6. -PE/PP/PM ICMP 回显、时间戳好网络掩码请求发现
7. -PO 使用IP协议包发现
8. -n/-R 不做DNS解析/总是做DNS解析(默认为有时)
--dns-servers 指定自定义的DNS服务器
--system-dns 使用操作系统的DNS解析器
--traceroute 跟踪每个主机的跃点路径
扫描技术
-sS/sT/sA/sW/sM 使用TCP SYN/Connect()/ACK/Window/Maimon 的方式进行扫描
TCP SYN扫描是在三次握手中收到SYN/ACK后发送RST断开连接,没有建立正常的TCP连接,一般不会留下扫描痕迹,不容易被发现;
Connect()是通过操作系统与目标建立连接,会留下很多连接记录,很容易被发现。
ACK扫描发送一个只设置ACK标志位的数据包,目标主机端口无论是关闭还是开放状态,都会返回RST数据包。但ACK扫描不能确定目标主机的端口状态,可以确定对方主机是否存活,可以发现防火墙规则来确定防火墙的状态。
窗口扫描,在某些系统上,开放端口用正数表示窗口大小,而关闭的窗口大小则为0。窗口扫描,就是通过检查返回RST报文的窗口字段,来判断端口是否开放。
FIN/ACK扫描也被称作Maimon扫描,根据发现者Uriel Maimon命名。其实Maimon扫描与NULL、FIN扫描的原理一样,根据RFC 793,无论端口是关闭还是开放,目标主机都会对FIN+ACK探测数据包,响应RST报文(但许多基于BSD的系统,会丢弃FIN+ACK探测数据包)。
-sU 使用UDP进行扫描
UDP扫描,通常与ICMP相结合进行。在给目标主机发送没有携带任何数据的UDP数据包时,如果返回信息为“ICMP端口不可达”(类型为3,代码为3)的提示,则表示目标端口是关闭的,但主机是存活的;如果某服务响应一个UDP报文,则表明该端口是开放的。
当然,UDP扫描也存在瓶颈,那就是速度。很多主机默认限制发送“ICMP端口不可达”信息,或者限制发包的频率。如Linux2.4.20内核,就只允许一秒钟发送一条目标不可达信息。这样,扫描65535个端口,需要18小时的时间。这是不可接受的,所以加速UDP扫描的方法,通常是并发扫描或先扫描主要端口。
-sN/sF/sX 使用TCP NULL/FIN/Xmas进行扫描 --scanflags <flags>
根据RFC 793,主机发送一个没有任何标志位的TCP包,如果目标主机的对应端口是关闭的话,则会返回一个RST数据包,如果没有响应则表示该端口是开放的。NULL扫描,可以躲过无状态防火墙和报文过滤路由器,且比SYN扫描要隐秘。值得注意的是,并不是所有系统都遵循RFC 793。一些系统不管端口是开放还是关闭,都响应RST数据包。如Cisco设备、BSDI等。也判断是否为Windows系统(不返回)还是Unix(返回)。
与NULL有点类似,只是FIN为指示TCP会话结束,在FIN扫描中一个设置了FIN位的数据包被发送后,若响应RST数据包,则表示端口关闭,没有响应则表示开放。此类扫描同样不能准确判断windows系统上端口开发情况。
通过发送带有下列标志位的tcp数据包
URG:指示数据时紧急数据,应立即处理。
PSH:强制将数据压入缓冲区。
FIN:在结束TCP会话时使用。
正常情况下,三个标志位不能被同时设置,但在此种扫描中可以用来判断哪些端口关闭还是开放,与上面的反向扫描情况相同,依然不能判断windows平台上的端口,开放不返回。
真正的Nmap高级用户不需要被这些现成的扫描类型束缚。 --scanflags选项允许指定任意TCP标志位来设计您自己的扫描。 让您的创造力流动,躲开那些仅靠本手册添加规则的入侵检测系统!
-sI <僵尸主机:prot>空闲扫描,让僵尸主机替你扫描,完全隐蔽自己。想知道原理的可以看这个[https://nmap.org/book/idlescan.html]()
-sY/sZ 使用SCTP INIT/COOKIE-ECHO 扫描
流控制传输协议(英语:Stream Control Transmission Protocol,缩写:SCTP)是在2000年由IETF的SIGTRAN工作组定义的一个传输层协议。
SCTP INIT扫描是TCP SYN扫描的SCTP等效物。它可以快速执行,在快速网络上每秒扫描数千个端口,而不受限制性防火墙的限制。与SYN扫描一样,INIT扫描相对不显眼且隐蔽,因为它永远不会完成SCTP关联。它还允许在打开,关闭和过滤状态之间进行清晰,可靠的区分。
SCTP COOKIE ECHO SCAN 是一种更先进的SCTP扫描。 它利用了SCTP实现应该在开放端口上静默丢弃包含COOKIE ECHO块的数据包这一事实,但如果端口关闭则发送ABORT。 这种扫描类型的优点是端口扫描不像INIT扫描那么明显。 此外,可能存在阻止INIT块的非状态防火墙规则集,但不阻止COOKIE ECHO块。 不要误以为这会使端口扫描不可见; 一个好的IDS也能够检测到SCTP COOKIE ECHO扫描。 缺点是SCTP COOKIE ECHO扫描不能区分打开和过滤的端口,在这两种情况下都会打开状态。
-sO 使用IP协议扫描
端口规格和扫描顺序
-p 指定端口 例 -p22; -p 1-65535; -p U:53,111,T:21-25
--exclude-ports 排除指定端口
-F 扫描比默认端口更少的端口
-r 按顺序扫描,nmap默认情况会随机顺序,常用的端口靠前
服务/版本检测
-sV :探测开放端口以确定服务/版本信息 --version-intensity <level>:设置从 0(轻)到 9(尝试所有探针) --version-light:限制最可能的探测(强度 2) --version-all:尝试每一个探测(强度 9) --version-trace:显示详细的版本扫描活动(用于调试)
脚本扫描
-sC 默认是--script=default
Nmap的脚本位置:/usr/share/nmap/scripts/
ls /usr/share/nmap/scripts/ | wc -l 查看脚本的数量(默认是605个)
nmap --script=auth 192.168.123.1 检查弱口令
nmap --script=brute 192.168.123.1 暴力破解
nmap --script=vuln 192.168.123.1 扫描常见漏洞
nmap --script external bbskali.cn whois解析
nmap --script=http-brute 192.168.123.1 HTTP认证爆破
nmap --script=http-ls bbskali.cn 目录扫描
nmap --script-updatedb 更新脚本数据库
(原来有这么多功能,一直当一个端口扫描工具的,看来学好nmap还是很必要的)
操作系统检测
-O 操作系统检测
--osscan-limit 将操作系统检测限制为有希望的目标
--osscan-guess 更积极地猜测操作系统
时间和性能:
-T <0-5> 越高约快
--min-hostgroup/max-hostgroup <size> 设置并行主机扫描组大小
--min-parallelism/max-parallelism <numrobes> 调整探测报文的并行度
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <时间> 调整探测报文超时
--max-retries <tries>:限制端口扫描探测重传的次数。
--host-timeout <time> 放弃低速目标主机
--scan-delay/--max-scan-delay <time> 调整探测报文的时间间隔(还可以躲闭基于阈值的入侵检测和预防系统(IDS/IPS))
--min-rate <number>:每秒发送数据包不低于 <number>
--max-rate <number>:每秒发送数据包的速度不超过 <number>
防火墙/IDS的逃避和欺骗
-F; --mtu<val> 分片数据包 (没太懂)
-D <decoy1,decoy2[,ME],...> 使用诱饵隐藏扫描
使用逗号分隔每个诱饵主机,也可用自己的真实IP作为诱饵,这时可使用 ME选项说明。如果在第6个位置或 更后的位置使用ME选项,一些常用 端口扫描检测器(如Solar Designer's excellent scanlogd)就不会报告 这个真实IP。如果不使用ME选项,Nmap 将真实IP放在一个随机的位置。
注意,作为诱饵的主机须在工作状态,否则会导致目标主机的SYN洪水攻击。 如果在网络中只有一个主机在工作,那就很容易确定哪个主机在扫描。也可 使用IP地址代替主机名(被诱骗的网络就不可能在名字服务器日志中发现)。
诱饵可用在初始的ping扫描(ICMP、SYN、ACK等)阶段或真正的端口扫描 阶段。诱饵也可以用于远程操作系统检测(-O)。在进行版 本检测或TCP连接扫描时,诱饵无效。
使用过多的诱饵没有任何价值,反而导致扫描变慢并且结果不准确。 此外,一些ISP会过滤哄骗的报文,但很多对欺骗IP包没有任何限制。
-S <IP_Address> 欺骗源地址
-e <iface> 使用指定接口
-g/--source-port <portnum> 使用给定的端口号
--proxies <url1,[url2],...> 通过 HTTP/SOCKS4 代理中继连接
--data <hex string> 将自定义有效负载附加到发送的数据包
--data-string <string> 将自定义 ASCII 字符串附加到发送的数据包中
--data-length <num> 将随机数据附加到发送的数据包中
--ip-options <options> 发送带有指定ip选项的数据包
--ttl <val> 设置 IP 生存时间字段
--spoof-mac <mac地址/前缀/供应商名称> 欺骗你的MAC地址
--badsum 发送带有虚假 TCP/UDP/SCTP 校验和的数据包
输出
-oN/-oX/-oS/-oG <file>:输出扫描 正常,XML,脚本小子,Grep
-oA <basename>:一次输出三种主要格式
-v:增加详细程度(使用 -vv 或更多以获得更好的效果)
-d:增加调试级别(使用 -dd 或更多以获得更好的效果)
--reason:显示端口处于特定状态的原因
--open:仅显示打开(或可能打开)的端口
--packet-trace:显示所有发送和接收的数据包
--iflist:打印主机接口和路由(用于调试)
--append-output:附加到而不是破坏指定的输出文件
--resume <文件名>:恢复中止的扫描
--noninteractive:通过键盘禁用运行时交互
--stylesheet <path/URL>:将 XML 输出转换为 HTML 的 XSL 样式表
--webxml:参考 Nmap.Org 的样式表以获得更便携的 XML
--no-stylesheet:防止 XSL 样式表与 XML 输出相关联
杂项
-6:启用 IPv6 扫描
-A:启用操作系统检测、版本检测、脚本扫描和跟踪路由
--datadir <dirname>:指定自定义 Nmap 数据文件位置
--send-eth/--send-ip:使用原始以太网帧或 IP 数据包发送
--privileged:假设用户拥有完全特权
--unprivileged:假设用户缺乏原始套接字权限
-V:打印版本号
-h:打印此帮助摘要页。
知道原理后就也可以用一大串参数达到自己想要的扫描或功能。
***************************转载请注明出处,尊重原创!***************************
nmap命令说明的更多相关文章
- Nmap命令的29个实用范例
Nmap即网络映射器对Linux系统/网络管理员来说是一个开源且非常通用的工具.Nmap用于在远程机器上探测网络,执行安全扫描,网络审计和搜寻开放端口.它会扫描远程在线主机,该主机的操作系统,包过滤器 ...
- 十条常用nmap命令行格式
十条常用nmap命令行格式 ) 获取远程主机的系统类型及开放端口 nmap -sS -P0 -sV -O <target> 这里的 < target > 可以是单一 IP, 或 ...
- [转]给Linux系统管理员准备的Nmap命令的29个实用范例+ tsysv 系统服务器管理器
原文链接:http://os.51cto.com/art/201401/428152.htm Nmap即网络映射器对Linux系统/网络管理员来说是一个开源且非常通用的工具.Nmap用于在远程机器上探 ...
- 给Linux系统/网络管理员准备的Nmap命令的29个实用范例
我将用两个不同的部分来涵盖大部分NMAP的使用方法,这是nmap关键的第一部分.在下面的设置中,我使用两台已关闭防火墙的服务器来测试Nmap命令的工作情况. 192.168.0.100 – serve ...
- nmap命令总结
一.nmap是什么 nmap是一款网络扫描和主机检测的非常有用的工具,不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器.它可以适用于winodws,linux,mac等操作系统. ...
- Nmap 命令操作详解
首先在安装nmap 稳定版 https://nmap.org/download.html 选择安装目录 通过cmd 去使用也可以在 安装目录中找到 进行可视化操作 以下是nmap 命令 -sT TC ...
- 给Linux系统管理员准备的Nmap命令的29个实用范例
map即网络映射器对Linux系统/网络管理员来说是一个开源且非常通用的工具.Nmap用于在远程机器上探测网络,执行安全扫描,网络审计和搜寻开放端口.它会扫描远程在线主机,该主机的操作系统,包过滤器和 ...
- Nmap命令的常用实例
一.Nmap简介 nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端.确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting).它是网络管 ...
- kail linux nmap命令
可用于: 检测活在网络上的主机(主机发现)检测主机上开放的端口(端口发现或枚举)检测到相应的端口(服务发现)的软件和版本检测操作系统,硬件地址,以及软件版本检测脆弱性的漏洞(Nmap的脚本) ---- ...
- nmap命令详解
基础命令学习目录 原文链接:http://www.cnblogs.com/hongfei/p/3801357.html Nmap即网络映射器对Linux系统/网络管理员来说是一个开源且非常通用的工具. ...
随机推荐
- Codeforces 1850H:The Third Letter 带权并查集
1850H.The Third Letter Description: \(n\) 个人,\(m\) 个条件,每次给出两个人 \(a_i\) 和 \(b_i\) 一维的位置关系,以距离 \(d_i\) ...
- [ansible]建立ssh互信
创建密钥 # 创建基于rsa算法的密钥,也可以创建ed25519算法的密钥,性能比rsa高 # 一般直接回车即可 ssh-keygen -t rsa 少量建立互信 如果主机数不多的话,可以手动建立互信 ...
- 简单搭建基本Prometheus监控系统
前言 适用场景:新手入门:内网离线部署,只是需要了解服务器基本情况,不需要告警系统. 需要准备的安装包: grafana的docker包(先在线下载,然后docker save保存镜像.如果没有doc ...
- avue-crud属性配置项参数笔记分享
Avue 是一个基于Element-plus低代码前端框架,它使用JSON 配置来生成页面,可以减少页面开发工作量,极大提升效率: 虽然Avue官网上面都有这些配置说明,但是如果刚开始接触不熟悉框架的 ...
- 一个简单利用WebGL绘制频谱瀑布图示例
先看效果 还是比较节省性能的,这个还是包含了生成测试数据的性能,实际应用如果是直接通信获得数据应该还能少几毫秒吧! 准备工作 用了React,但是关系不大 WebGL的基础用法(推荐看一看掘金里的一个 ...
- 3.0 Python 迭代器与生成器
当我们需要处理一个大量的数据集合时,一次性将其全部读入内存并处理可能会导致内存溢出.此时,我们可以采用迭代器Iterator和生成器Generator的方法,逐个地处理数据,从而避免内存溢出的问题. ...
- nflsoj 选数1 2 3
5711 取数-1 状态表示:1维 集合:前 \(i\) 个数里面所有的选法和 属性:所有的选法和的最大值 状态计算:选或不选 选:\(f(i-1)+a_i\) 不选:\(f(i-1)\) #incl ...
- 深入探讨安全验证:OAuth2.0、Cookie与Session、JWT令牌、SSO与开放授权平台设计
什么是认证和授权?如何设计一个权限认证框架? 认证和授权是安全验证中的两个重要概念.认证是确认身份的过程,用于建立双方之间的信任关系.只有在认证成功的情况下,双方才可以进行后续的授权操作.授权则是在认 ...
- jQuery下拉框级联实现
参考代码: //企业类别级联 function getCatalog(){ var name=document.getElementById("Lcata").value; var ...
- 3天上手Ascend C编程丨通过Ascend C编程范式实现一个算子实例
本文分享自华为云社区<3天上手Ascend C编程 | Day2 通过Ascend C编程范式实现一个算子实例>,作者:昇腾CANN . 一.Ascend C编程范式 Ascend C编程 ...