BlackLotus安全研究人员最近发现了多个用Python语言编写并编译成Debian操作系统的Linux二进制文件格式ELF的恶意文件。这些文件将负载作为加载程序运行,加载程序嵌入到样本中或从远程服务器中提取,然后使用WindowsAPI调用注入到正在运行的进程中。简介2021年8月,BlackLotus研究人员发现了大量为DebianLinux编译的可疑ELF文件。文件用Python3编写,然后使用PyInstaller转换为ELF可执行文件。Python代码充当加载器,使用不同的WindowsAPI,可疑地提取远程文件并将它们注入正在运行的进程中。从VirusTotal的检测率来看,大多数为Windows系统设计的端点代理都不能有效地分析ELF签名。在调查过程中,研究人员发现了ELF加载器方法的2个变体:第一个是用Python编写的,第二个表使用ctype调用不同的WindowsAPI并调用powershell脚本。研究人员分析称,PowerShell变体仍在开发中。技术细节在2021年5月至2021年8月的三个月中,研究人员发现了样本的演变过程,从最初的样本用Python3编写,到使用ctype调用WindowsAPI,再到使用PowerShell托管机器执行后续操作.Python变体用Python编写的变体不使用任何WindowsAPI。这些功能之一是加载程序使用Python库的变体,使其可以在Linux和Windows机器上运行。研究人员分析了这些样本,发现该脚本会打印出“ПиветСаня”,从俄语翻译为“你好三亚”。除一个样本外,所有相关文件都包含私有或非路由IP地址。该样本包含公共IP地址185.63.90[.]137和一个用Python编写的加载程序文件,然后将其转换为可执行文件。该文件首先尝试从机器分配内容,然后创建一个新进程并从位于hxxp://185.63.90[.]137:1338/stagers/l5l.py的远程服务器注入资源。目前服务器无法访问,说明该地址曾被用于测试或之前的攻击。研究人员发现许多活动使用相同的IP地址185.63.90[.]137进行通信,并且样本包含Meterpreter有效负载,其中一些使用ShikataGaNai编码器进行了混淆处理。使用PowerShell和Ctype的WSL变体的不同文件的ELF到Windows二进制执行路径是不同的。在一些样本中,PowerShell用于注入和执行shellcode,而在其他样本中,Pythonctype用于解析WindowsAPI。在其中一个PowerShell示例中,编译后的Python调用了3个函数:kill_av()、reverseshell()和windowspersistance()。图1:反编译后的kill_av和windowspersistence函数kill_av()函数使用os.popen()来尝试杀死可疑的防病毒产品并分析攻击。reverseshell()函数使用子进程每20秒生成一个base64编码的PowerShell脚本来拦截其他函数的执行。windowspersistence()函数会将原来的ELF文件复制到appdata文件夹中,命名为payload.exe,并使用子进程加入registry进行持久化。在上图中,将使用字符串“TIMETOPresist”调用windowspersistance()。图2:通过reverseshell和kill_av函数解码的PowerShell使用GetDelegateForFunctionPointer调用VirtualAlloc,将MSFVenom有效载荷复制到分配的内存,并使用GetDelegateForFuctionPointer在包含有效载荷的分配内存上调用CreateThread。图3:PowerShell脚本注入和调用MSFVenom负载另一个使用示例使用Pythonctype解析WindowsAPI以注入和调用负载。在分析过程中,研究人员发现了一些小的不连续性,例如变量类型。研究人员推测该代码仍在开发中,但可能即将结束。图4:使用Pythonctypes-windows-loaders/混淆代码
