freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

代码审计_信息收集神器_坤舆
Zhbk 2021-09-03 08:52:24 212919

前言

本文是作者从github上下载下来对”坤舆”进行分析,有不足的地方欢迎大家在评论区交流。坤舆集成了Seebug漏洞库和ZoomEye的搜索功能。

下载地址

项目地址:https://github.com/knownsec/Kunyu
百度网盘:
链接:https://pan.baidu.com/s/1mRGTatOOeq3VkVU-MubfKA
提取码:4fng

工具介绍

Kunyu (坤舆),名字取自 <坤舆万国全图> ,测绘实际上是一个地理信息相关的专业学科,针对海里的、陆地的、天上的地理信息进行盘点。同样应用于网络空间,发现未知、脆弱的资产也是如此,更像是一张网络空间地图,用来全面描述和展示网络空间资产、网络空间各要素及要素之间关系,以及网络空间和现实空间的映射关系。所以我认为“坤舆”还是比较贴合这个概念的。
Kunyu(坤舆),旨在让企业资产收集更高效,使更多安全相关从业者了解、使用网络空间测绘技术

工具分析

当你在使用工具的时候大致会执行以下步骤:

当前文件:kunyu/console.py
如果没有zoomeye的apikey和login的token值,那么就会出现报错,如果有就会执行
KunyuInterpreter里的main函数,可以从导包中看到,KunyuInterpreter模块在kunyu.core.console包中

当前文件:kunyu/core/console.py
虽然图一指向的是main函数,但是会先执行init这个魔方函数
super是为了子类继承父类之后为了调用父类方法

当前文件:kunyu/core/console.py
找到父类,可以看到父类的init魔方函数,会用eval去执行ZoomEye,调用里面的Command_info参数值来赋值给complet,setup函数里的意思是执行自动补齐,创建目录……等函数

当前文件:kunyu/core/console.py
将ZoomEye的help参数内容打印出来,附上help内容

当前文件:kunyu/core/console.py
执行父类start函数,赋值参数,利用auxiliary函数判断输入命令的信息或者有无命令情况就跳出循环,如果有第二张图命令的话就会去执行相对应的函数,分别对应清楚、设置、导出的功能。那如果输入的不是这些,就会去执行get_command_handler函数

当前文件:kunyu/core/console.py
去执行ZoomEye里的函数,这里的getattr函数只是简单定义了一下使用方法,最终还是到ZoomEye里去,如果没有识别到对应函数,就会报错。

当前文件:kunyu/core/zoomeye.py
这边就拿searchhost来举例子,按第六步来讲拼接后到ZoomEye中对应的函数是command_searchhost,发现会去调用 __command_search函数,这边对应的search就是输入的命令

当前文件:kunyu/core/zoomeye.py
一开始设置的是对表格的初始化,在接下来,就是判断输入的东西,当然你搜索host的时候,会接着执行下一步command_search,它把command_search的默认type值设为host,所以这边return过去就没有带上第二个参数

当前文件:kunyu/core/zoomeye.py
可以看到会先到_dork_search函数去执行

这个dorksearch函数是在ZoomeyeSearch父类下的,这个父类下有很多魔方函数,会先执行init、__call,其中__call这个函数会跳到__request函数去,也是在同个父类下

可以看到用if语句去尝试用get、post带参请求网站

回到_dork_search函数中,可以看到,执行完成后,会将数据保存到excel表中,对应的是以下函数,从导入模块中可以看到,这个函数是从kunyu.lib.export中的函数

当前文件:kunyu/lib/export.py
最后利用file_name = excel.save(os.path.join(setting.OUTPUT_PATH, __time))保存到对应的路径。这边的path路径对应的是第一张图上的批注,至此,完整的一个使用分析就结束了。

有的人就会问了,一开始说好的seebug哪去了
当前文件:kunyu/core/zoomeye.py
把要搜索的东西放到Seebug的search函数去执行,可以看到seebug是从kunyu.core.seebug中导入的

当前文件:kunyu/core/seebug.py
初始化执行__get_login函数,如果有登陆的话,就会获得token,往headers字典中,添加token信息,然后就去seebug漏洞库中搜索想搜索的东西。

使用演示

输入命令kunyu console 进入kunyu图形化界面

接下来就能看到命令提示栏,还有个立体化的log,这个命令提示栏帮助我们更好的输入想执行的命令

以searchhost命令演示,上面分析讲到可以输入web网址、host、domain;以www.baidu.com 为例进行演示

一页最多可以展示20个信息,可以用show命令查看常规设置,可以用命令set page = xx 来设置想要获得数据的页数

分析中谈到,可以生成excel表,是的,它会自动生成在目录下,可以利用Exportpath来查询保存的路径

总结

对坤舆分析了一波后,对我日后的工具开发和审计有蛮大帮(信)助(心),我可不想做个脚本小子,不过能白嫖还是白嫖好一点。
工具的实用性和展示性效果感觉很nice,各位师傅快去下来玩一玩呀!

# web安全 # 信息收集 # 工具使用 # 工具分析 # 信息收集工具
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 Zhbk 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
Zhbk LV.3
这家伙太懒了,还未填写个人描述!
  • 8 文章数
  • 10 关注者
Vulnhub_SP:Harrison
2022-01-14
渗透实战_CSRF_跨站请求伪造
2021-08-18
渗透红队必备工具_CobaltStrike4.3_cs与msf联动
2021-08-04
文章目录