My+first+project—ZBG(zoomeye+batch+gather)

1.前言

自从学会了根据漏洞利用编写POC批量验证脚本(基于python3)。我越来越明白代码的重要性。Are you kown,my English is pool and so is my code. 特别是在2021HW之后,我发现要回归原始,回归代码。 所以,便有了这个小项目—ZBG,就像Wgpsec团队成员写的TIG一样,尝试去写自己的小工具。虽然github上有不少基于zoomeye资产搜集的脚本,可以拿来用。但是,你不去写,可能永远不会写。github上的脚本,基本都是在一个文件里,包括TIG脚本。确实没有面对对象编程的思维。大学里学过编程课程的朋友都知道,面对对象编程的三个特征:封装、继承和多态。如果你不是做开发的,可能你永远无法理解!

2.ZBG介绍

ZBG(zoomeye batch gather),即:zoomeye批量搜集脚本(工具)。该脚本由afei00123(本人)编写,基于python3编写。

github地址:github.com/ltfafei/ZBG

小项目结构:

│ ├── checkToken.py	#检查token是否存在,不存在则登录获取
│ ├── config.py	#配置zoomeye邮箱和密码
│ ├── getToken.py	#登录获取token
│ └── zoomeyeQuery.py	#zoomeye查询批量获取资产 

实现逻辑: 首先登录获取token,如果token文件已存在就用该token直接查询;如果token失效就删除该文件重新登录获取token,再用新的token进行查询。其实功能很简单。

3.学习别人的项目

在自己写这个工具的时候,单纯看zoomeye的API接口文档有点不懂,也是第一次写。俗话说:万事开头难。可以从别人的项目中进行学习,但不能照搬。

zoomeye github地址:github.com/knownsec/Zo…

zoomeye API接口文档:www.zoomeye.org/doc

参考项目:github.com/starnightcy…

4.API学习

2021年,最值得学习5项技能中就包括了python和API,学会根据API接口获取想要的数据。有了这个项目的学习,对于API的渗透也有了更好的理解。在渗透测试过程中,你有没有遇到过API接口?是不是束手无策,无从下手。看着Freebuf等博客大佬的文章,你还是不知所以然。

4.1 zoomeye API参数

查询参数:

根据API文档中的响应结果,明白需要取什么数据。

4.2 zoomeyeQuery.py主要代码

def query(self, query, page, num, facet, file):gettoken = check_Token()random_ua = get_token()headers = {'Authorization': "JWT " +gettoken.check_token(),"User-Agent": random_ua.random_useragent()}api = "https://api.zoomeye.org/host/search"index = 0while True:try:#如果index=设置的最大页数,则跳出循环if index == num:breakprint(f"\033[31m[+] 正在获取第{page}页结果:")page += 1index += 1query_res = requests.get(api, headers=headers, params={"query": query, "page": page, "facets": facet}).text# 转化为json,方便提取字段json_res = json.loads(query_res)["matches"]count = 1for i in json_res:print(f"[{count}] " + i['ip'] + ":" + str(i['portinfo']['port']))res = i['ip'] + ":" + str(i['portinfo']['port'])with open(file, "a") as fw:fw.writelines(res + "\n")count += 1except Exception as e:print("[-] 请确认是否达到最大查询次数!") 

5.缺点及未来优化

钟馗之眼(Zoomeye)的API查询时获取的端口默认是第一个,所以查询时最好添加统计项参数。钟馗之眼的查询分两种:基于登录token查询和基于APIkey查询。进一步优化:

(1)添加基于APIkey的查询;

(2)添加基于python爬虫获取资产,导出到excel。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值