Linux系统入侵排查(二)

news2024/12/26 23:11:07

前言

为什么要做系统入侵排查

入侵排查1

1.排查历史命令记录 

2.可疑端口排查

3.可疑进程排查

4.开机启动项

4.1系统运行级别示意图:

4.2查看运行级别命令

4.3系统默认允许级别

4.4.开机启动配置文件

入侵排查2:

1.启动项文件排查:

2.定时任务排查

1、利用crontab创建计划任务

2、利用anacron实现异步定时任务调度

3.入侵排查

小技巧:

3.服务排查

3.1第一种修改方法:

3.2第二种修改方法:

3.3第三种修改方法:

3.4入侵排查

1、查询已安装的服务:

2.源码包安装的服务

总结


前言


        对我处在学生时期的我来说,目前web渗透还是为主,但是还是需要对于蓝队相关的应急响应,等保测评等还是需要有一定的了解的,攻防兼备才能越站越勇嘛,linux入侵排查也能够让我更加熟悉liunx命令,本篇博文紧接上一篇博文开始进行.

为什么要做系统入侵排查

        当企业发生黑客入侵、系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解决方案与防范措施,为企业挽回或减少经济损失。针对常见的攻击事件,结合工作中应急响应事件分析和解决的方法,总结了一些Linux服务器入侵排查的思路。

入侵排查思路
作为渗透小子一名,当然是通过kali来进行练习和总结了

入侵排查1

1.排查历史命令记录 

        进入用户目录下,这里用户指的是,觉得可疑的用户或是要排查的用户,这里用root用户进行示例

进入用户目录下后将需要查询的历史操作命令追加到,一个自己命名的txt文件中,然后自己查看,历史命令看是否存在可疑的命令. 

cd /root/

cat .bash_history >> his.txt(自己命名) 

2.可疑端口排查

使用netstat 网络连接命令,分析可疑端口、IP、PID

netstat -antlp|more

其中图中Local Address代表开放的端口,如图所示只开放了22,36029这两个端口

        查看下pid所对应的进程文件路径,这里我用上图所示的1039进程做个示例,可以查看对应进程文件件的位置,如果发现可疑端口开放,可以查看对应的进程进行关闭进程

运行ls -l /proc/$PID/exe或file /proc/$PID/exe($PID 为对应的pid 号)

发现可疑的进程,通过下面的命令进行关闭 

sudo kill -9 进程PID号

3.可疑进程排查

这个其实上面的基本就处理了一部分了

使用ps命令,分析进程

ps aux | grep pid

  1. 第一列是进程ID(PID),例如911、1885和5836。
  2. 第二列是进程所属用户,例如message+、kali和root。
  3. 第三列是进程占用的CPU百分比,例如0.0、0.3和0.1。
  4. 第四列是进程占用的内存百分比,例如0.3、0.3和0.1。
  5. 第五列是进程占用的虚拟内存大小,单位为KB,例如11948、10632和6572。
  6. 第六列是进程占用的常驻内存大小,单位为KB,例如6144、6144和2304。
  7. 第七列是进程状态,例如Ss、Ss和S+。其中S表示休眠状态,s表示中断等待状态,+表示前台运行状态。
  8. 第八列是进程启动时间,例如13:29、13:35和17:10。
  9. 第九列是进程运行时间,例如0:01、0:01和0:00。
  10. 第十列是进程的命令行,例如/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile 

4.开机启动项

基本使用:

4.1系统运行级别示意图:

运行级别含义
0关机
1单用户模式,可以想象为Windows的安全模式,主要用于系统修复
2不完全的命令行模式,不含NFS服务
3完全的命令行模式,就是标准字符界面
4系统保留
5图形模式
6重启动

4.2查看运行级别命令

runlevel

┌──(root㉿kali)-[~]
└─# runlevel
N 5  代表我现在使用的是图形界面

4.3系统默认允许级别

vi /etc/inittab
id=3:initdefault 系统开机后直接进入哪个运行级别

4.4.开机启动配置文件

/etc/rc.local
​
/etc/rc.d/rc[0~6].d

例子:当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在 /etc/init.d 目录下,然后

在 /etc/rc.d/rc*.d 中建立软链接即可

┌──(root㉿kali)-[~]
└─# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh

        此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动;如果是K开头的脚本文件,代表运行级别加载时需要关闭的。

入侵排查2:

1.启动项文件排查:

排查启动项文件夹,下面的是通过简化方式进行写的,主要看当然目录的位置

示例: more /etc/rc0.d

more /etc/rc.local /etc/rc.d /etc/rc[0~6].d 
ls -l /etc/rc.d/rc3.d/

2.定时任务排查

基本使用

1、利用crontab创建计划任务

基本命令

crontab -l 列出某个用户cron服务的详细内容
Tips:默认编写的crontab文件会保存在 (/var/spool/cron/用户名 例如: /var/spool/cron/root
crontab -r 删除每个用户cront任务(谨慎:删除所有的计划任务)
crontab -e 使用编辑器编辑当前的crontab文件
如:/1 * echo "hello world" >> /tmp/test.txt 每分钟写入文件
2、利用anacron实现异步定时任务调度

使用示例:

每天运行 /home/backup.sh 脚本: vi /etc/anacrontab @daily 10 example.daily /bin/bash

/home/backup.sh

        当机器在 backup.sh 期望被运行时是关机的,anacron会在机器开机十分钟之后运行它,而不用再等待7天。

3.入侵排查

        重点关注以下目录中是否存在恶意脚本,查看方法和上面的一致,基本都是查看对应目录下是否有可疑的文件.

/var/spool/cron/* 
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/* 
/etc/cron.hourly/* 
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*
小技巧:
more /etc/cron.daily/* 查看目录下所有文件

3.服务排查

服务自启动

3.1第一种修改方法:
chkconfig [--level 运行级别] [独立服务名] [on|off]
chkconfig –level  2345 httpd on 开启自启动
chkconfig httpd on (默认level是2345)
3.2第二种修改方法:
修改/etc/re.d/rc.local 文件  
加入 /etc/init.d/httpd start
3.3第三种修改方法:

使用ntsysv命令管理自启动,可以管理独立服务和xinetd服务。

3.4入侵排查
1、查询已安装的服务:

RPM包安装的服务

chkconfig --list 查看服务自启动状态,可以看到所有的RPM包安装的服务
ps aux | grep crond 查看当前服务
系统在3与5级别下的启动项
中文环境
chkconfig --list | grep "3:启用\|5:启用"
英文环境
chkconfig --list | grep "3:on\|5:on"
2.源码包安装的服务
查看服务安装位置 ,一般是在/user/local/
service httpd start
搜索/etc/rc.d/init.d/ 查看是否存在

总结

        对系统进行入侵排查也是比较费时间和精力的一次行动,本篇目前只记录这么多,后续会继续记录和总结.

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

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

相关文章

Python从0到POC编写--实用小脚本

UrlCheck: 假设我们要对一份 url 列表进行访问是不是 200 , 量多的话肯定不能一个一个去点开看, 这个时候我们可以借助脚本去判断, 假如有一份这样的列表, 这份列表呢,奇奇怪怪,有些写错了…

基于Spring Boot的公司OA系统设计与实现

基于Spring Boot的银行OA系统设计与实现 开发语言:Java 框架:springboot JDK版本:JDK1.8 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea 系统部分展示 用户登录界面,在银行OA系统运行后&#x…

刷题第3天(中等题):LeetCode24--两两交换链表中的节点--递归法

LeetCode24: 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例 1: 输入:head [1,2,3,4…

FastDFS - 无法获取服务端连接资源:can‘t create connection to/xx.xx.xx.xx:0

问题描述 根据官方文档 安装完FastDFS服务器后, 服务正常启动,但是在 SpringBoot 项目使用 fastdfs-client 客户端报错无法获取服务端连接资源:cant create connection to/xx.xx.xx.xx:0, 一系列排查发现是获取到的 tracker 端口为 0 。 co…

Docx文件误删除如何恢复?别再花冤枉钱了,4个高效恢复软件!

不管是工作还是学习,总是会与各种各样的文件打交道。文件量越多就越容易出现文件丢失、文件误删的情况。遇到这些情况,失去的文件还能找回来吗?只要掌握了一些数据恢复方法,是很有机会恢复回来的,下面我会将这些方法分…

生信分析进阶2 - 利用GC含量的Loess回归矫正reads数量

在NGS数据比对后,需要矫正GC偏好引起的reads数量误差可用loess回归算法,使用R语言对封装的loess算法实现。 在NIPT中,GC矫正对检测结果准确性非常重要,具体研究参考以下文章。 Noninvasive Prenatal Diagnosis of Fetal Trisomy…

static静态成员变量和静态方法

当有new创建一个对象的,里面属性和方法,通过构造函数,能定义多个不同的对象,在我们做面向对象开发的时候,给一个场景,人在一个班级的时候,你的老师可能是固定的。 当我们用构造方法去构造的时候,每次都去传递一个固定的实参去定义个老师。 这样好会显得代码非常的…

DNS 解析在网络传输中有什么意义?

首先我们先说说什么是DNS解析? DNS解析是将域名解析为对应的IP地址的过程。DNS它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS解析的过程就是寻找哪个IP地址对应你所输入的网址,然后将网页内容返回给用户…

常用的文件摆渡系统有哪些 | 好用的文件摆渡系统推荐

一、什么是文件摆渡系统 简单来说,文件摆渡系统是一种高效的、以文件为中心的文件管理系统,它的出现旨在解决企业在文件传输、共享和管理过程中的种种痛点。 更为值得一提的是,文件摆渡系统还具备强大的安全合规性,能够有效防止…

MultiBooth:文本驱动的多概念图像生成技术

在人工智能的领域,将文本描述转换为图像的技术正变得越来越先进。最近,一个由清华大学和Meta Reality Labs的研究人员组成的团队,提出了一种名为MultiBooth的新方法,它能够根据用户的文本提示,生成包含多个定制概念的图…

pytorch加载模型出现错误

大概的错误长下面这样: 问题出现的原因: ​很明显,我就是犯了第一种错误。 网上的修改方法: 我觉得按道理哈,确实,蓝色部分应该是可以把问题解决了的​。​但是我没有解决,因为我犯了另外一个错…

Django关于ORM的增删改查

Django中使用orm进行数据库的管理,主要包括以下步骤 1、创建model, 2、进行迁移 3、在视图函数中使用 以下的内容可以先从查询开始看,这样更容易理解后面删除部分代码 主要包括几下几种: 1、增 1)实例例化model,代…

struct和union大小计算规则

Union 一:联合类型的定义 联合也是一种特殊的自定义类型,这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体) 比如:共用了 i 这个较大的空间 二: 联合的…

每日Attention学习4——Spatial Attention Module

模块出处 [link] [code] [MM 21] Complementary Trilateral Decoder for Fast and Accurate Salient Object Detection 模块名称 Spatial Attention Module (SAM) 模块作用 空间注意力 模块结构 模块代码 import torch import torch.nn as nn import torch.nn.functional a…

CTFHUB-技能树-Web题-RCE(远程代码执行)-eval执行

CTFHUB-技能树-Web题-RCE(远程代码执行) 文章目录 CTFHUB-技能树-Web题-RCE(远程代码执行)eval执行解题方法:构造网址,查找当前目录文件并没有发现flag,接着查看上一级目录接着查看上一级接着查看上一级目录…

Transformer详解:从放弃到入门(完结)

前几篇文章中,我们已经拆开并讲解了Transformer中的各个组件。现在我们尝试使用这些方法实现Transformer的编码器。 相关文章: Transformer详解:从放弃到入门(一) Transformer详解:从放弃到入门&#xff08…

【爬虫基础1.1课】——requests模块

目录索引 requests模块的作用:实例引入: 特殊情况:锦囊1:锦囊2: 这一个栏目,我会给出我从零开始学习爬虫的全过程。感兴趣的小伙伴可以关注一波,用于复习和新学都是不错的选择。 那么废话不多说&#xff0c…

AJAX知识点(前后端交互技术)

原生AJAX AJAX全称为Asynchronous JavaScript And XML,就是异步的JS和XML,通过AJAX可以在浏览器中向服务器发送异步请求,最大的优势:无需刷新就可获取数据。 AJAX不是新的编程语言,而是一种将现有的标准组合在一起使用的新方式 …

中小学校活动向媒体投稿报道宣传有哪些好方法

作为一所中小学校的教师,我肩负着向外界展示学校风采、宣传校园文化活动的重要使命。起初,每当学校举办特色活动或取得教学成果时,我都会满怀热情地撰写新闻稿,希望通过媒体的平台让更多人了解我们的故事。然而,理想丰满,现实骨感,我很快发现,通过电子邮件向媒体投稿的过程充满…

ICode国际青少年编程竞赛- Python-1级训练场-变量的计算

ICode国际青少年编程竞赛- Python-1级训练场-变量的计算 1、 a 2 for i in range(4):Spaceship.step(a-1)Dev.step(a)Dev.step(-a)a a 12、 a 2 for i in range(4):Dev.step(2 a)Dev.step(-a)Dev.turnRight()a a 13、 y 4 for i in range(3):Dev.step(y)Dev.turnRigh…