应急响应:Linux 入侵排查思路.

embedded/2024/9/23 6:36:28/

什么是应急响应.

一个组织为了 应对 各种网络安全 意外事件 的发生 所做的准备 以及在 事件发生后 所采取的措施 。说白了就是别人攻击你了,你怎么把这个攻击还原,看看别人是怎么攻击的,然后你如何去处理,这就是应急响应。


目录:

什么是应急响应.

应急响应工作流程:

常见的应急响应分类:

Linux 入侵排查思路:

(1)排查 系统日志.

 (2)网络连接.(排查 异常的连接.)

(3)排查 资源占用.(挖矿,木马)

(4)排查 开机启动项.

(5)排查 定时任务.

(6)排查 环境变量配置文件.

(7)排查 SSH后门.(排查 可疑账号)

(8)善用 威胁情报.


应急响应工作流程:


常见的应急响应分类:


Linux 入侵排查思路:

(1)排查 系统日志.

日志文件是记录I系统运行信息的文件,Linux系统内记载很多不同类型的日志.

查看登录信息.

lastlog


cd /var/log/         # 进入日志文件.

统计失败的次数.

sudo grep "Failed password" auth.log | wc -l        # 统计失败的次数或者sudo grep "Failed password" secure | wc -l

攻击次数排列,由高到低.

awk '{if($6=="Failed"&&$7=="password"){if($9=="invalid"){ips[$13]++;users[$11]++}else{users[$9]++;ips[$11]++}}}END{for(ip in ips){print ip, ips[ip]}}' auth.* | sort -k2 -rn | head

其他的日志排查可以查看:https://segmentfault.com/a/1190000021752790


 (2)网络连接.(排查 异常的连接.)

sudo netstat -antup            # 查看所以的网络连接


(3)排查 资源占用.(挖矿,木马)

进程是 Linux 当前正在处理的任务,当运行某个软件时将为其创建一个进程.

排查话术:CPU是否远超平时居高不下,如果是的话那么可能被植入了挖矿病毒
sudo ps -efcaux   # 查看所有进程(挖矿看 CPU 占多少.)


看着 进程 文件位置.

sudo lsof -p 1778                # 查找 PID 的文件位置sudo lsof -p PID


查找绝对 文件 路径.

sudo ls -al /proc/1778/exesudo ls -al /proc/进程PID数/exe



关闭进程.

sudo kill -9 43        sudo kill -9 进程号


列出 CPU 的占用顺序(从高到低.)

top            


再根据 CPU 高的查看这个文件的位置.

ps -ef|grep Xorgps -ef|grep 文件名


排查 前10的内存.

ps -aux | sort -k4nr|head -10


排查 网络宽带 .

排查话术:网络流量上下行有异常吗?有异常的话是哪个IP?

sudo apt-get install iftop    # 安装这个命令 查看
ip addr        # 查看所以网卡.(问问运维那个网卡是业务网卡)
sudo iftop -i eth0 -Psudo iftop -i 业务网卡 -P


(4)排查 开机启动项.

ls -alt /etc/init.d

这个目录下面放了可执行脚本或文件,不认识的文件 和 运维 确认一下,看看是不是木马.


这个下面放的全是开机启动的服务.(排查的时候看看时间是不是在病毒发生的时候)

ls -alt rc            # 点击 Tab. 


列出 开机启动项 服务.(所有被设置为开机自启动文件)

systemctl list-unit-files | grep enabledenabled  # 开启的服务


如果发现恶意服务,使用下面命令 关停 或者 删除.

sudo systemctl stop e2scrub_all.timer            # 停止服务 sudo systemctl stop 服务名


sudo systemctl disable e2scrub_all.timer    # 删除这个服务.sudo systemctl disable 服务名.


关错了,避免尴尬也可以偷偷 启动 或者 添加 服务.

sudo systemctl start e2scrub_all.timer        # 启动服务.sudo systemctl start 服务名


sudo systemctl enable e2scrub_all.timer        # 添加和启动服务.sudo systemctl enable 服务名


(5)排查 定时任务.

定时定点执行Linux程序或脚本.

crontab -e            # 用来创建定时任务.


定时保存的路径有以下几个.

vi /var/spool/cron/        # 目录里的任务以用户命名.


vi /etc/crontab             # 调度管理维护任务.(排查里面有没有新的添加)


vi /etc/cron.d/    # 这个目录用来存放任何要执行的crontab文件或脚本(排查有没有新的添加文件 再和运维核对 进行排查)


vi /etc/cron.hourly            # 每小时执行一次vi /etc/cron.daily             # 每天执行一次vi /etc/cron.weekly            # 每周执行一次vi /etc/cron.monthly           # 每月执行一次

(6)排查 环境变量配置文件.

这些文件用于设置系环境变量或启动程序,每次Linux登入或切换用户都会触发这些文件.

vi /etc/bash.bashrc            # 排查环境变量配置文件.


vi .bash_logout            # 这个文件系统默认里面有.(退出用户的时候也会执行)


vi /etc/profile                # 排查这个文件中是否有执行的木马


vi .profile            # 排查这个文件中是否有执行的木马


(7)排查 SSH后门.(排查 可疑账号)

SSH 是一种加密的网络传输协议,通常利用SSH来传输企令行界面和远程执行命.

users                  # 查看账户.(排查有没有不认识的账户)cat /etc/passwd        # 查看所以账户.(排查有没有不认识的账户)

下面命令的后缀解析:/bin/bash              # 账户可登录,登录后使用/bin/bash解释执行脚本
/bin/sh                # 账户可登录,登录后使用/bin/bash解释执行脚本/bin/false             # 不可登录,不会有任何提示./usr/sbin/nologin      # 不可登录,拒绝用户登录.


密钥篡改:(这个文件是用来存储公钥的,然后我们再使用私钥来登录就行)

cat authorized_keys    (排查文件有没有多的公钥,就是多出来一条数据.)

重装覆盖:(就是把 SSH 重装一遍,安装一个有后门的.)

ls -lt /usr/bin/ssh /usr/sbin/sshd        # 查看文件时间是不是新的.但是时间可能也被修改.


ssh -V        # 查看版本.(是不是我们之前安装的版本)


(8)善用 威胁情报.

威胁情报是识别和分析网络威胁的过程。威胁情报平台可以查出一些域名和IP地址得 信誉 度,一旦发现它们存在网络攻击痕迹迅速封禁.

https://x.threatbook.com/                # 微步在线https://www.virustotal.com/gui/          # VirusTotal(上传文件,检查木马)https://ti.360.net/#/homepage            # 360威胁平台https://ti.nsfocus.com/                  # 绿盟威胁情报平台https://ti.dbappsecurity.com.cn/         # 安恒威胁情报平台

  

  

  

学习链接:【应急响应】Linux篇-开篇_哔哩哔哩_bilibili


http://www.ppmy.cn/embedded/95978.html

相关文章

如何使用 Go 连接 MO

MatrixOne 是一款超融合异构分布式数据库,与 MySQL 高度兼容,通过云原生化和存储、计算、事务分离的架构构建 HSTAP 超融合数据引擎,实现单一数据库系统支持 OLTP、OLAP、流计算等多种业务负载,通过为用户提供一站式超融合数据解决…

java+springboot实现定时任务

由于是初级程序员,基于注解的形式实现了一个简单的定时任务; 1. 使用Scheduled注解 Spring的Scheduled注解是一种非常简单和便捷的实现定时任务的方式。通过在方法上添加Scheduled注解,我们可以指定方法在特定的时间间隔或固定的时间点执行…

第五天:java网络编程、JDBC与高级特性概览

第五天:java网络编程、JDBC与高级特性概览 1. 网络编程基础 Socket编程:学习Java中的Socket编程,理解客户端和服务器端的通信模型。掌握ServerSocket类和Socket类的使用,能够编写简单的TCP客户端和服务器程序。URL与URLConnecti…

一款手机壳凭什么卖800元?Casetify品牌策略全解析 | 品牌出海

Casetify官网 巴黎奥运会,张怡宁的手机壳火了。 张怡宁在现场观战并使用手机的照片在网上流传,不是因为这位奥运前冠军,而是她的手机壳。这款满是「花花绿绿」图案的手机壳,迅速被网友发掘出是Casetify品牌的名为「炫彩花卉」的…

centos8 安装zookeeper

1:下载 zookeeper官网 解压:tar -zxvf apache-zookeeper-3.6.3.tar.gz 修改自己想要的文件目录 mv apache-zookeeper-3.6.3 zookeeper_3.6.3 备份一下 配置文件 cp zoo_sample.cfg zoo.cfg vim zoo.cfg 编辑日志文件和端口号

跨平台控制神器Escrcpy,您的智能生活助手

Escrcpy 是一款基于 Scrcpy 开发的图形化安卓手机投屏控制软件,它允许用户将 Android 手机屏幕实时镜像到电脑上,并使用电脑的鼠标和键盘直接操作手机,实现了无线且高效的操控。这款软件是免费开源的,支持跨平台使用,包…

智能调度 | 多台AGV为什么不会撞在一起?

AGV叉车 随着智能仓储物流系统、柔性制造系统的广泛应用,工厂自动化、计算机集成制造系统技术的逐步发展,常见的智能装备AGV小车的功能愈发齐全,应用范围与技术水平也得到迅猛发展。 AGV作为仓储物流自动化搬运装卸的重要工具,通…

el-table的多选功能

html&#xff1a; <el-table :data"list" row-key"id" selection-change"handleSelectionChange"><el-table-column type"selection" width"55"/> </el-table> js变量&#xff1a; data () {return {/…