关于对一次java勒索的分析学习
样本执行过程
样本内容
lib其实是open jdk,其中启动游戏bat是
也就是通过java去运行qwq.jpg。这里首先对jpg进行binwalk进行分离处理 得到
这里11A88.zip和下面文件是一样的。文件内容如图所示
通过MANIFEST.MF得到这里的主类是killer.pad.Main。但是这样子我们却没有得到这个class 通过hex查看也没有特征。
这里尝试运行,会发现c盘没有反应 只有在d盘运行他才会有反应。
通过运行之后我们根目录会出现
以及其他目录jar文件会被加密掉。
后缀为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导出我们通过反编译查看 全部混淆了
但是这里有个m1_函数
像当解密操作了,这里直接抠出来。由此得知为什么只在d盘运行有效了。
通过查看其他步骤 大概就是操作file进行文件读写加密的一个操作。
还原制作手法
第一次遇见 觉得挺骚的。通过资料搜索以及或许可能是制作人询问?
得知zip 当我们存在一个同名文件夹且有内容 在存在一个文件的时候 一般的zip解压会优先解压文件夹,因为不能同时存在同名所以会丢弃此文件。而JDK是通过寻找PK头来进行的,所以导致我们找不到class文件。当然由于他zip也混淆太厉害 没提取出来。这里演示一下手法。
通过binwalk也确实分离不出来 由于我们没有多次潜逃,通过hex可以得到这个文件 提取出来的