Nmap参考文档> http://www.nmap.com.cn/doc/manual.shtm#7
Regular scan:常规扫描
nmap
Intense scan:强烈的扫描
nmap -T4 -A -v
-T4:-T选项及其编号(0-5)或它们的
名称。 模板名称是偏执狂(0),偷偷摸摸(1),礼貌(2),
正常(3),攻击性(4)和疯狂(5)。 前两个是
IDS规避。 礼貌模式会减慢扫描速度以使用更少的带宽
和目标机器资源。 Normalmode是默认值,因此-T3
什么也没做。 积极的模式速度通过使
假设您使用的区域是快速可靠的网络。
终于疯狂了。 假设你在
快速网络还是愿意牺牲一些准确性来提高速度。
例如,
-T4。 禁止TCP的动态扫描延迟超过10毫秒
端口和-T5上限为5ms。
-T4,执行速度更快
Intensescan plus UDP:强烈的扫描,加上udp协议扫描
nmap -sS -sU -T4-A -v
-sS:-sS(TCP SYN扫描)。
SYN扫描是默认且最受欢迎的扫描选项
原因。可以快速执行,扫描数千个端口
在不受受限防火墙阻碍的快速网络上每秒传输一次。
它也相对不引人注目和隐秘,因为它从不
完成TCP连接。 SYN scanworks可针对任何兼容的TCP
堆栈,而不是取决于特定平台的特性
与Nmap的FIN / NULL / Xmas一样,Maimon andidle扫描也是如此。它还允许
打开,关闭和关闭之间清晰,可靠的区别
过滤后的状态。
该技术通常称为半开扫描,因为
您没有打开完整的TCP连接。您发送一个SYN数据包,就像
您将要打开一个真实的连接,然后等待
响应。 SYN / ACK表示端口正在监听(打开),而
RST(重置)指示非侦听器。如果没有回应
多次重传后收到的端口被标记为
过滤。如果无法访问ICMP,则该端口也会被标记为已过滤
收到错误(类型3,代码1、2、3、9、10或13)。该端口是
如果SYN数据包(没有ACK标志)为
收到回应。这可以依赖于极为罕见的TCP
被称为同时打开或拆分握手连接的功能
(请参阅http://nmap.org/misc/split-handshake.pdf)。
-sU:-sU(UDP扫描)。
互联网上最流行的服务运行在TCP上
协议,UDP [6]服务得到了广泛的应用。 DNS,SNMP和DHCP
(注册的端口53、161 / 162和67/68)是最多的三个
共同。因为UDP扫描通常较慢且较困难
与TCP相比,一些安全审核员会为这些端口签名。这是一个
错误,因为可利用的UDP服务非常普遍,并且攻击者
当然,不要忽略整个协议。幸运的是,Nmap可以
帮助盘点UDP端口。
UDP扫描通过-sU选项激活。它可以与
TCP扫描类型,例如SYN scan(-sS),用于检查两个协议
在同一运行中。
UDP扫描通过将UDP数据包发送到每个目标端口而起作用。对于
一些常见的端口,例如53和161,特定于协议的有效负载
已发送,但对于大多数端口,数据包为空。
--data-length选项可用于发送固定长度的随机数
每个端口的有效负载或(如果您指定的值为0)禁用
有效载荷。如果ICMP端口不可达错误(类型3,代码3)为
返回时,端口关闭。其他ICMP无法到达的错误(类型
3,代码1、2、9、10或13)将端口标记为已过滤。
有时,服务会以UDP数据包响应,证明
它是开放的。如果重传后没有收到回应,
端口被分类为已过滤。这意味着端口
可能是开放的,或者也许数据包过滤器阻止了
通讯。版本检测(-sV)可用于帮助
区分真正开放的端口和过滤的端口。
UDP扫描面临的一大挑战是如何快速进行扫描。打开并
过滤的端口很少发送任何响应,从而使Nmap超时
然后进行重新传输以防探测或响应
输了。封闭的港口通常是更大的问题。他们
通常会发回ICMP portunreachable错误。但与
关闭的TCP端口发送的RST数据包响应SYN或
连接扫描,许多主机速率限制。 ICMP端口不可达
邮件默认情况下。 Linux和Solaris特别严格
对这个。例如,Linux2.4.20内核限制目标
每秒无法到达的消息(在net / ipv4 / icmp.c中)。
Nmap检测到速率限制并相应降低速度,以避免
使用目标机器的无用数据包淹没网络
将下降。不幸的是,Linux风格的限制是每个数据包一个数据包
秒扫描65,536端口需要18个小时以上。的想法
加快UDP扫描速度包括并行屏蔽更多主机,
首先对流行端口进行快速扫描,然后从
在防火墙后面,并使用--host-timeout跳过慢速主机。
Intense scan, all TCP ports:对目标的所有端口进行强烈的扫描
nmap -p 1-65535 -T4 -A -v
Intensescan, no ping:对目标进行强烈的扫描,不进行主机发现
nmap -T4 -A -v -Pn
-Pn:将所有主机视为联机-跳过主机发现
-Pn(无ping)。
此选项完全跳过Nmap发现阶段。一般,
Nmapuse在此阶段确定较重的活动机器
扫描。默认情况下,Nmap仅执行繁重的探测,例如端口
对主机进行扫描,版本检测或操作系统检测
发现起来了。使用-Pn禁用主机发现会导致Nmap
尝试针对每个目标IP请求的扫描功能
指定的地址。因此,如果B类目标地址空间(/ 16)为
在命令行中指定,将扫描所有65,536个IP地址。
与列表扫描一样,跳过了正确的主机发现,但是
停止并打印目标列表,Nmap继续执行
请求的功能就好像每个目标IP都处于活动状态。跳过ping
扫描和端口扫描,同时仍允许NSE运行,请使用两者
选项-Pn -sn一起。
对于本地以太网上的计算机,ARP扫描仍将
表现良好(除非指定了--disable-arp-ping或--send-ip)
因为Nmap需要MAC地址才能进一步扫描目标主机。在
Nmap的早期版本-Pn为-P0。和-PN ..
Ping scan 在发现主机后,不进行端口扫描
nmap -sn
sn:Ping扫描-禁用端口扫描
-sn(无端口扫描)。
此选项告诉Nmap在主机发现后不要进行端口扫描,
并且仅打印出响应扫描的可用主机。
这通常称为“ ping扫描”,但您也可以要求
运行traceroute和NSE主机脚本。默认情况下,这是一个步骤
比列表扫描更具侵入性,通常可用于
相同的目的。它允许对目标网络进行侦察
没有引起太多的关注。知道有多少主机在运行
对攻击者而言,比列表扫描提供的列表更有价值
每个IP和主机名。
系统管理员经常发现此选项也很有价值。它
可以轻松地用于计算网络上的可用计算机或
监视服务器可用性。这通常称为ping扫描,
比ping广播地址更可靠,因为许多
主机不回复广播查询。
使用-sn完成的默认主机发现包括ICMP回显
请求,TCP SYN到端口443,TCP ACK到端口80和ICMP
默认情况下的时间戳请求。由无特权的人执行时
用户,仅SYN数据包(使用连接调用)发送到端口80
和443在目标上。当特权用户尝试扫描目标时
在本地以太网上,除非使用--send-ip,否则将使用ARP请求。
被指定。 -sn选项可以与任何
发现探针类型(-P *选项,-Pn除外),以实现更大的发现
灵活性。如果其中任何探针类型和端口号选项为
使用时,默认探针将被覆盖。当使用严格的防火墙时
在运行Nmap的源主机和目标之间
网络,建议使用那些高级技术。除此以外
当防火墙掉下探针或它们的主机时,主机可能会丢失
回应。
Nmap的先前版本-sn被称为-sP。
Quick scan:快速扫描
nmap -T4 -F
-F:-F:快速模式-扫描的端口少于默认扫描
-F(快速(受限端口)扫描)。
指定您希望扫描的端口数少于默认端口数。
通常,Nmap每次扫描都会扫描最常见的1,000个端口
协议。 使用-F时,该值减少为100。
Nmap需要一个包含频率信息的nmap-services文件
以便了解最常见的端口。 如果端口频率
信息不可用,可能是因为使用了自定义
nmap-services文件,Nmap扫描所有命名的端口以及端口1-1024。
在这种情况下,-F表示仅扫描在
服务文件。
Slow comprehensive scan:慢速综合性扫描
nmap -sS -sU -T4 -A -v -PE -PP -PS80,443 -PA3389-PU40125 -PY -g 53 --script "default or (discovery and safe)"
-PE / PP:ICMP回显,时间戳
-PS端口列表(TCP SYN Ping)。
此选项发送设置了SYN标志的空TCP数据包。的
默认目标端口为80(可在编译时配置为
更改DEFAULT_TCP_PROBE_PORT_SPEC。在nmap.h中)。
可以将端口指定为参数。语法与
对于-p,除了端口类型说明符(如T :)不是
允许的。示例为-PS22和-PS22-25,80,113,1050,35000。注意
-PS和端口列表之间不能有空格。如果
指定了多个探测,它们将并行发送。
SYN标志向远程系统建议您正在尝试
建立连接。通常,目标端口为
关闭,然后发送回RST(重置)数据包。如果端口碰巧
首先,目标将采取TCP的第二步
三向握手。通过响应SYN / ACK TCP数据包。的
运行Nmap的计算机,然后通过断开连接的新生连接
用RST响应而不是发送ACK数据包
完成三向握手并建立完整连接。
RST数据包由运行Nmap的计算机的内核发送
对意外SYN / ACK的响应,而不是Nmap本身。
Nmap不在乎端口是打开还是关闭。要么
先前讨论的RSTor SYN / ACK响应告诉Nmap
hostis可用并且响应迅速。
在Unix上,只有特权用户root。通常能够
发送和接收原始TCP数据包。
解决方法是自动采用的。从而连接系统
针对每个目标端口启动愈伤组织。具有以下效果
向目标主机发送SYN数据包,以尝试建立
连接。如果连接返回成功或快速
ECONNREFUSED失败,基础TCPstack必须已收到
SYN / ACK或RST,主机标记为可用。如果连接
尝试挂起,直到达到超时为止,主机是
标记为向下。
-PA -PA端口列表(TCP ACK Ping)。
TCP ACK ping与刚刚讨论的SYN ping非常相似。
您可能会猜到的区别是TCP ACK标志
isset而不是SYN标志。这种ACK封包据称是
通过已建立的TCP连接确认数据,但没有这种方法
连接存在。因此,远程主机应始终以RST响应
数据包,公开它们在过程中的存在。
-PA选项使用与SYN探针(80)相同的默认端口,并且
也可以采用相同格式的目标端口列表。如果
非特权用户尝试此操作,讨论了连接解决方法
以前使用。此解决方法不完善,因为connect是
实际上是发送SYN数据包而不是ACK。
同时提供SYN和ACK ping探针的原因是
绕过防火墙的机会。许多管理员配置
路由器和其他简单的防火墙来阻止传入的SYN数据包
除了那些打算用于公共服务(例如公司网站)的网站
站点或邮件服务器。这样可以防止其他传入连接
组织,同时允许用户畅通无阻
到Internet的传出连接。这种无状态方法
占用防火墙/路由器上的少量资源,并且分布广泛
受硬件和软件过滤器支持。的Linux
Netfilter / iptables。防火墙软件提供--syn便利
实现这种无状态方法的选择。无状态时
这样的防火墙规则已经到位,SYN ping探针(-PS)
发送到封闭的目标端口时很可能被阻止。在这样的
在这种情况下,ACK探针会在遵循这些规则时发光。
防火墙的另一种常见类型使用状态规则,该规则会丢弃
意外的数据包。最初发现此功能主要是在
高端防火墙,尽管它在
年份。 Linux Netfilter / iptables系统通过以下方式支持此功能
--state选项,可根据连接对数据包进行分类
州。 SYN探针更有可能在这样的系统上工作,例如
意外的ACK数据包通常被识别为伪造的
下降。解决这个难题的方法是同时发送SYN和ACK
通过指定-PS和-PA进行探测。
-PS和PA一起使用来最大限度的避过防火墙等安全设备的检测
-g/--source-port : Use given portnumber
nmap --script "default or safe"
Thisis functionally equivalent to nmap --script "default,safe". It
loadsall scripts that are in the default category or the safe
category or both.
- 列出开放了指定端口的主机列表
nmap -sT -p 80 -oG – 192.168.1.* | grep open
- 列出开放了指定端口的主机列表
- 在某段子网上查找未占用的 IP
nmap -T4 -sP 192.168.2.0/24 && egrep “00:00:00:00:00:00″ /proc/net/arp
- 在某段子网上查找未占用的 IP
- 在局域网上扫找 Conficker 蠕虫病毒
nmap -PN -T4 -p139,445 -n -v –script=smb-check-vulns –script-args safe=1 192.168.0.1-254
- 在局域网上扫找 Conficker 蠕虫病毒
- 8 ) 使用诱饵扫描方法来扫描主机端口
sudo nmap -sS 192.168.0.10 -D 192.168.0.2 - 11.最终扫描结果可以通过-oG -oX等输出
附:简书上比较好的文章:> https://www.jianshu.com/p/dc0a9b3eae77?_wv=1031