网络搜索引擎Shodan(1)

news2024/11/24 14:54:37

声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章

感谢泷羽sec 团队的教学
视频地址:shodan(1)_哔哩哔哩_bilibili

本文主要讲解网络搜索引擎Shodan的一些用法(host和search这两个命令)。

Shodan 是一个网络搜索引擎,专门用于查找连接到互联网的设备(如服务器、路由器、网络头、物联网设备等)以及这些设备的状态信息。与传统搜索引擎不同,Shodan 主要通过 IP 地址和端口扫描获取网络中的设备信息,帮助用户分析网络设备的安全状况。以下是对Shodan工作原理、优缺点和功能的详细介绍:

一、Shodan的工作原理

Shodan的工作方式主要通过以下步骤:

  • 主动扫描:Shodan定期扫描全球网络的IP地址,使用多个端口进行扫描,例如80(HTTP)、443(HTTPS)、22(SSH)等常见端口。

  • 收集信息:Shodan 在扫描设备过程中会收集设备的服务信息,包括开放端口、操作系统版本、服务类型、SSL 证书等。

  • 建立数据库:将获取的信息整理成一个数据库,供用户通过关键词搜索特定类型的设备、网络漏洞和开放端口等。

二、 Shodan的优缺点

优点
  • 网络安全:Shodan是网络安全分析的工具,可以帮助网络管理员和安全专家识别潜在的重要安全漏洞并及时修复。

  • 广泛覆盖:得益于其全球扫描机制,Shodan可以抓取互联网全球设备信息,为分析全球网络环境提供支持。

  • 数据多样性:Shodan可以识别多种设备类型,如Web服务器、工控系统、物联网设备、摄像头等,非常适合网络资产管理。

缺点
  • 隐私问题:由于Shodan能够公开访问很多设备的信息,它也可能会导致一些未受保护的设备被黑客利用。

  • 容易被恶意利用:虽然Shodan的设计最初主要是为了提升网络安全,但不当使用也可能导致设备暴露在恶意攻击下。

  • 误报风险:Shodan 的扫描并不完全准确,某些情况下可能会错报设备信息或未能检测到设备开放的端口和服务。

三、 Shodan的功能

  • 搜索网络设备:Shodan可以通过IP地址、端口号、国家、服务协议等条件,搜索各种以太网设备。

  • 漏洞扫描:可以利用Shodan搜索已知漏洞设备,查看是否有易受攻击的端口或服务。

  • 断层分析:用户可以按断层过滤设备信息,以了解特定地区的设备分配其安全状态。

  • 开放端口分析:分析设备的开放端口,帮助网络管理员识别潜在风险。

  • 网络地图和报告:Shodan提供详细的可视化报告和地图功能,帮助用户直观地了解网络安全情况。

四、Shodan在kali上的用法

以下是在 Kali 上安装和初始化 Shodan 的具体步骤:

1.从GitHub克隆Shodan安装包

使用 Git 将 Shodan 的 Python 安装包从 GitHub 克隆到你的 Kali 系统:

git clone https://github.com/achillean/shodan-python.git 

 

2.切换到shodan-python文件夹

进入刚刚克隆的shodan-python文件夹:

cd shodan-python 

 

3. 安装 Shodan 包

运行以下命令安装Shodan包:

python setup.py install 

 

注意:确保使用的是Python3版本,可以在命令前替换为python3,并确认已安装pip包管理工具。

4. 初始化Shodan

首先,你需要在 Shodan 网站(https ://www .shodan .io /)注册并获取API Key。然后,使用该 API Key 进行初始化:

shodan init your_api_key 

 

your_api_key替换为你实际获得的 API Key。初始化后,Shodan 工具就可以调用 API 进行各种查询了。

注意:若出现以下情况,表明你当前的环境中安装的Shodan版本是1.25.0,解决这个问题的方法是安装最新版本的Shodan包,确保安装版本1.31.0或更高。

pip install shodan==1.31.0

5. 查看帮助文档

最后,你可以运行以下命令查看 Shodan 的帮助文档和基本用法:

shodan -h

 五、国家代码

使用前我们先来了解什么是国家代码

国家代码是一种用于标识不同国家和地区的编码系统,通常用于各种国际标准和通信协议中,以确保全球范围内的数据交换和系统兼容。常见的国家代码标准有以下几种:

1. ISO 3166 标准
  • ISO 3166-1 Alpha-2:两个字母组成的国家代码。例如,美国是US,中国是CN,日本是JP。此类代码被广泛用于互联网域名、银行系统、航空业等。

  • ISO 3166-1 Alpha-3:三个字母组成的代码,用于更明确的国家标识。例如,美国是USA,中国是CHN,日本是JPN

  • ISO 3166-1 数字:三个数字代码。例如,美国是840,中国是156,日本是392。这种代码在一些金融和统计系统中被使用,尤其是需要避免环境中的警告冲突。

2.国际电信联盟(ITU)国家代码
  • 主要用于电信行业,通过国际电联分配的国家呼叫代码来国家标识。例如,美国的国际电话区号是+1,中国是+86,日本是+81

  • 此代码不仅用于国际电话区号,还用于无线电音响管理。

3.国际航空运输协会(IATA)机场和国家代码
  • IATA为各国分配了不同的代码,用于航班安排和物流系统。例如,美国是US,中国是CN

  • 机场也有自己的三个字母代码,比如北京首都国际机场是PEK,纽约肯尼迪国际机场是JFK

4.联合国国家代码
  • 联合使用三个数字的M49编码系统来标识国家和地区,尤其是在经济和社会统计中。例如,中国是156,美国是840

具体参考:世界各国国别简称(三位英文缩写).xls - 淘豆网

六、search命令

Shodan的search命令用于执行搜索设备,帮助用户根据各种参数查找连接到互联网的设备。以下是shodan search的常用参数:

1、基本用法
shodan search <查询字符串> [参数]
  • <查询字符串>可以是关键字、IP地址、端口等。例如,可以使用apache查找运行Apache服务器的设备。

2、常用参数

a、country是Shodan搜索中的一个过滤参数,用于限定搜索结果为特定国家的设备。通过指定country:<国家代码>,可以查询该国家内符合条件的设备。国家代码通常使用三个字母的ISO 3166-1 Alpha-2格式,例如US表示美国,CN表示中国。

用法:shodan search <查询字符串> country:<国家代码>

例如,找到美国境内的Apache服务器:shodan search apache country:US

b、city是Shodan搜索中的一个过滤参数,用于将搜索结果限制在特定城市的设备。通过指定city:<城市名称>,可以查询该城市中符合条件的以太网设备。Shodan使用的城市名称通常是英文格式。

用法:shodan search <查询字符串> city:<城市名称>

例如,找到纽约市的 Apache 服务器: shodan search apache city:New York

c、os是Shodan搜索中的一个过滤参数,用于查找运行操作系统的设备。通过os:<操作系统名称>,可以筛选出符合条件的设备,这在定位特定系统或漏洞分析时很有用。Shodan支持多种操作系统的识别,包括Windows、Linux、Unix等。 
用法:shodan search <查询字符串> os:<操作系统名称>

例如,查找运行Windows操作系统的设备:shodan search os:Windows

d、device是Shodan搜索中的一个过滤参数,用于查找特定类型的联网设备。通过device:<设备类型>,可以筛选出符合条件的设备,例如路由器、摄像头、工控系统等。此参数非常适合物联网(IoT)设备和硬件特定设备的搜索。

用法:shodan search <查询字符串> device:<设备类型>

例如,找路由器设备:shodan search device:router

e、--limit <number>

    用于返回限制结果的数量。
    例如:shodan search apache --limit 10(只查找10条运行apache服务器的设备)

f、--color

     Shodan命令行工具的参数之一,用于在终端中为搜索结果显示不同的颜色,以便更仔细地识别和区分结果中的关键信息。

     例如:shodan search apache --color

g、--fields <field1,field2,...>

    指定返回的字段,以缩小搜索范围,显示特定信息(如IP、端口、操作系统等)。
    例如:shodan search apache --fields ip_str,port,org

k、has-vuln:<vulnerability>

    找出具有特定漏洞的设备。
    例如:shodan search apache has_vuln:Ture --limit 5 country:US(查找美国含有漏洞的5个设备)

七、host命令

host参数用于在 Shodan 中查找特定 IP 地址的详细信息。与search命令不同,host直接用于获取某个特定 IP 的相关数据,比如设备的开放端口、服务、断层等详细信息。

1、基本用法
shodan host <IP地址>
2、示例

 查找特定IP地址的详细信息:shodan host x.x.x.x(这里比较敏感,师傅们自行尝试)

3、返回信息

使用host参数会返回该IP地址的以下信息:

  • IP地址的断层(如国家、城市、经纬度)

  • 开放端口和服务(如HTTP、FTP、SSH等)

  • 服务的Banner信息(可以包含服务版本信息)

  • 设备的可能漏洞信息(如 CVE 编号)

  • 组织信息(如 ISP 或组织名称)

4、注意事项
  • 需要 Shodan API Key 才能使用host查询。

  • host参数适用于特定IP查询,而不是批量或范围查询。

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

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

相关文章

合合信息亮相PRCV大会,探讨生成式AI时代的内容安全与系统构建加速

一、前言 在人工智能技术的飞速发展下&#xff0c;生成式AI已经成为推动社会进步的重要力量。然而&#xff0c;随着技术的不断进步&#xff0c;内容安全问题也日益凸显。如何确保在享受AI带来的便利的同时&#xff0c;保障信息的真实性和安全性&#xff0c;已经成为整个行业待解…

高速自爆穿梭无人机技术详解

高速自爆穿梭无人机技术是一种结合了高速飞行与自爆式攻击能力的先进无人机技术。以下是对该技术的详细解析&#xff1a; 一、技术特点 1. 高速飞行&#xff1a; 高速自爆穿梭无人机通常具备极高的飞行速度&#xff0c;如部分型号的速度可达到174公里/小时&#xff0c;甚至更…

Stack和Queue(3)

Stack和Queue&#xff08;3&#xff09; priority_queue的模拟实现 priority_queue.h #include <vector>namespace soobin {template<class T, class Container vector<T>>class priority_queue{public://强制生成默认构造priority_queue() default;temp…

html+css+js实现Notification 通知

实现效果&#xff1a; 代码实现&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Notif…

深入拆解TomcatJetty——Tomcat如何实现IO多路复用

深入拆解Tomcat&Jetty 专栏地址&#xff1a; 极客时间-深入拆解Tomcat & Jetty IO 多路复用 当用户线程发起 I/O 操作后&#xff0c;网络数据读取操作会经历两个步骤&#xff1a; 用户线程等待内核将数据从网卡拷贝到内核空间。内核将数据从内核空间拷贝到用户空间…

Docker搭建DVWA靶场以及刷题记录

Docker搭建DVWA靶场以及刷题记录 Docker搭建DVWA靶场以及刷题记录靶场搭建 刷题记录SQL InjectionLowMediumHighImpossible SQL Injection(Blind)LowMediumHigh XSS (Reflected)LowMediumHigh XSS (Stored)LowMediumHigh File UploadLowMediumHigh Docker搭建DVWA靶场以及刷题记…

zabbix 6.0 监控clickhouse(单机)

zabbix 6.0 LTS已经包含了clickhouse的监控模板&#xff0c;所以我们可以直接使用自带的模板来监控clickhouse了。 0.前置条件 clickhouse 已经安装&#xff0c;我安装的是24.3.5.47zabbix-agent 已经安装并配置。系统是ubuntu 2204 server 1. 新建监控用户 使用xml的方式为…

适用于 Windows 11/10 电脑 的 13 个最佳文件恢复软件

如果您由于系统故障、硬件损坏、人为错误或病毒攻击而丢失了重要文件或文件夹。不用担心&#xff0c;因为我们随时为您提供帮助&#xff01;借助正确的文件恢复工具&#xff0c;您可以立即检索计算机上不同类型的文件。如果你有为您的文件创建备份&#xff0c;你不用担心&#…

juzigei/基于 ThinkPHP+Mysql灵活用工_灵活用工系统_灵活用工平台

基于 ThinkPHPMysql 灵活用工灵活用工平台灵活用工系统灵活用工小程序灵活用工源码灵活用工系统源码 开发语言 ThinkPHPMysql 源码合作 提供完整源代码 软件界面展示 一、企业管理后台 二、运用管理平台 三、手机端

ECharts饼图-饼图自定义样式,附视频讲解与代码下载

引言&#xff1a; 在数据可视化的世界里&#xff0c;ECharts凭借其丰富的图表类型和强大的配置能力&#xff0c;成为了众多开发者的首选。今天&#xff0c;我将带大家一起实现一个饼图图表&#xff0c;通过该图表我们可以直观地展示和分析数据。此外&#xff0c;我还将提供详…

视频播放速度过快怎么办?视频速度调慢的简单方法

视频播放速度过快怎么办&#xff1f;在这个快节奏的时代&#xff0c;我们似乎习惯了迅速浏览和消化信息&#xff0c;视频内容也不例外。然而&#xff0c;有时我们会遇到视频速度过快的问题&#xff0c;这不仅让我们难以捕捉到每一个细节&#xff0c;更可能让我们错失视频所要传…

【ChatGPT插件漏洞三连发之二】零点击Github仓库接管

在我们深入研究细节之前&#xff0c;我们想先解释一下插件上的帐户接管意味着什么。 举个例子&#xff0c;当您安装与您的 GitHub 交互的插件时&#xff0c;此插件会在插件网站上为您创建一个额外的帐户&#xff0c;用于存储您的 GitHub 凭据。使用这些凭据&#xff0c;插件可…

内置数据类型、变量名、字符串、数字及其运算、数字的处理、类型转换

内置数据类型 python中的内置数据类型包括&#xff1a;整数、浮点数、布尔类型&#xff08;以大写字母开头&#xff09;、字符串 变量名 命名变量要见名知意&#xff0c;确保变量名称具有描述性和意义&#xff0c;这样可以使得代码更容易维护&#xff0c;使用_可以使得变量名…

Linux中级(DNS域名解析服务器)

一。产生原因1.IP地址&#xff1a;是互联网上计算机唯一的逻辑地址&#xff0c;通过IP地址实现不同计算机之间的相互通信&#xff0c;每台联网计算机都需要通过IP地址来互相联系和分别&#xff0c;但由于IP地址是由一串容易混淆的数字串构成&#xff0c;人们很难记忆所有计算机…

计算机毕业设计Python+大模型租房推荐系统 租房大屏可视化 租房爬虫 hadoop spark 58同城租房爬虫 房源推荐系统

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 用到的技术: 1. python…

【独家:AI编程助手Cursor如何revolutionize Java设计模式学习】

【独家:AI编程助手Cursor如何revolutionize Java设计模式学习】 导语 在Java高级编程的世界里,设计模式是每个开发者必须掌握的利器。但是,如何快速理解并灵活运用这些模式呢?让我们一起探索如何借助AI编程助手Cursor,轻松掌握设计模式,提升Java编程技能! 正文 设计模式:J…

opencv - py_ml - py_kmeans

文章目录 1.理解 K-Means 聚类目标理论T 恤尺码问题它是如何工作的&#xff1f; 其他资源 2.OpenCV 中的 K-Means 聚类目标理解参数输入参数输出参数 1.理解 K-Means 聚类 目标 在本章中&#xff0c;我们将理解 K-Means 聚类的概念、其工作原理等。 理论 我们将通过一个常用…

4.2-6 使用Hadoop WebUI

文章目录 1. 查看HDFS集群状态1.1 端口号说明1.2 用主机名访问1.3 主节点状态1.4 用IP地址访问1.5 查看数据节点 2. 操作HDFS文件系统2.1 查看HDFS文件系统2.2 在HDFS上创建目录2.3 上传文件到HDFS2.4 删除HDFS文件和目录 3. 查看YARN集群状态4. 实战总结 1. 查看HDFS集群状态 …

JVM 实战篇(一万字)

此笔记来至于 黑马程序员 内存调优 内存溢出和内存泄漏 内存泄漏&#xff08;memory leak&#xff09;&#xff1a;在Java中如果不再使用一个对象&#xff0c;但是该对象依然在 GC ROOT 的引用链上&#xff0c;这个对象就不会被垃圾回收器回收&#xff0c;这种情况就称之为内…

matlab中,close和close all的区别、clc和clear的区别、

文章目录 1. clear vs. clear all2. clc vs. clear3. hold on vs. hold off4. subplot vs. subplot(221)5. axis tight vs. axis equal6. save vs. saveas总结 在 MATLAB 中&#xff0c;有许多命令和函数在功能上相似&#xff0c;但其用法和效果却有所不同。以下是一些常见的例…