网络空间搜索引擎

news2024/12/23 8:45:35

 

 

随着互联网、物联网、传感网、社交网络等信息系统所构成的泛在网络不断 发展,网络终端设备数量呈指数级上升。这为企业进行终端设备资产清点和统一 管控带来了巨大挑战,同时也引发了一系列安全问题,网络攻击与防御的博弈从 单边代码漏洞发展到了大数据对抗阶段,网络空间搜索引擎应运而生。

搜索引擎是指从互联网搜集信息,经过一定整理以后,提供给用户进行查询 的系统。传统搜索引擎对我们来说并不陌生,像Google 、百度等,每天我们几乎 都会用它们来搜索消息。与传统搜索引擎相比,网络空间搜索引擎有很大不同, 其搜索目标为全球的IP地址,实时扫描互联网和解析各种设备,对网络中的设备 进行探测识别和指纹分析,并将其扫描的目标信息进行分布式存储,供需求者检 索使用。传统的网络空间搜索模型框架一般由五部分组成:扫描和指纹识别、分 布存储、索引、UI界面以及调度程序,如图4-6所示。

b19ada50b61e48aa8d75335a80a3cc8a.png

图4-6    网络空间搜索模型框架

网络空间搜索引擎的用途有很多。对于安全研究者来说,能够帮助安全研究 人员针对APT组织、攻击方式等情况进行分析;对于公司安全管理人员,能够帮 助他们进行网络资产匹配、安全评估等;对于安全白帽子,能够帮助渗透测试人 员在与目标非交互的情况下搜集信息,例如,搜索资产、系统类型,开放端口

等。

 

 

 

 

 

 

4.3.1    常见搜索引擎平台

 

目前的网络空间搜索引擎平台比较多,各具特色,均可通过用户指定的关键 词来搜索网络中的设备或者设备信息。常见的网络空间搜索引擎有Shodan、

Censys 、ZoomEye 、Fofa 、Punk SPIDER 、IVRE(Drunk)和傻蛋等,接下来将详 细介绍ZoomEye和Shodan两款搜索引擎。

ZoomEye ,又称为“钟馗之眼” ,是国内安全厂商知道创宇倾力打造的知名空 间搜索引擎,它可以识别网络中的站点组件指纹和主机设备指纹。相较于

Shodan ,它更侧重于Web资产发现,而Shodan偏向于主机层面。该搜索引擎可以 搜索出三十多万条吻合度较高的数据,与此同时,ZoomEye具备全球4100万个网 站的网站组件指纹库,极大地提高了搜集效率和准确度。ZoomEye的搜索界面简 约,易上手,高级搜索功能非常实用,用户体验不错,“海盗榜计划”可以区分出 不用权限的用户,提高用户的互动性。 目前的ZoomEye针对普通用户是免费,但 是某些模块和数据需要收费,如图4-7所示为ZoomEye搜索引擎界面。

Shodan是全球开放最早的网络空间搜索引擎,也是目前全球最为知名的搜索 引擎。Shodan每月中会在全球5亿左右的设备上进行信息搜集,主要针对服务

器、网络设备、摄像设备、工控设备等基础设备进行扫描。Shodan为用户提供了 11种代码库,便于使用API接口,其中部分浏览器中集成了带有Shodan搜索功能  的插件。使用Shodan需要注册账号,同时可以缴费注册成会员,企业版和高级企 业版是收费的。Shodan还提供了Scanhub 、Images 、3D效果展示、CLI 、蜜罐判断 等实用性较强的功能,如图4-8所示为Shodan搜索引擎界面。

 

 

 

 

 

ea30757e895540d2a0f1ddd5aad2206c.png

图4-7    ZoomEye搜索引擎

c404a6623f8d4c298832b60eb45320a6.png

图4-8    Shodan搜索引擎

 

 

 

 

 

 

4.3.2    搜索引擎语法

下面就以ZoomEye和Shodan两大网络空间搜索引擎为例,对搜索引擎的使用 进行简单介绍。

ZoomEye支持公网设备指纹检索和Web指纹检索。Web指纹识别包括应用

名、版本、前端框架、后端框架、服务端语言、服务器操作系统、网站容器、内 容管理系统和数据库等。设备指纹识别包括应用名、版本、开放端口、操作系

统、服务名、地理位置等,直接输入关键词即可开始检索。下面列举了ZoomEye 的常见搜索语法,表4-8所示为设备指纹检索语法,表4-9所示为Web指纹检索语 法。

表4-8    设备指纹检索语法

05e8a12a976d4150a996d5fce4bb1098.png

表4-9    Web指纹检索语法

eb36474eeabd4b28a686d51cd357811a.png

 

 

 

 

 

63f43de3a99f4865832e452f5d2c17dd.png

为了能够更好地解释ZoomEye设备指纹搜索语法,下面列举了搜索设备指纹  的使用示例,比如想查询在美国纽约市的Linux系统,且系统中运行组件为Apache 的服务器,我们可以构造如下的搜索语法:

 

app:"Apache httpd" +os:"linux" +country:US +city:"New York City"

搜索结果如图4-9所示。

2fcbb8e2c0ab44259bdf23dbbd9555dc.png

图4-9    ZoomEye搜索结果

接下来列举了Web指纹检索的使用示例,比如想查询美国纽约地区使用Linux 系统的网站,可以构造如下的搜索语法:

22d862091b0441708048e1e1f2a737e6.png

site:google .com +os:linux +country:US +city:"New York City"

 

 

 

 

 

图4-10    Web指纹检索示例

c1bbc9f5af6647abb598d316fc9a673c.png

Shodan主要获取互联网中设备中的服务、位置、端口、版本等信息, 目前比 较受欢迎的内容有webcam 、linksys 、cisco 、netgear 、SCADA等。通过不同的搜  索语法可以做到批量搜索漏洞主机、统计中病毒主机、进行弱口令爆破、获取

shell等功能。表4-10中整理了常用的搜索语法。

表4-10    Shodan常用语法

表4-10中整理的Shodan语法只是其中一部分,这些语法可以结合在一起使用

 

 

 

 

 

 

 

 

 

 

 

4.3.3    搜索引擎API的使用

 

1.ZoomEye

ZoomEye除了以上介绍的智能检索功能以外,还提供了强大的Restful API功  能,用户通过它能够更好地与平台连接,调用平台提供的各类资源。接下来将带 领大家通过Python程序调用ZoomEye的API接口实现自动化信息搜集。ZoomEye平 台主要使用的是Json Web Token的登录验证方式,用户进行登录,并获取

access_token就可以直接调用API功能。方法如下:

方法1    通过curl命令直接获取access_token 。在Linux系统终端执行如下命 令,其中username为注册的邮箱或手机号,password为登录密码:

 

curl -X POST https://api.zoomeye .org/user/login -d '{ "username" :"20***** 989@qq .com", "password" :"123*******wxz"} '

运行结果如下所示:

{"access_token" : "eyJhbGciOiJIUzI1Ni IsInR5cCI6IkpXVCJ9 .eyJpZGVudGl0eSI6IjIw NzI2MjI5ODlAcXEuY29t*********************TM1OTE2NzgsImV4cCI6MTU5MzYzNDg 3OH0 .3Ync_i7QBTVgtAOMkkZSGWz5Y__zps_1s3fVM-eMm6Y"}

方法2    通过Python脚本获取access_token 。通过构造post请求的方式,将用户 名和密码以json的格式发送到ZoomEye的后端,打印出响应数据包,代码如下所  示:

 

#!/usr/bin/python

#coding:utf-8

import requests

import json

def main() :

username = input("username:")

password = input("password :")

url = "https://api.zoomeye .org/user/login"

data = json .dumps({ 'username ' : username, 'password ' : password})

access_key = requests .post(url=url,data=data,verify=False)

print(access_key .text)

if __name__ == "__main__" :

main()

执行效果如图4-11所示。

 

7b18255d62ff4a37bb5ecbe0cbc081a6.png

 

 

 

20230724024159.png?origin_url=file%3A%2F%2F%2FC%3A%5CUsers%5Clenovo%5CAppData%5CLocal%5CTemp%5Cksohtml9832%5Cwps358.png&pos_id=Nr7cVdAE

图4-11    打印响应数据包

接下来,可以利用获取到的access_token检索我们需要的信息,这里将通过案 例进行演示说明,关于ZoomEye API详细的字段说明,大家可参考官方指导手册  (ZoomEye - Cyberspace Search Engine)。

案例1    使用host方法,查询开放6379端口的服务器IP地址,并打印出检索到 的IP地址和端口号,详细代码如下所示:

20230724024159.png?origin_url=file%3A%2F%2F%2FC%3A%5CUsers%5Clenovo%5CAppData%5CLocal%5CTemp%5Cksohtml9832%5Cwps359.jpg&pos_id=3CE6dXGy

U

#coding:utf-8

import requests

from bs4 import BeautifulSoup

import json

import re

def main() :

headers = {

"Authorization" : "eyJhbGciOiJIUzI1Ni IsInR5cCI6IkpXVCJ9 .eyJpZGVudGl0eSI6

IjIwNzI2MjI5ODlAcXEuY***********************************0MzYsImV4cCI6MT U5MzYzNTYzNn0 .4EkTH3vh3JSjBJ_wEfnaMhQWuPSaIzQypBAKpfUSuZ0"

}

url = "https://api.zoomeye .org/host/search?query=port :6379&page=1&facet= app,os"

info = requests .get(url=url,headers=headers)

r_decoded = json .loads(info .text)

for line in r_decoded[ 'matches '] :

print(line[ 'ip ']+ ' : '+str(line[ 'portinfo '][ 'port ']))

if __name__ == "__main__" :

try:

main()

except Keyboard Interrupt :

print("interrupted by user, killing all threads . . .")

输出结果如下:

 

 

 

 

 

8b08dd15311643d59de304d755718927.png

2.Shodan

使用Python去调用Shodan的API接口可以实现自动化信息搜集,首先需要注册 用户,在My Account中可以看到API Key。

初始化API:

 

20230724024159.png?origin_url=file%3A%2F%2F%2FC%3A%5CUsers%5Clenovo%5CAppData%5CLocal%5CTemp%5Cksohtml9832%5Cwps362.png&pos_id=SE0xl5VM

20230724024159.png?origin_url=file%3A%2F%2F%2FC%3A%5CUsers%5Clenovo%5CAppData%5CLocal%5CTemp%5Cksohtml9832%5Cwps363.png&pos_id=SmUfbtBC

import shodan

SHODAN_API_KEY= 'Hg4t6PpPMvz4mgQhS**********KkCZLXh '

shodan_api=shodan .Shodan(SHODAN_API_KEY)

20230724024159.png?origin_url=file%3A%2F%2F%2FC%3A%5CUsers%5Clenovo%5CAppData%5CLocal%5CTemp%5Cksohtml9832%5Cwps364.png&pos_id=wNslk9Gy

20230724024159.png?origin_url=file%3A%2F%2F%2FC%3A%5CUsers%5Clenovo%5CAppData%5CLocal%5CTemp%5Cksohtml9832%5Cwps365.png&pos_id=OfkQAW8j

 

初始化API之后就可以使用Shodan的库函数,下面整理一些函数。可以参考 Shodan官方给出的API文档(Shodan Developer)。

·shodan_api.count(query ,facets=None):查询结果数量。

·shodan_api.host(ip ,history=False):获取一个IP的详细信息。

·shodan_api.ports() :获取Shodan可查询的端口号。

·shodan_api.protocols() :获取Shodan可查询的协议。

·shodan_api.services() :获取Shodan可查询的服务。

·shodan_api.scan(ips ,force=False):使用Shodan进行扫描,ips可以为字符 或字典类型。

案例2    使用host方法获取指定IP的相关信息,代码如下:

 

 

 

 

 

import shodan

import json

SHODAN_API_KEY= 'Hg4t6P###########4U9zKkCZLXh '

shodan_api=shodan .Shodan(SHODAN_API_KEY)

ip=shodan_api.host('8.8.8.8 ')

print(json .dumps(ip))

运行结果如下所示:

 

{"region_code" : null, "ip" : 134744072, "postal_code" : null, "country_code" : "US", …… "ip_str" : "8 .8 .8 .8", "os" : null, "ports" : [53]}

案例3    搜索JAWS摄像头,将IP和端口打印出来,代码如下:

import shodan

import json

SHODAN_API_KEY= 'Hg4t6PpP##########4U9zKkCZLXh '

shodan_api=shodan .Shodan(SHODAN_API_KEY)

results=shodan_api.search( 'JAWS/1 .0 ')

print("Results found :%s"%results[ 'total '])

for result in results[ 'matches '] :

print(result[ 'ip_str ']+" :"+str(result[ 'port ']))

运行结果如下:

3512b9fd107442ecac4fcaf9e9133631.png

以上内容主要介绍了网络空间搜索引擎的基本概念,对Zoomeye和Shodan两 款搜索引擎的特点和常用语法进行详细的说明,让读者在对国内外的搜索引擎有 一定了解的同时可以熟悉Zoomeye和Shodan的搜索语法。最后结合Python和搜索 引擎API进行自动化信息搜集,笔者通过简单的示例介绍了Zoomeye和Shodan的  API使用方法,希望读者多去实践,能够在工作中运用搜索引擎提高信息搜集的 效率和质量。

 

 

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

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

相关文章

SpringMVC 自动配置

SpringMVC 自动配置 一、WebMvcAutoConfiguration(SpringMVC自动配置)二、DisPatcherServletAutoConfiguration.class(中央调度器自动配置)三、WebMvcConfigurationSupport(SpringMVC组件配置类)四、Servle…

RHCE 搭建DNS域名解析服务器

目录 一、前述 1、BIND(Berkeley Internet Name Domain) 2、bind服务中三个关键文件 1)主配置文件/etc/named.conf 2)区域配置文件/etc/named.rfc1912.zones 正向解析 反向解析 3)数据配置文件目录/var/named/…

STM32 1-5

目录 STM32简介 点亮PC13LED GPIO LED闪烁 LED流水灯 按键控制LED 光敏传感器控制蜂鸣器 OLED调试工具 OLED显示 EXTI外部中断 对射式红外传感器计次 旋转编码器计次 继续 STM32简介 点亮PC13LED main.c #include "stm32f10x.h" // D…

Hadoop-MapReduce-YarnChild启动篇

一、源码下载 下面是hadoop官方源码下载地址&#xff0c;我下载的是hadoop-3.2.4&#xff0c;那就一起来看下吧 Index of /dist/hadoop/core 二、上下文 在上一篇<Hadoop-MapReduce-MRAppMaster启动篇>中已经将到&#xff1a;MRAppMaster的启动&#xff0c;那么运行M…

如何让wordpress首页只显示某一篇文章全部内容?在您的主页显示选择

大多数WordPress站点首页默认都是显示最新发布的文章列表&#xff0c;不过有些站点比较特殊&#xff0c;只想显示某一篇文章的全部内容&#xff0c;那么应该怎么设置呢&#xff1f; 其实&#xff0c;WordPress后台 >> 设置 >> 阅读 >> 在“您的主页显示”中…

VS+QT 配置Eigen库

1、下载Eigen库&#xff0c;如下&#xff1a; 2、解压到项目目录下&#xff0c;如下&#xff1a; 3、 在C/C中包含文件&#xff0c;如下&#xff1a; 4、在头文件中加入如下代码&#xff1a; 5、测试代码&#xff1a; //.cpp文件 #include "testEigen.h"testEigen::…

【Python】03快速上手爬虫案例三:搞定药师帮

文章目录 前言1、破解验证码2、获取数据 前言 流程&#xff1a;通过用户名、密码、搞定验证码&#xff0c;登录进药师帮网站&#xff0c;然后抓取想要的数据。 爬取数据&#xff0c;最终效果图&#xff1a; 1、破解验证码 使用药师帮测试系统&#xff1a;https://dianrc.ysb…

快速入门存内计算—助力人工智能加速深度学习模型的训练和推理

存内计算&#xff1a;提高计算性能和能效的新技术 传统的计算机架构是将数据存储在存储器中&#xff0c;然后将数据传输到计算单元进行处理。这种架构存在一个性能瓶颈&#xff0c;即数据传输延迟。存内计算通过将计算单元集成到存储器中&#xff0c;消除了数据传输延迟&#…

HiveSQL题——窗口函数(lag/lead)

目录 一、窗口函数的知识点 1.1 窗户函数的定义 1.2 窗户函数的语法 1.3 窗口函数分类 1.4 前后函数:lag/lead 二、实际案例 2.1 股票的波峰波谷 0 问题描述 1 数据准备 2 数据分析 3 小结 2.2 前后列转换&#xff08;面试题&#xff09; 0 问题描述 1 数据准备 …

kubernetes-快速部署一套k8s集群

1、前置知识点 1.1 生产环境可部署Kubernetes集群的两种方式 目前生产部署Kubernetes集群主要有两种方式&#xff1a; kubeadm Kubeadm是一个K8s部署工具&#xff0c;提供kubeadm init和kubeadm join&#xff0c;用于快速部署Kubernetes集群。 二进制包 从github下载发行…

04.对象树

一、引入 1.QT实现输出"hello world" 使用QT编写"hello world"程序&#xff0c;有两种实现方式&#xff1a; &#xff08;1&#xff09;直接在生成的ui文件中&#xff0c;拖入一个label控件&#xff0c;双击控件编辑内容即可实现 &#xff08;2&#xff0…

【C++历练之路】探秘C++三大利器之一——多态

W...Y的主页 &#x1f60a; 代码仓库分享&#x1f495; 前言&#x1f354;: 在计算机科学的广袤领域中&#xff0c;C多态性是一门令人着迷的技术艺术&#xff0c;它赋予我们的代码更强大的灵活性和可维护性。想象一下&#xff0c;你正在构建一个程序&#xff0c;需要适应不断…

【技术分享】远程透传网关-单网口快速实现威纶通触摸屏程序远程上下载

准备工作 一台可联网操作的电脑一台单网口的远程透传网关及博达远程透传配置工具网线一条&#xff0c;用于实现网络连接和连接触摸屏一台威纶通触摸屏及其编程软件一张4G卡或WIFI天线实现通讯(使用4G联网则插入4G SIM卡&#xff0c;WIFI联网则将WIFI天线插入USB口&#xff09;…

Redis 面试题 | 19.精选Redis高频面试题

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Mac安装及配置MySql及图形化工具MySQLworkbench安装

Mac下载配置MySql mysql下载及安装 下载地址&#xff1a;https://dev.mysql.com/downloads/mysql/ 根据自己电脑确定下载x86还是ARM版本的 如果不确定&#xff0c;可以查看自己电脑版本&#xff0c;终端输入命令 uname -a 点击Download下载&#xff0c;可跳过登录注册&…

沙龙回顾|“强标”发布在即,汽车数据安全的挑战与应对

随着智能汽车产业驶入发展快车道&#xff0c;“数据安全”的重要性也日益突出。2020年以来发现的针对整车企业、车联网信息服务提供商等相关企业的恶意攻击达到280余万次。2023年初至今&#xff0c;就发生超过20起与车企相关数据泄露事件&#xff0c;汽车数据安全的现状不容乐观…

基于Matlab无刷直流电机系统仿真建模的新方法

摘 要&#xff1a;在分析无刷直流电机&#xff08;BLDC&#xff09;数学模型的基础上&#xff0c;提出了无刷直流电机系统仿真建模的 新方法。在Matlab/Simulink 中&#xff0c;建立独立的功能模块&#xff0c;如BLDC 本体模块、电流滞环控制模块、 速度控制模块等&#xff0c;…

防御保护--智能选路

目录 就近选路 策略选路--PBR DSCP优先级 智能选路--全局路由策略 1.基于链路带宽的负载分担 2.基于链路质量进行负载分担 3.基于链路权重进行负载分担 4.基于链路优先级的主备备份 ​编辑 DNS透明代理 就近选路 我们希望在访问不同运营商服务器时&#xff0c;通过对…

IDEA安装MyBatisX插件

IDEA工具在开发人员中经常使用&#xff0c;从dao层到xml文件对应的查看很费劲&#xff0c;这时候就有相应的插件工具出现了MyBatisX。他的好处如下&#xff1a; mapper and xml can jump back and forth mybatis.xml,mapper.xml prompt mapper and xml support auto prompt lik…

多场景建模:腾讯3MN

3MN: Three Meta Networks for Multi-Scenario and Multi-Task Learning in Online Advertising Recommender Systems 背景 推荐领域的多场景多任务学习&#xff1a;维护单模型即可节省资源也可节省人力&#xff1b;各个场景的数据共享&#xff0c;理论上面学习是更加充分的 …