声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。 |
---|
基于我之前的博客文章,我在其中解释了如何利用 Shodan 搜索过滤器进行简单的 Shodan 搜索。事实证明,这些搜索对于蓝队识别可能构成安全风险的异常互联网暴露实例而言是有利的。
在本博客中,我将展示使用 CLI 的 Shodan 搜索,可以系统地遵循该搜索来简化基于 Shodan 的监控。
要开始基于 CLI 的搜索,首先,我们需要在系统上安装 Shodan CLI(命令行界面),无论是 Windows、Linux 还是 MAC OS。
1. 安装Python:从Python官方网站下载并在系统上安装。
https://www.python.org/downloads/
2. Shodan 帐户:如果您还没有,请在官网注册一个 Shodan 帐户。您将需要API 密钥才能使用 Shodan CLI。注册帐户是免费的。
https://www.shodan.io/
3. 安装 Shodan 模块:打开终端或命令提示符并运行以下命令,使用 Python 包管理器 pip 安装 Shodan 模块:
pip install shodan
4. API 密钥配置:安装 Shodan 模块后,您需要配置 API 密钥。在终端中运行以下命令,替换YOUR_API_KEY为您从 Shodan 帐户获取的实际 API 密钥。
shodan init YOUR_API_KEY
5. 验证安装:要验证安装是否成功以及 API 密钥是否正确配置,您可以运行一个简单的命令:
shodan info
此命令将显示有关您的 Shodan 帐户的信息。
Shodan CLI使用
搜索1:基本搜索
在此搜索中,我们将查询之前博客中使用的同一网段(即 118.69.133.0/24),并显示最多 10 个结果,字段包括 IP 地址、端口、主机名、操作系统、国家/地区和城市。
fields参数 用于仅过滤您感兴趣的字段,如果我们不指定任何结果限制,默认情况下它只会显示 1,000 个结果。如果要搜索并显示最多 10 个结果,请使用limit限制标志。
shodan search net:118.69.133.0/24 --fields ip_str,port,hostnames,os,country,city --limit 10
最终结果中唯一显示的字段是 IP 地址、端口和主机名,因为 fields 命令不会显示其余数据(我知道很奇怪)
在下一次搜索中,不搜索网段,而是搜索组织名称以及国家/地区和城市。作为结果显示的感兴趣字段包括 IP 地址、端口、主机名、操作系统、国家/地区和城市,限制为 10 个。
shodan search org:"Amazon" country:IN City:Delhi --fields ip_str,port,hostnames,os,country,city --limit 10
此搜索与我们在上一篇博客的“搜索7”中所做的相同。使用“Your files have been encrypted”进行盲目 Shodan 搜索,结果限制为 10 个,无需屏幕截图。
shodan search "Your Files Have Been Encrypted" --limit 10
在此搜索中,我查找端口 21,结果字段定义为 IP 地址、端口和组织,限制为 5 个结果,结果将存储在一个文件中(这里我将文件名称为“ list”)(您可以提及任何文件名))
shodan search --fields ip_str,port,org port:21 --limit 5 > list.txt
要查看结果,请使用命令cat <文件名>
在此搜索中,标题是在端口 9000上运行的“Citrix Gateway” ,结果限制为 15 个。此搜索中的关键因素是分隔符参数逗号 (,),用于分隔提到的字段。
在 Shodan CLI 查询中,可以使用“-”/“—”之类的任何内容作为分隔符。
shodan search 'title="Citrix Gateway"' --fields ip_str,port,org port:9000 --limit 15 --separator ","
在此示例中,我们对favicon哈希-305179312(Confluence服务器)执行了Shodan搜索,结果限制为5个。
下面的整个命令使用特定的图标哈希-305179312(Confluence Server)搜索 Shodan 结果,从这些结果中选择特定字段,然后使用awk命令(Windows 版 GAWK)以自定义格式处理和打印这些字段。
最终输出将是格式为的结果列表:IP:Port,Title,Organization,City,Country。
shodan search 'http.favicon.hash:-305179312' --fields ip_str,port,title,org,city,country --limit 5 | awk '{print $1":"$2","$3","$4","$5","$6}'
$1、$2、$3、$4、$5、$6 表示输入数据中的字段/列,以下是它们与 Shodan 字段的对应方式:
$1 corresponds to ip_str
$2 corresponds to port
$3 corresponds to title
$4 corresponds to org
$5 corresponds to city
$6 corresponds to country
可用于执行构面查询并根据 Shodan CLI 查询提供摘要信息。分面基本上用于匹配城市、港口等属性,并为您提供结果中定义属性的最高值的细分。
在此 shodan 查询中,该命令请求有关与包含术语“ telnet ”的搜索结果相关的前 5 个城市的统计方面。该命令将提供有关指定搜索查询的不同城市结果分布的信息。
shodan stats --facets city:5 telnet
漏洞和标签过滤器高级过滤器在基本 Shodan 计划中不可用。
在这种情况下,我们可以使用印度组织“ WeWork ”中最严重漏洞方面的统计数据。由于我们没有对排名靠前的结果定义任何限制,因此使用统计数据将显示排名前 10 的结果。
shodan stats --facets vuln country:IN org:WeWork
下面的查询是 Shodan stats 的另一种用法,它显示端口的前 10 个结果以及定义的示例网段的计数。如果您必须监控公司的 IP 范围,这非常有用。
shodan stats --facets port net:118.69.133.0/24
Shodan 每周对整个互联网进行全面扫描。使用 Shodan CLI(命令行界面)可以启动对网段/IP 地址的按需扫描。
请注意:按需扫描会根据API 计划上可用的扫描积分数量获取查询积分。
在此 Shodan 查询中,Shodan 扫描 IP 地址:8.8.4.4
shodan scan submit 8.8.4.4
类似地,可以提交对网段的扫描。像shodan扫描提交 86.57.198.0/24
此扫描搜索需要一些时间才能完成(每个 IP 需要 5-10 分钟)。
Shodan domain,为Shodan提供域名将触发自动发现所有关联的子域名及其对应的IP地址。它将持续更新,以反映与您的目标相关的 DNS 信息的任何更改。
以下域查询针对组织WeWork执行。
shodan domain wework.com
Shodan下载和解析参数使用Shodan CLI帐户的查询积分。Shodan download 启动搜索并将结果保存在本地数据文件中。
Shodan CLI 查询使用特定过滤器执行 Shodan 搜索:结果以“ Microsoft ”作为组织,以“ CH ”(瑞士)作为国家/地区。然后,它会下载前 50 个搜索结果,并将它们保存在名为testresults.json.gz的压缩 JSON 文件中。
shodan download testresults.json.gz org:Microsoft country:CH --limit 50
保存在本地文件中的扫描结果可以用作Shodan 解析的输入。
使用parse来分析使用download命令生成的文件。它可以让您过滤出您感兴趣的字段,将 JSON 转换为 CSV,并且还可以通过管道传输到其他脚本。例如,以下命令以 CSV 格式输出 IP 地址、端口和组织:
shodan parse --fields ip_str,port,org testresults.json.gz
从压缩的 JSON 文件中提取信息。
Shodan 转换命令可将 Shodan 搜索结果转换为不同的输出格式。当您想要在 Shodan 平台之外使用搜索结果或将它们集成到其他工具或系统中时,这特别有用。
该命令使您能够将结果从默认的 JSON 格式转换为更方便或更符合您的需求的格式。
shodan convert testresults.json.gz xlsx
以下是shodan Convert命令的基本分解:
.xlsx 文件的内容如下所示:
这就是所有的好东西,现在让我们得出结论。
结论
Shodan CLI 是一款功能强大的工具,网络安全蓝队可以使用它来监控其外部网络。您可以使用 CLI 自动执行任务并创建自定义脚本。这对于运行定期网络扫描或收集报告数据等任务很有帮助。
Shodan CLI 更加便携。您可以在任何具有终端模拟器的计算机上使用 CLI。这意味着您可以在家庭计算机、工作计算机或云服务器上使用它。
通过使用 Shodan CLI,网络安全蓝队可以以更正式的方式获得对其外部网络的宝贵见解,并通过定期(一天或一周)重复一些命令来识别潜在的安全风险。此信息可用于改善组织的安全状况并防范网络攻击。
我的下一篇博客将讨论甚至自动化这些手动任务,并使 Shodan 监控成为生成检测和触发安全事件的来源!