当前位置: 首页 > news >正文

应急响应场景及排查思路

本文结合多个实际应急案例经验进行总结,整理 Linux 操作系统应急过程中的排查项以及各项的关注内容,结尾提供辅助工具。

1.通信端口

1.1. 推荐命令

(1)netstat -napt

图片

1.2. 端口通信状态查看

重点关注本地端口、远程通信 IP 及端口、PID、进程名称,同时可通过连接状态来判断是临时连接还是长时间连接。

图片

通常来讲,反弹 shell 的链接是长时间的连接,可以每间隔 60 秒查看一次,如果连续 2-3 次查看后依旧保持连接状态,则可判定为长期连接,需要重点关注。

1.3. 端口开放情况查看

这里我们需要关注端口开放情况以及本地端口与远程端口通信端口差异

图片

   查看端口开放情况是最基本的操作,排查是否有异常开放端口。

   通信端口差异的排查原因是基于服务器与攻击者而控制端的连接方式,达到命令控制一般分为两种连接方式,正向连接与反向连接。

   正向连接即为本地监听端口,这种情况下多数为 4 位数或以下的端口号,且因为监听端口号是人为设定所以端口号有序,例如 1234、 5555、888、666、6666、7788、99、123 等。

图片

反向连接端口特征是 5 位数且端口号随机无规律可循,而远端通信端口号则是人为设定,有一定特征。

图片

1.4. 进程名查看

这个比较好理解,不多做阐述,主要是看有没有特殊进程。

图片

2.系统进程

2.1. 推荐命令

(1)ps -aux

图片

(2)ps -ef

图片

2.2. 进程排查流程

   通过端口排查我们所发现的异常端口,可以通过排查进程进行详细确认,排查进程应养成习惯,无论是否找到异常端口对应的进程,都应该对所有的进程进行查看。

   我们依照端口排查阶段所看到的本地跟远程的 888 端口通信为例来讲解,通信进程对应的PID 为 804。

图片

   在找出的结果中我们能详细的看到进程ID 所对应执行的命令,此处为bash -i。

   使用ps -ef 的查看效果如下。

图片

其实这种反弹shell 是最简单的,我们到这一步已经知道是如何反弹 shell 的了,只需要关闭对应进程即可。但是如果深度排查我们可以通过查看进程所产生的文件获取更多信息。

图片

可以根据exe 与cwd 了解执行程序以及运行目录。

在通过ps -ef 查找对应进程后,还可以根据进程父ID 继续向上查找,结合对应进程的cwd 以及exe 找到执行文件。

图片

   在寻找文件的过程中可以参考文件修改时间以及文件名来快速定位,因为一些攻击者会把后门插入到正常的文件中。但是这里的文件修改时间只能作为参考,不能完全依赖。例如下图中的 hacker.sh 显示是最后一次修改是在 1937 年,但是很显然 1937 年的时候世界上没有电脑。

图片

3.计划任务

3.1 推荐命令

(1)crontal -l

图片

(2)crontal -u [username] -l

图片

3vi

3.2 排查路径

需要使用vi 查看或者其他编辑器逐一排查,不要使用cat 查看。

/etc/crontab

图片

/var/spool/cron

图片

/etc/cron.d

图片

/etc/cron.daily

图片

/etc/cron.hourly

图片

/etc/cron.monthly

图片

4.其他排查项

4.1. 用户排查

4.1.1.推荐命令

(1)cat /etc/passwd | grep -E "/bash$" && cat /etc/passwd | grep -E "/sh$"

图片

推荐排查后使用再看一遍/etc/passwd 进行确认

4.2. 历史命令排查

4.2.1.推荐命令

(1)history

图片

可结合关键字进行快速查找。

4.3. 日志排查

4.3.1.推荐命令

(1)cat

图片

可根据实际情况去选择排查的日志文件。

4.4. 内存消耗排查

4.4.1.推荐命令

(1)free -h

图片

2top + m

图片

通过排查进程的内存损耗,快速判断是否有异常进行。一般在处理挖矿病毒的时候会参考这个结果。

4.5. 环境变量排查

4.5.1.推荐命令

(1)echo $PATH

图片

查看系统变量有无异常。

4.6. 登录用户排查

4.6.1.推荐命令

(1)w

图片

查看当前登录用户、登录IP、用户操作。

(2)last

图片

查看用户登录记录以及IP

5.工具推荐

杀毒:河马杀毒 http://www.shellpub.com

系统排查:linpeas.sh

相关文章:

  • Linux的内核参数kernel.shmmax、kernel.shmall 和 kernel.shmmni
  • Window常用的脚本有哪些?快来看看有哪些是你正在用的!(欢迎评论补充~)
  • 深入理解网络传输协议——差错控制
  • Redis 主从同步
  • Linux 系统图像化编程GTK入门
  • git 基本命令
  • 基于STM32的智能水产养殖系统(四)
  • 探究 IP 地址被网站封禁的原因
  • 前端开发中的热更新原理
  • Linux 获取文件大小fstat、stat使用
  • 深入理解和应用Eureka:服务注册与发现的利器
  • 第一百一十一节 Java面向对象设计 - Java泛型方法和构造函数
  • 13.3 Go 性能优化
  • 《Linux运维总结:prometheus+altermanager+webhook-dingtalk配置文件详解》
  • c++之说_15|成员函数的const尾缀修饰 ( const const)
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • Cumulo 的 ClojureScript 模块已经成型
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • es的写入过程
  • If…else
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Java,console输出实时的转向GUI textbox
  • JavaWeb(学习笔记二)
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Nodejs和JavaWeb协助开发
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​VRRP 虚拟路由冗余协议(华为)
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • # 飞书APP集成平台-数字化落地
  • $.ajax()方法详解
  • (03)光刻——半导体电路的绘制
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (八)c52学习之旅-中断实验
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (算法)硬币问题
  • (转)LINQ之路
  • (转)大型网站的系统架构
  • (自用)gtest单元测试
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .gitignore
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NetCore+vue3上传图片 Multipart body length limit 16384 exceeded.
  • [.NET]桃源网络硬盘 v7.4
  • [000-01-022].第06节:RabbitMQ中的交换机介绍
  • [145] 二叉树的后序遍历 js
  • [20171101]rman to destination.txt