- A+
PoisonCake可以单独运行,解密释放相关主体功能模块,在后台监控自身进程并执行以下恶意行为:
2. 实现短信和WAP扣费。
3. 窃取手机信息,并上传至远程服务器。
4. 后台联网下载文件。
5. 能够进行自我更新。
同时它在执行过程中会创建多个目录和文件,主要有:
/data/usr(目录)
/data/usr/dalvik-cache(目录)
/data/usr/plugins(目录)
/data/.l1
/data/.l6
/data/.l9
/mnt/sdcard/sysv/lv
/mnt/sdcard/sysv/lg
其整体运行框架如下所示:
dm模块接受“–setup”参数完成初始化行为:
2)判断/data/.dmtjjexit是否存在,若存在,则进程退出。
3)设置进程环境变量,并将进程名称改为jworker/0I:2H:1J。
4)将自身拷贝到/data/.3q/dm,并创建/data/usr目录,然后删除自身。
5)fork自身并退出,子进程执行/data/.3q/dm,由其完成余下工作。
dm模块采用了文件锁和线程的方式,能持续监控自身进程保持后台运行。dm运行时后台有两个进程,如下图所示。
创建子线程,不断循环创建自身子进程的行为,并且利用文件锁,保证建立的子进程在父进程存在的时候阻塞:
当kill掉父进程或子进程中任意一个时,其会再创建一个新的进程。
最后dm进程会从自身文件中解密释放reactor.dex.jar至/data/usr:
dm随后将释放的reactore.dex.jar加载运行,其利用libdvm.so中的JNI_CreateJavaVM运行jar,其参数列表为
–Djava.class.path=/data/usr/reactore.dex.jar-Djava.compiler=NONE-verbose:jni
然后注册native函数getGirls,最后执行com/tj/Main的main方法
reactore.dex.jar是由一个负责初始化环境、循环遍历执行事件和命令的框架模块和数个插件模块组成,其将功能模块实现分成四个主要类别:
2)业务仓库Repository。
3)服务Service,负责后台执行相关功能。
4)组件Component。
其整体执行逻辑流程如下图:
reactore.dex.jar内置默认了8个插件模块,每个插件分别执行不同的行为:
以下对重点的插件模块分别进行分析。
其首先释放可执行模块whitebean和待注入的libblackbean.so、redbean.dex.jar,然后依次执行以下命令完成注入:
a.whitebean–checklibblackbean.so
检测运行环境,这里主要检查android::AndroidRuntime::mJavaVM和android::AndroidRuntime::getRuntime的获取。
b.whitebeancom.android.phonelibblackbean.soreadbean.dex.jarcacheRelease/data/usr/server.log
其将libblackbean.so和readbean.dex.jar注入到phone进程中,并执行com.android.phone.os.Program类。
完成后删除自身。
honeybee模块主要会记录运行日志信息,以AES加密形式存放至/data/usr/honey文件,并且上传至远程服务器http://slasty.hada1billi.info/honeycomb/ums/postEvent。
honey文件的解密结果如下所示:
sun模块主要提供网络连接功能,并与远程服务器建立Heartbeat连接,其连接url为http://ubaj.tndmnsha.com/throne。
PoisonCake是一个非常完善的后门程序,其实现具备良好的架构特点,并且易于扩展,其在运行过程中会迅速删除自身释放的模块,所有在手机上存放的文件均为加密形态。其执行较为隐蔽,并且难以被发现和查杀。
工具下载地址:
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫