脚本类别
discovery(发现)
346. http-enum
枚举流行的 Web 应用程序和服务器使用的目录。
这将解析与 Nikto Web 应用程序扫描器格式相似的指纹文件。但是,此脚本更进一步,内置了高级模式匹配,并且能够识别 Web 应用程序的特定版本。
您还可以使用 http-fingerprints.nikto-db-path 解析 Nikto 格式的数据库。这将尝试实时解析 nikto 数据库中定义的大多数指纹。有关此内容的更多文档,请参阅 nselib/data/http-fingerprints.lua 文件。
目前,可以在 nselib/data 文件夹中的 Nmap 目录下找到该数据库。该文件名为 http-fingerprints,文件头中有其功能的详细描述。
许多指纹都是我 (Ron Bowes) 发现的,其中许多来自 Yokoso 项目,经 Kevin Johnson (http://seclists.org/nmap-dev/2009/q3/0685.html) 许可使用。
最初,此脚本尝试访问两个不同的随机文件,以检测未返回正确 404 Not Found 状态的服务器。如果它们返回 200 OK,则主体会删除任何非静态数据(URI、时间等)并保存。如果两次随机尝试返回不同的结果,则脚本中止(因为无法区分看起来像 200 的 404 与实际的 200)。这将防止大多数误报。
此外,如果根文件夹返回 301 Moved Permanently 或 401 AuthenticationRequired,此脚本也将中止。如果根文件夹已消失或需要身份验证,则几乎没有希望在其中找到任何东西。
默认情况下,只显示返回 200 OK 或 401 AuthenticationRequired 的页面。但是,如果设置了 http-enum.displayall 脚本参数,则将显示所有结果(404 Not Found 和随机文件返回的状态代码除外)。http-fingerprints 数据库中的条目可以指定自己的标准来接受页面为有效。
http-enum.basepath
在每个请求前面添加的基本路径。前/尾斜杠将被忽略。
http-fingerprints.nikto-db-path
查看 nikto 数据库的给定路径。然后,它将 nikto 数据库中的记录转换为我们的 Lua 表格式,并将它们添加到我们当前的指纹中(如果它们尚不存在)。不幸的是,我们当前的实现有一些限制:* 它不支持带有多个“dontmatch”模式的探测记录。* 它不支持“match”模式的逻辑 AND。* 它不支持为探测发送额外的标头。这意味着,如果 nikto 指纹需要上述功能之一,它将不会被加载。在撰写本文时,6573 个 Nikto 指纹中的 6546 个正在成功加载。此运行时 Nikto 指纹集成由 Nikto 合著者 Chris Sullo 建议,如 http://seclists.org/nmap-dev/2013/q4/292 中所述
http-enum.displayall
将此参数设置为显示可能指示有效页面的所有状态代码,而不仅仅是 200 OK 和 401 AuthenticationRequired 页面。虽然这更有可能找到某些隐藏文件夹,但也会产生更多的误报。
http-enum.category
设置为类别(如指纹文件中所定义)。一些选项是“攻击”、“数据库”、“常规”、“微软”、“打印机”等。
http-enum.fingerprintfile
指定从中读取指纹的其他文件。
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap -sV --script=http-enum scanme.nmap.org
347. http-errors
此脚本会抓取网站并返回所有错误页面。
脚本将返回所有响应 http 代码等于或高于 400 的页面(按错误代码排序)。要更改此行为,请使用 errcodes 选项。
默认情况下,脚本会在 40 页内进行抓取和搜索。对于大型 Web 应用程序,请确保增加 httpspider 的 maxpagecount 值。请注意,脚本将变得更具侵入性。
http-errors.errcodes
我们感兴趣的错误代码。默认值:nil(所有代码 >= 400)
slaxml.debug
请参阅 slaxml 库的文档。
httpsspider.doscraping、httpspider.maxdepth、httpspider.maxpagecount、httpspider.noblacklist、httpspider.url、httpspider.useheadfornonwebfiles、httpspider.withindomain、httpspider.withinhost
请参阅 httpspider 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap -p80 --script "http-errors.nse" ip/域名
http-favicon
已演示过。这里不再演示。
348. http-feed
此脚本会爬取网站以查找任何 RSS 或 Atom 源。
默认情况下,此脚本会在 40 页内进行抓取和搜索。对于大型 Web 应用程序,请确保增加 httpsspider 的 maxpagecount 值。请注意,此脚本将变得更具侵入性。
slaxml.debug
请参阅 slaxml 库的文档。
httpsspider.doscraping、httpspider.maxdepth、httpspider.maxpagecount、httpspider.noblacklist、httpspider.url、httpspider.useheadfornonwebfiles、httpspider.withindomain、httpspider.withinhost
请参阅 httpsspider 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
sudo nmap -p80 --script "http-feed.nse" scanme.nmap.org
http-generator
已演示过。这里不再演示。
349. http-gitweb-projects-enum
从 gitweb(Git 修订控制系统的 Web 界面)检索 Git 项目、所有者和描述的列表。
http-gitweb-projects-enum.path
指定 gitweb 的位置(默认值:/)
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap -p80 www.example.com --script "http-gitweb-projects-enum"
350. http-google-malware
检查主机是否在 Google 的可疑恶意软件和钓鱼服务器黑名单中。这些列表不断更新,是 Google 安全浏览服务的一部分。
为此,脚本会查询 Google 的安全浏览服务,您需要拥有自己的 API 密钥才能访问 Google 的安全浏览查找服务。请在 http://code.google.com/apis/safebrowsing/key_signup.html 注册您的 API 密钥
要了解有关 Google 安全浏览的更多信息:
http://code.google.com/apis/safebrowsing/
要注册并获取您的个人 API 密钥:
http://code.google.com/apis/safebrowsing/key_signup.html
http-google-malware.url
要检查的 URL。默认:http/https://host
http-google-malware.api
Google 安全浏览查找服务的 API 密钥
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap -p80 --script "http-google-malware" scanme.nmap.org
351. http-grep
抓取网站并尝试将所有页面和 URL 与给定字符串进行匹配。匹配项按发现它们的 URL 进行计数和分组。
内置电子邮件、IP、SSN、Discover、Amex 等模式的功能。脚本默认搜索电子邮件和 IP。
http-grep.breakonmatch
如果匹配单个模式类型,则返回输出。
http-grep.builtins
提供单个或一系列内置类型。支持电子邮件、电话、万事达卡、discover、visa、amex、ssn 和 ip 地址。如果您只输入脚本参数 http-grep.builtins,则将启用所有参数。
http-grep.maxdepth
蜘蛛的初始 URL 下的最大目录数量。负值将禁用限制。(默认值:3)
http-grep.withinhost
仅蜘蛛同一主机内的 URL。(默认值:true)
http-grep.withindomain
仅蜘蛛同一域内的 URL。这会扩大 withinhost 的范围,并且不能组合使用。(默认值:false)
http-grep.match
在 URL 和页面内容中匹配的字符串或由分隔符分隔的模式列表
http-grep.maxpagecount
要访问的最大页面数量。负值禁用限制(默认值:20)
http-grep.url
开始抓取的 URL。这是相对于扫描主机的 URL,例如 /default.html(默认值:/)
slaxml.debug
请参阅 slaxml 库的文档。
httpsspider.doscraping、httpsspider.maxdepth、httpsspider.maxpagecount、httpsspider.noblacklist、httpsspider.url、httpsspider.useheadfornonwebfiles、httpsspider.withindomain、httpsspider.withinhost
请参阅 httpsspider 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
nmap -p 80 www.example.com --script "http-grep" --script-args='match="[A-Za-z0-9%.%%%+%-]+@[A-Za-z0-9%.%%%+%-]+%.%w%w%w?%w?",breakonmatch'
nmap -p 80 www.example.com --script "http-grep" --script-args 'http-grep.builtins ={"mastercard", "discover"}, http-grep.url="example.html"'
352. http-headers
对 Web 服务器的根文件夹(“/”)执行 HEAD 请求并显示返回的 HTTP 标头。
useget
设置为强制使用 GET 请求而不是 HEAD。
path
请求的路径,例如 /index.php。默认为 /。
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap -sV --script=http-headers scanme.nmap.org
353. http-hp-ilo-info
尝试从 HP iLO 主板中提取信息,包括版本和地址。
HP iLO 主板在 <ip>/xmldata?item=all 处存在未经身份验证的信息泄露。它列出了主板信息,例如服务器型号、固件版本、MAC 地址、IP 地址等。此脚本使用 slaxml 库来解析 iLO xml 文件并显示信息。
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap --script "http-hp-ilo-info" -p 80 ip/域名
354. http-icloud-findmyiphone
通过查询 MobileMe 网络服务 (需要身份验证) 检索所有启用“查找我的 iPhone”的 iOS 设备的位置。
http-icloud-findmyiphone.username
Apple Id 用户名
http-icloud-findmyiphone.password
Apple Id 密码
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap -sn -Pn --script "http-icloud-findmyiphone" --script-args='username=username,password=password' ip/域名
355. http-icloud-sendmsg
通过 Apple MobileMe 网络服务向 iOS 设备发送消息。设备必须使用“查找我的 iPhone”应用程序注册 Apple ID。
http-icloud-sendmsg.username
Apple ID 用户名
http-icloud-sendmsg.sound
布尔值,指定在显示消息时是否应播放响亮的声音。(默认值:true)
http-icloud-sendmsg.subject
要发送到设备的消息的主题。
http-icloud-sendmsg.message
要发送到设备的消息正文。
http-icloud-sendmsg.deviceindex
应将消息发送到的设备索引(@see http-icloud-sendmsg.listdevices)
http-icloud-sendmsg.password
Apple ID 密码
http-icloud-sendmsg.listdevices
列出由指定 Apple ID 管理的设备。
slaxml.debug
请参阅 slaxml 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
nmap -sn -Pn --script "http-icloud-sendmsg" --script-args="username=user,password=pass,http-icloud-sendmsg.listdevices" 192.168.174.132
nmap -sn -Pn --script "http-icloud-sendmsg" --script-args="username=user,password=pass,deviceindex=1,subject='subject',message='hello world.',sound=false" 192.168.174.132
356. http-internal-ip-disclosure
确定 Web 服务器在发送不带 Host 标头的 HTTP/1.0 请求时是否泄露其内部 IP 地址。
某些配置错误的 Web 服务器在返回重定向响应时会在响应标头中泄露其内部 IP 地址。这是某些版本的 Microsoft IIS 的已知问题,但也会影响其他 Web 服务器。
http-internal-ip-disclosure.path
URI 路径。默认值:/
sudo nmap --script "http-internal-ip-disclosure" ip/域名
sudo nmap --script "http-internal-ip-disclosure" --script-args "http-internal-ip-disclosure.path=/path" 192.168.174.129
357. http-jsonp-detection
尝试发现 Web 服务器中的 JSONP 端点。JSONP 端点可用于绕过 Web 浏览器中的同源策略限制。
该脚本在响应中搜索回调函数以检测 JSONP 端点。它还尝试通过 URL 确定回调函数(回调函数可能完全或部分可从 URL 控制),并尝试通过 URL 强行破解最常见的回调变量。
参考文献:https://securitycafe.ro/2017/01/18/practical-jsonp-injection/
http-jsonp-detection.path
请求的 URL 路径。默认路径为“/”。
slaxml.debug
请参阅 slaxml 库的文档。
httpsspider.doscraping、httpspider.maxdepth、httpspider.maxpagecount、httpspider.noblacklist、httpspider.url、httpspider.useheadfornonwebfiles、httpspider.withindomain、httpspider.withinhost
请参阅 httpsspider 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap -p 80 --script "http-jsonp-detection" scanme.nmap.org
http-ls
已演示过。这里不再演示。
358. http-mcmp
检查 Web 服务器是否允许 mod_cluster 管理协议 (MCMP) 方法。
该脚本发送 MCMP PING 消息以确定协议支持,然后发出 DUMP 命令以转储 mod_cluster_manager 看到的当前配置。
参考:
https://developer.jboss.org/wiki/Mod-ClusterManagementProtocol
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap -sV --script=http-mcmp ip/域名
359. http-mobileversion-checker
检查该网站是否有移动版本。
newtargets
如果设置了此项,则将任何新发现的主机添加到 nmap 扫描队列。默认值:nil
httpspider.doscraping、httpspider.maxdepth、httpspider.maxpagecount、httpspider.noblacklist、httpspider.url、httpspider.useheadfornonwebfiles、httpspider.withindomain、httpspider.withinhost
请参阅 httpsspider 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
slaxml.debug
请参阅 slaxml 库的文档。
max-newtargets
请参阅目标库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
nmap -p443 --script "http-mobileversion-checker.nse" baidu.com
http-ntlm-info
已演示过。这里不再演示。
http-open-proxy
已演示过。这里不再演示。
360. http-open-redirect
抓取网站并尝试识别开放重定向。开放重定向是通常以 URL 作为参数并以 HTTP 重定向 (3XX) 响应目标的处理程序。开放重定向的风险在 http://cwe.mitre.org/data/definitions/601.html 中进行了描述。
只有直接链接到目标网站的开放重定向才能通过这种方式发现。如果未链接开放重定向器,则不会发现它。
http-open-redirect.maxdepth
初始 url 下要抓取的目录的最大数量。负值将禁用该限制。(默认值:3)
http-open-redirect.maxpagecount
要访问的页面的最大数量。负值将禁用该限制(默认值:20)
http-open-redirect.url
开始抓取的 url。这是相对于扫描主机的 URL,例如 /default.html(默认值:/)
http-open-redirect.withindomain
仅抓取同一域内的 URL。这会扩大 withinhost 的范围,并且不能组合使用。(默认值:false)
http-open-redirect.withinhost
仅抓取同一主机内的 URL。(默认值:true)
slaxml.debug
请参阅 slaxml 库的文档。
httpsspider.doscraping、httpspider.maxdepth、httpspider.maxpagecount、httpspider.noblacklist、httpspider.url、httpspider.useheadfornonwebfiles、httpspider.withindomain、httpspider.withinhost
请参阅 httpsspider 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
nmap --script=http-open-redirect ip/域名
361. http-php-version
尝试从 Web 服务器检索 PHP 版本。PHP 有许多魔法查询,它们会返回随 PHP 版本而变化的图像或文本。此脚本使用以下查询:
/?=PHPE9568F36-D428-11d2-A769-00AA001ACF42:获取 GIF 徽标,该徽标会在愚人节当天发生变化。
/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000:获取 HTML 信用页面。
魔法查询列表位于 http://www.0php.com/php_easter_egg.php。该脚本还会检查是否有任何标头字段值以“PHP”开头,并报告该值(如果找到)。
5.5.0 之后的 PHP 版本不响应这些查询。
链接:
http://phpsadness.com/sad/11
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap -sV --script=http-php-version ip/域名
362. http-put
使用 HTTP PUT 方法将本地文件上传到远程 Web 服务器。您必须使用 NSE 参数指定文件名和 URL 路径。
http-put.file
- 应上传到服务器的本地文件的完整路径
http-put.url
- 存储文件的远程目录和文件名,例如 (/uploads/file.txt)
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap -p 80 scanme.nmap.org --script "http-put" --script-args "http-put.url='/uploads/rootme.php',http-put.file='/tmp/rootme.php'"
363. http-qnap-nas-info
尝试从 QNAP 网络附加存储 (NAS) 设备检索型号、固件版本和启用的服务。
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
sudo nmap --script "http-qnap-nas-info" ip/域名
364. http-referer-checker
告知有关跨域包含脚本的信息。包含外部 javascript 脚本的网站将其部分安全性委托给第三方实体。
slaxml.debug
请参阅 slaxml 库的文档。
httpsspider.doscraping、httpspider.maxdepth、httpspider.maxpagecount、httpspider.noblacklist、httpspider.url、httpspider.useheadfornonwebfiles、httpspider.withindomain、httpspider.withinhost
请参阅 httpsspider 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap -p80 --script "http-referer-checker.nse" scanme.nmap.org
http-robots.txt
已演示过。这里不再演示。
365. http-robtex-reverse-ip
通过查询 Robtex 服务 (https://www.robtex.com/ip-lookup/) 获取目标 IP 地址的最多 100 个正向 DNS 名称。
由于 Robtex 的 API 发生变化,*暂时禁用*。请参阅 https://www.robtex.com/api/
http-robtex-reverse-ip.host
要查找的主机的 IPv4 地址
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap --script "http-robtex-reverse-ip" --script-args "http-robtex-reverse-ip.host='45.33.32.156'" scanme.nmap.org
366. http-robtex-shared-ns
通过查询 http://www.robtex.com/dns/ 上的 Robtex 服务,查找最多 100 个使用与目标相同的名称服务器的域名。
目标必须通过 DNS 名称指定,而不是 IP 地址。
由于 Robtex 的 API 发生变化,*暂时禁用*。请参阅 https://www.robtex.com/api/
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
sudo nmap --script "http-robtex-shared-ns" scanme.nmap.org
367. http-sap-netweaver-leak
检测允许匿名访问 KM 单元导航页面的 SAP Netweaver Portal 实例。此页面泄露文件名、ldap 用户等。
启用知识管理单元的 SAP Netweaver Portal 允许未经身份验证的用户通过 URL“/irj/go/km/navigation?Uri=/”列出文件系统目录。
此问题已报告,不会修复。
参考:
https://help.sap.com/saphelp_nw73ehp1/helpdata/en/4a/5c004250995a6ae10000000a42189b/frameset.htm
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
vulns.short、vulns.showall
请参阅 vulns 库的文档。
nmap -p 80 --script "http-sap-netweaver-leak" ip/域名
368. http-security-headers
检查 OWASP 安全标头项目中给出的与安全性相关的 HTTP 响应标头,并简要描述标头及其配置值。
该脚本使用 http.head 向服务器请求标头,并对其进行解析以列出找到的标头及其配置。 该脚本检查 HSTS(HTTP 严格传输安全)、HPKP(HTTP 公钥密码)、X-Frame-Options、X-XSS-Protection、X-Content-Type-Options、Content-Security-Policy、X-Permitted-Cross-Domain-Policies、Set-Cookie、Expect-CT、Cache-Control、Pragma 和 Expires。
参考:https://www.owasp.org/index.php/OWASP_Secure_Headers_Project https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
http-security-headers.path
请求的 URL 路径。默认路径为“/”。
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
sudo nmap -p 80 --script "http-security-headers" ip/域名
369. http-sitemap-generator
抓取 Web 服务器并显示其目录结构以及每个文件夹中文件的数量和类型。请注意,列出的具有“其他”扩展名的文件是没有扩展名或属于根文档的文件。
http-sitemap-generator.withindomain
仅抓取同一域内的 URL。这会扩大 withinhost 的范围,并且不能组合使用。(默认值:false)
http-sitemap-generator.maxdepth
抓取初始 URL 下的最大目录数量。负值将禁用限制。(默认值:3)
http-sitemap-generator.maxpagecount
访问的最大页面数量。负值将禁用限制(默认值:20)
http-sitemap-generator.url
开始抓取的 URL。这是相对于扫描主机的 URL,例如 /default.html(默认值:/)
http-sitemap-generator.withinhost
仅抓取同一主机内的 URL。(默认值:true)
slaxml.debug
请参阅 slaxml 库的文档。
httpsspider.doscraping、httpspider.maxdepth、httpspider.maxpagecount、httpspider.noblacklist、httpspider.url、httpspider.useheadfornonwebfiles、httpspider.withindomain、httpspider.withinhost
请参阅 httpsspider 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap --script "http-sitemap-generator" -p 80 scanme.nmap.org
http-svn-enum
已演示过。这里不再演示。
http-svn-info
已演示过。这里不再演示。
http-title
已演示过。这里不再演示。
370. http-trace
发送 HTTP TRACE 请求并显示方法 TRACE 是否已启用。如果已启用调试,则返回响应中已修改的标头字段。
http-trace.path
URI 路径
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap --script "http-trace" 192.168.174.132
371. http-traceroute
利用 Max-Forwards HTTP 标头检测反向代理的存在。
该脚本的工作原理是发送 HTTP 请求,其中 Max-Forwards HTTP 标头的值从 0 到 2 不等,并检查某些响应值(例如状态代码、服务器、Content-Type 和 Content-Length HTTP 标头)和正文值(例如 HTML 标题)中是否存在任何异常。
基于以下工作:
Nicolas Gregoire (nicolas.gregoire@agarri.fr)
Julien Cayssol (tools@aqwz.com)
有关更多信息,请参阅:
http://www.agarri.fr/kom/archives/2011/11/12/traceroute-like_http_scanner/index.html
http-traceroute.path
发送请求的路径。默认为 /。
http-traceroute.method
要使用的 HTTP 请求方法。默认为 GET。在其他值中,TRACE 可能是最有趣的。
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap --script=http-traceroute ip/域名
372. http-trane-info
尝试从 Trane Tracer SC 设备获取信息。Trane Tracer SC 是一个智能现场面板,用于与部署在多个部门(包括商业设施和其他部门)的 HVAC 设备控制器进行通信。
信息是从向未经身份验证的用户公开敏感内容的 Web 服务器获取的。
在 Trane Tracer SC 版本 4.40.1211 及以下版本上测试。
参考:
http://websec.mx/publicacion/blog/Scripts-de-Nmap-para-Trane-Tracer-SC-HVAC
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
sudo nmap -p80 --script "http-trane-info.nse" ip/域名
373. http-unsafe-output-escaping
爬取网站并尝试识别输出转义问题,其中内容会反射回用户。此脚本会找到所有参数 ?x=foo&y=bar,并检查这些值是否反映在页面上。如果确实反映出来,脚本将尝试插入 ghz>hzx"zxc'xcv,并检查哪些(如果有)字符在没有正确 html 转义的情况下反射回页面。这表明存在潜在的 XSS 漏洞。
http-unsafe-output-escaping.withinhost
仅抓取同一主机内的 URL。(默认值:true)
http-unsafe-output-escaping.url
开始抓取的 URL。这是相对于扫描主机的 URL,例如 /default.html(默认值:/)
http-unsafe-output-escaping.maxdepth
抓取初始 URL 下的最大目录数量。负值将禁用此限制。(默认值:3)
http-unsafe-output-escaping.withindomain
仅抓取同一域内的 URL。这会扩大 withinhost 的范围,并且不能组合使用。(默认值:false)
http-unsafe-output-escaping.maxpagecount
访问的最大页面数量。负值将禁用此限制(默认值:20)
slaxml.debug
请参阅 slaxml 库的文档。
httpsspider.doscraping、httpspider.maxdepth、httpspider.maxpagecount、httpspider.noblacklist、httpspider.url、httpspider.useheadfornonwebfiles、httpspider.withindomain、httpspider.withinhost
请参阅 httpsspider 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
nmap --script=http-unsafe-output-escaping scanme.nmap.org
374. http-useragent-tester
检查主机是否允许各种抓取实用程序。
http-useragent-tester.useragents
包含更多 User-Agent 标头的表。默认值:nil
httpspider.doscraping、httpspider.maxdepth、httpspider.maxpagecount、httpspider.noblacklist、httpspider.url、httpspider.useheadfornonwebfiles、httpspider.withindomain、httpspider.withinhost
请参阅 httpspider 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
slaxml.debug
请参阅 slaxml 库的文档。
max-newtargets、newtargets
请参阅目标库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
sudo nmap -p80 --script "http-useragent-tester.nse" ip/域名
375. http-vhosts
通过对使用常见主机名的 http 服务器发出大量 HEAD 请求来搜索 Web 虚拟主机名。
每个 HEAD 请求提供不同的 Host 标头。主机名来自内置默认列表。显示返回文档的名称。还显示重定向的位置。
域可以作为 http-vhosts.domain 参数提供,也可以从目标的名称中推断出来。例如,在扫描 www.example.com 时,将尝试各种 <name>.example.com 形式的名称。
http-vhosts.filelist
包含要尝试的 vhosts 的文件。默认 nselib/data/vhosts-default.lst
http-vhosts.collapse
按状态代码开始折叠结果的限制。默认 20
http-vhosts.path
尝试检索的路径。默认 /。
http-vhosts.domain
主机名将添加到的域,例如 example.com 产生 www.example.com、www2.example.com 等。如果未提供,则根据主机名进行猜测。
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap --script "http-vhosts" -p 80,8080,443 ip/域名
376. http-vlcstreamer-ls
连接到 VLC Streamer 辅助服务并列出目录内容。iOS VLC Streamer 应用程序使用 VLC Streamer 辅助服务将多媒体内容从远程服务器流式传输到设备。
http-vlcstreamer-ls.dir
列出的目录(默认值:/)
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
sudo nmap -p 54340 --script "http-vlcstreamer-ls" ip/域名
377. http-waf-detect
通过使用恶意负载探测 Web 服务器并检测响应代码和正文的变化,尝试确定 Web 服务器是否受到 IPS(入侵防御系统)、IDS(入侵检测系统)或 WAF(Web 应用程序防火墙)的保护。
为此,脚本将发送“良好”请求并记录响应,之后它将此响应与包含恶意负载的新请求进行匹配。理论上,Web 应用程序不应该对恶意请求做出反应,因为我们将负载存储在脚本/文件未使用的变量中,只有 WAF/IDS/IPS 应该对其做出反应。如果设置了 aggro 模式,脚本将尝试所有攻击媒介(更嘈杂)
此脚本可以检测大量 IDS、IPS 和 WAF 产品,因为它们通常以相同的方式保护 Web 应用程序。但它不会检测不改变 http 流量的产品。结果可能因产品配置而异,但此脚本已针对以下产品的各种配置进行了测试:
Apache ModSecurity
Barracuda Web 应用防火墙
PHPIDS
dotDefender
Imperva Web 防火墙
Blue Coat SG 400
http-waf-detect.uri
目标 URI。使用不会重定向到其他页面的路径
http-waf-detect.aggro
如果设置了 aggro 模式,脚本将尝试所有攻击媒介来触发 IDS/IPS/WAF
http-waf-detect.detectBodyChanges
如果设置,它还会检查文档正文中的更改
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap -p80 --script "http-waf-detect" ip/域名
nmap -p80 --script "http-waf-detect" --script-args="http-waf-detect.aggro,http-waf-detect.uri=/testphp.vulnweb.com/artists.php" www.modsecurity.org
378. http-waf-fingerprint
尝试检测 Web 应用程序防火墙的存在及其类型和版本。
该方法通过发送大量请求并在响应中查找已知行为和指纹(例如服务器标头、cookie 和标头值)来实现。强化模式通过发送额外的 WAF 特定请求来检测特定行为。
感谢 wafw00f 和 w3af 提供的一些指纹。
http-waf-fingerprint.root
基本路径。默认为 /。
http-waf-fingerprint.intensive
如果设置,将添加 WAF 特定扫描,这需要更多时间。默认情况下关闭。
slaxml.debug
请参阅 slaxml 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
nmap --script=http-waf-fingerprint ip/域名
http-webdav-scan
已演示过。这里不再演示。
379. http-wordpress-enum
枚举 Wordpress 安装的主题和插件。该脚本还可以通过将版本号与从 api.wordpress.org 提取的信息进行比较来检测过时的插件。
该脚本使用两个单独的主题数据库 (wp-themes.lst) 和插件数据库 (wp-plugins.lst)。数据库按受欢迎程度排序,默认情况下脚本将仅搜索前 100 个条目。主题数据库有大约 32,000 个条目,而插件数据库有大约 14,000 个条目。
该脚本通过查看插件目录中的 readme.txt 文件来确定插件的版本号,并使用主题目录中的文件 style.css 来确定主题版本。如果脚本参数 check-latest 设置为 true,则脚本将查询 api.wordpress.org 以获取可用的最新版本号。由于它查询外部服务,因此默认情况下禁用此检查。
此脚本是 http-wordpress-plugins.nse 和 http-wordpress-themes.nse 的组合,最初由 Ange Gutek 和 Peter Hill 提交。
TODO:- 实现主题的版本检查。
http-wordpress-enum.type
搜索类型。可用选项:插件、主题或全部。默认:all。
http-wordpress-enum.search-limit
条目数或字符串“全部”。默认:100。
http-wordpress-enum.root
基本路径。默认情况下,脚本将尝试查找 WP 目录安装或返回到“/”。
http-wordpress-enum.check-latest
从 wordpress.org 检索最新插件版本信息。默认:false。
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap -sV --script "http-wordpress-enum" ip/域名
nmap --script "http-wordpress-enum" --script-args "check-latest=true,search-limit=10" ip/域名
nmap --script "http-wordpress-enum" --script-args=type="themes" ip/域名
380. http-xssed
该脚本搜索xssed.com数据库并输出结果。
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap -p80 --script "http-xssed.nse" ip/域名
381. icap-info
测试已知 ICAP 服务名称列表并打印有关检测到的任何服务的信息。互联网内容适配协议 (ICAP) 用于扩展透明代理服务器,通常用于内容过滤和防病毒扫描。
sudo nmap -p 1344 ip/域名 --script "icap-info"
382. iec-identify
尝试识别 IEC 60870-5-104 ICS 协议。
使用 TESTFR(测试帧)消息进行探测后,将发送 STARTDT(开始数据传输)消息,并使用常规询问来收集存储的信息对象地址列表。
sudo nmap -sV --script=iec-identify 192.168.174.128
383. iec61850-mms
查询 IEC 61850-8-1 MMS 服务器。向 LN0 和 LPHD 发送发起请求、识别请求和读取请求。
输出包含以下属性:
modelName_identify: Identify-Response attribute model_name
vendorName_identify: Identify-Response attribute vendor_name
modelNumber_identify: Identify-Response attribute revision
productFamily: Read-Response attribute 'LLN0$DC$NamPlt$d'
configuration: Read-Response attribute 'LLN0$DC$NamPlt$configRev'
vendorName: Read-Response attribute 'LPHD$DC$PhyNam$vendor' (old: 'LLN0$DC$NamPlt$vendor')
serialNumber: Read-Response attribute 'LPHD$DC$PhyNam$serNum'
modelNumber: Read-Response attribute 'LPHD$DC$PhyNam$model'
firmwareVersion: Read-Response attribute 'LPHD$DC$PhyNam$swRev' (old: 'LLN0$DC$NamPlt$swRev')
sudo nmap --script iec61850-mms.nse -p 102 ip/域名
ike-version
已演示过。这里不再演示。
imap-ntlm-info
已演示过。这里不再演示。
384. ip-forwarding
通过使用扫描主机作为默认网关向给定目标发送 ICMP 回显请求,检测远程设备是否启用了 IP 转发或“Internet 连接共享”。
给定目标可以是路由主机或 LAN 主机,并且需要能够响应 ICMP 请求 (ping) 才能使测试成功。此外,如果给定目标是路由主机,则扫描主机需要具有正确的路由才能到达该主机。
为了使用扫描主机作为默认网关,Nmap 需要发现 MAC 地址。这要求 Nmap 以特权模式运行,并且主机位于 LAN 上。
ip-forwarding.target
响应 ICMP 回显请求 (ping) 的 LAN 或路由目标。
sudo nmap -sn scanme.nmap.org --script "ip-forwarding" --script-args='target=www.bing.com'
385. ip-geolocation-geoplugin
尝试使用 Geoplugin 地理位置网络服务 (http://www.geoplugin.com/) 识别 IP 地址的物理位置。使用此服务进行查找没有限制。
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap --script "ip-geolocation-geoplugin" scanme.nmap.org
386. ip-geolocation-ipinfodb
尝试使用 IPInfoDB 地理位置 Web 服务 (http://ipinfodb.com/ip_location_api.php) 识别 IP 地址的物理位置。
对此服务的请求没有限制。但是,需要通过免费注册此服务来获取 API 密钥:http://ipinfodb.com/login.php
ip-geolocation-ipinfodb.apikey
指定用户想要用来访问此服务的 api-key 的字符串
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap --script "ip-geolocation-ipinfodb" 192.168.174.132 --script-args "ip-geolocation-ipinfodb.apikey=API_key"
387. ip-geolocation-maxmind
尝试使用 Geolocation Maxmind 数据库文件(可从 http://www.maxmind.com/app/ip-location 获取)识别 IP 地址的物理位置。此脚本支持使用其 API 支持的所有 Maxmind 数据库(包括商业数据库)进行查询。
maxmind_db
字符串表示要使用哪个文件作为 Maxmind 数据库
nmap --script "ip-geolocation-maxmind" scanme.nmap.org --script-args "ip-geolocation.maxmind_db=filename"
ip-https-discover
已演示过。这里不再演示。
388. ipidseq
对主机的 IP ID 序列进行分类(测试对空闲扫描的敏感性)。
发送六个探测以获取目标的 IP ID,并按照与 Nmap 类似的方法对其进行分类。这对于找到适合 Nmap 空闲扫描 (-sI) 的僵尸主机非常有用,因为 Nmap 本身不提供扫描这些主机的方法。
probeport
设置要探测的目标端口
nmap --script "ipidseq" --script-args "probeport=80" ip/域名
389. ipmi-version
通过 Channel Auth 探测执行 IPMI 信息发现。
sudo nmap -sU --script "ipmi-version" -p 623 ip/域名
ipv6-multicast-mld-list
已演示过。这里不再演示。
ipv6-node-info
已演示过。这里不再演示。
390. irc-botnet-channels
检查 IRC 服务器是否存在恶意僵尸网络常用的频道。
使用 irc-botnet-channels.channels 脚本参数控制频道名称列表。默认频道列表为
loic
Agobot
Slackbot
Mytob
Rbot
SdBot
poebot
IRCBot
VanBot
MPack
Storm
GTbot
Spybot
Phatbot
Wargbot
RxBot
irc-botnet-channels.channels
要检查的频道名称列表。
sudo nmap -p 6667 --script=irc-botnet-channels ip/域名
sudo nmap -p 6667 --script=irc-botnet-channels --script-args 'irc-botnet-channels.channels=loic,Agobot,Slackbot' ip/域名
irc-info
已演示过。这里不再演示。
iscsi-info
已演示过。这里不再演示。
391. isns-info
列出使用 Internet 存储名称服务 (iSNS) 注册的门户和 iSCSI 节点。
sudo nmap -p 3205 ip/域名 --script "isns-info"
jdwp-info
已演示过。这里不再演示。
knx-gateway-discover
已演示过。这里不再演示。
knx-gateway-info
已演示过。这里不再演示。
392. ldap-novell-getpass
通用密码可实现高级密码策略,包括密码中的扩展字符、将密码从 eDirectory 同步到其他系统以及为所有 eDirectory 访问设置单一密码。
如果密码策略允许管理员检索用户密码(密码策略中设置了“允许管理员检索密码”),则此脚本可以检索密码。
ldap-novell-getpass.password
连接服务器时使用的 LDAP 密码
ldap-novell-getpass.account
要检索密码的帐户名称
ldap-novell-getpass.username
连接服务器时使用的 LDAP 用户名
nmap -p 636 --script "ldap-novell-getpass" --script-args 'ldap-novell-getpass.username="CN=admin,O=cqure",ldap-novell-getpass.password=pass1234,ldap-novell-getpass.account="CN=paka,OU=hr,O=cqure"' ip/域名
393. ldap-rootdse
检索 LDAP 根 DSA 特定条目 (DSE)
sudo nmap -p 389 --script "ldap-rootdse" ip/域名
394. ldap-search
尝试执行 LDAP 搜索并返回所有匹配项。
如果未向脚本提供用户名和密码,则会查询 Nmap 注册表。如果已选择 ldap-brute 脚本并且找到有效帐户,则将使用此帐户。如果没有,则将使用匿名绑定作为最后一次尝试。
ldap.searchattrib
与“custom”qfilter 一起使用时,此参数与 ldap.searchvalue 配合使用,允许用户指定自定义属性和值作为搜索条件。
ldap.maxobjects
如果设置,则覆盖脚本返回的对象数(默认为 20)。值 -1 完全取消限制。
ldap.qfilter
如果设置,则指定快速过滤器。该库不支持解析实际 LDAP 过滤器。以下值对过滤器参数有效:computer、users、ad_dcs、custom 或 all。如果未指定任何值,则默认为 all。
ldap.attrib
如果设置,则搜索将仅包含指定的属性。对于单个属性,可以使用字符串值,如果需要提供多个属性,则应使用表。
ldap.searchvalue
与“custom”qfilter 一起使用时,此参数与 ldap.searchattrib 配合使用,允许用户指定自定义属性和值作为搜索条件。此参数允许使用星号“*”作为通配符。
ldap.password
如果设置,则与用户名一起使用以向 LDAP 服务器进行身份验证
ldap.savesearch
如果设置,脚本会将输出保存到以指定路径和名称开头的文件中。将根据所选的输出类型自动添加文件后缀 .CSV 以及主机名和端口。
ldap.username
如果设置,脚本将尝试使用用户名和密码执行 LDAP 绑定
ldap.base
如果设置,脚本将使用它作为搜索的基础。默认情况下,将检索并使用 defaultNamingContext。如果没有可用的 defaultNamingContext,脚本将迭代可用的 namingContext
nmap -p 389 --script "ldap-search" --script-args 'ldap.username="cn=ldaptest,cn=users,dc=cqure,dc=net",ldap.password=ldaptest,ldap.qfilter=users,ldap.attrib=sAMAccountName' ip/域名
nmap -p 389 --script "ldap-search" --script-args 'ldap.username="cn=ldaptest,cn=users,dc=cqure,dc=net",ldap.password=ldaptest,ldap.qfilter=custom,ldap.searchattrib="operatingSystem",ldap.searchvalue="Windows *Server*",ldap.attrib={operatingSystem,whencreated,OperatingSystemServicePack}' ip/域名
395. lexmark-config
从 Lexmark S300-S400 打印机检索配置信息。
Lexmark S302 以其配置响应 NTPRequest 版本探测。响应解码为 mDNS,因此请求被修改为尽可能接近 mDNS 请求。但是,在 Lexmark 的文档中,端口 (9100/udp) 被列为完全不同的东西 (HBN3)。请参阅 http://www.lexmark.com/vgn/images/portal/Security%20Features%20of%20Lexmark%20MFPs%20v1_1.pdf。
sudo nmap -sU -p 9100 --script=lexmark-config ip/域名
llmnr-resolve
已演示过。这里不再演示。
lltd-discovery
已演示过。这里不再演示。
396. membase-http-info
从 CouchBase Web 管理端口检索信息(主机名、操作系统、正常运行时间等)。此脚本检索的信息不需要任何凭据。
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap -p 8091 ip/域名 --script "membase-http-info"
397. memcached-info
从分布式内存对象缓存系统 memcached 检索信息(包括系统架构、进程 ID 和服务器时间)。
sudo nmap -p 11211 --script "memcached-info" ip/域名
398. mikrotik-routeros-username-brute
注意:该脚本默认是并没安装的。使用前请先安装此脚本。建议挂代理安装。
sudo wget https://svn.nmap.org/nmap/scripts/mikrotik-routeros-username-brute.nse
尝试枚举 MikroTik-RouterOS 中端口 8291 上运行 Winbox 服务的 MikroTik 设备上的有效用户名。
此脚本从用户那里获取一个单词列表,并通过向其中添加用户名来修改基线有效负载。如果服务器响应 35 个字节,则用户名无效;如果响应为 51 个字节,则用户名有效。
mikrotik-routeros-username-brute.wordlist
包含要尝试的用户名的文件,每行一个。
sudo nmap -p 8291 --script "mikrotik-routeros-username-brute" --script-args=wordlist=wordlist ip/域名
mikrotik-routeros-version
已演示过。这里不再演示。
399. modbus-discover
枚举 SCADA Modbus 从属 ID (sid) 并收集其设备信息。
Modbus 是流行的 SCADA 协议之一。此脚本执行 Modbus 设备信息披露。它尝试查找 Modbus 设备的合法 sid(从属 ID)并获取有关供应商和固件的其他信息。此脚本是 Mark Bristow 编写的 modscan python 实用程序的改进版。
有关 MODBUS 协议和安全问题的信息:
MODBUS 应用协议规范:http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf
Defcon 16 Modscan 演示文稿:https://www.defcon.org/images/defcon-16/dc16-presentations/defcon-16-bristow.pdf
Modscan 实用程序托管在 google code 上:http://code.google.com/p/modscan/
aggressive
- 布尔值定义查找全部或仅查找第一个 sid
sudo nmap --script "modbus-discover.nse" --script-args='modbus-discover.aggressive=true' -p 502 ip/域名
mongodb-databases
已演示过。这里不再演示。
mongodb-info
已演示过。这里不再演示。
400. mqtt-subscribe
转储来自 MQTT 代理的消息流量。
此脚本建立与 MQTT 代理的连接并订阅所请求的主题。已选择默认主题来接收系统信息和来自其他客户端的所有消息。这允许 Nmap 监听客户端发布到 MQTT 代理的所有消息。
有关更多信息:
https://en.wikipedia.org/wiki/MQTT
https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html
mqtt-subscribe.protocol-name
MQTT 协议名称,默认为 MQTT。
mqtt-subscribe.listen-msgs
要接收的 PUBLISH 消息数,默认为 100。值为零时,仅在侦听时间已过时强制此脚本停止。
mqtt-subscribe.username
需要身份验证的 MQTT 代理的用户名。
mqtt-subscribe.protocol-level
MQTT 协议级别,默认为 4。
mqtt-subscribe.topic
主题过滤器,用于指示我们希望接收哪些 PUBLISH 消息。
mqtt-subscribe.password
需要身份验证的 MQTT 代理的密码。
mqtt-subscribe.listen-time
侦听 PUBLISH 消息的时间长度,默认为 5 秒。值为零时,仅在收到 listen-msgs PUBLISH 消息时强制此脚本停止。
mqtt-subscribe.client-id
MQTT 客户端标识符,默认为 nmap,后缀为随机。
nmap -p 1883 --script "mqtt-subscribe" ip/域名
mrinfo
已演示过。这里不再演示。
401. ms-sql-config
查询 Microsoft SQL Server (ms-sql) 实例以获取数据库、链接服务器和配置设置的列表。
是否需要 SQL Server 凭据:是(使用 ms-sql-brute、ms-sql-empty-password 和/或 mssql.username 和 mssql.password)运行条件:
主机脚本:如果使用 mssql.instance-all、mssql.instance-name
或 mssql.instance-port 脚本参数,则将运行(请参阅 mssql.lua)。
端口脚本:将针对任何标识为 SQL Server 的服务运行,但仅当未使用 mssql.instance-all、mssql.instance-name 和 mssql.instance-port 脚本参数时才运行。
注意:通过命名管道与实例的通信取决于 smb 库。要通过命名管道与实例通信(并可能发现实例),主机必须至少有一个经过扫描并发现打开的 SMB 端口(例如 TCP 445)。此外,除了连接到 SQL Server 实例本身所需的身份验证之外,命名管道连接可能还需要 Windows 身份验证才能连接到 Windows 主机(通过 SMB)。有关更多信息,请参阅 smb 库的文档和参数。
注意:默认情况下,ms-sql-* 脚本可能会尝试连接到 Nmap 扫描的端口列表中未包含的端口并与之通信。可以使用 mssql.scanned-ports-only 脚本参数禁用此功能。
ms-sql-config.showall
如果设置,则显示所有配置选项。
mssql.domain、mssql.instance-all、mssql.instance-name、mssql.instance-port、mssql.password、mssql.protocol、mssql.scanned-ports-only、mssql.timeout、mssql.username
请参阅 mssql 库的文档。
randomseed、smbbasic、smbport、smbsign
请参阅 smb 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
sudo nmap -p 1433 --script "ms-sql-config" --script-args "mssql.username=sa,mssql.password=sa" ip/域名
402. ms-sql-dac
查询 Microsoft SQL Browser 服务以获取给定(或所有)SQL Server 实例的 DAC(专用管理连接)端口。DAC 端口用于在正常连接尝试失败时连接到数据库实例,例如,当服务器挂起、内存不足或处于其他不良状态时。此外,DAC 端口还为管理员提供对系统对象的访问权限,否则无法通过正常连接访问。
默认情况下,DAC 功能可在环回适配器上访问,但可以通过将“远程管理连接”配置值设置为 1 来激活远程访问。在某些情况下,当 DAC 已远程启用但后来被禁用时,sql 浏览器服务可能会错误地将其报告为可用。因此,脚本会尝试连接到报告的端口以验证它是否可访问。
mssql.domain、mssql.instance-all、mssql.instance-name、mssql.instance-port、mssql.password、mssql.protocol、mssql.scanned-ports-only、mssql.timeout、mssql.username
请参阅 mssql 库的文档。
randomseed、smbbasic、smbport、smbsign
请参阅 smb 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
sudo nmap -sU -p 1434 --script "ms-sql-dac" ip/域名
ms-sql-dump-hashes
已演示过。这里不再演示。
ms-sql-hasdbaccess
已演示过。这里不再演示。
ms-sql-info
已演示过。这里不再演示。
ms-sql-ntlm-info
已演示过。这里不再演示。
403. ms-sql-query
针对 Microsoft SQL Server (ms-sql) 运行查询。
是否需要 SQL Server 凭据:是(使用 ms-sql-brute、ms-sql-empty-password 和/或 mssql.username 和 mssql.password)运行条件:
主机脚本:如果使用 mssql.instance-all、mssql.instance-name
或 mssql.instance-port 脚本参数,则将运行(请参阅 mssql.lua)。
端口脚本:将针对任何被标识为 SQL Server 的服务运行,但仅当未使用 mssql.instance-all、mssql.instance-name 和 mssql.instance-port 脚本参数时才会运行。
注意:通过命名管道与实例通信取决于 smb 库。要通过命名管道与实例通信(并可能发现实例),主机必须至少有一个经过扫描并发现打开的 SMB 端口(例如 TCP 445)。此外,除了连接到 SQL Server 实例本身所需的身份验证之外,命名管道连接可能还需要 Windows 身份验证才能连接到 Windows 主机(通过 SMB)。有关更多信息,请参阅 smb 库的文档和参数。
注意:默认情况下,ms-sql-* 脚本可能会尝试连接到 Nmap 扫描的端口列表中未包含的端口并与之通信。可以使用 mssql.scanned-ports-only 脚本参数禁用此功能。
mssql.database
要连接的数据库(默认值:tempdb)
ms-sql-query.query
要针对服务器运行的查询。(默认值:SELECT @@version version)
mssql.domain、mssql.instance-all、mssql.instance-name、mssql.instance-port、mssql.password、mssql.protocol、mssql.scanned-ports-only、mssql.timeout、mssql.username
请参阅 mssql 库的文档。
randomseed、smbbasic、smbport、smbsign
请参阅 smb 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap -p 1433 --script "ms-sql-query" --script-args=mssql.username=sa,mssql.password=sa,ms-sql-query.query="SELECT * FROM master..syslogins" ip/域名
404. ms-sql-tables
查询 Microsoft SQL Server (ms-sql) 以获取每个数据库的表列表。
需要 SQL Server 凭据:是(使用 ms-sql-brute、ms-sql-empty-password 和/或 mssql.username 和 mssql.password)运行条件:
主机脚本:如果使用 mssql.instance-all、mssql.instance-name
或 mssql.instance-port 脚本参数,则将运行(请参阅 mssql.lua)。
端口脚本:将针对任何标识为 SQL Server 的服务运行,但仅当未使用 mssql.instance-all、mssql.instance-name 和 mssql.instance-port 脚本参数时才运行。
sysdatabase 表应该几乎可供所有人访问。
一旦我们有了数据库列表,我们就会对其进行迭代并尝试提取表名。为了成功完成此操作,我们需要具有 sysadmin 权限或有权访问数据库的帐户。因此,我们成功枚举的每个数据库的表都标记为已完成,然后遍历已知用户帐户,直到我们用尽所有用户或找到所有数据库中的所有表。
系统数据库被排除在外。
注意:通过命名管道与实例通信取决于 smb 库。要通过命名管道与实例通信(并可能发现实例),主机必须至少有一个经过扫描并发现打开的 SMB 端口(例如 TCP 445)。此外,除了连接到 SQL Server 实例本身所需的身份验证之外,命名管道连接可能还需要 Windows 身份验证才能连接到 Windows 主机(通过 SMB)。有关更多信息,请参阅 smb 库的文档和参数。
注意:默认情况下,ms-sql-* 脚本可能会尝试连接到 Nmap 扫描的端口列表中未包含的端口并与之通信。可以使用 mssql.scanned-ports-only 脚本参数禁用此功能。
ms-sql-tables.keywords
如果设置,则仅显示与关键字匹配的表或列
ms-sql-tables.maxdb
限制处理和返回的数据库数量(默认为 5)。如果设置为零或更少,则处理所有数据库。
ms-sql-tables.maxtables
限制返回的表数量(默认为 5)。如果设置为零或更少,则返回所有表。
mssql.domain、mssql.instance-all、mssql.instance-name、mssql.instance-port、mssql.password、mssql.protocol、mssql.scanned-ports-only、mssql.timeout、mssql.username
请参阅 mssql 库的文档。
randomseed、smbbasic、smbport、smbsign
请参阅 smb 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap -p 1433 --script "ms-sql-tables" --script-args "mssql.username=sa,mssql.password=sa" ip/域名
405. msrpc-enum
查询 MSRPC 端点映射器以获取映射服务列表并显示收集的信息。
由于它使用 smb 库,因此您可以指定要使用的可选用户名和密码。
脚本的工作原理与 Microsoft 的 rpcdump 工具或 SPIKE fuzzer 的 dcedump 工具非常相似。
randomseed、smbbasic、smbport、smbsign
请参阅 smb 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
sudo nmap 192.168.174.129 --script=msrpc-enum
mtrace
已演示过。这里不再演示。
multicast-profinet-discovery
已演示过。这里不再演示。
406. mysql-audit
根据 CIS MySQL v1.0.2 基准的部分内容审核 MySQL 数据库服务器安全配置(通过创建适当的审计文件,该引擎可用于其他 MySQL 审计)。
mysql-audit.password
用于连接数据库的密码
mysql-audit.username
用于连接数据库的用户名
mysql-audit.filename
包含审计规则库的文件的名称,默认为“mysql-cis.audit”
nmap -p 3306 --script "mysql-audit" --script-args "mysql-audit.username='root',mysql-audit.password='',mysql-audit.filename='nselib/data/mysql-cis.audit'" 192.168.174.132
407. mysql-databases
尝试列出 MySQL 服务器上的所有数据库。
mysqluser
用于身份验证的用户名。如果未设置,它会尝试使用 mysql-brute 或 mysql-empty-password 找到的凭据。
mysqlpass
用于身份验证的密码。如果未设置,它会尝试使用 mysql-brute 或 mysql-empty-password 找到的凭据。
nmap -sV --script=mysql-databases --script-args "mysql-databases.mysqluser='root',mysql-databases.mysqlpass=''" -p3306 192.168.174.132
mysql-dump-hashes
已演示过。这里不再演示。
mysql-info
已演示过。这里不再演示。
mysql-query
已演示过。这里不再演示。
408. mysql-variables
尝试显示 MySQL 服务器上的所有变量。
mysqluser
用于身份验证的用户名。如果未设置,它会尝试使用 mysql-brute 或 mysql-empty-password 找到的凭据。
mysqlpass
用于身份验证的密码。如果未设置,它会尝试使用 mysql-brute 或 mysql-empty-password 找到的凭据。
nmap -sV --script=mysql-variables --script-args=mysqluser=root,mysqlpass= -p3306 192.168.174.132
409. mysql-vuln-cve2012-2122
尝试利用 CVE2012-2122 绕过 MySQL 和 MariaDB 服务器中的身份验证。如果存在漏洞,它还会尝试转储 MySQL 用户名和密码哈希值。
5.1.61、5.2.11、5.3.5、5.5.22 之前的所有 MariaDB 和 MySQL 版本都存在漏洞,但漏洞利用取决于 memcmp() 是否返回 -128..127 范围之外的任意整数。
“当用户连接到 MariaDB/MySQL 时,会计算一个令牌(SHA 密码和随机加密字符串)并将其与预期值进行比较。由于转换不正确,即使 memcmp() 返回非零值,令牌和预期值也可能被视为相等。在这种情况下,MySQL/MariaDB 会认为密码正确,即使它不正确。由于协议使用随机字符串,因此遇到此错误的概率约为 1/256。这意味着,如果知道要连接的用户名(并且“root”几乎总是存在),她可以通过重复连接尝试使用 *任何* 密码进行连接。~300 次尝试仅需几分之一秒,因此基本上帐户密码保护与不存在一样好。”
原始公开咨询:
http://seclists.org/oss-sec/2012/q2/493
关于此漏洞的有趣帖子:
https://community.rapid7.com/community/metasploit/blog/2012/06/11/cve-2012-2122-a-tragically-comedic-security-flaw-in-mysql
mysql-vuln-cve2012-2122.pass
MySQL 密码。默认值:nmapFTW。
mysql-vuln-cve2012-2122.user
MySQL 用户名。默认值:root。
mysql-vuln-cve2012-2122.iterations
连接重试次数。默认值:1500。
mysql-vuln-cve2012-2122.socket_timeout
套接字超时。默认值:5 秒。
vulns.short, vulns.showall
请参阅 vulns 库的文档。
sudo nmap -p3306 --script "mysql-vuln-cve2012-2122" 192.168.174.132
nat-pmp-info
已演示过。这里不再演示。
410. nat-pmp-mapport
使用 NAT 端口映射协议 (NAT-PMP) 将路由器上的 WAN 端口映射到客户端上的本地端口。它支持以下操作:
map(映射) - 将路由器上的新外部端口映射到请求 IP 的内部端口
unmap(取消映射) - 取消映射请求 IP 的先前映射端口
unmapall(取消映射所有) - 取消映射请求 IP 的所有先前映射端口
nat-pmp-mapport.op
操作,可以是 map、unmap 或 unmap all o map 允许您将外部端口映射到调用 IP 的内部端口 o unmap 删除指定端口和协议的外部端口映射 o unmapall 删除指定协议和调用 IP 的所有映射
nat-pmp-mapport.protocol
要映射的协议,可以是 tcp 或 udp。
nat-pmp-mapport.privport
将请求映射到的调用 IP 的内部端口。此端口将接收进入路由器上外部端口的所有请求。
nat-pmp-mapport.pubport
要在路由器上映射的外部端口。指定的端口被视为请求的端口。如果端口可用,它将分配给调用者,否则路由器将简单地选择另一个端口,创建映射并返回结果端口。
nat-pmp-mapport.lifetime
映射的生命周期(以秒为单位)(默认值:3600)
sudo nmap -sU -p 5351 ip/域名 --script "nat-pmp-mapport" --script-args='op=map,pubport=8080,privport=8080,protocol=tcp'
sudo nmap -sU -p 5351 188.114.216.92 --script "nat-pmp-mapport" --script-args='op=unmap,pubport=8080,privport=8080,protocol=tcp'
sudo nmap -sU -p 5351 188.114.216.92 --script "nat-pmp-mapport" --script-args='op=unmapall,protocol=tcp'
411. nbd-info
显示来自 NBD 服务器的协议和块设备信息。
网络块设备协议用于通过 TCP 发布块设备。此脚本连接到 NBD 服务器并尝试拉取导出的块设备列表及其详细信息
有关更多信息:
https://github.com/NetworkBlockDevice/nbd/blob/master/doc/proto.md
nbd-info.export_names
可以是单个名称,也可以是用于向服务器请求信息的名称表。
sudo nmap -p 10809 --script "nbd-info" ip/域名
nbns-interfaces
已演示过。这里不再演示。
nbstat
已演示过。这里不再演示。
ncp-serverinfo
已演示过。这里不再演示。
412. ndmp-fs-info
通过使用网络数据管理协议 (ndmp) 查询远程设备来列出远程文件系统。NDMP 是一种用于在 NAS 设备和备份设备之间传输数据的协议,无需数据通过备份服务器。已知以下产品支持该协议:
Amanda
Bacula
CA Arcserve
CommVault Simpana
EMC Networker
Hitachi Data Systems
IBM Tivoli
Quest Software Netvault Backup
Symantec Netbackup
Symantec Backup Exec
nmap -p 10000 --script "ndmp-fs-info" ip/域名
netbus-info
已演示过。这里不再演示。
413. nfs-ls
尝试从 NFS 导出中获取有关文件的有用信息。输出旨在类似于 ls 的输出。
脚本首先枚举并挂载远程 NFS 导出。之后,它对每个挂载点执行 NFS GETATTR 过程调用以获取其 ACL。对于每个挂载目录,脚本将尝试列出其文件条目及其属性。
由于结果中显示的文件属性是 GETATTR、READDIRPLUS 和类似过程的结果,因此这些属性是本地文件系统的属性。
这些访问权限仅在 NFSv3 中显示:
Read(读取):从文件读取数据或读取目录。
Lookup(查找):在目录中查找名称(对非目录对象无意义)。
Modify(修改):重写现有文件数据或修改现有目录条目。
Extend(扩展):写入新数据或添加目录条目。
Delete(删除):删除现有目录条目。
Execute(执行):执行文件(对目录无意义)。
递归列表尚未实现。
nfs-ls.time
指定在文件属性输出中使用哪个最后的 mac 时间。可能的值包括:
m:最后修改时间 (mtime)
a:最后访问时间 (atime)
c:最后更改时间 (ctime)
默认值为 m (mtime)。
nfs.version
要使用的 NFS 协议版本
mount.version、rpc.protocol
请参阅 rpc 库的文档。
ls.checksum、ls.empty、ls.errors、ls.human、ls.maxdepth、ls.maxfiles
请参阅 ls 库的文档。
nmap -p 111 --script=nfs-ls ip/域名
414. nfs-showmount
显示 NFS 导出,如 showmount -e 命令。
mount.version、nfs.version、rpc.protocol
请参阅 rpc 库的文档。
nmap -sV --script=nfs-showmount ip/域名
415. nfs-statfs
从远程 NFS 共享检索磁盘空间统计信息和信息。输出类似于 df 的输出。
如果使用的版本是 NFSv3,则脚本将提供远程 NFS 的 pathconf 信息。
nfs-statfs.human
如果设置为 1 或 true,则以人类可读的格式显示文件大小,并带有 KB 和 MB 等后缀。
mount.version、nfs.version、rpc.protocol
请参阅 rpc 库的文档。
nmap -p 111 --script=nfs-statfs ip/域名
nntp-ntlm-info
已演示过。这里不再演示。
416. nrpe-enum
查询 Nagios 远程插件执行器 (NRPE) 守护进程以获取信息,例如平均负载、进程计数、登录用户信息等。
此脚本尝试执行已启用的命令的库存列表。不支持用户提供的参数。
nrpe-enum.cmds
要执行的命令的冒号分隔列表。
sudo nmap --script "nrpe-enum" -p 5666 ip/域名
ntp-info
已演示过。这里不再演示。
417. ntp-monlist
获取并打印 NTP 服务器的监控数据。
监控数据是与目标具有 NTP 关联的最近使用 (MRU) 的列表。每条记录都包含有关主机向目标发送的最新 NTP 数据包的信息,包括源地址和目标地址以及数据包的 NTP 版本和模式。利用此信息可以将关联主机分类为服务器、对等体和客户端。
还会向目标发送对等体命令,响应中的对等体列表允许区分配置的模式 1 对等体和充当对等体的客户端(例如 Windows W32Time 服务)。
关联主机进一步分为公共主机或私有主机。私有主机的 IP 地址在公共 Internet 上不可路由,因此可以帮助了解目标所在的私有网络的拓扑结构。
monlist 和 peers 命令显示的其他信息包括目标时钟与之同步的主机以及向目标发送控制模式 (6) 和私有模式 (7) 命令的主机,管理员可以使用这些主机来提供 NTP 服务。
应该注意的是,NTP 监控数据的本质意味着此脚本发送的模式 7 命令由目标记录(并且经常出现在这些结果中)。由于监控数据是 MRU 列表,因此您很可能通过发送看似无害的客户端模式请求来覆盖模式 7 命令的记录。这可以使用 Nmap 轻松实现:nmap -sU -pU:123 -Pn -n --max-retries=0 <target>
注意:
响应 monlist 命令的监控列表限制为 600 个关联。
目标上可能未启用监控功能,在这种情况下您可能会收到错误编号 4(无可用数据)。
可能对谁可以执行模式 7 命令有所限制(例如 ntp.conf 中的“restrict noquery”),在这种情况下您可能不会收到回复。
此脚本不处理身份验证,需要身份验证信息的目标可能会响应错误编号 3(格式错误)。
sudo nmap -sU -pU:123 -Pn -n --script=ntp-monlist ip/域名
418. omp2-enum-targets
尝试从 OpenVAS 管理器服务器检索目标系统和网络列表。
该脚本使用提供的或之前破解的凭据在管理器上进行身份验证,并获取每个帐户定义的目标列表。
如果设置了 newtargets 全局变量,这些目标将被添加到扫描队列中。
max-newtargets,newtargets
请参阅目标库的文档。
omp2.password,omp2.username
请参阅 omp2 库的文档。
nmap -p 9390 --script "omp2-brute,omp2-enum-targets" ip/域名
nmap -p 9390 --script "omp2-enum-targets" --script-args "omp2.username=admin,omp2.password=secret" ip/域名
419. omron-info
此 NSE 脚本用于将 FINS 数据包发送到远程设备。脚本将发送控制器数据读取命令,一旦收到响应,它将验证该响应是否正确响应所发送的命令,然后解析数据。
sudo nmap --script "omron-info" -sU -p 9600 ip/域名
openlookup-info
已演示过。这里不再演示。
420. openwebnet-discovery
OpenWebNet 是 Bticino 自 2000 年以来开发的通信协议。检索设备识别信息和连接设备的数量。
参考文献:
https://www.myopen-legrandgroup.com/solution-gallery/openwebnet/
http://www.pimyhome.org/wiki/index.php/OWN_OpenWebNet_Language_Reference
sudo nmap --script "openwebnet-discovery" 192.168.174.129
421. path-mtu
对目标主机执行简单的路径 MTU 发现。
TCP 或 UDP 数据包被发送到主机,并设置了 DF(不分段)位,且数据量各不相同。如果收到 ICMP 需要分段,或者在重新传输后未收到回复,则数据量会降低并发送另一个数据包。此过程持续到(假设没有发生错误)收到来自最终主机的回复,表明数据包到达主机时没有分段。
不会尝试所有 MTU,以免花费太多时间或网络资源。目前,要尝试的 MTU 相对较短的列表包含 RFC 1191“路径 MTU 发现”中表 7-1 中的稳定值。使用这些值可以显著减少 MTU 搜索空间。最重要的是,这个列表很少被完整地遍历,因为:
传出接口的 MTU 被用作起点,并且
当中间路由器发送“无法分段”消息时,我们可以跳转到列表下方,其中包含其下一跳 MTU(如 RFC 1191 中所述,并由 RFC 1812 要求)
sudo nmap --script "path-mtu" 192.168.174.128
422. pcworx-info
此 NSE 脚本将查询并解析远程 PLC 的 pcworx 协议。脚本将发送初始请求数据包,一旦收到响应,它将验证它是否是对所发送命令的正确响应,然后将解析出数据。PCWorx 是 Phoenix Contact 的协议和程序。
http://digitalbond.com
sudo nmap --script "pcworx-info" -p 1962 ip/域名
pop3-capabilities
已演示过。这里不再演示。
pop3-ntlm-info
已演示过。这里不再演示。
423. profinet-cm-lookup
向 PROFINET 设备发送 DCERPC EPM 查找请求。针对 Profinet 设备的 DCE/RPC 端点映射器 (EPM)。
Profinet 设备支持端口 34964 下基于 udp 的 PNIO-CM 协议。PNIO-CM 使用 DCE/RPC 作为其底层协议。
Profinet 设备支持 UUID 变体“dea00001-6c97-11d1-8271-00a02442df7d”下的 DCE/RPC UUID 实体。此脚本发送此 UUID 的查找请求。
参考:
https://rt-labs.com/docs/p-net/profinet_details.html#dce-rpc-uuid-entities
https://wiki.wireshark.org/EPM
sudo nmap -sU ip/域名 -p 34964 --script "profinet-cm-lookup"
424. qscan
反复探测主机上的开放和/或关闭端口,以获取每个端口的一系列往返时间值。这些值用于对统计上与其他组不同的端口集合进行分组。端口位于不同的组(或“系列”)可能是由于网络机制(例如端口转发到 NAT 后面的机器)造成的。
为了将这些端口分组到不同的系列中,必须计算一些统计值。这些值包括每个端口往返时间的平均值和标准差。记录完所有时间并计算出这些值后,使用 Student's t 检验来测试每个端口数据之间差异的统计显著性。具有统计上相同的往返时间的端口被分组在同一系列中。
此脚本基于 Doug Hoyte 的 Qscan 文档和 Nmap 补丁。
numclosed
探测的最大关闭端口数(默认值为 1)。负数表示禁用限制。
numopen
探测的最大打开端口数(默认值为 8)。负数表示禁用限制。
confidence
置信度:0.75、0.9、0.95、0.975、0.99、0.995 或 0.9995。
numtrips
尝试获取的往返次数。
delay
数据包发送之间的平均延迟。这是一个数字,后跟 ms(表示毫秒)或 s(表示秒)。(m 和 h 也受支持,但对于超时来说太长了。)实际延迟将在指定时间的 50% 到 150% 之间随机变化。默认值:200ms。
nmap --script "qscan" --script-args "qscan.confidence=0.95,qscan.delay=200ms,qscan.numtrips=10" scanme.nmap.org
quake1-info
已演示过。这里不再演示。
quake3-info
已演示过。这里不再演示。
quake3-master-getservers
已演示过。这里不再演示。
425. rdp-enum-encryption
确定 RDP 服务支持哪个安全层和加密级别。它通过循环遍历所有现有协议和密码来实现这一点。在调试模式下运行时,脚本还会返回失败的协议和密码以及报告的任何错误。
该脚本的灵感来自 MWR 的 RDP 密码检查器 http://labs.mwrinfosecurity.com/tools/2009/01/12/rdp-cipher-checker/
sudo nmap -p 3389 --script "rdp-enum-encryption" ip/域名
rdp-ntlm-info
已演示过。这里不再演示。
426. redis-info
从 Redis 键值存储中检索信息(例如版本号和架构)。
creds.[service], creds.global
请参阅 creds 库的文档。
sudo nmap -p 6379 ip/域名 --script "redis-info"
427. resolveall
注意:此脚本已被 Nmap 7.70 中的 --resolve-all 命令行选项取代
解析主机名并将每个地址(IPv4 或 IPv6,取决于 Nmap 模式)添加到 Nmap 的目标列表中。这与 Nmap 的正常主机解析过程不同,后者仅扫描每个主机名返回的第一个地址(A 或 AAAA 记录)。
该脚本将在主机名提供的任何目标上运行。它也可以通过 resolveall.hosts 参数输入主机名。由于它通过 IP 地址添加新目标,因此它不会递归运行,因为这些新目标不是由主机名提供的。它也不会添加最初由 Nmap 选择扫描的相同 IP。
resolveall.hosts
要解析的主机名表
max-newtargets,newtargets
请参阅目标库的文档。
sudo nmap --script=resolveall --script-args=newtargets,resolveall.hosts={192.168.174.132,192.168.174.128}
sudo nmap --script=resolveall ip/域名
428. rfc868-time
从时间服务检索日期和时间。
sudo nmap -sV --script "rfc868-time" -p37 ip/域名
429. riak-http-info
使用 HTTP 协议从 Basho Riak 分布式数据库检索信息(例如节点名称和架构)。
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
sudo nmap -p 8098 ip/域名 --script "riak-http-info"
rmi-dumpregistry
已演示过。这里不再演示。
430. rpcap-info
连接到 rpcap 服务(通过 WinPcap 提供远程嗅探功能)并检索接口信息。该服务可以设置为需要身份验证或不需要身份验证,还支持 IP 限制。
creds.rpcap
用于身份验证的用户名:密码
creds.[service], creds.global
请参阅 creds 库的文档。
sudo nmap -p 2002 ip/域名 --script "rpcap-info
sudo nmap -p 2002 ip/域名 --script "rpcap-info" --script-args="creds.rpcap='administrator:foobar'"
rpcinfo
已演示过。这里不再演示。
431. rsync-list-modules
列出可用于 rsync(远程文件同步)同步的模块。
sudo nmap -p 873 --script "rsync-list-modules" ip/域名
432. rusers
连接到 rusersd RPC 服务并检索已登录用户的列表。
mount.version、nfs.version、rpc.protocol
请参阅 rpc 库的文档。
nmap -sV --script=rusers 192.168.174.132
433. s7-info
枚举西门子 S7 PLC 设备并收集其设备信息。此脚本基于 Positive Research 和 Scadastrangelove 开发的 PLCScan(https://code.google.com/p/plcscan/)。此脚本旨在提供与 Nmap 内部的 PLCScan 相同的功能。PLCScan 收集的部分信息未移植;这些信息可以从收到的数据包中解析出来。
感谢 Positive Research 和 Dmitry Efanov 创建 PLCScan
sudo nmap --script "s7-info.nse" -p 102 ip/域名
servicetags
已演示过。这里不再演示。
434. shodan-api
查询给定目标的 Shodan API,并产生与 -sV nmap 扫描类似的输出。ShodanAPI 密钥可以使用“apikey”脚本参数设置,也可以硬编码在 .nse 文件本身中。您可以从 https://developer.shodan.io 获取免费密钥
注意:如果您希望此脚本完全被动运行,请确保包含 -sn -Pn -n 标志。
shodan-api.target
指定要扫描的单个目标。
shodan-api.apikey
指定 ShodanAPI 密钥。这也可以在 nse 文件中硬编码。
shodan-api.outfile
将结果写入指定的 CSV 文件
slaxml.debug
请参阅 slaxml 库的文档。
http.host、http.max-body-size、http.max-cache-size、http.max-pipeline、http.pipeline、http.truncated-ok、http.useragent
请参阅 http 库的文档。
smbdomain、smbhash、smbnoguest、smbpassword、smbtype、smbusername
请参阅 smbauth 库的文档。
nmap --script "shodan-api" scanme.nmap.org -sn -Pn -n --script-args 'shodan-api.outfile=potato.csv,shodan-api.apikey=apikey'
nmap --script "shodan-api" --script-args 'shodan-api.target=192.168.174.132,shodan-api.apikey=apikey'
435. sip-call-spoof
欺骗对 SIP 电话的呼叫并检测目标采取的操作(忙碌、拒绝、挂断等)
这通过向目标电话发送虚假的 SIP 邀请请求并检查响应来实现。状态代码为 180 的响应表示电话正在响铃。脚本等待下一个响应,直到达到超时或收到特殊响应。特殊响应包括:忙碌 (486)、拒绝 (603)、超时 (408) 或挂断 (200)。
sip-call-spoof.from
呼叫者用户 ID。默认为 Home。
sip-call-spoof.extension
发送请求的 SIP 扩展。默认为 100。
sip-call-spoof.ua
源应用程序的用户代理。默认为 Ekiga。
sip-call-spoof.timeout
等待响应的时间。默认为 5 秒
sip-call-spoof.src
要欺骗的源地址。
sip.timeout
请参阅 sip 库的文档。
sudo nmap --script=sip-call-spoof -sU -p 5060 ip/域名
sudo nmap --script=sip-call-spoof -sU -p 5060 --script-args 'sip-call-spoof.ua=Nmap, sip-call-spoof.from=Boss' ip/域名