首页
论坛
课程
招聘
[原创]南充茶坊笔记
2019-12-9 09:25 2641

[原创]南充茶坊笔记

2019-12-9 09:25
2641

这道题么打出来,最近几天出去了,发现看雪工作号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(部分),还是需要多学习。



[注意] 招人!base上海,课程运营、市场多个坑位等你投递!

最后于 2019-12-9 09:30 被一半人生编辑 ,原因:
收藏
点赞0
打赏
分享
最新回复 (1)
雪    币: 2636
活跃值: 活跃值 (437)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
皮皮虾啊 活跃值 2019-12-10 16:57
2
0
楼主太强了 膜拜楼主

游客
登录 | 注册 方可回帖
返回