nmap命令_nmap的一些高级参数

1、检查主机是否有恶意行为

NMAP通过调用谷歌安全浏览服务API来检查主机是否进行恶意软件分发或者网络钓鱼攻击的行为。

使用脚本http-google-malware之前,先获取谷歌安全浏览服务API的密钥:

https://developers.google.com/safe-browsing/key_signup?csw=1

Nmap -p80 -script http-google-malware -script-args http-google-malware.api=<API><目标>

如果不使用API,也可以进行查询。

命令:Nmap -p80 --script http-google-malware -v scanme.Nmap.org

2、收集有效的邮箱

收集邮箱对渗透测试非常有用,我们可以对这些邮箱进行钓鱼工具或者暴力破解攻击。NMAP可以进行邮箱的收集,但是脚本http-google-email不在NMAP的官方资料库中,我们需要手动下载http://seclists.org/Nmap-dev/2011/q3/att-401/http-google-email.nse,并把它复制到本地脚本目录。

拷贝了http-google-email.nse之后,我们需要手动更新脚本数据库,执行如下的命令:

Nmap -script-updatedb

选项–script-args是用于设置NSE脚本的参数。例如:

Nmap -sV --script http-title --script-args http.useragent=”Mozilla 999 ” <目标>

3、获取主机信息并进一步深入

-O参数用来探测目标操作系统:

命令:Nmap -O 目标

通过分析目标的响应是否符合某些操作系统的特征,从而判断目标操作系统的类型。为了能更准确的探测操作系统,目标主机至少要有一个开放的端口和关闭的端口。当扫描多个目标时,选项–osscan-limit可以忽略不满足这个要求的主机以加快扫描速度。使用选项-v可以展示扫描过程。

命令:Nmap -v -O 目标

4、猜测操作系统

如果NMAP无法确定操作系统类型,通过选项–osscan-guess强制识别os。

命令:Nmap -O –osscan-guess 目标

它将列出的NMAP脚本数据库操作系统的所有可能的匹配。–fuzzy可以用作–osscan-guess的快捷方式。

如果目标至少有一个开放和一个关闭的TCP端口那么操作系统的类型识别会比较有效。选项–osscan-limit将会使NMAP不对没有满足这个要求的目标进行操作系统的识别。这样可以节省大量的时间,尤其是在对许多主机-Pn扫描。它只与选项-O或者-A搭配使用

5、–max-OS-tries(设置针对目标的操作系统检测的最大尝试次数)

当NMAP针对目标进行操作系统检测,并未能找到一个完美的匹配时,它通常会重复尝试。默认情况下,如果环境条件比较好,NMAP会尝试五次,如果条件比较差那么只会尝试二次。指定 –max-os-tries的值比较低的话(比如1)会加快NMAP的速度,但可能会错过潜在的可识别的目标。

命令:map -O –max-os-tries 目标

6、选项 –version-trace会让NMAP显示详细的扫描内容

命令:Nmap -sV –version-trace 目标

7、执行RPC扫描

选项-sR对目标进行RPC(远程过程调用)扫描

49799b936d7c26294911c0ef1f54d4c6.png

命令:Nmap -sR 目标

上述-sR扫描的输出显示有关目标系统上运行的RPC服务的信息。RPC与Unix和Linux系统上的NFS(网络文件系统)服务关系很紧密。

8、NMAP扫描使用-hostmap选项

此hostmap脚本基于第三方服务,而官方版本只支持BFK的DNS历史记录。正如我前面所说的,下载脚本(https://svn.Nmap.org/Nmap/scripts/hostmap-bfk.nse)并更新NMAP的脚本数据库,然后执行命令:

Nmap -p80 –script hostmap Nmap.org

这些参数–script hostmap -p80告诉NMAP的启动HTTP版的hostmap脚本,并限制只扫描80端口以加快这一任务。

该hostmap.nse查询两个不同的Web服务:BFK DNS记录和http://ip2hosts.com。 BFK DNS记录是一项免费服务,从公共DNS数据和ip2hosts收集其信息。这两项服务都是免费的,滥用他们将很有可能让你禁止使用该服务。

可以设定参数指定不同的搜索引擎。

Nmap -p80 –script hostmap –script-args hostmap.provider=BING <目标>
Nmap -p80 –script hostmap –script-args hostmap.provider=BFK <目标>
Nmap -p80 –script hostmap –script-args hostmap.provider=ALL <目标>

为了保存扫描每个IP的主机名,使用参数hostmap.prefix。设置此参数将创建一个在我们的工作目录<前缀><目标>文件名的文件:

Nmap -p80 –script hostmap-script-ARGS hostmap.prefix=hostfile <目标>

并行选项:

作为一个pentester我们不应该通过一个接一个的扫描浪费我们的时间。相反,我们可以通过并行扫描来优化。NMAP将目标IP段进行分组,然后在一次扫描一个组。一般情况下较大的分组是更有效的。缺点直到整个分组完成才能知道目标主机的情况。

并行处理有两个选项:最大值和最小值。

MIN:

选项–min-parallelism用于指定并行端口扫描操作的最小数量。

Nmap –min-parallelism [数量] [目标]

手动设置–min-parallelism选项可能会提升扫描性能,设置过高可能会产生不准确的结果。

MAX:

选项–max-parallelism用于指定并行端口扫描操作的最大数量。

Nmap –max-parallelism [数量] [目标]

主机分组大小选项:

nmap也可以设置主机分组的最大值和最小值。

MAX:

选项–max-hostgroup用于指定的Nmap并行扫描主机数的最大值。

Nmap –max-hostgroup [数目] [目标]

Min:

选项–min-hostgroup用于指定的Nmap并行扫描主机数的最小值。

Nmap –min-hostgroup [数目] [目标]

通过指定–min-hostgroup选项,Nmap尝试保持主机组的大小为指定值。

设置最大值会有效避免网络拥堵和避免网内安全设备的告警。

RTT 超时

TCP连接中,RTT(往返超时)是用于在通信中的滑动窗口协议超时值的测定,并依赖于以下要点:如果超时值太小,源很快就超时,造成不必要的重传;另一方面,如果在超时值太大,则源会花费太长的时间以从错误中恢复。

NMAP会维持一个超时值,决定它等待探针响应的时间,以及再次发送探针的间隔。这是基于以前的探针的响应时间来计算。

在扫描过程中,Nmap计算这些响应时间值的内部流程如下:

b9b8ee54e2d0d60828fafb7b184eec51.png

SRTT - 平滑往返时间:这个响应时间的 估算是基于观察客户端到服务端之间的通信状况如何。这个值以微秒计算。

RTTVAR - 往返时间方差:网络通信可以是非常难以预测的,而Nmap通过创造一系列超时值去补偿这种不确定性。如果未在此方差内接收响应,则Nmap认为这一个响应不可能永远出现。

NMAP初始超时

它控制网络响应初始超时。

命令:Nmap –initial-rtt-timeout [时间] [目标]

增加时间值将减少因超时分组重发的次数。通过降低值我们可以加快扫描,但我们必须小心这样做。设置RTT超时值太低,可以抵消任何潜在的性能提升,并导致结果不准确。

RTT最大值

选项–max-rtt-timeout用于指定最大RTT(往返时间)数据包响应超时。

命令:Nmap –max-rtt-timeout [时间] [目标]

默认情况下为达到最佳效果Nmap会动态调整RTT超时选项。最大RTT超时缺省值为10秒。手动降低 最大RTT超时将允许更快的扫描(尤其是当扫描大块地址)。提高最大RTT超时将防止Nmap在网络状况不佳的情况进行扫描时过早地放弃。典型值是在 100毫秒(快速/可靠的网络)和10000毫秒( 慢速/不可靠的网络)之间。

最大尝试次数

这个选项用于设置每个探针最大的重复次数。

命令:Nmap –max-retries [数目] [目标]

默认情况下,Nmap基于网络状况自动调整探针重传次数。如果我们要覆盖默认设置或解决连接问题的可以使用–max-retries选项。指定的数值会增加它完成一个扫描需要的时间,但会产生更精确的结果。降低–max-retries 我们可以加快扫描,但我们可能无法得到准确的结果。

TTL选项

TTL(存活时间)是因特网协议(IP)报文分组中的一个值,用于告诉网络路由器分组是否已经在网络中的时间过长而应丢弃。从渗透测试者的角度来看,一个TTL值可以帮助了解有关目标的大量信息。

选项–ttl用于指定扫描中的ttl值。

命令:Nmap –ttl [时间] [目标]

使用此选项发送的数据包都会有指定的TTL值。扫描目标时连接速度很慢,其中正常数据包可能会接收到响应之前超时,此选项很有用。

主机超时选项

选项–host-timeout指定Nmap在超时多少时间后放弃对主机的扫描。

命令:Nmap –host-timeout [时间] [目标]

如果它位于慢速或不可靠的网络上主机可能需要较长的时间来扫描。由速率限制防火墙保护的系统也可能需要相当长的时间来进行扫描。选项–host-timeout指示Nmap如果如果指定时间内未能完成扫描则放弃目标。在上述的例子中,扫描实际上花费更长的时间(超过一分钟)才能完成,这将导致的Nmap终止扫描(因为已经指定一分钟内)。扫描跨WAN或Internet连接的多个系统时,此选项特别有用。

最小扫描延迟

选项–scan-delay指示Nmap在发送探针之间的指定的最小时间间隔是多久。

命令:Nmap –scan-delay [时间] [目标]

一些系统会采用速率限制阻碍Nmap扫描尝试。默认情况下Nmap会检测系统的速率限制自动调节扫描延迟。在某些情况下我们需要自己设置扫描延迟比如在限速或有IDS防护的情况下。

最大扫描延迟

选项–max-scan-delay指示Nmap在发送探针之间的指定的最大时间间隔是多久。

命令:Nmap –max-scan-delay [时间] [目标]

指定–max-scan-delay这样可以加快扫描,但是会降低扫描精度,同时网络负载会变大。

最小发包速率

选项–min-rate用来指定Nmap每秒钟发送的数据包数量最小是多少。

命令:Nmap –min-rate [数量] [目标]

最大发包速率

选项–max-rate用来指定Nmap每秒钟发送的数据包数量最大是多少。

命令:Nmap –max-rate [数量] [目标]

在上面的例子中,–max-rate 30指示Nmap每秒发送不超过30个数据包。这会大大减缓扫描速度,但对试图躲避入侵检测系统或者扫描有速率限制的目标有帮助。

绕过RST包速率限制

选项–defeat-rst-ratelimit用于通过发送RST(重置请求)包来进行速率限制的主机。

命令:Nmap –defeat-rst-ratelimit [目标]

选项–defeat-rst-ratelimit在目标通过发送RST包来限制扫描速率的情况下非常有用,它可以加快扫描速度,然而会影响结果的准确度。不过这种情况非常少见,正因如此也很少使用这个选项。

到这里文章就结束了,在下一部分,我会介绍如何使用nmap进行防火墙绕过,Web服务审计,Web应用程序渗透测试,以及Nmap脚本引擎的开发。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值