来自 ijang 的投稿, 转载请注明来源
基本信息:
逆向分析
* 对于这种python的样本较为简单大体可以分两步进行:还原源码 --> 读代码
1.样本源码还原
对于python打包成的exe文件,需要根据其打包器进行对应的解压,DIE中识别打包工具为Pyinstaller,可以直接使用pyinstxtractor 直接进行解压
工具下载:
GitHub - extremecoders-re/pyinstxtractor: PyInstaller Extractor
python pyinstxtractor.py ezpy.exe
查看解压之后的文件,根据文件名,猜测ii.pyc为样本python代码主体。
对于pyc代码反编译,这里直接用第三方网站进行转义
https://tool.lu/pyc/
我们看一下代码反编译结果
可以看到两个信息Python2.7 和 代码用base64混淆加密,简单改一下代码对base64进行解密
file_name = 'output.txt'
Tmp = bz2.decompress(base64.b64decode('QlpoOTFBWSZTWRirXvoFDcDfgHYQf.....'))
with open(file_name, 'w', encoding='utf-8') as file:
file.write(str(Tmp.decode('utf-8')))
解密之后我们发现,代码进行了混淆,在文件开头进行了大量的重命名,这里我们直接使用快捷键进行批量替换即可,注意区分大小写。自此,我们第一步反编译源码换源到此结束。
替换前:
处理后源码:
2.源码阅读
解码后脚本量较大有1800行左右,源码量较大,我们采取对 “\” 、”http” 、 “net”、 “cmd”、 “powershell”这些字符串搜索进行阅读,也可以结合一些正则表达式对样本源码进行抽象阅读。
以下为部分匹配结果
A.部分文件路径相关代码
B.部分计划任务相关源码
C.部分防火墙相关源码
D.部分命令行操作相关源码
E.部分端口爆破、内网横向相关源码
F.在文件中还嵌入了一个mimikatz和m2的powershell脚本在此不多做分析
G.在1700行左右,有xxx、xxx、xxx三个域名,通过拼接url来回传一些计算机基础信息
情报查询后基本可确定为c2的域名
概述:
这是一个较为基础、落后的集成式后渗透工具,该工具使用python完成信息收集、横向移动、凭据窃取、持久化四个模块的实现,并主动向服务器回传一些基础信息,该工具多使用powershell或者cmd命令行进行实现,通过对python脚本的变量名、函数名进行混淆,使用Pyinstaller将混淆过的python代码进行打包为可执行文件。
原文始发于微信公众号(冲鸭安全):非常简单的分析python打包的窃密后门
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论