Nmap高级用法与典型场景

发表于:2015-1-26 11:01

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:AspirationFlow    来源:51Testing软件测试网采编

  SYN扫描
  首先可以利用基本的SYN扫描方式探测其端口开放状态。
  nmap -sS -T4 
  扫描输出为:
  All 997 ports are filtered
  PORT    STATE  SERVICE
  80/tcp  open   http
  113/tcp closed auth
  507/tcp open   crs
  我们可以看到SYN方式探测到3个端口开放,而有997个端口被过滤。Nmap默认扫描只扫描1000个最可能开放的端口,如果想扫描全部的端口,使用命令nmap -sS -T4-p- 
  FIN扫描
  然后可以利用FIN扫描方式探测防火墙状态。FIN扫描方式用于识别端口是否关闭,收到RST回复说明该端口关闭,否则说明是open或filtered状态。
  nmap -sF -T4 
  扫描输出为:
  PORT      STATE         SERVICE
  7/tcp     open|filtered echo
  9/tcp     open|filtered discard
  11/tcp    open|filtered systat
  13/tcp    open|filtered daytime
  23/tcp    open|filtered telnet
  25/tcp    open|filtered smtp
  37/tcp    open|filtered time
  79/tcp    open|filtered finger
  80/tcp    open|filtered http
  更多端口,此处省略
  ACK扫描
  然后利用ACK扫描判断端口是否被过滤。针对ACK探测包,未被过滤的端口(无论打开、关闭)会回复RST包。
  nmap -sA -T4 
  Not shown: 997 unfiltered ports
  PORT      STATE    SERVICE
  135/tcp   filtered msrpc
  1434/tcp  filtered ms-sql-m
  32777/tcp filtered sometimes-rpc17
  从结果可以997个端口是未被过滤的(unfiltered),而3个(135/1434/32777)被过滤了。所以,将ACK与FIN扫描的结果结合分析,我们可以找到很多开放的端口。例如7号端口,FIN中得出的状态是:open或filtered,从ACK中得出的状态是unfiltered,那么该端口只能是open的。
  Window扫描
  当然也可以利用Window扫描方式,得出一些端口信息,可以与之前扫描分析的结果相互补充。Window扫描方式只对某些TCPIP协议栈才有效。
  window扫描原理与ACK类似,发送ACK包探测目标端口,对回复的RST包中的Window size进行解析。在某些TCPIP协议栈实现中,关闭的端口在RST中会将Window size设置为0;而开放的端口将Window size设置成非0的值。
  nmap -sW -p- -T4 docsrv.caldera.com
  输出结果:
  PORT      STATE    SERVICE
  7/tcp     open     echo
  9/tcp     open     discard
  11/tcp    open     systat
  13/tcp    open     daytime
  更多端口,此处省略
  在采用多种方式获取出防火墙状态后,可以进一步进行应用程序与版本侦测及OS侦测。
  此处不再赘述!
  3     扫描路由器
  Nmap内部维护了一份系统与设备的数据库(nmap-os-db),能够识别数千种不同系统与设备。所以,可以用来扫描主流的路由器设备。
  3.1  扫描思科路由器
  nmap -p1-25,80,512-515,2001,4001,6001,9001 10.20.0.1/16
  思科路由器会在上述端口中运行了常见的服务。列举出上述端口开放的主机,可以定位到路由器设备可能的IP地址及端口状态。
  3.2  扫描路由器TFTP
  nmap –sU –p69 –nvv target
  大多数的路由器都支持TFTP协议(简单文件传输协议),该协议常用于备份和恢复路由器的配置文件,运行在UDP 69端口上。使用上述命令可以探测出路由器是否开放TFTP。
  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包探测对方主机。只要上述的探测包中得到一个回复,就可以证明目标主机在线。
32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号