我如何 grep 这个 nmap 扫描?

Posted

技术标签:

【中文标题】我如何 grep 这个 nmap 扫描?【英文标题】:How do I grep this nmap scan? 【发布时间】: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 没问题,随时:) 【参考方案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' 你也只会看到开放的端口

以上是关于我如何 grep 这个 nmap 扫描?的主要内容,如果未能解决你的问题,请参考以下文章

nmap如何设置可以扫描局域网主机帐号弱口令功能

最好的 NMAP 扫描策略

shell脚本案例利用nmap批量扫描存活主机

如何检测Nmap的扫描

如何在Linux上使用Nmap安全扫描工具

如何设置才能让nmap无法扫描到139端口