一、初始Nmap
Nmap("Network Mapper(网络映射器)")是一款开放源代码的网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个主机也没有问题。Nmap以新颖的方式使用原始IP报文来发现网络上有哪些主机,那些主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息),它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。虽然Nmap通常用于安全审核,许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息,管理服务升级计划,以及监视主机和服务的运行。
Nmap的一些功能
- 检测活在网络上的主机(发现主机)
- 检测主机上开放的端口(端口发现和枚举)
- 检测到相应的端口(服务发现)的软件和版本
- 检测操作系统,硬件地址,以及软件版本
- 检测脆弱性的漏洞(Nmap的脚本)
二、Nmap常用扫描指令
-sS:TCP SYN扫描(前面的s表示扫描,S表示扫描的方式)
-p:指定端口号扫描
-v:显示扫描过程
-F:快速扫描
-Pn:禁止ping后扫描:跳过主机发现的过程进行端口扫描
-A:全面的系统扫描:包括打开操作系统检测、版本探测、脚本扫描、路径跟踪
扫描指定IP开放端口
命令:
nmap -sS -p 端口号 -v xxx.xxx.xxx.xxx //使用半开扫描,指定端口号1-65535,显示扫描过程(端口不指定默认扫描全部端口)
穿透防火墙扫描
命令:
nmap -Pn -A xxx.xxx.xxx.xxx
服务器禁止ping命令,试试-Pn,nmap参数配合使用
-sU:UDP扫描
-sT:TCP扫描
-sV:扫描系统版本和程序版本号检测
-n:禁止反向域名解析
-R:反向域名解析
-6:启用IPv6扫描
-scrpt=vuln:全面的漏洞扫描
漏洞扫描
命令:
nmap -script=vuln xxx.xxx.xxx.xxx //使用vuln脚本进行全面的漏洞扫描
指纹识别扫描
命令:
nmap -sV -v xxx.xxx.xxx.xxx //扫描系统和程序版本号检测,并且显示扫描过程
三、Nmap扫描状态
Opend:端口开启
Closed:端口关闭
Filtered:端口被过滤,数据没有到达主机,返回的结果为空,数据被防火墙
Unfiltered:未被过滤,数据有到达主机,但是不能识别端口的当前状态
Open|filtered:开放或者被过滤,端口没有返回值,主要发生在UDP、IP、FIN、NULL和Xmas扫描中
Closed|filtered:关闭或者被过滤,只发生在IP ID idle扫描
四、Nmap漏洞扫描
脚本保存位置:/usr/share/nmap/scripts
root@kali:/usr/share/nmap/scripts# ls | grep whois
whois-domain.nse
whois-ip.nse
1、whois信息查询
whois信息扫描
命令:
nmap -script=whois-domain shop.aqlab.cn(站点) //使用whois脚本对站点进行whois信息查询
2、DNS解析查询
root@kali:/usr/share/nmap/scripts# ls | grep dns
broadcast-dns-service-discovery.nse
dns-blacklist.nse
dns-brute.nse
DNS解析爆破扫描
命令:
nmap --script=dns-brute shop.aqlab.cn(站点) //使用DNS爆破脚本进行dns解析扫描
五、Nmap报告输出
标准保存
命令:
mnap -oN test.txt shop.aqlab.cn //标准保存会包输出结果到指定文件
保存为Xml格式
命令:
nmap -oX test.xml shop.aqlab.cn //保存为xml格式需要用浏览器打开查看结果