【问题标题】:Need to get specific data block from a scan report需要从扫描报告中获取特定的数据块
【发布时间】:2015-09-17 14:34:41
【问题描述】:

我在一个大型网络上完成了 nmap 扫描,现在我正在尝试组织数据。

我的报告是以下结果:

nmap -A -p 0-65535 -iL [filename] -oX [filename]

所以我现在要做的是提取我扫描的每个 IP 地址的结果。我在这里找到了另一个帖子,解决方案是使用 awk :

awk 'BEGIN {RS="< host ";} /^starttime/ {print RS $0;}' [filename]

这对我不起作用,因为它没有在第一个块之后停止,而是直接通过报告。我当然意识到这是因为在该范围内的所有 IP 地址的输出中都找到了 '

我是否可以运行 nmap 报告并提取每个 IP 地址的扫描报告并将其保存在单独的文件中?当然需要一个 For 循环来执行此操作...一旦确定了一个块的提取和写入文件,那么可以使用 for 循环对其进行扩展(我认为)...

或者有没有人根据经验或纯粹的灵感,有更完善的解决方案/建议?

我们将不胜感激。

【问题讨论】:

  • 显示示例输入以及该示例输入所需的输出。
  • 插入示例输入对我来说有点困难,因为编辑报告需要大量时间。该报告为 xml 格式,并列出了主机名、端口扫描结果、操作系统名称、超时时间、上次重启信息。
  • 并非所有 IP 的数据量都相同,但它们都具有相同的类别...
  • 示例输出:我想获取主机 A 的所有扫描信息,假设 IP 地址为 192.168.1.100,并将其写入专用文件。然后我想对主机 B 做同样的事情……然后是主机 C……我可能有 300 个文件,每个文件都包含特定主机的状态。如果我在 excel 中执行此操作,我希望每个 IP 都有一个特定的选项卡,并且该选项卡包含相关信息。
  • 如果没有示例数据,我只能推荐使用 XML 解析器。示例:wget -O - http://www.nu.nl/rss/Algemeen 2&gt;/dev/null | xmlstarlet sel -t -v /rss/channel/item/title

标签: awk sed grep report nmap


【解决方案1】:

不要使用awk 来解析 XML 数据。 Nmap 的XML output format 有据可查,在PythonNdiff 也安装为 Python 2 库并内置解析器)、RubyPerl 中有解析器,或者您可以使用a number of command-line XML parsers.

【讨论】:

  • 是否有任何 C++ 解析 Nmap 输出的库?
  • @Mayur 我不知道有一个。有人问过这个问题here,所以如果你愿意,你可以对这个问题投赞成票或悬赏。目前没有答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 2018-03-27
  • 2019-07-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多