坤?鲲之大,何之其里也?坤舆集成了Seebug漏洞库和ZoomEye的搜索功能,是一款我认为非常强悍的信息收集工具。
前言
本文是作者从github上下载下来对"坤舆"进行分析,有不足的地方欢迎大家在评论区交流。坤舆集成了Seebug漏洞库和ZoomEye的搜索功能。
下载地址
项目地址:https://github.com/knownsec/Kunyu
百度网盘:
链接:https://pan.baidu.com/s/1mRGTatOOeq3VkVU-MubfKA
提取码:4fng
工具介绍
Kunyu (坤舆),名字取自 <坤舆万国全图> ,测绘实际上是一个地理信息相关的专业学科,针对海里的、陆地的、天上的地理信息进行盘点。同样应用于网络空间,发现未知、脆弱的资产也是如此,更像是一张网络空间地图,用来全面描述和展示网络空间资产、网络空间各要素及要素之间关系,以及网络空间和现实空间的映射关系。所以我认为“坤舆”还是比较贴合这个概念的。
Kunyu(坤舆),旨在让企业资产收集更高效,使更多安全相关从业者了解、使用网络空间测绘技术
配置方法、安装方法、使用场景等可以根据下载地址下下来的文件readme.md中查看
工具分析
当你在使用工具的时候大致会执行以下步骤:
当前文件: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函数去执行
当前文件:kunyu/core/zoomeye.py
我们就跳到_dork_search函数上看看
这个_dork_search函数是在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,各位师傅快去下来玩一玩呀!
- 本文作者: Zhbk
- 本文来源: 奇安信攻防社区
- 原文链接: https://forum.butian.net/share/516
- 版权声明: 除特别声明外,本文各项权利归原文作者和发表平台所有。转载请注明出处!