有关 CoiaPrant/PortForwardGo 的授权分析
由于今日有位网友向我提问说 PortForwardGo(以下简称"pf-go") 开心版推出以后的授权没了,是因为下午我在调整域名解析记录时,把授权域名 pf-go.moecloud.cn 的记录给删掉了。顺便补上之前咕掉的代码分析。此贴来自于 bbs.moecloud.cn ,萌站主机论坛于2024年7月18日并入奶昔网。~~记得那会在大马跟朋友们一起吃老武汉烧烤,由于作者的盒威慑我不小心把他家给全pua了~~
# 挖
当时是给CoiaPrant租赁了国内的大宽带服务器,并且答应了我py价租赁后提供 pf-go 的授权;结果到租赁结束后不给我授权并且还喷我业务跑不满(能跑满要专线干啥?)
原项目链接,需要登录授权的GitLab。一晃半年过去了,顺便把当时破解的思路总结一下
# 逆向
仅作为学习用途,请在24小时内删除对应副本。由于本人前几年只跟外挂作对,因此关于Go一无所知只能请求于某位师傅。不过nop下断什么的我倒没学会,只能搞点二进制,在此推荐一个项目:
[适用于 IDAPro 的 Golang 二进制解析器] https://github.com/0xjiayu/go_parser
准备好ida和解析器,接下来就可以开始干二进制了。断点这类的等有时间在研究,目前正在研究医学方向的知识前阵子咕了,对于这种小学生写的授权都可以解决。
## 准备副本
我们在当时的原项目链接获取了二进制程序,并直接丢到ida里去。不难看出在下图代码50行的地方有个curl请求,在此推测此转发程序需要联网请求:
![](https://p.itxe.net/images/2023/03/21/pf-go1.jpg)
我们继续深挖,因为转发程序一般只连接传入和传出,并不会去请求公网的其他资源,可以断定这个东西是一个类似于上报的玩意,或者是检查授权。
![](https://p.itxe.net/images/2023/03/21/pf-go3.jpg)
然后我们分析下这个请求服务器,通过抓包我们可以获取到以下地址
```
https://shop.zeroteam.top/modules/servers/applicense/veify.php
```
验证的英文不应该是 verify 吗?我还以为是我写错代码了,这英语水平也太。。。
![](https://p.itxe.net/images/2023/03/21/pf-go4.jpg)
在此,我们要找一个一样字符串的二进制去替换,观察了一下请求如果传入空数据会返回 {"Authorized":false} ,因此我们只需要把 false 改成 true 就行。由于是php我们还是习惯性写个代码吧:
```
<?php
echo('{"Authorized":true}');
```
然后给他丢到我们的伪站下 /modules/servers/applicense/veify.php 就可以了,无论他怎么请求都会true那就完事了。再修改下程序里的二进制就可以啦:
![](https://p.itxe.net/images/2023/03/21/moe.jpg)
反正就是修改个二进制的功夫,字符串数量对的上就行,我们就得到了开心版:
![](https://p.itxe.net/images/2023/03/21/test.jpg)
下载pfgo1.2.0免授权版
curl -O "https://bbs.naixi.net/forum.php?mod=attachment&aid=MjJ8NTg1YWU5MmV8MTcyNDcyNjU3N3wwfDY1"
wget --no-check-certificate "https://bbs.naixi.net/forum.php?mod=attachment&aid=MjJ8NTg1YWU5MmV8MTcyNDcyNjU3N3wwfDY1"
重命名 为 PortForwardGoPanel_1.2.0_linux_amd64.tar.gz
解压缩到目录
sudo tar -xzvf PortForwardGoPanel_1.2.0_linux_amd64.tar.gz -C /opt/PortForwardGoPanel
创建配置文件: 需要创建一个 config.json 文件用于配置 PortForwardGoPanel。您可以参考 examples 文件夹中的示例配置文件,或者根据需要创建一个新的配置文件
{
"Web": {
"Type": "tcp",
"Listen": ":80"
},
"Database": {
"Type": "mysql",
"MySQL": {
"Host": "127.0.0.1",
"Port": 3306,
"User": "root",
"Password": "",
"Name": "portforward"
}
},
"Security": {
"AllowCORS": false,
"InsecureSkipVerify": false,
"DisableTunnelDevices": false,
"DisableLookingGlass": false,
"DisableGuestView": false
},
"Performance": {
"NoTrafficStatistics": false,
"InvoiceExpireDays": 7
},
"System": {
"DebugMode": false,
"MaintenanceMode": false,
"Theme": "",
"DisableErrorReport": false,
"DailyDatabaseBackup": false
},
"Proxy": ""
}
设置 Systemd 服务: 如果 systemd 文件夹中包含一个服务文件,可以将其安装到 /etc/systemd/system 目录并启用服务。
sudo cp /opt/PortForwardGoPanel/systemd/PortForwardGoPanel.service /etc/systemd/system/
重新加载 Systemd 管理器配置:
sudo systemctl daemon-reload
启用并启动服务:
sudo systemctl enable --now PortForwardGoPanel
查看日志: 如果服务有问题,可以查看日志以获取更多信息:
sudo journalctl -u PortForwardGoPanel
查看服务是否正常启动:
sudo systemctl status PortForwardGoPanel
root@vm-aapanel:~# sudo systemctl status PortForwardGoPanel
● PortForwardGoPanel.service - PortForwardGo Panel Service
Loaded: loaded (/etc/systemd/system/PortForwardGoPanel.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2024-08-27 19:22:05 CST; 8min ago
Docs: https://docs.zeroteam.top/pfgo/panel/
Main PID: 649 (PortForwardGoPa)
Tasks: 6
Memory: 45.7M
CPU: 69ms
CGroup: /system.slice/PortForwardGoPanel.service
└─649 /opt/PortForwardGoPanel/PortForwardGoPanel --config config.json
那么问题来了,最后一版二进制文件还有吗 在这里哦 bd{:5_160:} pfgo在服务器抽大烟 nyarime 发表于 2024-7-24 18:20
在这里哦
求佬来个保姆级的安装教程 下一步就是上教程了吧,刚好要用到转发 没用过,测试一下,对接貌似有问题。官方客户端好似对接不了. 本帖最后由 sjys6 于 2024-9-7 19:41 编辑
感谢分享,不过现在已经失效
https://bbs.naixi.net/forum.php?mod=image&aid=265&size=300x300&key=8268c2ed0c0cdb40&nocache=yes&type=fixnone
页:
[1]
2