Kali ❀ Nmap史上最详细参数解析梳理
文章目录
Nmap - Network Mapper 网络映射器:是一款开放源代码的网络探测和安全审核的工具,其设计目标是快速扫描大型网络或单个主机,Nmap以新颖的方式使用原始IP报文来发现网络上有哪些主机,哪些主机提供了什么服务(应用程序名称和版本信息),哪些服务运行在什么类型的操作系统(版本信息),他们使用什么类型的报文过滤器/防火墙,以及其他的功能;
常用功能
- 检测存活在某网络上的主机(主机发现);
- 检测某主机上开放的端口(端口发现);
- 检测到相应的端口运行的软件和版本(服务发现);
- 检测某主机的操作系统、硬件地址、软件版本;
- 检测脆弱性漏洞(脚本运行);
1、主机发现
语法:Nmap [选项][多选项][协议] [目标]
常用扫描
- -p:指定端口号或端口范围对目标扫描进行扫描;
- -F:快速扫描;
- -top-ports [数量]:开放率最高的数量端口进行扫描;
- -sS:TCP SYN快速扫描;
- -sT:TCP连接扫描;
- -sA:TCP ACK扫描;
- -sU:UDP端口扫描;
- -sl:端口完全欺骗扫描,伪装额外主机对目标进行扫描;
- -Pn:禁止ping后扫描,跳过主机发现的过程进行端口扫描;
- -6:开启IPv6扫描;
- -A:全面扫描;
- -v:显示详细信息;
注:如在root用户下执行,无参数则默认携带sS参数执行,非root用户默认执行sT参数;
root@kali:~# nmap 192.168.39.1-10 /指定某个IP地址范围进行扫描;
协议扫描
- -sP:仅使用ping扫描,回显做出响应的主机;
- -P0/Pn:用于防火墙禁止ping的情况下,可以用于穿透防火墙;
- -PS:使用TCP SYN ping扫描对目标主机进行存活探测;默认ping扫描是使用TCP ACK和ICMP echo请求对目标进行存活探测,当目标防火墙阻止这些请求时,可以使用TCP SYN ping扫描对目标主机进行存活探测;
- -PA:使用TCP ACK ping扫描对目标主机进行存活探测;很多防火墙会封锁SYN报文,此时可以使用TCP ACK ping扫描对目标主机进行存活探测;
- -PU:使用UDP ping扫描目标主机,如果返回ICMP端口不可达错误,主机存活;如果返回各种ICMP错误信息,则主机不存活;
ICMP Ping Types扫描
- -PE:使用ICMP扫描;
- -PP:使用时间戳ping扫描;
- -PM:使用ICMP地址掩码ping扫描;
ARP Ping扫描
- -PR:使用ARP进行扫描;
路由跟踪
- traceroute:查出本地主机到目标主机之间经过的网络节点信息;
域名扫描
- -sL:列出指定网络上的每台主机,默认使用域名解析获取他们的主机名称;
- -n:禁止目的地址作为反向域名解析;
- -R:对目标地址作为反向域名解析;
- -system-dns:直接发送查询到主机上自带配置的域名服务来解析域名;
2、扫描状态
root@kali:~# nmap 192.168.39.132
Starting Nmap 7.91 ( https://nmap.org ) at 2021-01-19 22:14 EST
Nmap scan report for 192.168.39.132
Host is up (0.00027s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
443/tcp open https
3306/tcp open mysql
MAC Address: 00:0C:29:C3:CF:AE (VMware)
Nmap done: 1 IP address (1 host up) scanned in 2.31 seconds
状态描述
- Opend:端口开启;
- Closed:端口关闭;
- Filtered:端口被过滤,数据没有达到目标主机,返回结果为空白,数据包被防火墙拦截;
- Unfiltered:未被过滤,数据有到达目标主机,但是不能识别端口的当前状态;
- Open | filtered:开放或者被过滤,端口没有返回值,主要发生在UDP、IP、FIN、NULL和Xmas扫描中;
- Closed | filtered:关闭或者被过滤,只发生在IP ID idle扫描;
3、指纹识别(服务与系统探测)
- -sV:通过端口对应的服务器,识别其版本信息;
- -A:全面扫描,包括系统版本和服务版本;
- -allports:全端口扫描,只有此参数才可以扫描所有端口;
- –version-intensity:设置扫描强度,0-9,9最高;强度越高,扫描时间越长,越有可能正确识别;
- –version-light:等于强度2;
- –version-all:等于强度9;
- –version-trace:获取详细版本信息;
- -sR:扫描是否为PRC端口,存在PRC端口则返回程序和版本号;
- -O:探测操作系统,识别Windows与Linux;等用于–osscan-limit;
- -osscan-guess/fuzzy:猜测扫描目标的系统(不可靠性);
4、渗透测试
Nmap内置了很多脚本文件,我们可以使用这些脚本文件执行某些扫描;
root@kali:~# ls /usr/share/nmap/scripts /脚本存放路径;
信息收集
(1)whois查询
脚本名称:whois-domain.nse
root@kali:~# nmap --script=whois-domain www.baidu.com
(2)DNS记录查询与爆破
脚本名称:dns-brute.nse
root@kali:~# nmap --script=dns-brute www.baidu.com
(3)扫描Web漏洞
脚本名称:http:stored-xss.nse
root@kali:~# nmap --script=http:stored-xss www.baidu.com /扫描目标是否具有XSS漏洞;
漏洞利用
(1)检测Mysql密码
脚本名称:mysql-empty-password.nse
root@kali:~# nmap --script=mysql-empty-password 目标 /是否存在空白口令或密码为root;
(2)FTP服务认证
脚本名称:ftp-brute.nse
root@kali:~# nmap --script=ftp-brute -p 21目标 /是否存在弱口令;
root@kali:~# nmap --script=ftp-brute --script-args userdb=user.txt,passdb=pass.txt -p 21 目标
/使用字典进行弱口令检测;
(3)wordpass认证
脚本名称:http-wordpress-brute.nse
root@kali:~# nmap --script=http-wordpress-brute -p 80 目标
root@kali:~# nmap --script=http-wordpress-brute --script-args userdb=user.txt,passdb=pass.txt -p 80
5、结果输出
标准输出
- -oN +路径:输出为标准格式到指定目录位置;
XML输出
- -oX +路径:输出为XML格式到指定目录位置;
