Nmap服务指纹存放文件名为nmap-service-probe,其文件存放路径为nmap环境根目录下,linux下多为:/usr/share/nmap/nmap-service-probe。
命令格式:Exculd [端口/T:端口/U:端口] , [端口/T:端口/U:端口],[. . .]
命令样例:Exclude 53,T:9100,U:30000-40000
命令格式:Probe [TCP/UDP] [扫描名_英文] [q|数据|] (注:数据前后需加以 ‘q|’ 和 ‘|’ )
命令样例:Probe TCP GetRequest q|GET / HTTP/1.0\r\n\r\n|
命令格式:match [服务名] [m/正则/] [处理字段] [处理字段] (注:正则前后需加以 ‘m/’ 和 ‘/’,其中 '/'可被其他能够实现前后闭合的字符替换 )
命令样例:match ftp m/^220.*Welcome to .Pure-?FTPd (\d\S+\s)/ p/Pure-FTPd/ v/$1/ cpe:/a:pureftpd:pure-ftpd:$1/
命令中处理字段同正则表达式相同,需要在其前后添加可闭合的字符,有多种分类:
‘p/[名字]/’ :包括供应商和通常的服务名称
‘v/[版本号]/’:应用程序版本“数字”,其中可能包括非数字字符甚至多个单词。
‘i/[信息]/’:其他进一步的信息,可以立即获得,并可能有用
‘h/[主机名]/’: 服务提供的主机名
‘o/[操作系统]/’: 运行服务的操作系统
‘d/[设备类型]/’:运行服务的设备类型
‘cpe:/[通用平台枚举]/a’:不仅能够识别服务(名称),还能够识别操作系统(名称)和硬件平台(名称)
辅助函数:
$P(x):过滤不可打印的字符 (其中x为正则表达式匹配出的数据)
$SUBST([],[“ ”],[“ ”]):在打印之前在匹配项中进行替换(参数一:正则匹配项,参数二:查找项,参数三:替换项,其中参数二、三需” “囊括)
$I([],[“”]):从捕获的字节中解压缩无符号整数(参数一:正则匹配项,参数二:“<” 或">"指定小端序或大端序)
命令格式:softmatch [服务名] [正则表达式]
命令样例:softmatch ftp m/^220 [-.\w ]+ftp.*\r\n$/i
命令格式:ports [端口],[端口]
命令样例:ports 111,4045,32750-32810,38978
命令格式:sslports [端口] [端口]
命令样例:sslports 443
命令格式:totalwaitms [毫秒]
命令样例:totalwaitms 6000
命令格式:tcpwrappedms [毫秒]
命令样例:tcpwrappedms 3000
命令格式:rarity [等级]
命令样例:rarity 6
命令格式:fallback [probe扫描]
命令样例:fallback GetRequest
文件运行:必须包含probe命令和match命令