Black Lotus最近,安全研究人员发现了许多Python恶意文件编译成 Debian 操作系统Linux二进制文件格式ELF。这些文件将由加载器运行payload,payload要么嵌入样本或从远程服务器中提取,然后使用Windows API在运行过程中注入调用。
简介
2021年8月,Black Lotus研究人员发现了大量的研究人员Debian Linux编译的可疑ELF文件。使用文件Python 3写,然后用PyInstaller转变为ELF可执行文件。Python代码用于不同的用途Windows API的加载器,Windows API可疑提取远程文件,然后注入操作过程。VirusTotal 的检测率大多是Windows无法有效分析系统设计的终端代理ELF签名。在调查中,研究人员发现了两个ELF加载方法的变化:首先是使用Python在第二个表中使用ctype调用不同的Windows API和调用powershell脚本。研究人员认为是这样。PowerShell变种仍在开发中。
技术细节
从2021年5月到2021年8月,研究人员发现样本的进化过程,从最初的样本开始Python 3编写的样本用于使用ctype来调用Windows API,再到使用PowerShell在宿主机上执行后续动作。
Python变种
使用Python不使用任何编写的变种Windows API。其中一个特点是加载器使用变种Python库,让它在那里Linux和Windows运行在机器上。研究人员分析样本,发现脚本将打印“Пивет Саня”,打印的内容是用俄语翻译的“Hello Sanya”。所有相关文件都包含隐私或非路由IP地址,除了样本。样本包含公共信息IP地址185.63.90[.]137和一个Python这些文件将被转换为可执行文件。文件首先试图从机器中分配内容,然后创建一个新的过程,并注入位置hxxp://185.63.90[.]137:1338/stagers/l5l.py的远程服务器的资源。目前,该服务器已经无法访问,表明该地址是用于测试或之前的攻击活动。
研究人员发现许多恶意活动都是一样的IP地址185.63.90[.]137通信包含在样本中Meterpreter payload,部分使用Shikata Ga Nai编码器混淆。
使用PowerShell和Ctype的WSL变种
不同文件的ELF到Windows二进制文件执行路径不同。在一些样本中,PowerShell 用于注入和执行shellcode,在其他样本中,Python ctype被用来解析Windows API。
在其中一个PowerShell样本,编译Python三个函数: kill_av()、reverseshell() 和 windowspersistance()。
图1: 反编译decompiled kill_av和windowspersistence函数
kill_av()使用 函数os.popen()尝试kill可疑反病毒产品及分析攻击。reverseshell() 函数使用子过程每20秒一次base64编码的PowerShell 脚本,拦截其他函数的执行。windowspersistence() 函数复制原始ELF文件到appdata 文件夹,命名为payload.exe并使用子流程添加注册表以实现居留。在上图中,windowspersistance()使用字符串“TIME TO Presist”被调用。
图2: reverseshell 和 kill_av函数
解码的PowerShell使用GetDelegateForFunctionPointer来调用VirtualAlloc,复制MSFVenom payload使用分配的内存GetDelegateForFuctionPointer来分配的内容payload调用内存CreateThread 。
图3:注入和调用MSFVenom payload的PowerShell脚本
另一另一个样本Python ctype来解析Windows API注入和调用payload。在分析过程中,研究人员发现了一些小的不连续性,如变量类型。研究人员猜测代码仍在开发中,但可能即将结束。
图4: 使用Python ctypes的分混淆的代码
本文翻译自:
https://blog.lumen.com/no-longer-just-theory-black-lotus-labs-uncovers-linux-executables-deployed-as-stealth-windows-loaders/