我经营着nmap每天扫描我的主机以检查开放的端口。
sudo nmap -f -sS -sV --log-errors -append-output -p1-9999 host.com
但随着输出,我得到了一长串无法识别的端口的指纹提交列表,如下所示
==============NEXT SERVICE FINGERPRINT (SUBMIT INDIVIDUALLY)==============
SF-Port4000-TCP:V=5.21%I=7%D=2/9%Time=4F30CAC%P=x86_64-redhat-linux-gnu%r
SF::\r\nERR\x20UNKNOWN_COMMAND\x20Unknown\+server\+commandCSeq:\r\nERR\x20
-------------------------------------------
我如何从 nmap 报告中删除这些内容?
答案1
除了按照 The Unix Janitor 在其评论中所建议的那样提交指纹外,没有其他方法可以阻止 Nmap 输出此信息。按照这种思路,您可以尝试使用最新版本Nmap(5.51 或 5.61TEST5);自您使用的版本以来,已添加了超过 700 个新的服务指纹。
要从扫描结果中删除不需要的输出,请尝试以下 Perl 单行命令:
perl -ne 'if(/NEXT SERVICE FINGERPRINT/){$f=1}else{$f=0 if $f and not /^SF/}print unless $f'
这样就可以去除指纹。如果您担心解析输出,我建议您改用 XML 输出,因为正常输出的结构可能会因版本而异。
答案2
您可能考虑使用 XML 输出格式并对其进行解析(有一个 Perl 库可以对其进行解析,但任何 XML 解析器都可以使用),而不是默认的半结构化文本输出。在默认输出格式中,我不知道有办法抑制这些消息。