远程调试
2022-03-16 10:48:47 # Java安全

对Jar包进行远程调试

这里以冰蝎做示例,使用IDEA创建一个Java项目,并创建一个lib文件夹将Jar包和它的db数据库放入,再选中lib文件夹后,右键选择“add as library”,将lib文件夹添加进项目依赖,成功添加后可以看到Jar包中反编译后的源代码。

image-20220316105447105

通过右上角的“Add Configurations”,并单击“+”来添加一个“Remote”,默认配置即可,单击“apply”提交保存。其中“-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005”将作为运行时的启动参数。

image-20220316105652338

将“ -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005”作为启动参数运行冰蝎的Jar包,suspend表示是否暂停程序等待调试器的连接,“y”表示暂停,“n”表示不暂停。建议选择暂停,避免程序执行过快导致一些断点无法拦截程序。

image-20220316105920262

设置好断点,单击右上角的Debug按钮,即可发现程序在断点处暂停,然后可以进行逐步的调试了

image-20220316110144268

对Weblogic进行远程调试

进入/weblogic/CVE-2017-10271文件夹,修改其中的docker-compose.yml,将8453端口打开,这个端口是用来调试的

image-20220316111612357

使用docker-compose up -d 命令编译镜像并启动容器,如下容器启动成功,开始8453端口映射到本地

image-20220316112022492

使用docker exec -it 25 /bin/bash命令进入容器,使用vim修改~/Oracle/Middleware/user_projects/domains/base_domain/bin

image-20220316112501671

使用docker restart命令重启容器,再进入容器,将/root/Oracle/Middleware/下的modules和wlserver_10.3文件夹使用zip命令压缩成zip压缩包。容器中是一个简易的Linux系统,需要执行apt-get install zip来安装zip压缩功能。Windows命令行对路径长度有限制,如果直接使用dokcer的cp指令,就会在复制一些长文件名的文件时报错,因此这一步的目的就是打包成压缩文件再进行复制,使用docker cp命令将zip文件复制到本机下

image-20220316114732752

将该文件夹移动至一个项目文件中,选中wlserver_10.3/server/lib文件和modules文件右键单击,选择“add as library”添加库

image-20220316121505388

配置调试器,和上面的jar包一样,端口换成8453就行了

image-20220316121117895

对Tomcat进行远程调试

同样进入Vulhub中CVE-2017-12615漏洞环境所在的文件夹,修改docker-compose.yml文件,将5005端口开启,进入容器中,在/usr/local/tomcat/bin/catalina.sh插入命令JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005",然后重启docker;下一步就是导出dokcer里面的lib,docker cp 25:/usr/local/tomcat/lib ./,并把lib设置为库,后面配置调试器,和上面的jar包一样。