Linux系统入侵排查(一)

前言

为什么要做系统入侵排查

入侵排查思路

1.检查账号安全

基本使用:

cat和more指令说明

1、查看用户信息文件

2、影子文件

3.查看当前登录用户

2.账号安全入侵排查方法总结

1、查询特权用户特权用户(uid 为0)

2、查询可以远程登录的帐号信息

3、除root帐号外 o权限

4、禁用或删除多余及可疑的帐号

2.查看历史命令确定目标

基本使用:

1、root的历史命令

2、查看普通帐号的历史命令

1)保存1万条命令,默认只保存1000条

2)在 /etc/profile 的文件尾部添加如下行数配置信息:

3) source /etc/profile 让配置生效

3、历史操作命令的清除: history -c

总结


前言

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

为什么要做系统入侵排查

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

入侵排查思路

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

1.检查账号安全

基本使用:

cat和more指令说明

cat

cat命令是整个文件的内容从上到下显示在屏幕上。还可以将多个文件连接起来显示,它常与重定向符号配合使用,适用于文件内容少的情况.

more

  more命令会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。

1、查看用户信息文件

cat /etc/passwd(信息少)

more /etc/passwd(信息多)

root:x:0:0:root:/root:/usr/bin/zsh
​用户名:密码:用户ID:组ID:用户说明:家目录:登陆之后shell
account:password:UID:GID:GECOS:directory:shell

需要注意的是:无密码只允许本机登陆,远程不允许登陆

        方法:将后面有nologin的排除,因为有nologin的表示不能远程登录的,对剩下的账号进行排查看是否存在可疑账号或不应该存在的账号

2、影子文件

cat /etc/shadow

这是个存密码的文件,存储着上面查出的用户对应的密码

用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期的警告天 数:密码过期之后的宽限天数:账号失效时间:保留

kali:$y$j9T$k2TlXoYE./3ZfpPlC1rnz/$0GYCwPePph6GEy24/N8s7vVxlzwndL/DltBOhVQ1pLC:19799:0:99999:7:::

没有密码的用户就看不到这么一大串字符了: $y$j9T$k2TlXoYE./3ZfpPlC1rnz/$0GYCwPePph6GEy24/N8s7vVxlzwndL/DltBOhVQ1pLC:19799:0:99999:7:::
两次密码的修改时间间隔:0表示没有修改过 密码有效期:99999表示永不过期 密码修改到期的警告天数:7表示7天内都会提醒你 注:linux的密码是双层加密的(加密和加盐),不容易破解

3.查看当前登录用户

who

(tty本地登陆 ,pts远程登录,比如用xshell这种工具连接登录上去的),一般本地登录的都是没什么问题的,排查远程登录的这些账号。排查是否是通过暴力破解登录上来的、还是自己人登录的.

w 查看系统信息,想知道某一时刻用户的行为

参考博客:CentOS下用于查看系统当前登录用户信息的4种方法_centos 查看用户信息-CSDN博客

uptime 查看登陆多久、多少用户,负载

参考博客:CentOS下Uptime命令详解 - 服务器之家

2.账号安全入侵排查方法总结

解释:有人入侵进来之后,肯定会把自己的级别提到管理员,方便进行更多的操作,通过指令可以查看有哪些用户为管理员,也就是特权用户.

1、查询特权用户特权用户(uid 为0)

root㉿kali)-[/home/kali]
└─# awk -F: '$3==0{print $1}' /etc/passwd

2、查询可以远程登录的帐号信息

        这里因为我没有进行远程登录页就不存在远程登录的信息,如果存在的话,就会出现上面查出的登录用户的加密的账号密码 ,例如出现如下所示  账号:密码  这种格式        

kali:$y$j9T$k2TlXoYE./3ZfpPlC1rnz/$0GYCwPePph6GEy24/N8s7vVxlzwndL/DltBOhVQ1pLC:19799:0:99999:7:::

(root㉿kali)-[/home/kali]
└─# awk '/\$1|\$6/{print $1}' /etc/shadow

3、除root帐号外 o权限

more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"  # 其他的主机

 ─(root㉿kali)-[/home/kali]
└─# more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL:ALL) ALL"

命令的主要目的是检查sudoers文件中是否允许所有用户(ALL)在所有主机(ALL)上执行sudo命令。 

4、禁用或删除多余及可疑的帐号

这里我先创建一个用户做一个案例:

sudo useradd -M hello   创建一个用户名为hello的用户

┌──(root㉿kali)-[/home/kali]
└─# sudo useradd -M hello

usermod -L user   
禁用帐号,帐号无法登录,/etc/shadow第二栏为!开头   user表示你查到的用
户名

剩下的这两个语句,用来删除确定是威胁的用户
userdel user       删除user用户
userdel -r user   将删除user用户,并且将/home目录下的user目录一并删除,有些人入侵完成删除
自己用户的时候,可能忘记了加-r,那么在/home目录下是有它用户名的文件夹的,也就是存有相关信息。

2.查看历史命令确定目标

基本使用:

通过 .bash_history 查看帐号执行过的系统命令

1、root的历史命令

首先切换到用户(例如root)的用户目录,然后输入下面的命令

history N 显示最近的N条命令,例如history 5
history -d N 删除第N条命令,这个N就是前面的编号,例如history -d 990
history -c 清空命令历史 (包括缓存和文件)
history -a 将当前会话中的命令历史写入指定文件
history -w:把缓存中的历史命令写入历史命令保存文件~/.bash_history(显然每个用户有自己的文件)

2、查看普通帐号的历史命令

打开/home各帐号目录下的 .bash_history ,

为历史的命令增加登录的IP地址、执行命令时间等信息:

1)保存1万条命令,默认只保存1000条
sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile
2)在 /etc/profile 的文件尾部添加如下行数配置信息:
######***************#########
USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
export HISTTIMEFORMAT="%F %T $USER_IP `whoami` "
shopt -s histappend
export PROMPT_COMMAND="history -a"
######### ************** ##########
 vim /etc/profile

然后按I键,进行输入,将上面的写入文件中,最后按:wq,进行写入 

3) source /etc/profile 让配置生效
再执行history指令,生成效果:
第一条记录 什么时候执行的   哪个ip地址过来执行的 用的哪个用户 执行的什么指令
1  2024-05-9 12:45:39 192.168.xxx.1 root source /etc/profile

3、历史操作命令的清除: history -c

        但此命令并不会清除保存在文件中的记录,因此需要手动删除 .bash_profile 文件中的记录。入侵者如果能力比较强的,也会把这个文件删除。

总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第二证券|摘星脱帽行情火爆 超40只ST股候场

5月8日,ST中嘉、*ST明诚强势涨停,2家公司年内均请求吊销危险警示。其间ST中嘉自4月29日以来,已接连录得5个涨停板;*ST明诚自4月23日以来9个交易日录得8个涨停板。 年报季向来是几家欢喜几家愁的时间,有公司披星戴帽&a…

Konga域名配置多个路由

云原生API网关-Kong部署与konga基本使用 Nginx server{listen 443 ssl;location / {proxy_pass http://127.0.0.1:8100;}location /openApi {proxy_pass http://172.31.233.35:7100/openApi;} } Kong {"id": "f880b21c-f7e0-43d7-a2a9-221fe86d9231&q…

【 npm详解:从入门到精通】

文章目录 npm详解:从入门到精通1. [npm](https://www.npmjs.com/)的安装2. npm的基础用法2.1 初始化项目2.2 安装依赖2.3 卸载依赖2.4 更新依赖 3. npm的高级用法3.1 运行脚本3.2 使用npm scope3.3 使用npm link 4. npm资源5. 使用npm进行依赖树分析和可视化6. npm进…

c语言常用操作符(2)

1.移位操作符 移位操作符分为<<左移操作符和右移操作符>> 注&#xff1a;移位操作符的操作数只能是整数&#xff0c;同时移位操作符移动的是存储在内存中的二进制位&#xff08;也就是补码&#xff09; 同时移位操作符不要移动负数位&#xff0c;这个是标准未定义…

Android 查看CUP占用率

查看每个进程CUP占用率的几种方式,由于自己充电界面老是导致整机温度过高&#xff0c;后面发现自己的线程一直在跑&#xff0c;相当于死循环&#xff0c;后面加上sleep才得以改善&#xff1b;先看看几种查询方式吧。 1、adb shell top 2、adb shell busybox top 3、adb shell …

SAM轻量化应用Auto-SAM、Group-Mix SAM、RAP-SAM、STLM

1. Auto SAM&#xff08;Auto-Prompting SAM for Mobile Friendly 3D Medical Image Segmentation&#xff09; 1.1 面临问题 医学背景&#xff1a; &#xff08;1&#xff09;与自然图像相比&#xff0c;医学图像的尺寸更小&#xff0c;形状不规则&#xff0c;对比度更低。&…

【Java】从0实现一个基于SpringBoot的个人博客系统

从0实现一个基于SpringBoot的个人博客系统 项目介绍准备工作数据准备创建项目准备前端页面编写配置文件 项目公共模块实体类公共层业务代码持久层实现博客列表实现博客列表约定前后端交互接口 实现博客详情约定前后端交互接口实现服务器代码 实现登录JWT令牌JWT令牌生成和校验实…

vCenter 7.3证书过期无法登录处理方法

登录报错&#xff1a;如下图 Exception in invking authentication handler [SSL: CERTIFICATE_VERIFY_FAILED] certificate vertify failed: certificate has expired(_ssl.c:1076) 处理方法1&#xff1a;推荐&#xff0c;可行 登录vCenter控制台&#xff0c;AltF3切换至命令…

【GaussTech速递】数据库技术解读之细粒度资源管控

背景 对数据库集群内资源管控与资源隔离一直是企业客户长久以来的诉求。华为云GaussDB作为一款企业级分布式数据库&#xff0c;一直致力于满足企业对大型数据库集群的管理需要。 数据库可以管理的资源有计算资源与存储资源&#xff0c;计算资源包括CPU、内存、IO与网络&#…

容器化Jenkins远程发布java应用(方式一:pipline+ssh)

1.创建pipline工程 2.准备工程Jenkinsfile文件&#xff08;java目录&#xff09; 1.文件脚本内容 env.fileName "planetflix-app.jar" env.configName "planetflix_prod" env.remoteDirectory "/data/project/java" env.sourceFile "/…

基于TL431的线性可调恒压恒流电源的Multisim电路仿真设计

1、线性电源的工作原理 在我们日常应用里&#xff0c;直流电是从市电或电网中的交流电获取的。例如15V直流电压源、24V直流电压源等等。交流电变为直流电的过程大概分为一下几步&#xff1a; 首先&#xff0c;交流电通过变压器降低其电压幅值。接着&#xff0c;经过整流电路进…

57.基于SpringBoot + Vue实现的前后端分离-在线教育系统(项目 + 论文PPT)

项目介绍 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了在线教育系统的开发全过程。通过分析在线教育系统管理的不足&#xff0c;创建了一个计算机管理在线教育系统的方案。文章介绍了在线教育系统的系统分析部分&…

深入理解Go语言并发编程

随着计算机硬件的发展&#xff0c;多核处理器已经成为现代计算机的主流配置。在这样的背景下&#xff0c;并发编程成为了一种必备的技能。Go 语言作为一门先进的编程语言&#xff0c;天生支持并发编程&#xff0c;提供了丰富的并发原语和工具&#xff0c;使得并发编程变得更加容…

掌握MySQL常用的命令

前言 MySQL是一个流行的开源关系型数据库管理系统&#xff0c;广泛应用于各种应用场景。熟练掌握MySQL的常用命令&#xff0c;对于数据库管理员和开发人员来说至关重要。本文将介绍MySQL数据库的一些基础术语、SQL语言分类&#xff0c;以及DDL、DML、DQL和DCL等操作&#xff0…

如何快速学习VCU电控开发

本课程基于实际项目案例和岗位需求技能制定教学大纲&#xff0c;以任务驱动方式引导学员&#xff0c;让学员快速掌握VCU开发知识。首先从VCU开发必备知识点和MATLAB/Simulink软件建模工具的使用入手&#xff0c;夯实学员基础。再通过策略设计、模型搭建和测试标定来指导学员完成…

解救应用启动危机:Spring Boot的FailureAnalyzer机制

目录 一、走进FailureAnalyzer 二、在Spring Boot中如何生效 三、为什么可能需要自定义FailureAnalyzer 四、实现自定义基本步骤 &#xff08;一&#xff09;完整步骤要求 &#xff08;二&#xff09;注册方式说明 通过Spring Boot的spring.factories文件&#xff08;建…

CS03_BOM数据展开

CS03_BOM数据展开 一、功能介绍 使用事务码CS03进行数据展开 二、程序代码 程序代码&#xff1a; *&---------------------------------------------------------------------* *& Report ZMMR119 *&--------------------------------------------------------…

二层交换机与路由器连通上网实验

华为二层交换机与路由器连通上网实验 二层交换机是一种网络设备&#xff0c;用于在局域网&#xff08;LAN&#xff09;中转发数据帧。它工作在OSI模型的第二层&#xff0c;即数据链路层。二层交换机通过学习和维护MAC地址表&#xff0c;实现了数据的快速转发和广播域的隔离。 实…

相亲系统功能介绍

相亲系统是一种旨在帮助单身人士寻找合适伴侣的平台&#xff0c;其主要功能通常包括以下几个方面&#xff1a; 实名认证&#xff1a;为了确保双方的权益保障&#xff0c;用户必须进行实名认证后才能使用该系统。这有助于增加系统的安全性和可信度。偏好选择&#xff1a;用户可…

Android 按键消息流程源码分析

在Android系统中&#xff0c;键盘按键事件是由SystemServer服务来管理的&#xff1b;然后在以消息的形式分发给应用程序处理。产生键盘按键事件则是有Linux kernel的相关驱动来实现。键盘消息有别于其他类型的消息&#xff1b;需要从Linux kernel drivers产生由上层APP来处理。…