之前只是了解了简单的 nmap 的端口扫描,并没有深入了解其他的指令,比方说隐蔽式扫描, SYN 扫描等等,实际上 nmap 远比我想象的强大,
所以有必要将学到的指令给记录下来,以备以后复习用
语法:
nmap[空格][参数][空格][目标]
快速扫描:
namp [目的IP] //将会扫描常规端口
扫描常用参数:
参数 | 说明 |
---|---|
-v | 显示扫描过程 |
-sV | 探测端口服务版本(比方说中间件版本) |
-h | 帮助选项 |
-p | 指定端口,单端口 直接输入数字即可,范围内则 1-65535 |
-O | 系统检测,可能存在误报,(-osscan-guess 猜测最接近目标的区配的操作系统类型) |
-A | 全面系统检测,启动脚本检测,扫描等 |
-il | 读取主机列表文件,例如"-iL d:\iplist.txt" |
-sT | TCP connect 扫描,但是会在目标机器上留下大量的连接错误日志 |
-sS | 半开扫描,很少有系统能够记录日志,不过要 root 权限 |
-sF -sN | 秘密 FIN 扫描, Xmas Tree , Null 扫描模式 |
-sU | UDP 扫描,但是不可靠 |
-sA | 这项高级的扫描方法用来穿过防火墙的规则集 |
-Pn | 扫描之前不需要用 ping 命令, 有些防火墙禁止 ping 命令,可以用这些选项. |
-oN/-oX/-oG | 写入报告文件,分别是正常,XML,grepable 三种模式 |
-T4 | 针对TCP端口禁止动态扫描超过10ms |
咋一看这些参数也许是很令人头大,但是在我一点点输入这些参数的时候,也发现了一些规律,这些参数大都是英文单词的缩写,比方说 -sV 结合后面说明 我的想法是 scan Version 发现版本,在上面的参数中有 s 大都可以看作 scan ,后面就是扫描方式或者其他方式.我相信只要有一点英语基础,应该可以很快看出规律.
普通扫描举例
扫描一个网段:
nmap 192.168.31.0/24 //后面是子网掩码,感兴趣可以再了解
nmap 192.168.31.0-200 //扫描1-200 的主机
穿透防火墙扫描
nmap -Pn -A 192.168.31.1
输出文件
nmap -A 192.168.31.1 -oX test.xml
主机发现
参数 | 说明 |
---|---|
-sp | ping 扫描 |
-PO | 无 ping 扫描 |
-PS | TCP SYN Ping 扫描 |
-PA | TCP ACK Ping 扫描 |
-PU | UDP Ping 扫描 |
-PE;-PP;-PM | ICMP ping Types 扫描 |
-PR | ARP Ping 扫描 |
-n | 禁止 DNS 反向解析 |
-R | 反向域名解析 |
-system-dns | 使用系统域名解析器 |
-sL | 列表扫描 |
-6 | 扫描 IPV6 地址 |
–traceroute | 路由跟踪 |
-PY | SCTP INIT Ping 扫描 |
说明
-PE 是向目标发送 ICMP Echo 数据包检测目标主机是否在线,使用 PE 选项打开回声请求功能.
-PP 选项是 ICMP 时间戳 ping 扫描
-PM 进行 ICMP 地址掩码进行 ping 扫描
另外对于防火墙不同的策略,选择不同的主机扫描方式,SYN;ACK等为了绕过防火墙禁止用不同的方式.
端口扫描
参数 | 说明 |
---|---|
-T | 时序选择 |
-p | 端口扫描顺序 |
-sS | TCP SYN扫描 |
-sT | TCP 连接扫描 |
-sU | UDP 扫描 |
-sN;-sF;-sX | 隐蔽扫描 |
-sA | TCP ACK 扫描 |
-sW | TCP 窗口扫描 |
-sM | TCP Maimon 扫描 |
–scanflags | 自定义 TCP 扫描 |
-sl | 空闲扫描 |
-s | IP 协议扫描 |
-b | FTP Bounce 扫描 |
说明
时序选择:
T0(偏执的):非常慢的扫描,用于IDS逃避。
-T1(鬼祟的):缓慢的扫描,用于IDS逃避。
-T2(文雅的):降低速度以降低对带宽的消耗,此选项不常用。
-T3(普通的):默认,根据目标的反应自动调整时间。
-T4(野蛮的):快速扫描,常用扫描方式,需要在很好的网络环境下进行扫描,请求可能会淹没目标。
-T5(疯狂的):极速扫描,这种扫描方式以牺牲准确度来提示扫描速度。
指纹识别与探测
参数 | 说明 |
---|---|
-sV | 版本探测 |
–allports | 全端口版本探测 |
–version-intensity | 设置扫描强度 |
–version-all | 重量级扫描 |
–verssion-light | 轻量级扫描 |
–version-trace | 获取详细版本信息 |
-sR | RPC 扫描 |
-O | 启用系统探测 |
–osscan-limit | 对指定目标进行操作系统探测 |
–osscan-guess;–fuzzy | 推测系统识别 |
说明
设置扫描强度:
使用Nmap进行扫描的时候,Nmap发送一系列探测报文,–version-intensity选项可以为每个报文赋予1~9之间的值。
被赋予较低值的探测报文对大范围的常见服务有效,而被赋予较高值的报文一般没有实际作用,强度水平说明了应该使用哪些探测报文。
当我们赋予的值越高,服务越有可能被正确识别,但是这也会牺牲相当长的一段实际,强度必须在0~9,默认的强度是7。
nmap -sV --version-intensity 3 192.168.31.1