南充茶坊笔记
2019-12-09 23:09:34 Author: bbs.pediy.com(查看原文) 阅读量:285 收藏

[原创]南充茶坊笔记

13小时前 326

这道题么打出来,最近几天出去了,发现看雪工作号wp已经帖出,看了下算法,厉害...:

https://bbs.pediy.com/thread-256272.htm

后续分析我就中断了,但是笔记还是发出来留一下:

  南充是个好地方,茶坊更是好生不错,虽然没去过,但闻三月刚好。双击后就已知在其它路径下执行了CM.exe,但是还是想分析一下主程序,要不作者就白写了:



Win1CallBack函数:

创建RarSFX0:

WinRAR 解压方式:

setup=cm.exe TempMode Silent=1 Overwrite=1


ShellExecuteExW执行了CM.exe:

CM.exe

压缩壳展开:

第一阶段解压PE:

加载IAT:

PE DUMP:

动态跟踪后,释放了Python静态编译库,不知所然:

一路到CreateProcess(),创建新进程附加新CM.exe,有意思的是全是Python模块进行调用:

  综合上述有两种可能,C++调用Python,第二种Python打包成exe(pyinstaller以前分析Xbash恶意软件,恰好分析过Xbash恶意软件,学习过pyinstaller跨平台恶意代码),程序在Temp下释放的静态Py环境,_MEIXXXX则是最好的证明。

pyinstaller还原:

贴一下原来写的博客,介绍一下pyinstaller:

pyc提取:https://github.com/pyinstaller/pyinstaller/blob/develop/PyInstaller/utils/cliutils/archive_viewer.py

关注的s标志段中name是本身文件名:

简单分析了一下提取脚本与维护格式:

X的命令去提取pyc,可以默认:

pyinstaller打包后会丢失pyc字节码,可以看出打包模块都是py3.7,少了第一行结构:

添加完整的字节码,EasyPythonDecompiler工具还原报错,换uncompyle6即可,还原出CM.py:

Pyinstaller程序跟踪:    

    坑来了,缺少模块CMpub与general,函数名是可以猜到模块作用。具体解决方案尝试了一下没成功(研究不到位),按道理说一定会将依赖.py释放到临时文件夹或_MEIxx文件夹中,加载后模块看一下导入表导出表(那么多模块中一定有),不就结了,尝试还原出from模块:

创建新进程,X64附加下断,或者另起一个新进程:

附加,下多个断点稳妥一些,输入UserName之后下断,NtDeviceIoControlFile,地址来看在kernelbase32.dll模块中,栈回溯跟两步找模块:

py32.dll模块跟踪:

后续就不贴了py逆向模块就不贴出了,主要不完善。

CM.py分析:

首先看上去就是RSA了:


虽然模块么提取成功,但是还是简单分析了一下:


上述算法,如果username可控,也就是seq可控,完全可以控制账户生成随机数223344,先pow、后enc0,这样check()函数输入即输出。

但是题目已经给出了username=KCTF,那就没有投机取巧可言,是个真RSA,因为看汇编撸的Python函数验证函数,撸了检测与get_enc_seq(部分),还是需要多学习。


[公告]安全测试和项目外包请将项目需求发到看雪企服平台:https://qifu.kanxue.com

最后于 13小时前 被一半人生编辑 ,原因:


文章来源: https://bbs.pediy.com/thread-256366.htm
如有侵权请联系:admin#unsafe.sh