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

什么是应急响应.

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


目录:

什么是应急响应.

应急响应工作流程:

常见的应急响应分类:

[Linux 入侵排查思路:](#Linux 入侵排查思路:)

[(1)排查 系统日志.](#(1)排查 系统日志.)

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

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

[(4)排查 开机启动项.](#(4)排查 开机启动项.)

[(5)排查 定时任务.](#(5)排查 定时任务.)

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

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

[(8)善用 威胁情报.](#(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/exe

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


关闭进程.

sudo kill -9 43        

sudo kill -9 进程号

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

top            

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

ps -ef|grep Xorg

ps -ef|grep 文件名

排查 前10的内存.

ps -aux | sort -k4nr|head -10

排查 网络宽带 .

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

sudo apt-get install iftop    # 安装这个命令 查看

ip addr        # 查看所以网卡.(问问运维那个网卡是业务网卡)

sudo iftop -i eth0 -P

sudo iftop -i 业务网卡 -P

(4)排查 开机启动项.

ls -alt /etc/init.d

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


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

ls -alt rc            # 点击 Tab. 

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

systemctl list-unit-files | grep enabled

enabled  # 开启的服务

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

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

相关推荐
疯狂飙车的蜗牛1 小时前
从零玩转CanMV-K230(4)-小核Linux驱动开发参考
linux·运维·驱动开发
独行soc2 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
远游客07133 小时前
centos stream 8下载安装遇到的坑
linux·服务器·centos
马甲是掉不了一点的<.<3 小时前
本地电脑使用命令行上传文件至远程服务器
linux·scp·cmd·远程文件上传
jingyu飞鸟3 小时前
centos-stream9系统安装docker
linux·docker·centos
超爱吃士力架3 小时前
邀请逻辑
java·linux·后端
独行soc4 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘
Clockwiseee5 小时前
php伪协议
windows·安全·web安全·网络安全
黑客Ash5 小时前
安全算法基础(一)
算法·安全
云云3216 小时前
搭建云手机平台的技术要求?
服务器·线性代数·安全·智能手机·矩阵