java agentlib jdwp,JDWP无依赖攻击

2023-11-11

JDWP

JDWP 是 Java Debug Wire Protocol 的缩写,在JPDA(Java Platform Debugger Architecture)中,它定义了调试器(debugger)和被调试的 Java 虚拟机(target vm)之间的通信协议。

8880b23d1d04d4d8ef128ca20826bbe6.png

与PHP的 Xdebug 类似,当其调试端口直接开放在公网上时,很容易被攻击者攻击并且获取系统权限。

Useful link:

探测 JDWP 服务

JDWP并无固定的端口,当未指定调试端口时,则会随机指定一个空闲端口。

启动JDWP参数:

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 -jar spring-boot-demo-helloworld.jar

nmap

nmap -sT 192.168.0.100 -p8000 -sV

测试了一下,并不是特别的精准,需要扫描多次。

0b61b7e0b8025a090e19375aef6d4fb8.png

Masscan

默认为扫全球,并且限定了端口,请自行修改。

自实现

demo(python2):

import socket

client = socket.socket()

client.connect(("192.168.0.100", 8000))

client.send("JDWP-Handshake")

if client.recv(14)=="JDWP-Handshake":

print "[*] Detected JDWP service"

client.close()

0ba3c27c16ad56bdf6cd633653bf6878.png

漏洞利用

jdwp-shellifier

优点: 轻量,容易集成到扫描器中

缺点: 使用下断点的方式执行命令,需要猜测调用的方法,并且需要等待直到触发击中断点。

msf

与jdwp-shellifier不同,这个exp的作者想到了更为直接的办法:直接去sleeping的线程,下发单步指令,然后就可以断下来了...具体原理我也没有太弄清楚。

优点: 更为通用,不用猜测调用方法以及等待

缺点: 依赖metasploit框架,直接上传msf木马而不是执行命令,容易被发现。

jdb

java debugger,随JDK安装。

远程attach调试:

jdb -attach 192.168.0.100:8000

利用方式, 这里直接使用msf中exp的姿势:

attach远程地址

threads命令查看所有线程,查找sleeping的线程

thread 线程id命令

通过(print|dump|eval)命令,执行java表达式,从而达成命令执行

d032e99ac08df3f6d85ab94718d70423.png

优点: 非常直接,简单的利用

缺点: 不容易集成

自实现EXP

通过学习以上几种利用方式,通过抓包分析、学习协议,结合jdwp-shellifier中实现的JDWP-CLIENT,非常容易重现msf的exp,实现轻量方便的利用。

项目地址:

https://github.com/Lz1y/jdwp-shellifier

POC.gif?raw=true

可以发现原版脚本执行,断点一旦没有猜中,给我们的就是无尽的等待,修改后的脚本则可以实时的得到反馈。

文末

此文章主要还是利用层面占比较重。在原理方面,文中的链接已经说明非常清晰了,没有必要在复述一遍。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java agentlib jdwp,JDWP无依赖攻击 的相关文章

  • Illumina输出文件详解

    Illumina输出文件详解 Illumina测序原理 next seq 550 基本过程 基本概念 BCL文件 Base Call Files BCI文件 Base Call Index Files BGZF文件 Block GNU ZI
  • C++泛型函数及模版类

    什么是泛型编程 简单来说 泛型编程 意思就是针对广泛类型的编程方式 具体类型可以有不同的实现方式 但是针对广泛类型编程 就能在需要调用时才指定参数类型或者调用类型 泛型编程是一种基于发现高效算法的最抽象表示的编程方法 也就是说 以算法为起点
  • youtube-dl下载速度慢解决方法

    Python版本 3 10 运行环境 Windows10 问题描述 在使用youtube dl下载视频时网速很慢 并一直限制在某个速度上 如下 解决办法 进入windows 安全中心 病毒和威胁防护 管理设置 点击添加或删除排除项 添加排除
  • mysql 基于gtid ssl 主从复制(半同步)

    主库 1 生成证书 根据实际的mysql安装路径 data db mysql 5 7 26 bin mysql ssl rsa setup d data conf mysqldb 2 修改权限 cd data conf mysqldb ch
  • ch05与游戏世界交互——鼠标打飞碟小游戏

    游戏内容要求 游戏有 n 个 round 每个 round 都包括10 次 trial 每个 trial 的飞碟的色彩 大小 发射位置 速度 角度 同时出现的个数都可能不同 它们由该 round 的 ruler 控制 每个 trial 的飞
  • chroot命令

    转载 理解 chroot 什么是 chroot chroot 即 change root directory 更改 root 目录 在 linux 系统中 系统默认的目录结构都是以 即是以根 root 开始的 而在使用 chroot 之后
  • 感知机对偶算法

    知识源于 统计学习方法 第二版 李航 感知机 perception 一种二分类的线性分类模型 输入为实例的特征向量 输出为实例的类别 二分类类别为 1 1二值 用算法2 2 感知机学习算法的对偶形式 代码实现例2 2 一 实验目的 用算法2
  • 1061 判断题

    判断题的评判很简单 本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分 输入格式 输入在第一行给出两个不超过 100 的正整数 N 和 M 分别是学生人数和判断题数量 第二行给出 M 个不超过 5 的正整数 是每道题的满分值 第
  • POJ-3253 Fence Repair

    农夫约翰想修理牧场周围的一小段围栏 他测量围栏并认定他需要 1 20000 厚木板 每一个都具有一些整数长度大号我 1 大号我 50000 单元 然后 他购买一块长板足够长 以便看到N块板 即 其长度是长度L i的总和 FJ忽略了 切口 锯
  • VPP代码阅读中文注解--dlist.h

    双向链表算法 本双向链表的所有元素存储在一个pool中 根据pool中内存块的序号进行索引 typedef struct u32 next u32 prev u32 value dlist elt t 本双向链表中每一个元素的结构 valu
  • Linux基础命令使用(4)

    which命令 which 命令的作用是 在 PATH 变量指定的路径中搜索可执行文件的所在位置 它一般用来确认系统中是否安装了指定的软件 which 可执行文件名称 确认是否安装了 gcc which gcc whereis命令 wher
  • 移动基站

    中国移动的基站采用小区制 覆盖范围几KM 而联通采用大区制 可以覆盖几十KM 辐射的频率大小和能量决定覆盖范围 也从另一角度来看 由能量守恒的角度来分析 手机辐射大的其基站辐射小 GSM 反之手机辐射小的其基站辐射大 CDMA 一般分为以下
  • Liferay中的Portlet事件通信

    Liferay中的Portlet事件通信在有的项目开发中是需要实现的一种机制 下面转自http liferaycms blogspot com 2011 07 inter portlet communication html Inter p
  • Java 5-2、用户模块-7个接口实现

    5 2 用户模块 7个接口实现 web端注册 app端注册 所需参数更少 登录 用户详情 修改密码 用户开关 修改用户信息 一 新增类 AppUserService java 此类需定义和mapper层接口大致相同的方法 仅做返回值取舍 因
  • 编译报错:Module parse failed: Unexpected token (18:41)

    error in node modules yargs lib platform shims esm mjs Module parse failed Unexpected token 18 41 You may need an approp
  • 科研笔记(九)重构智能手机CSI指纹用于室内定位(上)

    重构智能手机CSI指纹用于室内定位 题目 CRISLoc Reconstructable CSI Fingerprinting for Indoor Smartphone Localization 论文作者 Zhihui Gao Yunfa
  • Google Chrome访问出现 NET::ERR_CERT_INVALID

    前言 搭建一个nginx网站后 访问出现 您的连接不是私密连接 解决Google Chrome浏览器访问一个网页出现 NET ERR CERT INVALID 这是因为访问没有使用信任的CA证书的网站 chrome提示NET ERR CER
  • 电脑开机就重启循环_如何远程重启服务器???

    重启远程服务器重启的方法如下 方法一 使用windows自带的shutdown命令 远程重启服务器 当远程桌面连接服务无法顺利使用后 首先要确定的是服务器是否真的死机 通过ping目标服务器IP看是否畅通或者访问该服务器上的相关网络服务看是
  • 基于zlib实现的zip文件解压缩,支持目录解压缩,使用c语言实现

    目前用到了解压缩目录的功能 使用zlib来实现 但是找遍了网上的例子很少涉及到使用c语言编写并且完成多目录解压缩的例子 于是自己查看源码的minizip例子 修改了一下供大家参考 zlib官网下载 https www zlib net 当前

随机推荐

  • 掌优电子提供了私有化的刷脸支付部署

    现在刷脸支付是比较受热宠的一个加盟招商项目 不仅仅是刷脸支付带给商家便利 带给消费者不一样的智慧体验 这更是科技进步 互联网发展的一项实力证明 刷脸支付是继移动支付后推出的一种基于人脸AI识别技术 不仅仅让消费者在付款买单的时候摆脱了对手机
  • Spring Cloud中,Eureka常见问题总结

    Spring Cloud中 Eureka常见问题总结 指定Eureka的Environment 1 eureka environment 指定环境 参考文档 https github com Netflix eureka wiki Conf
  • 寻找数组的中心索引

    给你一个整数数组 nums 请计算数组的 中心下标 数组 中心下标 是数组的一个下标 其左侧所有元素相加的和等于右侧所有元素相加的和 如果中心下标位于数组最左端 那么左侧数之和视为 0 因为在下标的左侧不存在元素 这一点对于中心下标位于数组
  • mmdetection W&B 用wandb权重和偏差以进行记录

    如题 共需要修改四个文件 1 mmcv runner hooks logger init py from pavi import PaviLoggerHook from tensorboard import TensorboardLogge
  • 【Kubernetes运维篇】RBAC之准入控制器详解

    文章目录 一 ResourceQuota准入控制器 1 ResourceQuota是什么 2 限制CPU 内存 Pod数量 Deployment数量 3 限制存储空间大小 二 LimitRanger准入控制器 1 LimitRanger是什
  • L2-017 人以群分 (25 分)(c语言实现)

    该题目如下 如题所示 其中会先给数据的个数 所以先进行数据的录入 利用数组来存储数据中的活跃度 同时利用一个n来记录数组中元素的个数 数据录入过程 int n1 n2 n3 int n 0 scanf d n int arr 100000
  • python自动化:列表的处理

    用到的第三方库 用于判断是否可迭代的库 from collections import Iterable def getCount list0 value 功能 统计元素出现的次数 仅支持字符串或数组统计 param list0 可迭代数据
  • angular:css row-gap作用

    问题 如题 解决 row gap可以使用于网格布局 也可以使用于flex布局 调整行间距
  • python 读写csv文件(创建,追加,覆盖)

    总述 这篇博客讲述python怎样创建 读写 追加csv文件 创建 利用csv包中的writer函数 如果文件不存在 会自动创建 需要注意的是 文件后缀一定要是 csv 这样才会创建csv文件 这里创建好文件 将csv文件的头信息写进了文件
  • Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by serv

    node 使用mysqljs链接Mysql数据库时报以下错误 原因是mysql8 0更改了密码默认的认证插件为Caching sha2 password 原来是mysql native password 更改密码为mysql native
  • 互联网摸鱼日报(2023-04-30)

    互联网摸鱼日报 2023 04 30 InfoQ 热门话题 被ChatGPT带火的大模型 如何实际在各行业落地 Service Mesh的未来在于网络 百度 Prometheus 大规模业务监控实战 软件技术栈商品化 应用优先的云服务如何改
  • 【Selenium】获取属性

    文章目录 1 获取窗体属性 1 1 获取网页标题 1 2 获取网址 1 3 获取浏览器名称 1 4 获取网页源码 2 获取元素属性 2 1 获取元素的文本内容 2 2 获取元素属性 2 3 获取其他属性 1 获取窗体属性 1 1 获取网页标
  • 深度学习笔记二:多层感知机(MLP)与神经网络结构

    为了尽量能形成系统的体系 作为最基本的入门的知识 请参考一下之前的两篇博客 神经网络 一 概念 神经网络 二 感知机 上面的两篇博客让你形成对于神经网络最感性的理解 有些看不懂的直接忽略就行 最基本的符号的记法应该要会 后面会用到一这两篇博
  • SpringBoot整合SpringSecurity认证与授权

    唠嗑部分 在项目开发中 权限认证是很重要的 尤其是一些管理类的系统 对于权限要求更为严格 那么在Java开发中 常用的权限框架有哪些呢 推荐的有两种 Shiro 与 SpringSecurity 当然也可以结合切面自己实现 Shiro是Ap
  • 算法分析与设计编程题 递归与分治策略

    棋盘覆盖 题目描述 解题代码 para 棋盘 行偏移 列偏移 特殊行 特殊列 void dividedCovering vector
  • BifroMQ:五分钟了解百度开源旗下消息中间件

    BifroMQ 并不是一个独立的公司 而是由一家名为 Bifrost 的公司开发的一款产品 Bifrost 公司成立于 2014 年 总部位于中国北京 是一家专注于开源技术的公司 当时 Bifrost 公司的创始人陈明发起了开源项目 iPr
  • 一步步开发自己的OS操作系统

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 以MSP430单片机为例控制4个灯以不同频率闪烁 把原理搞清楚了一通则百通 可以举一返三 注 以下所讲的堆栈即栈 因为堆栈说习惯了 堆是堆栈是栈 MSP430有16个寄存器
  • 关于linux服务器上生成的图片中文字为的乱码问题

    一 功能描述 linux服务器后端生成图表 使用了canvas和echarts 并将生成的图片发送到企业微信群里 二 出现的问题 生成的图表中文展示不出来 是乱码 错误图表展示如下 三 文字乱码出现的原因 linux服务器没有对应的文字 四
  • mysql删除以什么开头的数据_Mysql如何删除以“#sql-”开头的临时表

    MySQL如何删除以 sql 开头的临时表 现象 在重建索引后 发现Mysql服务器的磁盘空间快满了 在用如下命令重建索引 mysql gt alter table skatetab add unique index id uid drop
  • java agentlib jdwp,JDWP无依赖攻击

    JDWP JDWP 是 Java Debug Wire Protocol 的缩写 在JPDA Java Platform Debugger Architecture 中 它定义了调试器 debugger 和被调试的 Java 虚拟机 tar