Nmap 脚本引擎
NSE 脚本
Nmap 脚本引擎 是 CoddyKit 上的免费 Ethical Hacking Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Ethical Hacking Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Ethical Hacking Academy 课程共包含 4 节课。
什么是 NSE
Nmap 脚本引擎(NSE)通过使用Lua编写的脚本扩展 Nmap。它将 Nmap 从端口扫描器转变为灵活的自动化平台,可用于发现、版本检测、漏洞检查等任务。
Nmap 随附数千个社区脚本,覆盖范围极其广泛的服务和任务。
脚本类别
NSE 脚本按其行为和风险划分为不同的类别:
- safe:不太可能对目标造成损害。
- intrusive:可能导致服务崩溃或中断。
- vuln:检查已知漏洞。
- auth、brute、discovery、exploit、malware:分别用于特定目的。
借助类别,您可以一次运行某一整类脚本。
默认脚本
-sC 标志会运行默认脚本集,这是精选的一组安全且实用的脚本。它等同于 --script=default。
这是很好的初步扫描方式:它会抓取横幅、枚举基本信息,并在不造成侵扰的情况下发现容易获得的细节。
nmap -sC 192.168.1.10
# Runs the default safe script set运行特定脚本
使用 --script 可以运行指定名称的脚本、以逗号分隔的脚本列表、某个类别,甚至通配符模式。
nmap --script http-title 192.168.1.10
nmap --script 'http-*' 192.168.1.10按类别运行
您可以启动整个类别的脚本。运行 vuln 类别,会一次使用多个检查已知漏洞的脚本检测目标。
您可以使用布尔表达式组合类别,精确控制要运行的内容。
nmap --script vuln 192.168.1.10
nmap --script 'safe and discovery' 192.168.1.10脚本参数
许多脚本可以通过 --script-args 接受参数,例如凭据、字典路径或目标 URL。
nmap --script http-brute \
--script-args http-brute.path=/admin 192.168.1.10漏洞扫描
NSE 包含功能强大的漏洞脚本。vulners 会根据检测到的版本查询 CVE 数据库,而特定服务的脚本则会检查确切的漏洞,例如 smb-vuln-ms17-010(EternalBlue)。
这些检查必须经过授权;漏洞脚本可能具有侵扰性,并可能影响脆弱的系统。
nmap -sV --script vulners 192.168.1.10
nmap --script smb-vuln-ms17-010 -p445 192.168.1.10脚本存放位置
脚本存储在 Nmap 的脚本目录中,通常为 /usr/share/nmap/scripts。索引数据库可让 Nmap 解析类别和名称。
添加新脚本后,请刷新索引,以便系统识别这些脚本。
ls /usr/share/nmap/scripts | grep smb
nmap --script-updatedb查找合适的脚本
要发现有用的脚本,可以搜索脚本目录或阅读帮助文本。--script-help 标志会在运行脚本前输出其说明和参数。
nmap --script-help http-enum
# Shows what the script does and its args将 NSE 与其他标志结合使用
将 NSE 与版本检测结合使用时效果尤其出色,因为这样脚本才能知道应针对哪些服务。一次典型的全面扫描会将 -sV 与脚本结合使用,并保存输出结果。
请谨慎使用具有侵扰性的类别,并始终在获得授权的范围内操作。
nmap -sV -sC -p- -oA full_scan 192.168.1.10编写自己的脚本
由于 NSE 使用 Lua,您可以为不常见的服务或重复性检查编写自定义脚本。脚本会定义其要针对的端口或服务(即规则),以及一个针对匹配项运行的操作函数。
要有效使用 NSE,您不必亲自编写脚本;但了解其引擎具有可扩展性,就能理解 NSE 为何不断发展,以及为什么几乎针对您遇到的任何服务都可能已有相应脚本。
快速检查
思考脚本类别及其风险。
回顾
您了解了 Nmap 脚本引擎:
- NSE 运行归入不同类别的 Lua 脚本(safe、intrusive、vuln、brute 等)。
-sC会运行安全的默认脚本集;--script可运行指定名称、模式或类别的脚本。- 使用
--script-args传入凭据和选项;请先查看--script-help。 - vulners 和 smb-vuln-ms17-010 等漏洞脚本可发现已知缺陷。
- 将其与
-sV结合,并使用-oA保存结果;只有在获得授权时才使用具有侵扰性的脚本。
至此,Nmap 深入学习和 EthicalHacking 额外模块的内容全部完成。
常见问题解答
「Nmap 脚本引擎」课时是免费的吗?
是的 — 「Nmap 脚本引擎」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ethical Hacking Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ethical Hacking Academy 课程共包含 4 节课。
「Nmap 脚本引擎」这节课中我会学到什么?
NSE 脚本 你通过在浏览器中直接运行的动手代码来练习 Ethical Hacking Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Ethical Hacking Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Ethical Hacking Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「Nmap 脚本引擎」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Ethical Hacking Academy 课中编写并运行代码吗?
能。每节 Ethical Hacking Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。