热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

记录一次ali云线上环境jenkins被攻击挖矿的处理过程

周六告警一个接一个,感觉极不寻常netstat-anpd执行结果如下久违的中毒感觉,查看一下各用户下的crontabcatetcpasswd|cut-f1-d:|xargs-I{}
周六告警一个接一个,感觉极不寻常

《记录一次ali云线上环境jenkins被攻击挖矿的处理过程》

netstat -anpd执行结果如下

《记录一次ali云线上环境jenkins被攻击挖矿的处理过程》

久违的中毒感觉,查看一下各用户下的crontab

cat /etc/passwd | cut -f 1 -d : |xargs -I {} crontab -l -u {}

《记录一次ali云线上环境jenkins被攻击挖矿的处理过程》

嗯,这个pastebin很眼熟,又是那个病毒

再来用这个命令查询一下恶意进程

perf top -s pid,comm,dso,symbol

可以发现很多的ksoftirqds进程

联系研发,让他们检查jenkins里面的问题脚本

不久之后研发发来这样一个截图,表示这段代码不是他们写的

《记录一次ali云线上环境jenkins被攻击挖矿的处理过程》

确认完毕,开始为进一步处理做一些准备工作

cd/bin/

wget https://busybox.net/downloads/binaries/1.30.0-i686/busybox

chmod 755 busybox

这个病毒会伪装成trace,通过find命令,在jenkins下面找到了这个trace文件

/var/lib/jenkins/jobs/Jenkins-Update/workspace/trace

去掉该文件的x权限(但实际上这样操作了也没什么卵用)

开始最后的大招之前,联系研发,让他们干掉jenkins里面被植入的脚本,然后备份一些需要的crontab任务,准备上脚本干了

(感谢默安科技提供的脚本)

vim rm_DGG.sh

#!/bin/bash

#      处理2019-2-23XXXX服务器DDG病毒的脚本

#LANG=zh_CN.UTF-8

# 关闭crontab

service crond stop

systemctl stop crond

# 写hosts, 屏蔽病毒脚本下载

busybox echo -e “\n0.0.0.0 pastebin.com\n0.0.0.0 thyrsi.com” >> /etc/hosts

# 删除,创建,并锁定 crontab相关文件

busybox rm /var/spool/cron/root && busybox touch /var/spool/cron/root && busybox chattr +i  /var/spool/cron/root

busybox rm /var/spool/cron/crontabs/root && busybox touch /var/spool/cron/crontabs/root && busybox chattr +i /var/spool/cron/crontabs/root

busybox rm /etc/cron.d/root && busybox touch /etc/cron.d/root && busybox chattr +i /etc/cron.d/root

# 删除cron.d目录的其他文件

busybox rm /etc/cron.d/*

# 删除病毒相关执行文件和启动脚

busybox find / -type f -name ‘*watchdogs*’|busybox xargs rm -f

# 删除病毒进程

busybox pkill watchdogs

busybox pkill ksoftirqds

# 删除被preload的so库

chattr -i /etc/ld.so.preload

chattr -i /usr/local/lib/libioset.so

busybox rm -f /usr/local/lib/libioset.so

busybox rm -f /etc/ld.so.preload

busybox rm -f /etc/ld.so.cache

# 验证libioset.so被卸载

# lsof |grep /usr/local/lib/libioset.so

# 无输出, 则该动态链接库被卸载, 直接执行验证步骤; 有输出, kill掉占用的进程, 重复执行该步骤;

# 再次清理异常进程

busybox ps -ef | busybox grep -v grep | busybox egrep ‘ksoftirqds’ | busybox awk ‘{print $1}’ | busybox xargs kill -9

busybox ps -ef | busybox grep -v grep | busybox egrep ‘watchdogs’ | busybox awk ‘{print $1}’ | busybox xargs kill -9

# 删除相关恶意文件

busybox rm -f /tmp/watchdogs

busybox rm -f /etc/cron.d/tomcat

busybox rm -f /etc/cron.d/root

busybox rm -f /var/spool/cron/root

busybox rm -f /var/spool/cron/crontabs/root

busybox rm -f /usr/sbin/watchdogs

busybox rm -f /run/systemd/generator.late/watchdogs.service

busybox rm -f /etc/rc.d/init.d/watchdogs

busybox rm -f /etc/rc.d/init.d/watchdogs-bak

ldconfig

# 清理开机启动项

chkconfig watchdogs off

chkconfig –del watchdogs

service crond start

echo “Done, Please reboot!”

此外,这个病毒的作者为了让自己的木马能独占矿机,还写了一些清除别的木马的语句

ps auxf | grep -v grep | grep hwlh3wlh44lh | awk ‘{print $2}’ | xargs kill -9

ps auxf | grep -v grep | grep Circle_MI | awk ‘{print $2}’ | xargs kill -9

ps auxf | grep -v grep | grep get.bi-chi.com | awk ‘{print $2}’ | xargs kill -9

ps auxf | grep -v grep | grep hashvault.pro | awk ‘{print $2}’ | xargs kill -9

ps auxf | grep -v grep | grep nanopool.org | awk ‘{print $2}’ | xargs kill -9

ps auxf | grep -v grep | grep /usr/bin/.sshd | awk ‘{print $2}’ | xargs kill -9

ps auxf | grep -v grep | grep /usr/bin/bsd-port | awk ‘{print $2}’ | xargs kill -9

ps auxf|grep -v grep|grep “xmr” | awk ‘{print $2}’|xargs kill -9

ps auxf|grep -v grep|grep “xig” | awk ‘{print $2}’|xargs kill -9

ps auxf|grep -v grep|grep “ddgs” | awk ‘{print $2}’|xargs kill -9

ps auxf|grep -v grep|grep “qW3xT” | awk ‘{print $2}’|xargs kill -9

ps auxf|grep -v grep|grep “wnTKYg” | awk ‘{print $2}’|xargs kill -9

ps auxf|grep -v grep|grep “t00ls.ru” | awk ‘{print $2}’|xargs kill -9

ps auxf|grep -v grep|grep “sustes” | awk ‘{print $2}’|xargs kill -9

ps auxf|grep -v grep|grep “thisxxs” | awk ‘{print $2}’ | xargs kill -9

ps auxf|grep -v grep|grep “hashfish” | awk ‘{print $2}’|xargs kill -9

ps auxf|grep -v grep|grep “kworkerds” | awk ‘{print $2}’|xargs kill -9

参考文档

https://www.tuicool.com/articles/U3UBjeN (此次处理的主要参考对象)

https://www.jianshu.com/p/1497ddd4410c

后续操作

1.之前在切换jenkins的时候,意外发现了之前一次登陆,ip来自南韩;试了一下仍然能ping通该IP,且该IP与业务无关;在防火墙中禁用该IP段

2.redis统统加上密码

后续之后续

ksoftirqds和watchdogs干掉之后至今没有再发现,由于jenkins的漏洞问题,该服务器再次被攻击

在jenkins上可以找到一个update的任务(病毒本体),会在下面的路径下持续给trace脚本添加x权限,在进程里面也可以发现这个trace,杀掉后会自动启动

/var/lib/jenkins/jobs/Jenkins-Update/workspace/trace

在jenkins上将该脚本设置为禁用后问题得以解决

OS层面需要采取的措施

1.确保远程root登录处于关闭状态

2.echo “root” >> /etc/cron.allow

3.修改root账户密码


推荐阅读
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 在Linux环境中,通过编写Shell脚本来实现自定义命令的创建与激活,能够极大地简化服务器上多个子系统的管理操作。例如,通过简单的命令如“tt”,即可快速查看各个应用程序的名称及其运行状态,从而提高系统维护的效率和便捷性。 ... [详细]
  • Jenkins实例 Maven项目
    目录一.准备二.创建项目创建maven项目源码管理部分构建编译PostSteps打包构建后操作三.测试一.准备先看初始化设置,如果做完初始化,则跳过安装如下插件MavenInteg ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
  • 在 Tomcat 上部署 Jenkins 实现持续集成环境搭建
    本文介绍了如何在Tomcat服务器上部署Jenkins以构建持续集成环境。首先,需下载并解压Tomcat压缩包,例如 `apache-tomcat-8.5.37.tar.gz`。接着,为Tomcat创建一个管理用户,并对相关文件目录进行权限配置,确保Jenkins能够顺利运行于Tomcat之上。此外,还详细阐述了环境配置、服务启动及基本的故障排查技巧,为用户提供了一套完整的部署指南。 ... [详细]
  • zabbix 自定义监控
    配置自定义监控,我们需要配置监控项的key,和监控项返回的value添加自定义监控key的格式,在配置文件中添加UserParameter ... [详细]
  • awk if 包含_千面 awk | Linux 中国
    awk命令不仅提供了简单的输入字符串筛选功能,还包含提取数据列、打印简单文本、筛选内容——甚至做一些数学计算。--SandraHenry-stockerawk命令不仅 ... [详细]
  • 安装配置_安装配置MongoDB数据库
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了安装配置MongoDB数据库相关的知识,希望对你有一定的参考价值。   &n ... [详细]
  • Linux提权之suid篇
    Linux提权之suid篇不知攻,焉知防一个在安服路上摸索的大三生,记录平时学习笔记suid前言:1.只有可以执行的二进制程序文件才 ... [详细]
author-avatar
手机用户2502910855
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有