1

我目前使用以下脚本每天对 16 个不同的 /24 进行扫描:

#!/bin/sh
TODAY=`date +"%d-%m-%y"`
OPTIONS="--open --reason -oX /var/log/nmap/XXX/scan-$TODAY.xml -F x.x.x.0/24"
nmap $OPTIONS
rm /var/log/nmap/XXX/yesterday.xml
mv /var/log/nmap/XXX/today.xml /var/log/nmap/XXX/yesterday.xml
ln -s /var/log/nmap/XXX/scan-$TODAY.xml /var/log/nmap/XXX/today.xml

如果我在脚本之外运行 nmap 命令并让它输出到控制台,它不会显示任何已关闭的主机,但是当我使用 -oX 标志输出到 xml 文件以便以后可以 ndiff 时,列出已关闭的主机。

如何让 nmap 忽略这些主机,不记录它们等?谢谢!

编辑:为了确保我们都在同一个页面上,我工作的公司拥有我正在扫描的所有 /24s。=)

4

2 回答 2

2

看起来主机列表是设计使然,或者至少,我也无法关闭此功能。

过滤 nmap 的输出以删除不需要的条目是否可以接受?

OPTIONS="--open --reason -oX - -F x.x.x.0/24"
nmap $OPTIONS \
    | sed -e '/<host><status state="down" reason="no-response"\/>/,/<\/host>/d' \
    > /var/log/nmap/XXX/scan-$TODAY.xml

匹配似乎是不贪婪的,因为它应该,但要小心并检查一下。

于 2012-06-23T23:12:32.260 回答
1

我认为这与端口扫描有关。如果您对端口扫描不感兴趣,则可以使用以下命令删除主机:

nmap -sn xxxx/24 -oX /var/log/nmap/XXX/scan-$TODAY.xml

实际上,与您的目的相反,我真的需要知道哪些主机已关闭,我发现 -v 足以完成这项工作:

nmap -v -sn xxxx/24 -oX /var/log/nmap/XXX/scan-$TODAY.xml

希望能帮助到你 ;)

于 2012-06-25T07:36:02.277 回答