#渗透测试#SRC漏洞挖掘# 信息收集-Shodan之搜索语法进阶

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅读。                                                              #陇羽sec#

目录

Shodan命令讲解

Shodan搜索网络设备

Shodan搜索Apache服务器

Wappalyzer

Shodan搜索组织

Shodan 模块讲解

Shodan 实时报警邮件通知

1. 创建 Shodan 账户并获取 API 密钥

2. 设置 Shodan 监控规则

3. 编写脚本发送邮件通知

4. 结合 Shodan API 和邮件发送脚本

5. 测试和优化


Shodan命令讲解
┌──(root㉿kali)-[~/Desktop]
└─# shodan  -h  命令的基本格式为 shodan [OPTIONS] COMMAND [ARGS]...,其中 OPTIONS 是可选参数,COMMAND 是具体的命令操作,ARGS 是命令操作可能需要的参数。
Usage: shodan [OPTIONS] COMMAND [ARGS]...Options:-h, --help  Show this message and exit.
-h, --help:这个选项用于显示帮助信息并退出程序。当你在命令行输入 shodan -h 或者 shodan --help 时,就会显示关于Shodan命令行工具的使用说明,就像你给出的这段语法说明一样。Commands:alert       Manage the network alerts for your account管理账户的网络提示,用于处理与账户相关的网络警报设置等操作。convert     Convert the given input data file into a different format.将给定的输入数据文件转换为不同的格式,可能用于数据格式的转换,例如将一种数据结构转      换为另一种更适合处理或分析的格式。count       Returns the number of results for a search返回搜索结果的数量,在执行搜索操作后,可以用这个命令查看符合搜索条件的结果有多少个。data        Bulk data access to Shodan返回搜索结果的数量,在执行搜索操作后,可以用这个命令查看符合搜索条件的结果有多少个。domain      View all available information for a domain查看一个域名的所有可用信息,这有助于对特定域名相关的设备或者服务进行详细的了解。download    Download search results and save them in a compressed JSON...下载搜索结果并保存为压缩的JSON格式文件,方便后续对搜索结果进行离线分析或者存储。honeyscore  Check whether the IP is a honeypot or not.检查IP是否为蜜罐,这在网络安全分析中很有用,可以判断一个IP是否是故意设置的陷阱来吸引攻击者。host        View all available information for an IP address查看一个IP地址的所有可用信息,包括设备类型、开放端口等详细信息。info        Shows general information about your account显示账户的一般信息,例如账户权限、使用限制等相关信息。  init        Initialize the Shodan command-line初始化Shodan命令行,可能是设置一些初始参数或者环境变量等操作。myip        Print your external IP address打印用户当前的外部IP地址,方便用户了解自己的网络连接情况,例如在网络故障排查或者网络配置时可能会用到。org         Manage your organization's access to Shodan管理组织对Shodan的访问权限,适用于多用户或者企业级的使用场景。parse       Extract information out of compressed JSON files.从压缩的JSON文件中提取信息,通常是与 download 命令配合使用,先下载数据再提取其中有用的信息。radar       Real-Time Map of some results as Shodan finds them.实时地图显示部分结果(随着Shodan发现它们),可能以可视化的方式展示搜索结果的地理位置分布等信息。scan        Scan an IP/ netblock using Shodan.使用Shodan扫描一个IP或者网段,这有助于发现网络中的设备和服务情况,进行网络安全评估等。search      Search the Shodan database搜索Shodan数据库,这是最基本的操作,用户可以输入关键词等进行设备、服务等的搜索。stats       Provide summary information about a search query提供搜索查询的概要信息,例如搜索结果的统计信息、分布情况等。stream      Stream data in real-time.实时显示流数据,可能用于实时监控网络中的设备或者服务的状态变化等。version     Print version of this tool.打印这个工具的版本信息,用于查看当前使用的Shodan命令行工具的版本。
Shodan搜索网络设备
┌──(root㉿kali)-[~/Desktop]
└─# shodan search --limit 10 --fields ip_str,port  country:jp camera shodan search:这是Shodan的基本搜索命令,用于启动搜索操作2。--limit 10:这个选项限制了搜索结果的数量,这里设置为10,意味着只会返回前10条匹配结果1。--fields ip_str,port:这个选项指定了在搜索结果中显示的字段。ip_str表示IP地址,port表示端口。这两个字段之间用逗号分隔,表示同时显示这两个字段的信息1。country:jp:这是一个过滤器,用于限制搜索结果只包含日本(JP)的设备3。camera:这是搜索关键词,表示你正在搜索与“camera”相关的设备3。┌──(root㉿kali)-[~/Desktop]
└─# shodan search --limit 10 --fields ip_str,port  country:jp webcam  这是一个Shodan搜索命令,在Shodan搜索引擎中执行特定的搜索操作。shodan search:这是Shodan执行搜索的基本命令形式。--limit 10:表示限制搜索结果的数量为10条。这样做可以避免获取过多的结果,方便查看和处理。--fields ip_str,port:指定在搜索结果中仅显示ip_str(设备的IP地址字符串形式)和port(设备开放的端口)这两个字段的信息。country:jp:这是一个过滤条件,用于筛选出位于日本(jp)的设备。webcam:是搜索的关键字,表明要搜索与网络摄像头(webcam)相关的设备。

结果如下:

Shodan搜索Apache服务器
┌──(root㉿kali)-[~/Desktop]
└─# shodan search --limit 10 --fields ip_str,port product:Apache httpd  country:jp 
shodan search:Shodan搜索引擎的搜索命令起始部分。
--limit 10:限制搜索结果的数量为10个。这样可以快速获取有限数量且满足条件的结果,便于查看和分析。
--fields ip_str,port:指定在搜索结果中显示的字段,ip_str是设备的IP地址字符串,port是设备开放的端口。
product:Apache httpd:这是一个过滤条件,用于搜索产品为Apache httpd的设备。这里表示寻找使用Apache httpd作为服务软件的设备。
country:jp:表示只搜索位于日本(jp)的设备。

 结果:

也可以借助插件wappalyzer

Wappalyzer

Shodan搜索组织
┌──(root㉿kali)-[~/Desktop]
└─# shodan search --limit 10 --fields ip_str,port org:Tencent cloud    
shodan search:这是在Shodan平台上发起搜索的基本指令。
--limit 10:用于限定搜索结果的数量,这里最多显示10个结果。这样可以防止返回过多结果,方便查看和管理。
--fields ip_str,port:指定搜索结果仅显示ip_str(IP地址的字符串形式)和port(端口号)这两个字段。
org:Tencent cloud:这是一个筛选条件,org表示组织,这里是搜索与腾讯云(Tencent cloud)相关的设备 

结果:

Shodan 模块讲解

Shodan Monitor

Shodan Monitor 是一个专门用于监控网络状态的工具,它不仅能够帮助用户监测已知的网络,还能发现互联网上的设备。通过 Shodan Monitor,用户可以检测到数据泄露到云端、钓鱼网站、被攻陷的数据库等问题。此外,Shodan 提供了工具来监控所有连接到互联网的设备,

Shodan 实时报警邮件通知

要在 Shodan Monitor 中设置实时报警并通过邮件通知,你需要结合 Shodan API 和邮件发送服务来实现。以下是一个基本的步骤指南,帮助你设置这一功能。

1. 创建 Shodan 账户并获取 API 密钥

首先,你需要在 Shodan 网站上创建一个账户,并获取 API 密钥。具体步骤如下:

  1. 访问 Shodan 官方网站(https://www.shodan.io/ )。
  2. 点击右上角的“Sign Up”按钮,按照提示填写相关信息并完成注册过程。
  3. 登录到你的 Shodan 账户后,点击右上角的用户名,选择“API Keys”选项。
  4. 在这里,你可以生成一个新的 API 密钥。复制这个密钥,因为稍后你会需要它来进行 API 调用。
2. 设置 Shodan 监控规则

在 Shodan Monitor 中,你可以设置网络监控规则来定义哪些类型的活动会触发警报。例如,你可以设置规则来监控特定的端口、服务或地理位置。这些规则可以通过 Shodan 的 Web 界面或 API 来配置。

3. 编写脚本发送邮件通知

你可以使用 Python 和 smtplib 库来编写一个脚本,当 Shodan 检测到潜在的安全威胁时,通过邮件发送警报。以下是一个简单的示例代码:

import smtplib 
from email.mime.text  import MIMEText 
from email.mime.multipart  import MIMEMultipart # Replace these variables with your actual values 
smtp_server = 'smtp.example.com' 
smtp_port = 587 
smtp_username = 'your_username'
smtp_password = 'your_password'
sender_email = 'your_email@example.com' 
receiver_email = 'recipient_email@example.com' # Create the message 
msg = MIMEMultipart()
msg['From'] = sender_email 
msg['To'] = receiver_email 
msg['Subject'] = 'Shodan Alert'# Add body to email 
body = "A potential security threat has been detected by Shodan."
msg.attach(MIMEText(body,  'plain'))# Send the email 
try:server = smtplib.SMTP(smtp_server, smtp_port)server.starttls() server.login(smtp_username,  smtp_password)text = msg.as_string() server.sendmail(sender_email,  receiver_email, text)server.quit() print("Email sent successfully!")
except Exception as e:print(f"Error: {e}")

在这个示例中,我们使用了 smtplib 库来发送邮件。你需要替换 smtp_server, smtp_port, smtp_username, smtp_password, sender_email, 和 receiver_email 这些变量为你自己的邮件服务器信息和邮箱地址。

4. 结合 Shodan API 和邮件发送脚本

现在,我们需要将 Shodan API 调用和邮件发送脚本结合起来,使得每当 Shodan 检测到潜在的安全威胁时,都能自动发送邮件通知。以下是一个完整的示例代码:

import shodan 
import smtplib 
from email.mime.text  import MIMEText 
from email.mime.multipart  import MIMEMultipart # Replace these variables with your actual values 
api_key = 'YOUR_SHODAN_API_KEY'
smtp_server = 'smtp.example.com' 
smtp_port = 587 
smtp_username = 'your_username'
smtp_password = 'your_password'
sender_email = 'your_email@example.com' 
receiver_email = 'recipient_email@example.com' # Initialize the Shodan API client 
api = shodan.Shodan(api_key)def check_alerts():try:# Fetch the latest alerts alerts = api.alerts(limit=10) for alert in alerts['matches']:print(f"New alert: {alert['message']}")# Create the message msg = MIMEMultipart()msg['From'] = sender_email msg['To'] = receiver_email msg['Subject'] = 'Shodan Alert'# Add body to email body = f"A potential security threat has been detected by Shodan: {alert['message']}"msg.attach(MIMEText(body,  'plain'))# Send the email try:server = smtplib.SMTP(smtp_server, smtp_port)server.starttls() server.login(smtp_username,  smtp_password)text = msg.as_string() server.sendmail(sender_email,  receiver_email, text)server.quit() print("Email sent successfully!")except Exception as e:print(f"Error: {e}")except shodan.APIError as e:print(f"Error: {e}")if __name__ == "__main__":while True:check_alerts()time.sleep(60)   # Check for new alerts every minute 

在这个示例中,我们结合了前面提到的 Shodan API 调用和邮件发送脚本。每当检测到新的警报时,都会发送一封邮件通知。

5. 测试和优化

设置好实时报警和邮件通知后,你应该定期测试它的有效性,并根据实际情况进行优化。例如,你可以调整监控规则或警报阈值,以确保它们能够准确地检测到潜在的安全威胁。

以上就是在 Shodan Monitor 中设置实时报警并通过邮件通知的基本步骤。希望这些信息能够帮助你更好地保护你的网络免受安全威胁。

 Shodan 命令补充

 

shodan alert -h 查看帮助文档
shodan info 查看剩次数
shodan domain  查询域名信息shodan scan -h(查看文档)
shodan scan submit ip  (查看扫描IP地址)
shodan scan list(查看扫描信息)shodan stats --facets ssl.version country:cn has_ssl:true http
(统计地区使用ssl的IP,并用版本做一个统计)
Shodan命令总结

主要是学会各种参数的组合,国家地区,漏洞,版本,ip等等一系列参数配合起来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/884134.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Fsm3

采用读热码编写方式: module top_module(input clk,input in,input areset,output out); ////reg [3:0]A 4d0001;// reg [3:0]B 4d0010;//reg [3:0]C 4d0100;// reg [3:0]D 4d1000; //1、首先用读热码定义四个状态变量parameter A 4d0001 ,B 4d0010, C 4d01…

62-Java-面试专题(1)__基础

62-Java-面试专题(1)__基础-- 笔记 笔记内容来源与黑马程序员教学视频 文章目录 62-Java-面试专题(1)__基础-- 笔记Java-面试专题(1)笔记中涉及资源: 一、二分查找①:代码实现1. 流程2. 代码实现3. 测试 ②:解决整数溢出(方法一&…

基于华为昇腾910B,实战InternVL2-8B模型推理

基于华为昇腾910B,实战InternVL2-8B模型推理 本文将带领大家基于启智平台,使用 LMDeploy 推理框架在华为昇腾 910B 上实现 InternVL2-8B 模型的推理。 https://github.com/OpenGVLab/InternVL https://github.com/InternLM/lmdeploy 1.登录启智平台 …

私有化视频平台EasyCVR视频汇聚平台接入RTMP协议推流为何无法播放?

私有化视频平台EasyCVR视频汇聚平台兼容性强、支持灵活拓展,平台可提供视频远程监控、录像、存储与回放、视频转码、视频快照、告警、云台控制、语音对讲、平台级联等视频能力。 有用户反馈,项目现场使用RTMP协议接入EasyCVR平台,但是视频却不…

Kong Gateway 指南

Kong Gateway 是一个轻量、快速、灵活的云原生API网关,其本质是一个运行在 Nginx中的Lua应用程序。 概述 Kong是Mashape开源的高性能高可用的API网关,可以水平扩展。它通过前置的负载均衡配置把请求分发到各个server,来应对大批量的网络请求…

简单的kafkaredis学习之kafka

简单的kafka&redis学习整理之kafka 1. kafka 1.1 什么是消息队列 在学习Kafka之前我们先来看一下什么是消息队列,消息队列(Message Queue):可以简称为MQ 例如:Java中的Queue队列,也可以认为是一个消息队列 消息队列&#x…

AprilTag在相机标定中的应用简介

1. AprilTag简介 相机标定用的标靶类型多样,常见的形式有棋盘格标靶和圆形标靶。今天要介绍的AprilTag比较特别,它是一种编码形式的标靶。其官网为AprilTag,它是一套视觉基准系统,包含标靶编解码方法(Tag生成)和检测算法(Tag检测),可用于AR、机器人、相机标定等领域。…

java开发等一些问题,持续更新

微服务和单服务的区别 微服务(Microservices)和单体服务(Monolithic Architecture)是两种不同的软件架构风格,各有其特点和适用场景。 微服务架构: 模块化: 微服务架构将应用程序分解为一系列小…

分类算法——XGBoost 详解

XGBoost 的底层原理与实现 XGBoost(eXtreme Gradient Boosting)是一种高效的梯度提升算法(Gradient Boosting),它通过组合多个弱学习器(通常是决策树)来构建强大的模型。XGBoost 在算法层面上优…

C语言 | Leetcode C语言题解之第523题连续的子数组和

题目&#xff1a; 题解&#xff1a; struct HashTable {int key, val;UT_hash_handle hh; };bool checkSubarraySum(int* nums, int numsSize, int k) {int m numsSize;if (m < 2) {return false;}struct HashTable* hashTable NULL;struct HashTable* tmp malloc(sizeo…

在MacOS玩RPG游戏 - RPGViewerPlus

背景知识 由于我一直使用Mac电脑&#xff0c;所以一直对Mac如何玩RPGMV/RPGMZ游戏的方式有进一步的想法。 网上能给出的方案都是自行启动一个HTTP服务进行&#xff0c;进行服务加载。这个方法有效&#xff0c;但兼容性较差。涉及到自定义功能模块的游戏&#xff0c;都会有报错…

【算法】【优选算法】双指针(上)

目录 一、双指针简介1.1 对撞指针&#xff08;左右指针&#xff09;1.2 快慢指针 二、283.移动零三、1089.复写零3.1 双指针解题3.2 暴力解法 四、202.快乐数4.1 快慢指针4.2 暴力解法 五、11.盛最多⽔的容器5.1 左右指针5.2 暴力解法 一、双指针简介 常⻅的双指针有两种形式&…

集成学习(2)

AdaBoost 基本概念 AdaBoost&#xff08;Adaptive Boosting&#xff0c;自适应增强&#xff09;&#xff0c;其自适应在于&#xff1a;前一个基本分类器分错的样本会得到加强&#xff0c;加权后的全体样本再次被用来训练下一个基本分类器。同时&#xff0c;在每一轮中加入一个…

多线程案例---单例模式

单例模式 什么是设计模式呢&#xff1f; 设计模式就好比棋手中的棋谱。在日常开发中&#xff0c;会会遇到很多常见的“问题场景”&#xff0c;针对这些问题场景&#xff0c;大佬们就设计了一些固定套路&#xff0c;按照这些固定套路来实现代码或应对这些问题场景&#xff0c;也…

第十九章 Vue组件之data函数

目录 一、引言 二、示例代码 2.1. 工程结构图 2.2. main.js 2.3. App.vue 2.4. BaseCount.vue 三、运行效果 一、引言 在Vue CLI脚手架中一个组件的data选项必须是一个函数&#xff0c;以此保证每个组件实例&#xff0c;维护独立的一份数据对象。每次创建新的组件实…

mabtisx突然不起作用:mapper跳转不到xml

解决&#xff1a;进入官方下载&#xff1a;JetBrains Marketplace 选择和你idea对应的版本号 切内网下载

ComfyUI正式版来袭!一键安装无需手动部署!支持所有电脑系统

ComfyUI V1重磅发布&#xff1a;迈向AI图像处理新时代 近日&#xff0c;ComfyUI团队正式推出了备受期待的ComfyUI V1版本&#xff0c;为图像生成和处理的AI用户带来了全新的生态体验。这一版本不仅彻底解决了以往版本中繁琐的安装和兼容问题&#xff0c;还大幅提升了易用性&…

pycharm设定代码模板

1、在文件点击设置 ​​​​​​​ ​​​​​​​ 2、点击编辑器--实时模板--找到需要插入模板的位置如我要插入HTML的模板---选择--点击实时模板 3、如图&#xff1a; 4、添加模板内容&#xff0c;如果模板有变量可以在编辑变量处点击编辑 5、编辑变量 6、点…

蘑菇书(EasyRL)学习笔记(2)

1、序列决策 1.1、智能体和环境 如下图所示&#xff0c;序列决策过程是智能体与环境之间的交互&#xff0c;智能体通过动作影响环境&#xff0c;环境则返回观测和奖励。智能体的目标是从这些反馈中学习出能最大化长期奖励的策略&#xff0c;这一过程通过不断试错和调整实现强化…

SQL进阶技巧:如何利用三次指数平滑模型预测商品零售额?

目录 0 问题背景 1 数据准备 2 问题解决 2.1 模型构建 &#xff08;1&#xff09;符号规定 &#xff08;2&#xff09;基本假设 &#xff08;3&#xff09;模型的分析与建立 2.2 模型求解 3 小结 0 问题背景 1960年—1985年全国社会商品零售额如图1 所示 表1全国社…