黑客利用Metasploit Shellcode攻击暴露的Docker API

  • A+
所属分类:安全新闻

黑客利用Metasploit Shellcode攻击暴露的Docker API

Trendmicro研究人员近日发现有攻击者利用Metasploit Framework (MSF)的payload来攻击暴露的Docker API。攻击可以引发DDoS攻击、远程代码执行漏洞、非授权的加密货币挖矿活动。

黑客利用Metasploit Shellcode攻击暴露的Docker API
技术分析

研究人员发现攻击者在攻击活动中使用了“alpine:latest”作为基准容器镜像。Snyk 并不能检测到镜像中的安全漏洞。

黑客利用Metasploit Shellcode攻击暴露的Docker API

图 1  Snyk扫描alpine 镜像的结果

研究人员发现最近针对容器蜜罐的攻击大多数都利用了知名的和已经建立的基准镜像。这样做的目的是绕过恶意软件检测和漏洞检测。

容器以权限flag执行,意味着payload有root权限。

黑客利用Metasploit Shellcode攻击暴露的Docker API

图 2. 含有root权限的恶意容器部署

黑客利用Metasploit Shellcode攻击暴露的Docker API

图 3. 攻击者将恶意文件以命令的形式编码在base64文本中

Payload如图4所示,整个怕有会使用base64 编码压缩地非常小。解码payload后,研究人员获取了只有250字节的ELF文件。

黑客利用Metasploit Shellcode攻击暴露的Docker API

图 4. 部署的250字节 ELF文件payload

进一步分析表明payload 并不是用高级编程语言实现的,而是用纯汇编代码实现的。此外,没有其他需要处理的指令,这就只需要非常小的base64编码来执行必要的工作来执行代码。

部署的payload 首先分配一个4096字节的含有“PROT_READ”、“PROT_WRITE” 和“PROT_EXECUTE”保护标记的内存页。这些标记允许攻击者在内存区域内执行代码。

黑客利用Metasploit Shellcode攻击暴露的Docker API

图 5. 连接到C2服务器来进行恶意代码执行

在系统内会打开TCP socket,然后初始化到C2 服务器的连接,这是通过硬编码的“sockaddr” 结构来实现。

黑客利用Metasploit Shellcode攻击暴露的Docker API

图 6. 获取可执行的shellcode

“read syscall”会在开放的socket descriptor上执行,然后从C2 服务器读取126字节的内容。这是保存在之前没有提到的分配的内存区域中的,然后执行。

研究人员分析发现ELF 文件是一个编译的Metasploit reverse_tcp shellcode。这是一个简单的x64 ELF文件,其中攻击者IP和Port都硬编码在二进制文件中。尽管没有混淆,目前在在线威胁平台上还找不到文件的哈希值。

因为目前还没有迹象表明这是MSF 生成的reverse_tcp 文件,所以研究人员创建了一个PoC 文件,可以伪造攻击者伪造的IP,并在安全环境中运行后门来获取逆向shell。

黑客利用Metasploit Shellcode攻击暴露的Docker API

图 7. 利用伪造IP的 MS来生成逆向连接

黑客利用Metasploit Shellcode攻击暴露的Docker API

图 8. 在安全容器环境中运行的后门

黑客利用Metasploit Shellcode攻击暴露的Docker API

图 9. 含有逆向shell的开放MSF会话

黑客利用Metasploit Shellcode攻击暴露的Docker API
结论

目前,暴露的Docker API越来越多地成为攻击者的目标,攻击者通过攻击暴露的Docker API来在目标主机上用root 权限执行恶意代码。在最近的攻击活动中,研究人员还发现了越来越多的静默攻击技术进入了威胁场景中。

参考及来源:https://www.trendmicro.com/en_us/research/20/j/metasploit-shellcodes-attack-exposed-docker-apis.html

黑客利用Metasploit Shellcode攻击暴露的Docker API

黑客利用Metasploit Shellcode攻击暴露的Docker API

本文始发于微信公众号(嘶吼专业版):黑客利用Metasploit Shellcode攻击暴露的Docker API

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: