web渗透测试系列 之 扫描(3)

Nmap-扫描器之王

今天我们来聊聊被称之为扫描器之王的nmap,一般我们在渗透的时候都会这样说,第一步nmap开路。Nmap是一款网络扫描和主机检测的工具。开源免费的。可用于:主机发现、端口发现或枚举、服务发现、检测操作系统,硬件地址,以及软件版本、检测脆弱性的漏洞(Nmap的脚本)

0x01:端口扫描用法

扫描方式选择

  • -sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描。
  • -sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。
  • -sN/sF/sX: 指定使用 TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。
  • --scanflags <flags>: 定制TCP包的flags。
  • -sI <zombiehost[:probeport]>: 指定使用idle scan方式来扫描目标主机(前提需要找到合适的zombie host)
  • -sY/sZ: 使用 SCTP INIT/COOKIE-ECHO 来扫描SCTP协议端口的开放的情况。
  • -sO: 使用IP protocol 扫描确定目标机支持的协议类型。
  • -b <FTP relay host>: 使用 FTP bounce scan扫描方式

端口参数与扫描顺序

-p <port ranges>: 扫描指定的端口

实例: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9(其中T代表TCP协议、U代表UDP协议、S代表SCTP协议)

-F: Fast mode – 快速模式,仅扫描TOP 100的端口

-r: 不进行端口随机打乱的操作(如无该参数,nmap会将要扫描的端口以随机顺序方式扫描,以让nmap的扫描不易被对方防火墙检测到)。

--top-ports <number>:扫描开放概率最高的number个端口(nmap的作者曾经做过大规模地互联网扫描,以此统计出网络上各种端口可能开放的概率。以此排列出最有可能开放端口的列表,具体可以参见文件:nmap-services。默认情况下,nmap会扫描最有可能的1000个TCP端口)

--port-ratio <ratio>: 扫描指定频率以上的端口。与上述--top-ports类似,这里以概率作为参数,让概率大于--port-ratio的端口才被扫描。显然参数必须在在0到1之间,具体范围概率情况可以查看nmap-services文件

简单扫描(搜索目标主机开放的端口号,运行的服务)

nmap 10.10.10.1

全面扫描(详细版本信息)

nmap -T4 -A -v 10.10.10.1

-A选项用于使用进攻性方式扫描

-T4指定扫描过程使用的时序,总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,推荐使用T4

-v 表示显示冗余信息,在扫描过程中显示扫描的细节.

探测指定端口的开放状态

例: nmap -p 80-445 10.10.10.1 扫描目标主机的80-445端口的开放情况

nmap -sS -sU -p T:80,U:445 10.10.10.1 以半连接的TCP SYN方式扫描目标主机的80端口,以UDP方式扫描目标主机的445端口

探测N个最有可能开放的端口 nmap -sS -sU -T4 --top -ports 100 10.10.20.53

参数-sS表示使用TCP SYN方式扫描TCP端口;

-sU表示扫描UDP端口;

-T4表示时间级别配置4级;

--top-ports 100表示扫描最有可能开放的100个端口(TCP和UDP分别100个端口)。

0x02:版本侦测

用于确定目标主机开放端口上运行的具体的应用程序及版本信息。

Nmap提供的版本侦测具有如下的优点:

  • 高速。并行地进行套接字操作,实现一组高效的探测匹配定义语法。
  • 尽可能地确定应用名字与版本名字。
  • 支持TCP/UDP协议,支持文本格式与二进制格式。
  • 支持多种平台服务的侦测,包括Linux/Windows/Mac OS/FreeBSD等系统。
  • 如果检测到SSL,会调用openSSL继续侦测运行在SSL上的具体协议(如HTTPS/POP3S/IMAPS)。
  • 如果检测到SunRPC服务,那么会调用brute-force RPC grinder进一步确定RPC程序编号、名字、版本号。
  • 支持完整的IPv6功能,包括TCP/UDP,基于TCP的SSL。
  • 通用平台枚举功能(CPE)
  • 广泛的应用程序数据库(nmap-services-probes)。目前Nmap可以识别几千种服务的签名,包含了180多种不同的协议。

版本侦测用法

比如目标主机把SSH的22号端口改成了2222端口,那么如果使用普通扫描只会发现2222端口是开启的,并不能知道2222号端口上运行的程序,通过加参数 -sV 进行版本扫描,可以探测到目标主机上2222端口运行的是SSH服务

-sV: 指定让Nmap进行版本侦测

--version-intensity <level>: 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。

--version-light: 指定使用轻量侦测方式 (intensity 2)

--version-all: 尝试使用所有的probes进行侦测 (intensity 9)

--version-trace: 显示出详细的版本侦测过程信息

nmap -sV 10.10.20.53

0x03:操作系统侦测

操作系统侦测用于检测目标主机运行的操作系统类型及设备类型等信息。Nmap拥有丰富的系统数据库 nmap-os-db,目前可以识别2600多种操作系统与设备类型。

-O: 指定Nmap进行OS侦测。

--osscan-limit: 限制Nmap只对确定的主机的进行OS探测(至少需确知该主机分别有一个open和closed的端口)。

--osscan-guess: 大胆猜测对方的主机的系统类型。由此准确性会下降不少,但会尽可能多为用户提供潜在的操作系统

0x04:Zenmap

Zenmap是Nmap官方提供的图形界面,通常随Nmap的安装包发布。

在目标栏输入IP地址/掩码位数 则工具会自动生成nmap命令,或者选择配置下拉选项,里面有集成好的10种扫描模式,也可以自己在命令对话框里编写自己的nmap命令。

扫描完成后

猜你喜欢

转载自blog.csdn.net/GUDUzhongliang/article/details/108708905