渗透测试工具使用之Nmap详解
0x01 Nmap介绍
Namp(Network Mapper) 网络映射器,是一款开源免费的网络探测和安全审核工具,他被设计用来快速扫描大型网络,他有图形化界面版本Zenmap,分布式框架DNmap。
主要的功能及用途:
- 用于主机发现:发现网络中存活的主机
- 端口扫描:扫描目标主机上端口开放的情况
- 服务识别:识别目标主机上开放的服务以及服务的版本情况
- 系统检测:检测目标主机的操作系统以及版本,还有网络设备的硬件特性
- WAF识别:识别web服务器的防护设备WAF
- 漏洞识别:扫描目标主机上有无对应的漏洞
0x02 Nmap安装
Nmap下载地址:https://nmap.org/download.html, 下载,一直下一步安装即可,本次安装的是当前最新版namp 7.80。
安装完毕后回出现Nmap的图形版本Zenmap.
0x03 Namp使用
nmap帮助命令:
使用nmap --help 或者nmap都可以查看使用帮助信息:
参数说明:
目标说明:
主机发现说明:
扫描技术:
端口相关参数说明:
版本检测:
A)常规使用
nmap命令格式: Nmap + 扫描参数 + 目标地址(域名)网段
nmap -T 4 - A -v ip
-T 扫描时的时序(发包速度), 0-5 时序高速度快,但是容易被防火墙或IDS检测和屏蔽,-A 进攻性扫描, -v 扫描过程中显示详细形式
常规用法 | 命令 |
---|---|
主机IP扫描 | |
扫描单个地址 | nmap 192.168.98.160 |
扫描多个地址 | nmap 192.168.98.160 192.168.98.170 |
扫描同一网段的多个连续地址 | nmap 192.168.98.160-170 |
扫描目标地址所在的某一个网段 | nmap 192.168.98.160/24 |
从文件中导入目标IP,或网段进行扫描 | nmap -iL C:\Users\xxx\Desktop\targets.txt |
扫描排除指定目标的其余目标地址 | nmap 192.168.98.160/24 --exclude 192.168.98.2 |
从文件中导入要排除的指定主机 | nmap 192.168.98.160/24 --excludefile C:\User\xxx\Desktop\targets.txt |
端口扫描 | |
扫描目标主机的指定端口(默认全端口扫描) | nmap 192.168.98.160 -p 21,22,23,80 |
对目标主机进行路由跟踪 | nmap --traceroute 192.168.98.160 |
扫描目标地址所在C端主机在线情况 | nmap -sP 192.168.98.160/24 |
目标地址的操作系统识别 | nmap -O 192.168.98.160 |
目标系统开放端口的服务版本检测 | nmap -sV 192.168.0.105 |
探测防火墙的状态,使用-FIN扫描 | nmap -sF -T4 192.168.98.160 |
Nmap扫描出的端口状态:
状态 | 含义 |
---|---|
open | 开放的,外部可以访问 |
closed | 关闭,目标主机未开启该端口,不能访问 |
filterd | 被过滤的,表示端口被防火墙或其他网络设备阻止,不能访问 |
unfiltered | 未被过滤的,但是Nmap无法确定端口所处状态,需要进一步探测 |
open/filtered | 开放的或者被过滤的,Nmap不能识别 |
closed/filtered | 关闭的或者被过滤的,Nmap不能识别 |
B) 高级用法(使用脚本)
Nmap的脚本主要分为以下几类:
脚本 | 功能 |
---|---|
Auth | 负责处理鉴权证书(绕过鉴权)的脚本。 |
Broadcast | 在局域网内探查更多服务的开启情况,如DHCP/DNS/SQLServer等。 |
Brute | 针对常见的应用提供暴力破解方式,如HTTP/SMTP等。 |
Default | 使用-sC或-A选项扫描时默认的脚本,提供基本的脚本扫描能力。 |
Discovery | 对网络进行更多信息的搜集,如SMB枚举、SNMP查询等。 |
Dos | 用于进行拒绝服务攻击。 |
Exploit | 利用已知的漏洞入侵系统。 |
Externa | 利用第三方的数据库或资源。例如,进行Whois解析。 |
Fuzzer | 模糊测试脚本,发送异常的包到目标机,探测出潜在漏洞。 |
Intrusive | 入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽。 |
Malware | 探测目标机是否感染了病毒、开启后门等信息。 |
Safe | 此类与Intrusive相反,属于安全性脚本。 |
Version | 负责增强服务与版本扫描功能的脚本。 |
Vuln | 负责检查目标机是否有常见漏洞。 |
常见脚本参数说明:
使用 --script = 脚本名
参数 | 说明 |
---|---|
–sC/——script=default | 使用默认的脚本进行扫描 |
–script= | 使用某个脚本进行扫描 |
–script-args=key1=value1,key2=value2······ | 该参数用于传递脚本里的参数,key1是参数名,该参数对应value1这个值 |
–script-args-file=filename | 使用文件为脚本提供参数 |
–script-trace | 如果设置该参数,则显示脚本执行过程中发送与接收的数据 |
–script-updatedb | 在Nmap的scripts目录里有一个script.db文件,该文件保存了当前Nmap可用的脚本,类似于一个小型数据 |
C) Nmap实战用例
参数选项 | 说明 |
---|---|
鉴权扫描,扫描目标主机支持的认证登录方式,或弱口令检测 | Nmap --script=192.168.98.160 |
暴力破解,可以对数据库,smb,snmp等进行简单密码的暴力破解 | nmap --script=brute 192.168.98.160 |
常见的漏洞扫描 | nmap --script=vuln 192.168.98.160 |
常见服务识别 | nmap --script=realvnc-auth-bypass 192.168.98.160 |
探测局域网内的更多其他服务开启情况 | nmap -n -p 445 --script=broadcast 192.168.98.160 |
whois解析利用第三方的数据库或资源查询目标地址的信息 | nmap -script external baidu.com |