浅谈Goby Redteam版本破解

作者:Sec-Labs | 发布时间:

Goby介绍

Goby是⼀款新的⽹络安全测试⼯具,由赵武Zwell(Pangolin、JSky、FOFA作者)打造,它能够
针对⼀个⽬标企业梳理最全的攻击⾯信息,同时能进⾏⾼效、实战化漏洞扫描,并快速地从⼀个
验证⼊⼝点,切换到横向。我们希望能够输出更具⽣命⼒的⼯具,能够对标⿊客的实际能⼒,帮
助企业来有效地理解和应对⽹络攻击。

 

前言

前⼏天在⽹络上冲浪,偶然得知goby还有Redteam版本,发现⽹络上并没有Redteam版本的破解版。
也没有相关的破解⽂章,因此我对goby的验证体系产⽣了好奇。考虑到开发者利益这⾥不展示具体破解
代码。

 

基础信息收集

⾸先从朋友那⾥要了⼀个redteam版本的goby。打开运⾏之后查看其进程。发现其存在四个进程如下图
所示。

微信截图_20220101153904.png

其中三个是由goby.exe启动的,另⼀个是goby-cmd.exe启动

PID=22396
名称=goby-cmd
命令⾏参数=-mode api -bind 127.0.0.1:8361 -rate 100 -random true
PID=25632
名称=Goby
命令⾏参数=--type=renderer --no-sandbox --enable-features=FixAltGraph --
service-pipe-token=XXXXX --lang=zh-CN --app-path="D:\goby-win-x64-
1.8.281\resources\app.asar" --node-integration=true --webview-tag=true
PID=4640
名称=Goby
标题=Chrome_WidgetWin_0
命令⾏参数=--type=gpu-process --enable-features=FixAltGraph --no-sandbox --
gpu-preferences=XXXXXXXX
PID=8648
名称=Goby
标题=Goby - Attack surface mapping

从这⾥⼤致了解出了goby的基础架构。


猜测goby-cmd⽤于提供扫描器的⼀些核⼼功能,goby.exe⽤于提供⽤户交互的界⾯。使⽤的是electron开发代码在app.asar中。


打开程序在左下⻆可以申请或者设置license

微信截图_20220101154017.png

其中有⼀个⽐较重要的信息是MID
这⼀串值是通过对本地信息计算得到的⼀串数值。

 

尝试破解

打开wireshark,捕获本地流量,发现存在向8361端⼝访问的流量。
对http://127.0.0.1:8361/api/v1/version,以及http://127.0.0.1:8361/api/v1/getEnvi?
field=licenseInfo进⾏访问获取licenseInfo等相关信息()。


这⾥我本地写了⼀个http服务尝试顶掉8361端⼝代替他进⾏回复。果然成功通过了验证机制。在验证过
后重启goby-cmd.exe提供服务。⾄此我的goby换上了Redteam版本的红⾊⽪肤。

微信截图_20220101154649.png

众所周知,redteam版本最⼤的不同是多出了很多的poc,通过点击右下⻆漏洞升级即可获得。

微信截图_20220101154714.png

但我破解后发现⽆法获取到这些专业版本的poc。这是为什么呢?
通过对app.asar解包后阅读源码。

解包⽅法如下
npm install asar -g
asar e app.asar ⽂件夹

发现程序是通过从远程从官⽅的服务器来下载获取poc的,其中有个参数的值为⽣成的MID值,怪不得
⽆法下载下来,原来是因为我计算机⽣成的MID值不能通过远程服务器校验。如何通过远端服务器校验
呢?要么找官⽅的⼈帮你把你的mid加进去,要么⾃⼰把服务器打下来,身为守法公⺠我当然是选择了
1(其实是因为⼆进制菜鸡根本不会渗透)。

 

从官⽅获取Goby Redteam版本

添加了Gobybot的微信,经过询问得知可以写插件来获得,就顺⼿写了个插件,获得了⼀个⽉的
Redteam版本使⽤机会,美滋滋。

微信截图_20220101154820.png

⽽后使⽤⼀样的请求和参数再次尝试下载poc果然成功了(下载的poc是被加密过的)。

验证了我的猜想,服务端是存在校验的。
突然反应过来,我要redteam版本有啥⽤,我⼜不专⻔搞渗透

微信截图_20220101154943.png

 

 

标签:思路分享