#渗透测试#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等等一系列参数配合起来。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python复习1:

一、数据类型 1.数字:int、float、bool 2.字符串:string 3.列表:list 4.集合:set 5.字典:dictionary 二、Test 1.print输出固定格式 num110 str1"hello world" #输出的固定格式 print("num1%d&…

【MyBatis源码】BoundSql分析

基础 BoundSql是对SQL语句及参数信息的封装,它是SqlSource解析后的结果。Executor组件并不是直接通过StaticSqlSource对象完成数据库操作的,而是与BoundSql交互。BoundSql是对Executor组件执行SQL信息的封装,具体实现代码如下: …

Python爬虫抓取三个网站上的英语每日一句

一、引言 大学英语学习需要巩固高中语法,补充四六级词汇,增加英语语感,提升英语的运用能力。学好英语有很多种方法,采用句子来突破英语语法、词汇、口语和听力的方法简单有效,值得提倡。李阳就是采用这种方法来教授英…

三相LCL并网逆变器—为什么采用LCL滤波器

1.为什么需要滤波器 当前并网逆变器大多采用脉冲宽度调制(PWM)技术,导致桥臂输出的电压中存在开关频率及倍数频率次的谐波电压,进而使得输出到电网的电流中含有谐波。从电网的角度来看,是不希望系统内含有高次谐波的,因为这会影响…

【STM32】按键控制LED 光敏传感器控制蜂鸣器

文章目录 前置知识按键介绍传感器模块硬件电路按键硬件电路传感器模块硬件电路 C语言数据类型在Keil中的对应写法C语言枚举 按键控制LED接线图Hardware文件夹(模块化编程)LED驱动程序封装Key(按键)驱动程序封装 main.c源文件 光敏传感器控制蜂鸣器接线图…

飞书API-获取tenant_access_token

1.在飞书工作台创建应用,跳到开发者后台,选创建企业自建应用 2.设置并发布应用 必须要发布应用才可以开始使用了!!! 3.调用获取token的API 参考链接: 开发文档 - 飞书开放平台https://open.feishu.cn/do…

SpringBoot篇(自动装配原理)

目录 一、自动装配机制 1. 简介 2. 自动装配主要依靠三个核心的关键技术 3. run()方法加载启动类 4. 注解SpringBootApplication包含了多个注解 4.1 SpringBootConfiguration 4.2 ComponentScan 4.3 EnableAutoConfiguration 5. SpringBootApplication一共做了三件事 …

Rust 力扣 - 48. 旋转图像

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们可以将原矩阵进行水平翻转&#xff0c;然后在沿主对角线进行翻转&#xff0c;就能完成原矩阵沿顺时针方向旋转90o的变换 题解代码 impl Solution {pub fn rotate(matrix: &mut Vec<Vec<i32>&…

ima.copilot:智慧因你而生

在数字化时代&#xff0c;信息的获取、处理和创作已经成为我们日常工作和学习中不可或缺的一部分。腾讯公司推出的ima.copilot&#xff08;简称ima&#xff09;正是为了满足这一需求&#xff0c;它是一款由腾讯混元大模型提供技术支持的智能工作台产品&#xff0c;旨在通过智能…

使用 PyCharm 构建 FastAPI 项目:零基础入门 Web API 开发

使用 PyCharm 构建 FastAPI 项目&#xff1a;零基础入门 Web API 开发 本文提供了一份完整的 FastAPI 入门指南&#xff0c;涵盖从环境搭建、依赖安装到创建并运行一个简单的 FastAPI 应用的各个步骤。通过 FastAPI 和 Uvicorn&#xff0c;开发者可以快速构建现代化的 Web API…

练习LabVIEW第三十五题

学习目标&#xff1a; 刚学了LabVIEW&#xff0c;在网上找了些题&#xff0c;练习一下LabVIEW&#xff0c;有不对不好不足的地方欢迎指正&#xff01; 第三十五题&#xff1a; 使用labview模拟一个3-8译码器 开始编写&#xff1a; 用LabVIEW做3-8译码器首先要知道它是个啥…

【流量控制】之创建和管理前缀列表

前缀列表是包含一个或多个CIDR地址块的集合。您可以自主创建前缀列表并对其进行管理。在创建过程中&#xff0c;您可以将现有的前缀列表克隆&#xff08;复制&#xff09;到指定地域&#xff08;同地域或跨地域&#xff09;&#xff0c;让操作更加便捷。本文介绍如何使用专有网…

数据库作业5

1&#xff0c;建立触发器&#xff0c;订单表中增加订单数量后&#xff0c;商品表商品数量同步减少对应的商品订单出数量,并测试 测试&#xff1a; 2.建立触发器&#xff0c;实现功能:客户取消订单&#xff0c;恢复商品表对应商品的数量 测试 3.建立触发器&#xff0c;实现功能:…

Spring Boot 注解大全:全面解析 Spring Boot 常用注解及其应用场景

Spring Boot 注解大全:全面解析 Spring Boot 常用注解及其应用场景 简介 Spring Boot 是一个基于 Spring 框架的简化开发框架,它旨在简化 Spring 应用的初始搭建和开发过程。Spring Boot 提供了一系列的注解,使得开发者可以更加方便地进行应用开发和配置。本文将详细介绍 S…

11.3比赛总结

Bricks 1.题意&#xff1a;有一个由 B 和 W 组成的字符串&#xff0c;要将它划分成尽量多的区间&#xff0c;并使得每个区间中 B 和 W 的比例相等。 2.一道贪心题。首先特殊处理比值恒为 0 和不存在比值的情况&#xff0c;也就是全是 W 或者 B&#xff0c;明显这两种情况下每…

excel自定义导出实现(使用反射)

前言 项目中接到需求&#xff0c;需要对导出的字段进行自定义导出 &#xff0c;用户可在前端选择自定义导出的字段&#xff08;如图&#xff09;&#xff0c;实现过程做以下记录&#xff0c;仅供参考&#xff1b; 思路 跟前端约定好所有要导出的字段名称(headName)跟对应的…

“游戏人”也能拿诺贝尔奖!

“游戏人”也能拿诺贝尔奖&#xff01; 点击蓝链领取游戏开发教程 2024年度的诺贝尔奖&#xff0c;堪称AI深刻影响传统科学领域的一次生动展现。在这一年里&#xff0c;备受瞩目的诺贝尔物理学奖与诺贝尔化学奖两大核心奖项&#xff0c;均颁给了在AI领域做出杰出贡献的研究者…

OmniGen: Unified Image Generation(代码的复现)

文章目录 论文简介模型的部署需要下载的预训练权重 模型的生成效果图像编辑的效果风格迁移的效果 总结 论文简介 OmniGen的github项目地址 OmniGen: Unified Image Generation。OmniGen 在各种图像生成任务中都表现出了卓越的性能&#xff0c;并可能大大超过现有扩散模型的极…

docker-compose安装rabbitmq 并开启延迟队列和管理面板插件(rabbitmq_delayed_message_exchange)

问题&#xff1a; 解决rabbitmq-plugins enable rabbitmq_delayed_message_exchange &#xff1a;plugins_not_found 我是在docker-compose环境部署的 services:rabbitmq:image: rabbitmq:4.0-managementrestart: alwayscontainer_name: rabbitmqports:- 5672:5672- 15672:156…

Pandas 数据可视化指南:从散点图到面积图的全面展示

Pandas 数据可视化指南&#xff1a;从散点图到面积图的全面展示 本文介绍了使用 Pandas 进行数据可视化的多种方法&#xff0c;包括散点图、折线图、条形图、直方图、饼图和面积图等&#xff0c;涵盖了常见的图表类型及其实现方式。通过提供详细的代码示例&#xff0c;展示了如…