Nmap进阶
1.脚本介绍
Nmap的脚本默认存在于/Nmap/scripts文件夹下,如图3-71所示。
图3-71
Nmap的脚本主要分为以下几类。
— Auth:负责处理鉴权证书(绕过鉴权)的脚本。
— Broadcast:在局域网内探查更多服务器端开启情况的脚本,如DHCP、DNS、SQLServer等。
— Brute:针对常见的应用提供暴力破解的脚本,如HTTP、SMTP等。
— Default:使用参数“-sC”或“-A”扫描时默认的脚本,提供基本的脚本扫描能力。
— Discovery:对网络进行更多信息搜集的脚本,如SMB枚举、SNMP查询等。
— Dos:用于进行拒绝服务攻击的脚本。
— Exploit:利用已知的漏洞入侵系统的脚本。
— External:利用第三方的数据库或资源的脚本。例如,进行Whois解析。
— Fuzzer:模糊测试的脚本,发送异常的包到目标机,探测潜在漏洞。
— Intrusive:入侵性的脚本,此类脚本的风险太高,会导致目标系统崩溃、耗尽目标主机上的大量资源等风险。
— Malware:探测目标机是否感染了病毒、是否开启了后门等信息的脚本。
— Safe:与Intrusive相反,属于安全性脚本。
— Version:是负责增强服务与版本扫描功能的脚本。
— Vuln:负责检查目标机是否有常见漏洞的脚本,如检测是否存在MS08-067漏洞。
2.常用参数
用户还可根据需要,使用--script=参数进行扫描,常用参数如下。
— -sC/--script=default:使用默认的脚本进行扫描。
— --script=<Lua scripts>:使用某个脚本进行扫描。
— --script-args=key1=value1,key2=value2…:该参数用于传递脚本里的参数,key1是参数名,该参数对应value1这个值。如有更多的参数,使用逗号连接。
— --script-args-file=filename:使用文件为脚本提供参数。
— --script-trace:如果设置该参数,则显示脚本执行过程中发送与接收的数据。
— --script-updatedb:在Nmap的scripts目录里有一个script.db文件,该文件保存了当前Nmap可用的脚本,类似于一个小型数据库。如果我们开启Nmap并调用了此参数,则Nmap会自行扫描scripts目录中的扩展脚本,进行数据库更新。
— --script-help:调用该参数后,Nmap会输出该脚本对应的脚本使用参数,以及详细的介绍信息。
3.实例
(1)鉴权扫描。
使用参数“--script=auth”可以对目标主机或目标主机所在的网段进行应用弱口令检测,如图3-72所示。
nmap --script=auth 10.172.10.254
图3-72
(2)暴力破解攻击。
Nmap具有暴力破解的功能,可对数据库、SMB、SNMP等服务进行暴力破解,如图3-73所示。
nmap --script=brute 10.172.10.254
图3-73
(3)扫描常见的漏洞。
Nmap具备漏洞扫描的功能,可以检查目标主机或网段是否存在常见的漏洞,如图3-74所示。
nmap --script=vuln 10.172.10.254
图3-74
(4)应用服务扫描。
Nmap有多个针对常见应用服务(如VNC服务、MySQL服务、Telnet服务、Rsync服务等)的扫描脚本,此处以VNC服务为例,如图3-75所示。
nmap --script=realvnc-auth-bypass 10.172.10.254
图3-75
(5)探测局域网内更多服务的开启情况。
输入以下命令即可探测局域网内更多服务的开启情况,如图3-76所示。
nmap –n –p 445 --script=broadcast 10.172.10.254
图3-76
(6)Whois解析。
利用第三方的数据库或资源查询目标地址的信息,例如进行Whois解析,如图3-77所示。
nmap -script external baidu.com
图3-77
更多扫描脚本的使用方法可参考Nmap官方文档。
Ms08067安全实验室专注于网络安全知识的普及和培训,是专业的“图书出版+培训”的网络安全在线教育平台,专注于网络安全领域中高端人才培养。
平台已开设Web安全零基础就业,Web高级安全攻防进阶,红队实战攻防特训,Java代码安全审计,恶意代码分析与免杀实战,CTF基础实战特训营,网络安全应急响应,安全工具开发,AI与网络安全等系统培训课程。实验室出版安全图书《Web安全攻防:渗透测试实战指南》、《内网安全攻防:渗透测试实战指南》、《Python安全攻防:渗透测试实战指南》、《Java代码审计:入门篇》等。