bt不想rt活啊,钓鱼下这猛料。今天兄弟又给了个小项目,直接奇xxvpn利用???怕了啊,公司瑟瑟发抖
https://github.com/CyberSnakeSec/xaq-vpn-pwn
兄弟文章我先发了,如果分析有误,我千字文给你道歉。
正文开始
项目结构
拆包后内容
全局搜索存在两个入口类,看名称先从pwd.class看起
代码不长,通篇大量混淆后字符串,和前几天分析哥斯拉插件钓鱼异曲同工。
使用ALLATORIxDEMO解密混淆代码。ALLATORIxDEMO和哥斯拉的也一个叼样
总的来说这段代码是入口类,先对一系列字符串解密并输出,然后解析命令行参数数组,获取特定的参数,并根据参数执行相应参数。
解密之后发现其是项目说明等,继续深扒详细功能。
紧跟sockPwn.pwn
新的解密,一堆赋值,看一眼rand_p是干啥。
这段代码生成了一个最大到11904的随机数。虽然不知道确切是做什么的但是结合上文pwn功能来看是大概率是为Socket开启了一个随机端口。
看回pwn
上述各种赋值包括目前还是密的混淆代码,和疑似开启的随机端口都被赋值给了var5。
先记下来后面慢慢盘。
这段try-catch用于执行一系列网络操作。它通过Socket对象与特定主机和端口建立连接,并发送特定的字符串数据。然后使用线程池执行任务,并最后关闭线程池。
解密混淆后的字符串查看
这段核心实现在253行附近
使用ExecutorService的submit方法,将一个任务提交到线程池。以当前对象为目标,调用方法pwn_type()。
这段代码根据系统属性"e<$!k\"o"的值,判断其是否包含特定的字符串,然后执行相应的操作。如果包含字符串"}&d",则创建一个pwnAction对象并调用其action()方法。如果包含字符串"g.i",则创建一个sockPwn对象。
解密看看都代表了什么
钓鱼佬的嘲讽。
跟进pwnAction马上就能看到他最后做了什么
解密后结果
核心看下面这两行
熟悉的defineClass(),这几行实现了反射获取指定类的Class对象,如果类不存在则通过dump()方法获取类的字节码,然后使用defineClass()方法创建一个新的类对象。熟悉的配方,熟悉的味道啊。看一眼dump
解密后对照表
修改后代码成这样,使用字节码生成了一个类。具体太乱了回到上面看到了findAttachDllPath
解密后
这段代码的目的是搜索系统中的attach.dll文件。
结合所有已知信息分析。这段代码是一个用于攻击的 Java 类,在运行时加载自身,如目标是win就执行其中的action()方法。该方法会从系统中查找attach.dll并设置其为java.library.path,然后使用 ClassLoader 动态加载 sun.tools.attach.WindowsVirtualMachine 类,并通过调用 openProcess 方法打开一个进程,然后调用 enqueue 方法往该进程中注入一个模块,最终达到控制目标进程的结果。
具体攻击详情存在于dll中,由于本人并不会dll的分析所以只能明早交给兄弟来。大概分析至此可以实锤,本项目为钓鱼项目无疑。
唯一涉及溢出利用bin文件,实际并未调用
恶意dll明早交与大佬分析,具体结果会实时修改文章反馈。
自学java出身,依托答辩,如有分析不对地方希望海涵,欢迎大佬指出错误。