Files
estel_docs/content/blog/1.技术栈/973.nmap高级应用技巧-NSE.md
estel 4569d80f03
Some checks failed
CI / lint (push) Has been cancelled
CI / typecheck (push) Has been cancelled
CI / build (ubuntu-latest) (push) Has been cancelled
chore: 更新图片链接域名从lijue-me.oss-cn-chengdu.aliyuncs.com到img.jiwei.xin
2025-09-08 19:52:04 +08:00

6.8 KiB
Raw Permalink Blame History

title, description, date, img, navigation
title description date img navigation
nmap高级应用技巧-NSE Nmap Scripting EngineNSE是Nmap的核心扩展功能通过Lua脚本实现自动化扫描、漏洞检测、信息收集等高级操作。 2025-08-12 https://img.jiwei.xin/20250812130604330.png
icon
simple-icons:openstreetmap

NSE

Nmap Scripting EngineNSE是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 探测 EternalBlueMS17-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)以覆盖最新漏洞。