关于对一次java勒索的分析学习

样本执行过程

样本内容

image-20230804212411127

lib其实是open jdk,其中启动游戏bat是

image-20230804212501643

也就是通过java去运行qwq.jpg。这里首先对jpg进行binwalk进行分离处理 得到

image-20230804212643913

这里11A88.zip和下面文件是一样的。文件内容如图所示

image-20230804212736287

通过MANIFEST.MF得到这里的主类是killer.pad.Main。但是这样子我们却没有得到这个class 通过hex查看也没有特征。

这里尝试运行,会发现c盘没有反应 只有在d盘运行他才会有反应。

通过运行之后我们根目录会出现

image-20230804213108313

image-20230804213139450

以及其他目录jar文件会被加密掉。

image-20230804213229022

后缀为ass_pad。这里通过sa-jdi.jar+dumpclass.jar进行内存dump。

分析过程

首先进程执行的太快了,所以我们需要通过一些自定义的规则进行拦截,例如火绒。因为我们知道他创建了txt。就可以把此作为拦截的规则~

因为我们知道MANIFEST.MF中killer.pad.Main是主类,所以直接使用sa-jdi.jar attach他即可 配合dumpclass 使用命令

java -jar dumpclass.jar -p 1228 -o d:\class_code killer.pad.Main

将class导出我们通过反编译查看 全部混淆了

image-20230804213818967

但是这里有个m1_函数

image-20230804213851267

像当解密操作了,这里直接抠出来。由此得知为什么只在d盘运行有效了。

image-20230804214013048

通过查看其他步骤 大概就是操作file进行文件读写加密的一个操作。

还原制作手法

第一次遇见 觉得挺骚的。通过资料搜索以及或许可能是制作人询问?

得知zip 当我们存在一个同名文件夹且有内容 在存在一个文件的时候 一般的zip解压会优先解压文件夹,因为不能同时存在同名所以会丢弃此文件。而JDK是通过寻找PK头来进行的,所以导致我们找不到class文件。当然由于他zip也混淆太厉害 没提取出来。这里演示一下手法。

image-20230804214518432

通过binwalk也确实分离不出来 由于我们没有多次潜逃,通过hex可以得到这个文件 提取出来的

image-20230804214630576

posted @ 2023-08-05 00:01  R0ser1  阅读(106)  评论(0编辑  收藏  举报