ZoomEye-python工具使用详解(一)

本文涉及的产品
Web应用防火墙 3.0,每月20元额度 3个月
简介: ZoomEye-python工具使用详解(一)

ZoomEye-python
ZoomEye是网络空间搜索引擎,用户能够使用浏览器搜索网络设备。 官网地址

ZoomEye-python是一个基于ZoomEye API开发的Python库,它既提供ZoomEye命令行模式(ZoomEye command line)也能够作为一个SDK集成到其他工具中。这个库可以让技术人员更方便的搜索、筛选并输出ZoomEye数据。

0x01 安装
可以直接从pypi安装,命令如下:

pip3 install zoomeye

或者从github安装,命令如下:

pip3 install git+https://github.com/knownsec/ZoomEye-python.git

0x02 如何使用cli
成功安装ZoomEye-python以后,你就可以直接使用zoomeye命令了。如下所示:

(base) liuxiaowei@MacBookAir ~ % zoomeye -h
usage: zoomeye [-h] [-v] {
   info,search,init,ip,history,clear,domain} ...

positional arguments:
  {
   info,search,init,ip,history,clear,domain}
    info                Show ZoomEye account info
    search              Search the ZoomEye database
    init                Initialize the token for ZoomEye-python
    ip                  Query IP information
    history             Query device history
    clear               Manually clear the cache and user information
    domain              search associated domain or sub domain

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit

1. 初始化token
在使用ZoomEye-python cli之前,用户需要初始化token。用来验证用户身份的凭证来自ZoomEye的查询数据;我们提供两种授权方式:

1.用户名/密码(username/password)
2.APIKEY(推荐 recommend)

你可以通过zoomeye init -h 浏览帮助,并且使用APIKEY(本人的APIKEY)演示如下:

(base) liuxiaowei@MacBookAir ~ % zoomeye init -apikey "C23AE8Ca-5b37-b5bc2-27da-3e69cbb7f30"
Role: developer
Quota: 9615
successfully initialized

备注:登录ZoomEye后,用户在个人信息档案 获取APIKEY;如下图:

image.png

APIKEY将不会过期,直到用户可以根据需要重置APIKEY。此外我们还提供了“用户名/密码”的方式初始化。这种方式认证以后,将返回一个有时效性的JWT-token,失效以后,用户需要再次登录。

2. 查询配额
用户能够通过info命令查询个人信息和免费的数据配额, 如下所示:

(base) liuxiaowei@MacBookAir ~ % zoomeye info
Role: developer
Quota: 9615
user_info: {
   'name': '10a7a631127b', 'role': 'developer', 'expired_at': ''}
quota_info: {
   'remain_free_quota': 9615, 'remain_pay_quota': 0, 'remain_total_quota': 9615}

3. 搜 索
搜索是ZoomEye-python的核心功能,通过search命令来实现。这个search命令需要特定的搜索关键词(dork),让我们运行一个简单的搜索,如下:

(base) liuxiaowei@MacBookAir ~ % zoomeye search "telnet" -num 1 
ip:port                  service             country             app                           banner                        
61.*.*.78:7007        telnet              China                                             \xff\xfb,\xff\xfb\x03\x...    
5.*.*.3:6001           telnet              Russian Federation  Cisco or Actiontec...         \xff\xfb\x01\xff\xfb\x0...    
5.*.1*.47:6001          telnet              Russian Federation  Cisco or Actiontec...               \xff\xfb\x01\xff\xfb\x0...    
45.*.*.216:119       telnet              Brazil                                            \xff\xfd\x18\xff\xfd \x...    
45.*.*.66:119        telnet              Brazil                                            \xff\xfd\x18\xff\xfd \x...    
45.*.*.251:119       telnet              Brazil

使用search命令跟使用浏览器在ZoomEye里搜索一样简单。缺省条件下,我们显示5个更重要的字段。用户能够使用这些数据来了解目标信息:

1.ip:port    ip地址和端口
2.service    开放端口的服务
3.country         该ip地址的国家
4.app              应用程序类型
5.banner         端口的特性回应

在以上的例子里,使用-num参数来指定被显示的数量。此外,search还支持参数(zoomeye search -h)以便处理数据,我们将解释和演示如下:

(base) liuxiaowei@MacBookAir ~ % zoomeye search -h
usage: zoomeye search [-h] [-num value] [-facet [field]]
                      [-filter [field=regexp]] [-stat [field]]
                      [-save [field=regexp]] [-count] [-figure {
   pie,hist}]
                      [-type {
   host,web}] [-force]
                      dork

positional arguments:
  dork                  The ZoomEye search keyword or ZoomEye exported file

optional arguments:
  -h, --help            show this help message and exit
  -num value            The number of search results that should be returned,
                        support 'all'
  -facet [field]        Perform statistics on ZoomEye database, host field:
                        [app,device,service,os,port,country,city] web field:
                        [webapp,component,framework,server,waf,os,country]
  -filter [field=regexp]
                        Output more clearer search results by set filter
                        field, host field: [app,version,device,port,city,count
                        ry,asn,banner,timestamp,*] web field: [app,headers,key
                        words,title,site,city,country,webapp,component,framewo
                        rk,server,waf,os,timestamp,*]
  -stat [field]         Perform statistics on search results, host field:
                        [app,device,service,os,port,country,city] web field:
                        [webapp,component,framework,server,waf,os,country]
  -save [field=regexp]  Save the search results with ZoomEye json format, if
                        you specify the field, it will be saved with JSON
                        Lines
  -count                The total number of results in ZoomEye database for a
                        search
  -figure {
   pie,hist}    Pie chart or bar chart showing data,can only be used
                        under facet and stat
  -type {
   host,web}      Select web search or host search(default host)
  -force                Ignore the local cache and force the data to be
                        obtained from the API
-num    设定显示/搜索的数量,支持‘all’
-count  在ZoomEye数据库里该目标(dork)查询的总数
-facet  查询目标(dork)全部数据的分布
-stat   结果集的统计数据的分布
-filter 查询数据结果集里的特定范围的列表或者根据内容筛选
-save   根据筛选条件输出结果集
-force  忽略本地缓存,强行从API获取数据
-type   选择web或者host类型搜素

4. 数据的数量
通过参数-num,我们能够指定搜索和显示的数量,并且指定的数是消费量的数目。你能够在ZoomEye数据库里通过-count参数查询dork的容量,如下:

(base) liuxiaowei@MacBookAir ~ % zoomeye search "telnet" -count
65746098

需要注意的一件事,-num参数必须是20的倍数,因为ZoomEye API的最小的单个查询数是20。

5. 统 计
我们使用-facet和-stat完成数据统计,使用-facet查询目标的全部数据(通过API获取)的统计查询,-stat你可以执行关于查询结果集的统计。两个命令支持的字段包括如下:

# host search
app        根据应用类型统计
device     根据设备类型统计
service    根据服务类型统计
os         根据操作系统类型统计
port       根据端口统计
country    根据国家统计
city       根据城市统计

# web search
webapp     根据Web应用统计
component  根据Web容器统计
framework  根据Web框架统计
server     根据Web服务器
waf        根据Web防火墙(WAF)统计
os         根据操作系统统计
country    根据国家统计

使用-facet所有应用类型为telnet的设备数量,如下:

(base) liuxiaowei@MacBookAir ~ % zoomeye search 'telnet' -facet app
 ----------------------------------------
 ZoomEye total data:65746098
 ---------------app Top 10---------------
 app                                count               
 [unknown]                          29969901            
 BusyBox telnetd                    12133486            
 Linux telnetd                      3503698             
 MikroTik router config httpd       2008659             
 Cisco IOS telnetd                  1754507             
 Huawei Home Gateway telnetd        1452441             
 Apache httpd                       1400140             
 Huawei telnetd                     1139233             
 Busybox telnetd                    953442              
 Netgear broadband router or ZyXel VoIP adapter telnetd746826

使用-stat统计和查询应用类型为telnet的设备数量,如下:

(base) liuxiaowei@MacBookAir ~ % zoomeye search 'telnet' -stat app 
 ----------------------------------------
 current total data:20
 ----------------app data----------------
 app                                count               
 MikroTik router config httpd       8                   
 Cisco or Actiontec MI424WR router telnetd7                   
 [unknown]                          4                   
 ***************                    1

接下文 ZoomEye-python工具使用详解(二)https://developer.aliyun.com/article/1618397

相关文章
|
5天前
|
数据可视化 编译器 Python
Manim:数学可视化的强大工具 | python小知识
Manim(Manim Community Edition)是由3Blue1Brown的Grant Sanderson开发的数学动画引擎,专为数学和科学可视化设计。它结合了Python的灵活性与LaTeX的精确性,支持多领域的内容展示,能生成清晰、精确的数学动画,广泛应用于教育视频制作。安装简单,入门容易,适合教育工作者和编程爱好者使用。
47 7
|
20天前
|
JavaScript 前端开发 开发者
探索 DrissionPage: 强大的Python网页自动化工具
DrissionPage 是一个基于 Python 的网页自动化工具,结合了浏览器自动化的便利性和 requests 库的高效率。它提供三种页面对象:ChromiumPage、WebPage 和 SessionPage,分别适用于不同的使用场景,帮助开发者高效完成网页自动化任务。
96 4
|
22天前
|
开发者 Python
探索Python中的列表推导式:简洁而强大的工具
【10月更文挑战第41天】 在编程的世界中,效率与简洁是永恒的追求。本文将深入探讨Python编程语言中一个独特且强大的特性——列表推导式(List Comprehension)。我们将通过实际代码示例,展示如何利用这一工具简化代码、提升性能,并解决常见编程问题。无论你是初学者还是资深开发者,掌握列表推导式都将使你的Python之旅更加顺畅。
|
2月前
|
数据采集 数据可视化 数据挖掘
R语言与Python:比较两种数据分析工具
R语言和Python是目前最流行的两种数据分析工具。本文将对这两种工具进行比较,包括它们的历史、特点、应用场景、社区支持、学习资源、性能等方面,以帮助读者更好地了解和选择适合自己的数据分析工具。
38 2
|
2月前
|
C语言 开发者 Python
探索Python中的列表推导式:简洁而强大的工具
【10月更文挑战第21天】在Python的世界里,代码的优雅与效率同样重要。列表推导式(List Comprehensions)作为一种强大而简洁的工具,允许开发者通过一行代码完成对列表的复杂操作。本文将深入探讨列表推导式的使用方法、性能考量以及它如何提升代码的可读性和效率。
|
2月前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
52 2
|
2月前
|
测试技术 Python
Python MagicMock: Mock 变量的强大工具
Python MagicMock: Mock 变量的强大工具
50 4
|
2月前
|
存储 Python
python数据类型、debug工具(一)
python数据类型、debug工具(一)
|
1月前
|
C语言 Python
探索Python中的列表推导式:简洁而强大的工具
【10月更文挑战第24天】在Python编程的世界中,追求代码的简洁性和可读性是永恒的主题。列表推导式(List Comprehensions)作为Python语言的一个特色功能,提供了一种优雅且高效的方法来创建和处理列表。本文将深入探讨列表推导式的使用场景、语法结构以及如何通过它简化日常编程任务。
|
2月前
|
网络协议 IDE iOS开发
Python编程---简单的聊天工具
Python编程---简单的聊天工具
39 2