6.8 KiB
6.8 KiB
title, description, date, img, navigation
title | description | date | img | navigation | ||
---|---|---|---|---|---|---|
nmap高级应用技巧-NSE | Nmap Scripting Engine(NSE)是Nmap的核心扩展功能,通过Lua脚本实现自动化扫描、漏洞检测、信息收集等高级操作。 | 2025-08-12 | https://img.jiwei.xin/20250812130604330.png |
|
NSE
Nmap Scripting Engine(NSE)是Nmap的核心扩展功能,通过Lua脚本实现自动化扫描、漏洞检测、信息收集等高级操作。
NSE脚本按功能分为12大类,每类对应不同扫描需求
类别 | 核心目的 | 样例脚本 | 典型使用场合 |
---|---|---|---|
vuln | CVE/漏洞快速验证 | http-vuln-cve2017-5638 | 目标服务版本与已知漏洞匹配 |
safe | 只读式安全审计(无破坏性) | ssh2-enum-algos | 建立会话后立即枚举支持的算法 |
default | 默认已开启的基础信息采集 | http-title | 首次扫描时的“看一眼” |
discovery | 发现服务/子网/资产信息 | smb-os-discovery | 内网资产清点、OS 指纹识别 |
auth | 认证、密钥与票据处理 | ssh-hostkey | 密钥指纹比对、横向渗透准备 |
brute | 弱口令爆破 | http-form-brute | 对表单类登录口的暴力尝试 |
exploit | 利用已确认漏洞取得立足点(需授权) | http-vuln-cve2021-41773 | 实战攻击复现、漏洞验证 |
intrusive | 高交互操作(易被 IDS 告警) | http-slowloris | 拒绝服务场景模拟/压力测试(慎用!) |
malware | 嗅探后门或恶意软件痕迹 | http-malware-host | 威胁狩猎与入侵后取证 |
version | 精细化版本指纹 | http-apache-negotiation | 为后续补丁或 PoC 匹配做准备 |
broadcast | 广播域/多播发现 | nbstat | 内网渗透早期:快速识别 NetBIOS 设备 |
external | 外链第三方数据源(DNSBL 等) | dns-blacklist | 资产信誉检查、垃圾邮件源或钓鱼域名扫描 |
常用 NSE 脚本一览
脚本名称 | 主要用途 | Nmap 一键示例 |
---|---|---|
http-title | 抓取 HTTP 网站标题 | nmap --script http-title <target> |
https-redirect | 识别 HTTP→HTTPS 跳转链 | nmap --script https-redirect -p 80 <target> |
http-robtots | 收集目标 robots/disallow 条目 | nmap --script http-robots.txt -p 80 <target> |
http-headers | 枚举响应标头与安全策略 | nmap --script http-headers -p 80 <target> |
http-methods | 检测允许/禁止的 HTTP 方法 | nmap --script http-methods -p 80 <target> |
http-cors | 测试 CORS、CSRF 漏洞 | nmap --script http-cors <target> |
http-sql-injection | 基本 SQL 注入探针 | nmap --script http-sql-injection -p 80 <target> |
http-xssed | 与 xssed.com 集成交叉检测 | nmap --script http-xssed <target> |
smb-os-discovery | 枚举 SMB 服务器操作系统/域信息 | nmap --script smb-os-discovery -p 445 <target> |
smb-enum-shares | 列出共享目录(需 guest) | nmap --script smb-enum-shares -p 445 <target> |
smb-enum-users | 提取本地/域用户列表 | nmap --script smb-enum-users -p 445 <target> |
smb-vuln-ms17-010 | 探测 EternalBlue(MS17-010) | nmap --script smb-vuln-ms17-010 -p 445 <target> |
ssh-hostkey | 抓取并对比公钥指纹 | nmap --script ssh-hostkey -p 22 <target> |
ssh-brute | SSH 账号密码暴力破解(需授权) | nmap --script ssh-brute --script-args userdb=users.txt,passdb=pass.txt -p 22 <target> |
ssh2-enum-algos | 列出支持的算法与 KEX | nmap --script ssh2-enum-algos -p 22 <target> |
http-vuln-cve2023-XXXX | 按指定 CVE 编号进行漏洞检查(替换 XXXX) | nmap --script http-vuln-cve2023-XXXX <target> |
ftp-anon | 检测是否允许匿名登录 | nmap --script ftp-anon -p 21 <target> |
ftp-bounce | 检查是否允许 FTP Bounce 扫描 | nmap --script ftp-bounce -p 21 <target> |
dns-zone-transfer | 测试 AXFR(区域传输)泄露 | nmap --script dns-zone-transfer -p 53 <target> |
dns-brute | 字典爆破子域名 | nmap --script dns-brute --script-args dns-brute.domain=<domain> |
mysql-brute | 暴力破解 MySQL 实例 | nmap --script mysql-brute -p 3306 <target> |
mysql-audit | 核对 MySQL CIS/基线配置 | nmap --script mysql-audit --script-args mysql-audit.username='root',mysql-audit.password='pass123' -p 3306 <target> |
ssl-cert | 解析 TLS 证书详情 | nmap --script ssl-cert -p 443 <target> |
ssl-poodle | 探测 SSLv3 & POODLE 漏洞 | nmap --script ssl-poodle -p 443 <target> |
vulners | 基于 Vulners DB 的版本漏洞关联 | nmap --script vulners -sV <target> |
whois-ip | 查询归属 IP 段的 Whois 信息 | nmap --script whois-ip <target> |
smtp-enum-users | VRFY/EXPN 暴力枚举邮箱账户 | nmap --script smtp-enum-users -p 25 <target> |
自定义脚本
-- myecho.nse
local stdnse = require "stdnse"
description = [[极简回显脚本:打印自定义消息]]
author = "YourName"
license = "GPLv2"
categories = {"safe"}
-- 任何 TCP 端口都触发
portrule = function(host,port) return port.protocol == "tcp" end
action = function(host,port)
local msg = stdnse.get_script_args("myecho.msg") or "Hi from custom-NSE!"
return ("%s -> %s:%d (%s)"):format(msg, host.ip, port.number, port.service or "unknown")
end
# 复制.nse到脚本文件夹
sudo cp myecho.nse /usr/share/nmap/scripts/
nmap --script-updatedb # 更新索引
# 执行脚本
nmap --script myecho -p22 127.0.0.1
nmap --script myecho --script-args 'myecho.msg=HelloNSE' -p80 scanme.nmap.org
nmap --script '(safe or discovery) and myecho' -p80,443 10.0.2.0/24
总结
NSE 脚本可大幅提升 Nmap 在渗透测试和信息收集中的效率。建议定期关注 Nmap 官方脚本库更新(NSE Docs)以覆盖最新漏洞。