首页 > 其他分享 >11个步骤排查主机是否被入侵

11个步骤排查主机是否被入侵

时间:2023-03-15 20:58:31浏览次数:33  
标签:11 文件 log 查看 示例 主机 排查 var 进程

11个步骤完美排查linux机器是否已经被入侵

入门小站 入门小站 2023-03-13 21:50 发表于湖北 入门小站 分享运维技巧及10k+Stars的开源项目 225篇原创内容 公众号

【Linux250个常用命令速查手册】关注【入门小站】,后台回复 「1001」 自取。

背景信息:以下情况是在 CentOS 6.9 的系统中查看的,其它 Linux 发行版类似

1. 入侵者可能会删除机器的日志信息

可以查看日志信息是否还存在或者是否被清空,相关命令示例:

图片

2. 入侵者可能创建一个新的存放用户名及密码文件

可以查看 / etc/passwd 及 / etc/shadow 文件,相关命令示例:

图片

3. 入侵者可能修改用户名及密码文件

可以查看 / etc/passwd 及 / etc/shadow 文件内容进行鉴别,相关命令示例:

图片

4. 查看机器最近成功登陆的事件和最后一次不成功的登陆事

对应日志 “/var/log/lastlog”,相关命令示例:

图片

5. 查看机器当前登录的全部用户

对应日志文件 “/var/run/utmp”,相关命令示例:

图片

6. 查看机器创建以来登陆过的用户

对应日志文件 “/var/log/wtmp”,相关命令示例:

图片

7. 查看机器所有用户的连接时间(小时)

对应日志文件 “/var/log/wtmp”,相关命令示例:

图片

8. 如果发现机器产生了异常流量

可以使用命令 “tcpdump” 抓取网络包查看流量情况或者使用工具”iperf”查看流量情况。

9. 可以查看 / var/log/secure 日志文件

尝试发现入侵者的信息,相关命令示例:

图片

10. 查询异常进程所对应的执行脚本文件

  • a. top 命令查看异常进程对应的 PID
图片
  • b. 在虚拟文件系统目录查找该进程的可执行文件
图片

11. 如果确认机器已被入侵,重要文件已被删除,可以尝试找回被删除的文件

  • 1.当进程打开了某个文件时,只要该进程保持打开该文件,即使将其删除,它依然存在于磁盘中。这意味着,进程并不知道文件已经被删除,它仍然可以向打开该文件时提供给它的文件描述符进行读取和写入。除了该进程之外,这个文件是不可见的,因为已经删除了其相应的目录索引节点。

  • 2.在 / proc 目录下,其中包含了反映内核和进程树的各种文件。/proc 目录挂载的是在内存中所映射的一块区域,所以这些文件和目录并不存在于磁盘中,因此当我们对这些文件进行读取和写入时,实际上是在从内存中获取相关信息。大多数与 lsof 相关的信息都存储于以进程的 PID 命名的目录中,即 /proc/1234 中包含的是 PID 为 1234 的进程的信息。每个进程目录中存在着各种文件,它们可以使得应用程序简单地了解进程的内存空间、文件描述符列表、指向磁盘上的文件的符号链接和其他系统信息。lsof 程序使用该信息和其他关于内核内部状态的信息来产生其输出。所以 lsof 可以显示进程的文件描述符和相关的文件名等信息。也就是我们通过访问进程的文件描述符可以找到该文件的相关信息。

  • 3.当系统中的某个文件被意外地删除了,只要这个时候系统中还有进程正在访问该文件,那么我们就可以通过 lsof 从 / proc 目录下恢复该文件的内容。

假设入侵者将 / var/log/secure 文件删除掉了,尝试将 / var/log/secure 文件恢复的方法可以参考如下:

  • a. 查看 / var/log/secure 文件,发现已经没有该文件
图片
  • b. 使用 lsof 命令查看当前是否有进程打开 / var/log/secure,
图片
  • c. 从上面的信息可以看到 PID 1264(rsyslogd)打开文件的文件描述符为 4。同时还可以看到 / var/log/ secure 已经标记为被删除了。因此我们可以在 / proc/1264/fd/4(fd 下的每个以数字命名的文件表示进程对应的文件描述符)中查看相应的信息,如下:
图片
  • d. 从上面的信息可以看出,查看 / proc/1264/fd/4 就可以得到所要恢复的数据。如果可以通过文件描述符查看相应的数据,那么就可以使用 I/O 重定向将其重定向到文件中,如:
图片
  • e. 再次查看 / var/log/secure,发现该文件已经存在。对于许多应用程序,尤其是日志文件和数据库,这种恢复删除文件的方法非常有用。
图片

【Linux250个常用命令速查手册】关注【入门小站】,后台回复 「1001」 自取。

图片 入门小站 分享运维技巧及10k+Stars的开源项目 225篇原创内容 公众号 阅读 1131    

标签:11,文件,log,查看,示例,主机,排查,var,进程
From: https://www.cnblogs.com/cherishthepresent/p/17219961.html

相关文章

  • 路飞项目day11
    上节回顾#1课程相关数据录入-simpleui中录入-使用sql录入,在media下图片copy过去#2课程分类接口#3查询所有课程接口-带排序:人气,价格......
  • 11.扫描(即扫略、管道-圆形轮廓+薄壁)
    一、简单扫描1.点击进入草图-样条曲线绘制,点击完成2.创建与样条曲线垂直的基准平面 3.汇总扫描截面,设置几何约束-穿透 4.点击扫描,选择引导线和截面,点击确认即可......
  • oracle vm 的nat,主机直接访问内网,forward地址转发
     使用oracle的vm7版本内部虚拟化主机的ip,为10.0.2.4通过主机ip的90口,访问内部的80口作映射通过主机22口映射,为内部的22口,用来登录ssh  作转发规则  ......
  • 2203031110 黄正淳
    #include<stdio.h>intmain(){inta,b,temp;scanf("%d%d",&a,&b);temp=a;a=b;b=temp;printf("%d%d",a,b);return0;}#include<stdio.h>intmain(......
  • 算法随想Day47【动态规划】| LC1143-最长公共子序列、LC1035-不相交的线、LC53-最大子
    LC1143.最长公共子序列相对于“LC718.最长重复子数组”,那道题是要求连续的子序列,所以出现不相等的情况时,对当前格子赋0即可。而本题不要求连续,所以不能直接赋零,而是保持......
  • 算法随想Day48【动态规划】| LC392. 判断子序列、LC115-不同的子序列
    LC392.判断子序列简单题学方法,困难题用方法boolisSubsequence(strings,stringt){intsize_s=s.size();intsize_t=t.size();vector<vector<i......
  • P1104 生日
    一道简单的结构体排序问题话不多说直接上代码1#include<iostream>2#include<string>3#include<algorithm>4usingnamespacestd;5structstudent{6......
  • 11、指针和引用
    指针:是一个变量,存储一个变量的地址。引用:是变量的别名。1、初始化指针定义时不必初始化,引用必须初始化。指针初始化时可为NULL,引用不能初始化为NULL。inta=1......
  • c++11多线程入门<学习记录>
    最近学习了c++多线程相关知识,也算是对这方面内容的入门视频链接c++11并发与多线程视频课程看了大概两周,简单进行总结参考文章C++11并发与多线程PS:c++11提供了标准的可......
  • 【洛谷】P2414 [NOI2011] 阿狸的打字机(AC自动机+离线询问)
    原题链接题意给定\(n\)个字符串,\(m\)次询问一个字符串\(x\)在另一个字符串\(y\)的出现次数。\(1\leqn,m\leq10^5\)。思路要解决多个字符串的问题,不难想到......