Nmap高级用法与典型场景(3)

发表于:2015-07-09来源:uml.org.cn作者:不详点击数: 标签:软件测试
3.3 扫描路由器操作系统 与通用PC扫描方式类似,使用-O选项扫描路由器的操作系统。-F用于快速扫描最可能开放的100个端口,并根据端口扫描结果进一步做

  3.3 扫描路由器操作系统

  与通用PC扫描方式类似,使用-O选项扫描路由器的操作系统。-F用于快速扫描最可能开放的100个端口,并根据端口扫描结果进一步做OS的指纹分析。

nmap -O -F -n 192.168.1.1

  4 扫描互联网

  Nmap内部的设计非常强大灵活,既能扫描单个主机、小型的局域网,也可以扫描成千上万台主机从中发掘用户关注的信息。扫描大量主机,需要对扫描时序等参数进行仔细的优化。

  4.1 发现互联网上web服务器

nmap -iR 100000 -sS -PS80 -p 80 -oG nmap.txt

  随机地产生10万个IP地址,对其80端口进行扫描。将扫描结果以greppable(可用grep命令提取)格式输出到nmap.txt文件。

  可以使用grep命令从输出文件提取关心的细节信息。

  4.2 统计互联网主机基本数据

  Nmap的创始人Fyodor在2008年的Black Hat大会发表一篇演讲,讲的是如何使用Nmap来扫描互联网(Nmap: Scanning the Internet),资料地址:http://nmap.org/presentations/BHDC08/。

  Fyodor进行互联网扫描的初衷是统计出网络经验数据并用之优化Nmap的性能。例如,根据统计出每个端口开放的概率,优先扫描常见端口,以节省用户的时间。

  产生随机IP地址

  产生100万个随机的IP地址,并将之保存到文件中,方便后续扫描时作为参数输入。

nmap -iR 1200000 -sL -n | grep "not scanned" | awk '{print $2}' |
 sort -n | uniq >! tp; head -25000000 tp >! tcp-allports-1M-IPs; rm tp

  上述命令含义:随机生成1200000个IP地址(-iR 120000),并进行列表扫描(-sL,列举出IP地址,不进行真正的扫描),不进行dns解析操作(-n),这样将产生Nmap列表扫描的结果。在此结果中搜出未扫描的行(grep “not scanned”),打印出每一行的第二列内容(awk ‘{print $2}’,也就是IP地址),然后对获取到的IP地址进行排序(sort -n),然后剔除重复IP地址,将结果保存到临时文件tp,再取出前1000000个IP地址保存到tcp-allports-1M-IPs文件中,删除临时文件。

  总之,此处产生了1000000个随机IP地址存放在tcp-allports-1M-IPs文件中。

  优化主机发现

nmap -sP -PE -PP -PS21,22,23,25,80,113,31339-PA80,113,443,
10042 --source-port 53 -T4 -iL tcp-allports-1M-IPs

  上述命令进行主机发现:使用产生的IP地址(-iL tcp-allports-1M-IPs),指定发送包的源端口为53(--source-port 53,该端口是DNS查询端口,一般的防火墙都允许来自此端口的数据包),时序级别为4(-T4,探测速度比较快),以TCP SYN包方式探测目标机的21,22,23,25,80,113,31339端口,以TCP ACK包方式探测对方80,113,443,10042端口,另外也发送ICMP ECHO/ICMP TIMESTAMP包探测对方主机。只要上述的探测包中得到一个回复,就可以证明目标主机在线。

  完整的扫描命令

  在准备了必要的IP地址文件,并对主机发现参数优化后,我们就得到最终的扫描命令:

nmap -S [srcip] -d --max-scan-delay 10 -oAlogs/tcp-allports-%T-%D 
-iL tcp-allports-1M-IPs --max-retries 1--randomize-hosts -p-
 -PS21,22,23,25,53,80,443 -T4 --min-hostgroup 256 --min-rate175 –max-rate 300

  上述命令用于扫描互联网上100万台主机全部的TCP端口的开放情况。

  使用包含100万个IP地址的文件(-iL tcp-allports-1M-IPs),源端IP地址设置为srcip(指定一个IP地址,保证该IP地址位于统一局域网中,否则无法收到目标机的回复包),主机发现过程使用TCP SYN包探测目标机的21,22,23,25,53,80,443,扫描过程将随机打乱主机顺序(--randomize-hosts,因为文件中的IP已经排序,这里将之打乱,避免被防火墙检查出),端口扫描过程检查全部的TCP端口(-p-,端口1到65535),使用时序级别为4(-T4,速度比较快),将结果以XML/grepable/普通格式输出到文件中(-oA logs/tcp-allports-%T-%D,其中%T表示扫描时间,%D表示扫描日期)。

原文转自:http://www.ltesting.net