一个用于生成目标列表的 Nmap 脚本,可配合多种工具使用。
若要该脚本在默认情况下作为所有脚本扫描(-sC)的一部分运行,则需要将其与 nlist.conf 文件一起保存到 Nmap 数据目录的 scripts 子目录中。
如果未通过 nlist.config 参数指定其他配置文件,则将使用用户主目录中的 .nlist 文件,而不是默认的 nlist.conf 文件。
作为版本扫描(-sV)的一部分运行时效果最佳。
nmap [-sV] --script nlist [--script-args nlist.config=<config_file>,nlist.ignorehome,nlist.outdir=<output_directory>,nlist.overwrite] [-p-] <target>
-- nlist.config=<config_file>: nList configuration file
-- nlist.ignorehome: If specified, the '.nlist' configuration file in the user's home directory is ignored
-- nlist.outdir=<output_directory>: Output directory to write list files to ('./target_lists' by default)
-- nlist.overwrite: If specified, existing output files are overwritten
所有参数都会覆盖配置文件中的设置!
配置文件必须遵循本仓库中提供的 nlist.conf 文件相同的结构。建议在尝试编写自己的配置文件之前,先熟悉该文件。
配置文件可以包含以下选项:
overwrite: 一个布尔值,指定是覆盖现有输出文件(true)还是追加到现有文件(false)output_directory: 一个字符串,包含保存所有输出文件的目录(如果该目录不存在,则会创建)use_default_rules: 一个布尔值,指定除了使用此配置文件中定义的规则外,是否还使用 nlist.conf 文件中定义的默认规则(true)或不使用(false)use_home_rules: 一个布尔值,指定除了使用此配置文件中定义的规则外,是否还使用用户主目录中 .nlist 文件定义的规则(true)或不使用(false)output_files: 一个数组,包含脚本应生成的每个输出文件的规格说明(详见下文小节)output_files 规格说明每个 output_files 规格说明由以下选项组成:
name: 一个字符串,包含输出文件的路径rules: 一个规则数组,用于确定文件内容(详见下文小节)output_format: 一个数组,指定文件中每行应采用的格式(详见下文小节)rules 规则对于某个输出文件,只需要满足其中一条规则,端口就会包含在该输出文件中(该端口的后续规则将被跳过)!
规则可以由以下条件的组合构成:
port_protocol: 一个数组,包含可接受的端口协议(tcp 和/或 udp)port_number: 一个数组,包含可接受的端口号service: 一个数组,包含可接受的服务(不区分大小写)service_type: 一个数组,包含可接受的服务类型(目前仅 http 和 ssl/tls 为有效值)output_format 格式该数组中的第一个字符串应为格式字符串,其中包含 %s,后续值将出现在该位置(这些值将按照指定的顺序出现)。后面的字符串可以是以下值的任意组合:
ip: 主机的 IP 地址port_number: 端口号port_protocol: 端口协议(tcp 或 udp)service: 运行在端口上的服务您指定的值数量必须与格式字符串中 %s 出现的次数相同!
字面 % 字符需要进行反斜杠转义(\%)!