
简介
NSE是Nmap最强大最灵活的特性之一,可以用于增强主机发现、端口扫描、版本侦测和操作系统侦测等功能,还可以用来扩展高级的功能如web扫描、漏洞发现和漏洞利用等。Nmap使用Lua语言来作为NSE脚本语言,目前的Nmap脚本库已经支持350多个脚本。
如果你还不了解怎么使用Namp的话,建议回去查看Nmap基础教程。可以看我写的Nmap教程第一章。
Nmap: 网络探索工具和安全/端口扫描器!从入门到精通!全网最全详细教程指南!Kali Linux黑客教程!(一)_nmap工具-优快云博客
脚本类别
NSE 脚本定义了它们所属的类别列表。当前定义的类别为 auth、broadcast、brute、default、discovery、dos、exploit、external、fuzzer、intrusive、malware、safe、version 和 vuln。
auth(授权)
这些脚本处理目标系统上的身份验证凭据(或绕过它们)。示例包括 x11-access、ftp-anon 和 oracle-enum-users。使用暴力攻击来确定凭据的脚本则被放在 brute 类别中。
1. ajp-auth
检索需要身份验证的 AJP 服务(Apache JServ 协议)的身份验证方案和领域。
ajp-auth.path
定义请求路径
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 8009 192.168.174.132 --script "ajp-auth" --script-args "ajp-auth.path=/login"

2. creds-summary
在扫描结束时列出所有发现的凭据(例如来自暴力破解和默认密码检查脚本)。
creds.[service], creds.global
请参阅 creds 库的文档。
nmap -sV --script "creds-summary" 192.168.174.132

3. dicom-brute
尝试强行破解 DICOM 服务器(DICOM 服务提供商)的应用程序实体标题。
应用程序实体标题 (AET) 用于限制仅向知道标题的客户端发出响应。因此,调用的 AET 用作密码的一种形式。
brute.credfile、brute.delay、brute.emptypass、brute.firstonly、brute.guesses、brute.mode、brute.passonly、brute.retries、brute.start、brute.threads、brute.unique、brute.useraspass
请参阅 brute 库的文档。
creds.[service]、creds.global
请参阅 creds 库的文档。
passdb、unpwdb.passlimit、unpwdb.timelimit、unpwdb.userlimit、userdb
请参阅 unpwdb 库的文档。
dicom.called_aet、dicom.calling_aet
请参阅 dicom 库的文档。
nmap -p4242 --script "dicom-brute" 192.168.174.132
nmap -sV --script "dicom-brute" 192.168.174.132
nmap --script "dicom-brute" --script-args "passdb=aets.txt" 192.168.174.132

4. dicom-ping
尝试通过部分 C-ECHO 请求发现 DICOM 服务器(DICOM 服务提供商)。它还检测服务器是否允许任何被调用的应用程序实体标题。
当关联请求由于配置而被拒绝时,脚本会以消息“Called AET check enabled(已启用被调用的 AET 检查)”做出响应。此值可以被暴力破解。
C-ECHO 请求通常称为 DICOM ping,因为它们用于测试连接性。通常情况下,“DICOM ping”的格式如下:
Client -> A-ASSOCIATE request -> Server
Server -> A-ASSOCIATE ACCEPT/REJECT -> Client
Client -> C-ECHO request -> Server
Server -> C-ECHO response -> Client
Client -> A-RELEASE request -> Server
Server -> A-RELEASE response -> Client
对于此脚本,我们仅发送 A-ASSOCIATE 请求并在响应中查找成功代码,因为这似乎是检测 DICOM 服务器的可靠方法。
dicom.called_aet, dicom.calling_aet
请参阅 dicom 库的文档。
nmap -p4242 --script "dicom-ping" 192.168.174.132

5. domcon-cmd
使用给定的身份验证凭证在 Lotus Domino 控制台上运行控制台命令(另请参阅:domcon-brute)
domcon-cmd.cmd
在远程服务器上运行的命令
domcon-cmd.pass
用于向服务器验证身份的密码
domcon-cmd.user
用于向服务器验证身份的用户
nmap -p 2050 192.168.174.132 --script "domcon-cmd" --script-args=domcon-cmd.cmd="show server",domcon-cmd.user="Patrik Karlsson",domcon-cmd.pass="secret"

6. domino-enum-users
尝试利用 CVE-2006-5835 漏洞发现有效的 IBM Lotus Domino 用户并下载他们的 ID 文件。
domino-enum-users.path
任何检索到的 ID 文件的存储位置
domino-enum-users.username
要从中检索 ID 的用户的名称。如果未指定此参数,则将使用 unpwdb 库来强制使用用户的名称。
有关更多信息,请参阅:http://www-01.ibm.com/support/docview.wss?rs=463&uid=swg21248026
致谢 ------- o Ollie Whitehouse 在第一次发现这个问题时就引起了我的注意,并提供了此问题所基于的 c 代码。
passdb、unpwdb.passlimit、unpwdb.timelimit、unpwdb.userlimit、userdb
请参阅 unpwdb 库的文档。
nmap --script "domino-enum-users" -p 1352 192.168.174.132

7. ftp-anon
检查 FTP 服务器是否允许匿名登录。
如果允许匿名,则获取根目录的目录列表 并突出显示可写文件。
ftp-anon.maxlist
目录列表中返回的最大文件数。默认情况下为 20,如果启用了详细程度,则为无限制。使用负数可禁用限制,或使用 0 可完全禁用列表。
nmap -sV --script "ftp-anon" 192.168.174.132

8. http-auth
检索需要的 Web 服务的身份验证方案和领域验证。
http-auth.path
定义请求路径
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-auth" --script-args "http-auth.path=/login" -p80 ip/域名

9. http-barracuda-dir-traversal
尝试使用 http://seclists.org/fulldisclosure/2010/Oct/119 中描述的目录遍历漏洞从 Barracuda Networks 垃圾邮件和病毒防火墙设备检索配置设置。
此漏洞位于“/cgi-mod/view_help.cgi”或“/cgi-bin/view_help.cgi”的“locale”参数中,允许从 MySQL 数据库转储中检索信息。默认情况下,Web 管理界面在端口 8000 上运行。
Barracuda Networks 垃圾邮件和病毒防火墙 <= 4.1.1.021 远程配置检索 ShadowHatesYou <Shadow@SquatThis.net> 的原始漏洞有关更多信息,请参阅: http://seclists.org/fulldisclosure/2010/Oct/119 http://www.exploit-db.com/exploits/15130/
http-max-cache-size
设置最大缓存大小。默认值为 100,000。Barracuda 配置文件的大小主要取决于用户数量。对于包含最多 5,000 个用户的配置文件,使用 5,000,000 字节的最大缓存大小应该足够了。
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-barracuda-dir-traversal" --script-args "http-max-cache-size=5000000" -p 8000 192.168.174.132

10. http-config-backup
检查常用内容管理系统和 Web 服务器配置文件的备份和交换文件。
在现场编辑 Web 服务器文件时,文本编辑器可以将备份或交换文件留在 Web 服务器可以提供这些文件的位置。脚本检查以下文件:
wp-config.php:WordPress
config.php:phpBB、ExpressionEngine
configuration.php:Joomla
LocalSettings.php:MediaWiki
/mediawiki/LocalSettings.php:MediaWiki
mt-config.cgi:Movable Type
mt-static/mt-config.cgi:Movable Type
settings.php:Drupal
.htaccess:Apache
并且对每个文件应用以下转换(使用 config.php 作为示例):
config.bak: Generic backup.
config.php.bak: Generic backup.
config.php~: Vim, Gedit.
#config.php#: Emacs.
config copy.php: Mac OS copy.
Copy of config.php: Windows copy.
config.php.save: GNU Nano.
.config.php.swp: Vim swap.
config.php.swp: Vim swap.
config.php.old: Generic backup.
该脚本的灵感来自 Feross Aboukhadijeh 的 CMSploit 程序:http://www.feross.org/cmsploit/。
http-config-backup.save
用于保存找到的所有有效配置文件的目录
http-config-backup.path
CMS 的安装路径
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-config-backup" ip/域名

11. http-default-accounts
测试使用各种 Web 应用程序和设备使用的默认凭据进行访问。
它的工作原理与 http-enum 类似,我们通过匹配已知路径来检测应用程序,并在发现时使用默认凭据启动登录例程。 该脚本依赖于包含目标信息的指纹文件:名称、类别、位置路径、默认凭据和登录例程。
如果您希望减少请求数量,您可以选择一个类别。我们有以下类别:
web- Web 应用程序
routers- 路由器
security- 闭路电视和其他安全设备
industrial- 工业系统
printer- 网络连接打印机和打印机服务器
storage- 存储设备
virtualization- 虚拟化系统
console- 远程控制台
您还可以选择特定指纹或品牌,例如 BIG-IQ 或西门子。此匹配基于不区分大小写的单词。这意味着“nas”将选择 Seagate BlackArmor NAS 存储,而不是 Netgear ReadyNAS。
要使用指纹,它需要满足类别和名称标准。
默认情况下,脚本仅在找到默认凭据时才生成输出,而当目标仅匹配某些指纹(但未找到凭据)时则保持静默。随着详细程度的提高(选项 -v),脚本还将报告所有匹配的指纹。
请帮助改进此脚本,向 nselib/data/http-default-accounts.lua 添加新条目
请记住每个指纹必须具备:
name- 描述性名称
category - 类别
login_combos- 登录组合表
paths- 包含目标可能路径位置的表
login_check- 目标的登录功能
此外,指纹还应具有:
target_check- 目标验证函数。如果已定义,则在尝试任何登录之前将调用它来验证目标。
cpe- 官方 CPE 词典条目(参见 https://nvd.nist.gov/cpe.cfm )
默认指纹文件:/nselib/data/http-default-accounts-fingerprints.lua 该脚本基于http-enum。
http-default-accounts.category
选择指纹类别(或类别列表)。
http-default-accounts.name
根据指纹名称中包含的单词(或替代单词列表)选择指纹。
http-default-accounts.fingerprintfile
指纹文件名。默认值:http-default-accounts-fingerprints.lua
http-default-accounts.basepath
附加到请求的基本路径。默认值:“/”
slaxml.debug
请参阅 slaxml 库的文档。
creds.[service], creds.global
请参阅 creds 库的文档。
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-default-accounts" 192.168.174.145

12. http-domino-enum-passwords
尝试枚举经过哈希处理的 Domino Internet 密码(通过 默认)可供所有经过身份验证的用户访问。此脚本还可以下载 任何附加到个人文档的 Domino ID 文件。密码显示 以适合在 John the Ripper 中运行的形式。
密码可以以两种形式存储( http://comments.gmane.org/gmane.comp.security.openwall.john.user/785 ):
1. 无盐(遗留支持?) 例如:355E98E7C7B59BD810ED845AD0FD2FC4 John 的格式名称:lotus5
2. 加盐密码(又称“更安全的互联网密码”) 例如:(GKjXibCW2Ml6juyQHUoP) John 的格式名称:dominosec
看起来好像启用了基于表单的身份验证,基本身份验证 仍然有效。因此,该脚本应该在两种情况下都有效。有效 可以使用参数 username 直接提供凭证 和密码或间接来自 http-brute 或 http-form-brute 的结果。
http-domino-enum-passwords.path
指向受身份验证保护的路径。默认值:“/names.nsf/People?OpenView”
http-domino-enum-passwords.password
HTTP 身份验证的密码(如果需要)
http-domino-enum-passwords.idpath
应保存下载的 ID 文件的路径(如果未指定),脚本将仅指示 ID 文件是否可下载
http-domino-enum-passwords.username
HTTP 身份验证的用户名(如果需要)
http-domino-enum-passwords.count
&nb

最低0.47元/天 解锁文章
866

被折叠的 条评论
为什么被折叠?



