【问题标题】:How do I grep this nmap scan?我如何 grep 这个 nmap 扫描?
【发布时间】:2014-02-16 21:39:00
【问题描述】:

我正在使用 nmap 扫描启用 SSH 的服务器。这是 nmap 从扫描中输出的内容:

SSH 禁用服务器示例:

Nmap scan report for 70.0.0.109.rev.sfr.net (109.0.0.70)
Host is up (0.15s latency).
PORT   STATE  SERVICE
22/tcp closed ssh

启用 SSH 的服务器示例:

Nmap scan report for 255.0.0.109.rev.sfr.net (109.0.0.255)
Host is up (0.12s latency).
PORT   STATE    SERVICE
22/tcp filtered ssh

我想使用 grep 将所有启用 SSH 的服务器导出到一个文件中。该文件将仅包含启用 SSH 的服务器的 IP 地址。

例如:

1.1.1.1
2.2.2.2
3.3.3.3
4.4.4.4
5.5.5.5

我找不到可以执行此操作的 grep 命令。我只需要使用 grep(或任何其他 Linux 命令)将启用 SSH 的 IP 地址导出到文件中。谢谢,感谢所有帮助。 (顺便说一下,我正在从文件中读取这个 nmap 扫描)

【问题讨论】:

  • 也许是" cat file | grep "your search" > output.txt"?
  • @pregmatch 恭喜您获得Useless Use of Cat Award
  • @bonsaiviking 没问题,随时:)

标签: linux grep nmap


【解决方案1】:

首先,您可能想花一些时间查看nmap 手册页,它会向您显示有用的选项,例如-oG 选项,它会产生“可greppable 输出”。例如,在我的家庭网络上运行时,如下所示:

$ nmap -p 22 -oG - 192.168.1.0/24

我得到这样的输出:

Host: 192.168.1.1 (gw.house)    Status: Up
Host: 192.168.1.1 (gw.house)    Ports: 22/closed/tcp//ssh///
Host: 192.168.1.3 ()    Status: Up
Host: 192.168.1.3 ()    Ports: 22/closed/tcp//ssh///
Host: 192.168.1.20 (fileserver.house)   Status: Up
Host: 192.168.1.20 (fileserver.house)   Ports: 22/open/tcp//ssh///
Host: 192.168.1.29 ()   Status: Up
Host: 192.168.1.29 ()   Ports: 22/closed/tcp//ssh///
Host: 192.168.1.52 (laptop.house)   Status: Up
Host: 192.168.1.52 (laptop.house)   Ports: 22/open/tcp//ssh///

如果我想要一个开放 22 端口的 IP 地址列表,我可以运行:

$ nmap -p 22 -oG - 192.168.1.24 | grep 22/open

这会得到我:

Host: 192.168.1.20 (arcadia.house)  Ports: 22/open/tcp//ssh///
Host: 192.168.1.52 (lkellogg-pk115wp.house) Ports: 22/open/tcp//ssh///

如果我想要只是 IP 地址,我会使用awk:

$ nmap -p 22 -oG - 192.168.1.24 | awk '/22\/open/ {print $2}'

这会得到我:

192.168.1.20
192.168.1.52

...这就是我认为您正在寻找的东西。

【讨论】:

  • 谢谢。在阅读本文之前,我实际上找到了另一个解决方案,它几乎是一样的。
  • 如果你使用 '--open' 你也只会看到开放的端口
猜你喜欢
  • 2019-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-07
相关资源
最近更新 更多