该蠕虫采用了随机传播的方法。文末附相关IOC。

Docker成为了加密劫持蠕虫Graboid目标,该蠕虫是刚刚被发现并命名的。

根据Unit 42的研究人员称,该蠕虫旨在挖掘Monero加密货币,到目前为止,已经感染了2,000多台不安全的Docker引擎(社区版)主机,这些主机正在清理中。

根据Unit 42的数据,最初的恶意Docker镜像已被下载了10,000次以上,蠕虫自身已被下载了6,500多次。管理员可以通过镜像创建历史记录,查找名为“ gakeaws / nginx”的镜像来发现感染。

攻击者通过不安全的Docker daemons获得了最初的立足点,该daemons首先安装了Docker镜像以在受感染的主机上运行。另外,攻击者无需任何身份验证或授权,即可完全控制Docker 引擎和主机。攻击者利用此入口点来部署和传播蠕虫。

一旦恶意Docker容器启动并运行,它将从15个C2服务器中的一个下载四个不同的脚本以及易受感染的主机列表。然后,它随机选择三个目标,将蠕虫安装在第一个目标上,在第二个受感染主机上停止安装挖矿,并在第三个也已被感染的目标上启动挖矿。

研究人员解释说:“这一程序导致了非常随机的挖矿行为。” “如果我的主机受到威胁,则恶意容器不会立即启动。取而代之的是,我必须等到另一位受到感染的主机选择我并开始我的挖掘过程。其他受到感染的主机也可以随机停止我的挖掘过程。本质上,每台受感染主机上的挖矿均由所有其他受感染主机随机控制。这种随机设计的动机尚不清楚。”

以下是更详细的分步操作:

1. 攻击者选择了一个不安全的Docker主机作为目标,并发送远程命令来下载和部署恶意Docker镜像pocosow / centos:7.6.1810。该镜像包含用于与其他Docker主机进行通信的Docker 客户端工具。

2. pocosow / centos容器中的入口点脚本/ var / sbin / bash从C2下载4个shell脚本,并一一执行。下载的脚本为live.sh,worm.sh,cleanxmr.sh和xmr.sh。

3. live.sh将受感染主机上的可用CPU数量发送到C2。

4. worm.sh下载文件“ IP”,其中包含2000多个IP的列表。这些IP是具有不安全docker API端点的主机。worm.sh随机选择一个IP作为目标,并使用docker客户端工具远程拉动和部署pocosow / centos容器。

5. cleanxmr.sh从IP文件中随机选择一个易受攻击的主机,然后停止目标上的cryptojacking容器。cleanxmr.sh不仅会停止蠕虫部署的密码劫持容器(gakeaws / nginx),而且还会停止其他基于xmrig的容器(如果它们正在运行)。

6. xmr.sh从IP文件中随机选择一个易受攻击的主机,然后在目标主机上部署镜像gakeaws / nginx。gakeaws / nginx包含伪装成nginx的xmrig二进制文件。

在每个受感染的主机上定期重复执行步骤1至步骤6。上一次已知的刷新间隔设置为100秒。启动pocosow / centos容器后,刷新间隔,shell脚本和IP文件都从C2下载。

在使用2000个潜在受害者池中的蠕虫进行模拟时,研究人员发现,蠕虫可以在一个小时内传播到1400个易受攻击主机中的70%。此外,每个矿工有63%的时间处于活动状态,每个挖矿期持续250秒;因此,在模拟中,在受攻击的1400个主机群集中,平均有900个矿工始终保持活跃。

虽然这种加密劫持蠕虫不涉及复杂的策略,技术或过程,但该蠕虫可以定期从C2提取新脚本,因此它可以轻松地将其自身重新用于勒索软件或任何恶意软件,以完全破坏主机,所以这不应被忽略。如果创建了一种更强大的蠕虫来采用类似的渗透方法,则可能造成更大的破坏,因此使用者必须保护其Docker主机。

以下是使用者可以防止受到攻击的措施:

1. 如果没有适当的身份验证机制,切勿将docker daemons暴露在互联网。请注意,默认情况下,Docker Engine不会暴露于互联网。

2. 使用Unix套接字在本地与Docker daemons进行通信,或者使用SSH连接到远程Docker daemons。

3. 切勿从未知注册表或未知用户名称空间中提取Docker镜像。

4. 经常检查系统中是否有未知的容器或镜像。

IOC

Docker 镜像:

pocosow/centos:7.6.1810:

sha256:6560ddfd4b9af2c87b48ad98d93c56fbf1d7c507763e99b3d25a4d998c3f77cf

gakeaws/nginx:8.9:

sha256:4827767b9383215053abe6688e82981b5fbeba5d9d40070876eb7948fb73dedb

gakeaws/mysql:

sha256:15319b6ca1840ec2aa69ea4f41d89cdf086029e3bcab15deaaf7a85854774881

C2服务器:

120.27.32[.]15

103.248.164[.]38

101.161.223[.]254

61.18.240[.]160

182.16.102[.]97

47.111.96[.]197

106.53.85[.]204

116.62.48[.]5

114.67.68[.]52

118.24.222[.]18

106.13.127[.]6

129.211.98[.]236

101.37.245[.]200

106.75.96[.]126

47.107.191[.]137

执行容器内的shell_你的Docker容器可能充满了Graboid加密蠕虫相关推荐

  1. docker容器内开启22 ssh_在docker容器中开启ssh服务 (未成功有时间再验证)

    一. 利用ubuntu:14.04镜像创建一个容器: [root@docker ~]# docker run -it ubuntu:14.04 /bin/bash root@161f67ccad50: ...

  2. Docker容器中GUI软件的远程图形界面交互:mobaXterm+SSH,以脑影像处理软件FSL为例;FSL6.0.3完整安装与可视化;docker容器图形化;远程登录docker容器;

    前言   对docker容器中软件的操作,是基于命令行的,这就导致了习惯图形化界面的人比较难以使用docker,而它又是一个神器,所以很难受.一般情况下,可以给容器安装一个桌面环境,然后用类似VNC的 ...

  3. Docker容器运行GUI程序的方法(直接进入Docker容器运行或通过SSH连接Docker容器运行)

    以下两种方法都需要先在主机执行 xhost + 命令,若无该命令,先apt安装 x11-xserver-utils 后再执行,否则会报 No protocol specified 这个错 sudo a ...

  4. docker配置容器mysql启动参数_修改Docker容器启动配置参数

    有时候,我们创建容器时忘了添加参数 --restart=always ,当 Docker 重启时,容器未能自动启动, 现在要添加该参数怎么办呢,方法有二: 1.Docker 命令修改 docker c ...

  5. docker执行容器内的shell_为什么不建议把数据库部署在docker容器内?

    前言 近2年Docker非常的火热,各位开发者恨不得把所有的应用.软件都部署在Docker容器中,但是您确定也要把数据库也部署的容器中吗? 这个问题不是子虚乌有,因为在网上能够找到很多各种操作手册和视 ...

  6. docker -v 覆盖了容器中的文件_springboot配合maven打成可执行jar,构建镜像部署到docker容器中...

    本篇文章将介绍springboot应用如何打成jar包,并将jar构建为docker镜像部署到docker中 应用打包 需要配合spring-boot-maven-plugin打包,将以下代码放到应用 ...

  7. 定时执行 Job - 每天5分钟玩转 Docker 容器技术(135)

    Linux 中有 cron 程序定时执行任务,Kubernetes 的 CronJob 提供了类似的功能,可以定时执行 Job.CronJob 配置文件示例如下: ① batch/v2alpha1 是 ...

  8. 宿主机进程挂载到容器内_迄今为止最严重的容器逃逸漏洞:Docker cp命令漏洞分析(CVE201914271)...

    摘要 在过去几年中,我们在各种容器平台(包括Docker.Podman和Kubernetes)中发现了copy(cp)命令中存在多个漏洞.其中,迄今为止最严重的的一个漏洞是在今年7月被发现和披露的.然 ...

  9. docker 容器占用内存_如何限制Docker容器的内存

    容器何时销毁 现在很多服务采用容器化运行,一个容器中运行一个服务,因为容器的创建和启动都是在秒级,所以这种容器化的部署方式被称之为轻量化部署. 1. 容器中服务进程终止 容器的创建和运行是因某个服务进 ...

最新文章

  1. 设计模式之Protocol实现代理模式
  2. HttpApplication IHttpAsyncHandler, IHttpHandler, IComponent, IDisposable ps url System.Web.dll
  3. struts2使用注解--ACTION中的应用
  4. 在IAR 中出现the stack plug-in failed to set a breakpoint on main
  5. java 最小堆_Java最小堆实现
  6. CF750F. New Year and Finding Roots
  7. java时间日期格式器_JAVA基础类库(二)-----日期、时间类和格式器
  8. BugkuCTF-MISC题怀疑人生
  9. 华为天才少年1万块自制机械臂,网友:200万给少了
  10. 《高性能MySQL》读书笔记-第6章-性能查询优化
  11. python3 selenium ie 拒绝连接报错_Python3+selenium配置常见报错解决方案
  12. Unity 内嵌网页
  13. 同步异步、阻塞非阻塞
  14. vue报错 Uncaught (in promise) NavigationDuplicated {_name:““NavigationDuplicated“... 的解决方法
  15. Python爬取你好李焕英豆瓣短评并利用stylecloud制作更酷炫的词云图
  16. php上搭建dvwa,使用phpstudy在windows上搭建DVWA
  17. 送给大家一个很好的Web前端开发工具
  18. HDU 6143 Killer Names
  19. 8个正弦波逆变器带你感受生活中无处不在的科技魅力
  20. Mariadb 安装FederatedX引擎

热门文章

  1. python交换两个变量的值
  2. react leaflet_如何使用React Leaflet和Leaflet Gatsby Starter设置自定义Mapbox底图样式
  3. 三国历史的教训读后感_历史上伟大的创新者的教训,你永远都不会忘记
  4. 错过了面试,公司招满人了_您可能错过了Google令人赞叹的AI公告。
  5. AttributeError: 'module' object has no attribute 'version'
  6. MySQL数据查询SELECT大全
  7. MySQL5.7 安装(win)
  8. Python os模块文件操作(二)
  9. 微软认知服务开发实践(2) - 计算机视觉
  10. 如何在网上获取国际、国内的学术会议消息