GoAnywhere Managed File Transfer 漏洞调试环境搭建

发布于 2024-09-10 09:47:26 字数 5473 浏览 19 评论 0

0x00 前言

本文记录从零开始搭建 GoAnywhere Managed File Transfer 漏洞调试环境的细节。

0x01 简介

本文将要介绍以下内容:

  • GoAnywhere Managed File Transfer 安装
  • GoAnywhere Managed File Transfer 漏洞调试环境配置
  • 数据库操作

0x02 GoAnywhere Managed File Transfer 安装

参考资料: https://static.fortra.com/goanywhere/pdfs/guides/ga6_8_6_installation_guide.pdf

下载地址: https://www.goanywhere.com/products/goanywhere-free/download

需要注册账号获得 license

GoAnywhere Managed File Transfer 可以分别安装在 Windows 和 Linux 操作系统

Windows 系统下默认的 Web 路径: C:\Program Files\HelpSystems\GoAnywhere\tomcat\webapps\ROOT

Linux 系统下默认的 Web 路径: /usr/local/HelpSystems/GoAnywhere/tomcat/webapps/ROOT

1.开启远程调试功能

通过开启 Tomcat 调试功能来实现,开启 Tomcat 调试功能的方法如下:

  • 切换至 bin 目录
  • 执行命令: catalina jpda start

Tomcat 调试功能开启后默认监听本地 8000 端口

对于 GoAnywhere Managed File Transfer,开启调试功能的方法如下:

(1)Windows 下调试

修改文件 C:\Program Files\HelpSystems\GoAnywhere\tomcat\bin\GoAnywhere.exe 的文件属性

双击文件 C:\Program Files\HelpSystems\GoAnywhere\tomcat\bin\GoAnywhere.exe ,切换到 Java 标签页,在 Java Optinos 添加: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8090 ,如下图

Alt text

重启服务 GoAnywhere

(2)Linux 调试

修改文件: /opt/HelpSystems/GoAnywhere/tomcat/bin/start_tomcat.sh ,将 exec "$PRGDIR"/"$EXECUTABLE" start "$@" 修改为 exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"

修改文件: /opt/HelpSystems/GoAnywhere/tomcat/bin/goanywhere_catalina.sh ,将 JPDA_ADDRESS="localhost:8000" 修改为 JPDA_ADDRESS="*:8090"

注:

Tomcat 默认的调试端口 8000 同 GoAnywhere Managed File Transfer 的 Web 端口冲突,所以这里选择修改 Tomcat 默认的调试端口为 8090

打开防火墙允许外部访问 8090 端口: iptables -I INPUT -p tcp --dport 8090 -j ACCEPT

启动 GoAnywhere 进程: /opt/HelpSystems/GoAnywhere/goanywhere.sh start

0x03 数据库操作

GoAnywhere Managed File Transfer 使用 Apache Derby 数据库

Windows 下默认数据库存储位置为: C:\Program Files\HelpSystems\GoAnywhere\userdata\database\goanywhere

Linux 下默认数据库存储位置为: /opt/HelpSystems/GoAnywhere/userdata/database/goanywhere/

数据库操作的实现细节可从 lib 文件夹下的 ga_classes.jar 获得

从中我们可以得到 Web 用户口令加密的实现细节,对应位置: C:\Program Files\HelpSystems\GoAnywhere\lib\ga_classes.jar!\com\linoma\ga\ui\admin\action\user\ChangeUserPasswordAction.class

提取出的 Java 实现代码如下:

import com.linoma.commons.crypto.PasswordHash;
import com.linoma.commons.crypto.PasswordHashFactory;
import com.linoma.dpa.util.SystemInfo;
public class Main {
    public static void main(String[] args) throws Exception, Exception {
        PasswordHash var2 = PasswordHashFactory.getPasswordHash(SystemInfo.getPasswordHashAlgorithm(), "");
        String var3 = var2.hash("Password@123456");
        System.out.println(var3);
    }
}

1.读取 Derby 数据库

(1) 命令行实现

使用 Apache Derby,下载地址: https://archive.apache.org/dist/db/derby/db-derby-10.14.2.0/db-derby-10.14.2.0-bin.zip

运行 bin 目录下的 ij.bat

连接数据库: connect 'jdbc:derby:C:\Program Files\HelpSystems\GoAnywhere\userdata\database\goanywhere;';

查询用户配置: SELECT * FROM DPA_USER;

(2) 界面化实现

使用 DBSchema,下载地址: https://dbschema.com/download.html

启动 DBSchema 后,选择连接 Derby 数据库, JDBC Driver 选择 derbytools.jar org.apache.derby.jdbc.EmbeddedDriverFolder 选择 C:\Program Files\HelpSystems\GoAnywhere\userdata\database\goanywhere

查询用户数据表,如下图

Alt text

可以看到默认用户有以下三个:

  • Administrator,未启用
  • root,未启用
  • admin,默认用户

2.修改数据库

GoAnywhere Managed File Transfer 的 Derby 数据库使用了内嵌模式,其他应用程序不可访问,所以有以下两种修改数据的方法:

(1)GoAnywhere Managed File Transfer 处于运行状态

可以通过写入 jsp 文件实现数据库的修改

(2)GoAnywhere Managed File Transfer 处于关闭状态

可以选择 Apache DerbyDBSchema 打开数据库文件夹,直接进行修改

修改数据库的命令示例:

  • 启用 root 用户: UPDATE APP.DPA_USER SET ENABLED='1' WHERE USER_NAME='root';
  • 设置 root 用户口令: UPDATE APP.DPA_USER SET USER_PASS='$5$mpoe6zI4B6+LHRMdbFKr8g==$RnAILbYe9KDauKE3wXTFVvlXQNZeM4Z2c7x1aEtME/U=' WHERE USER_NAME='root';

0x04 小结

在我们搭建好 GoAnywhere Managed File Transfer 漏洞调试环境后,接下来就可以着手对漏洞进行学习。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

木有鱼丸

暂无简介

文章
评论
27 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文