SSH公私钥后门从入门到应急响应

目录

1. SSH公私钥与SSH公私钥后门介绍

1.1 SSH公私钥介绍

1.1.1 公钥和私钥的基本概念

1.1.2 SSH公私钥认证的工作原理(很重要)

1.2 SSH公私钥后门介绍

2. 如何在已拿下控制权限的主机创建后门

2.1 使用 Xshell 生成公钥与私钥

2.2 将公钥上传到被需要被植入后门的服务器centos7

2.2.1 将公钥文件上传或下载到目标服务器

2.2.2 将公钥写入.ssh/authorized_keys文件

2.3 Xshell 免密登录测试

3. 如何进行应急响应

3.1  查看服务器开放的端口号与服务

3.2 查看可疑进程

3.3 查看SSH成功登录的日志(查看可疑ip和用户)    

3.4 查看被修改的.ssh/authorized_keys文件信息

3.5 清除后门 


1. SSH公私钥与SSH公私钥后门介绍

1.1 SSH公私钥介绍

        SSH(Secure Shell)公私钥对是一种用于认证的加密技术,它允许用户通过持有私钥来远程登录服务器,而无需输入密码。这种认证方式比传统的密码认证更安全,因为它依赖于加密技术来验证用户的身份。

1.1.1 公钥和私钥的基本概念

  • 公钥(Public Key):这是一个可以公开的密钥,通常用于加密数据或验证签名。在SSH认证中,公钥用于加密会话密钥,确保只有持有对应私钥的用户才能解密并建立连接。

  • 私钥(Private Key):这是一个必须保密的密钥,用户用它来解密接收到的数据或对数据进行签名。在SSH认证中,私钥用于解密由公钥加密的会话密钥,从而建立安全的SSH连接。

1.1.2 SSH公私钥认证的工作原理(很重要)

  1. 密钥生成:用户使用SSH密钥生成工具(ssh-keygen)创建一对密钥,即公钥和私钥。

  2. 公钥部署:用户将公钥复制到服务器的~/.ssh/authorized_keys文件中,这个文件存储了允许登录到该服务器的所有公钥。

  3. 认证过程

    • 当用户尝试使用SSH客户端连接服务器时,服务器会从authorized_keys文件中读取公钥。
    • 服务器使用这个公钥加密一个会话密钥,并将其发送给客户端。
    • SSH客户端使用对应的私钥解密会话密钥,然后使用这个会话密钥与服务器建立加密的SSH连接。
  4. 连接建立:如果客户端能够成功解密会话密钥并建立连接,服务器就知道客户端持有正确的私钥,从而验证了用户的身份。

1.2 SSH公私钥后门介绍

        SSH公私钥后门是一种利用SSH协议的公钥认证机制来实现未授权访问的技术。在SSH协议中,除了传统的密码认证方式外,还可以使用公钥和私钥对进行认证。用户将公钥放置在服务器的~/.ssh/authorized_keys文件中,之后使用对应的私钥即可登录服务器,无需输入密码
        SSH公私钥后门的关键在于攻击者通过某种手段获取到服务器的写入权限,将自己的公钥添加到authorized_keys文件中,或者篡改已有的公钥。这样,攻击者就可以使用对应的私钥在不被察觉的情况下登录服务器。(就是在有权限的情况下,自己增加了一个额外的登录认证的方式)

2. 如何在已拿下控制权限的主机创建后门

2.1 使用 Xshell 生成公钥与私钥

在攻击机上使用 Xshell 生成私钥,按照如图所示选择“新建用户密钥生成向导”

之后输入 密钥名称与密码(可任意设置),此处密码设为:xiaoyu123 ,之后点击下一步

之后点击“保存为文件”

成功保存文件之后,再点击完成

出现弹窗提示,即正确生成,此处密钥为私钥

2.2 将公钥上传到被需要被植入后门的服务器centos7

2.2.1 将公钥文件上传或下载到目标服务器

        将公钥 idrsa2048.pub ,让靶机可以下载改公钥,也就是将公钥通过wget的方式传到靶机上(就是想办法将公钥上传到服务器)

        这里如果有上传的权限或是可以通过ssh远程连接的话,可以直接将公钥上传到需要留后门的主机,或者通过在本机搭建服务或是在服务器上搭建服务,让靶机能够通过wget下载到靶机就可以了

2.2.2 将公钥写入.ssh/authorized_keys文件

        将公钥 idrsa2048.pub 内容写进 .ssh/authorized_keys 文件中,查找 authorized_keys 文件的位置,发现该服务器中无该文件,注意这里需要再~目录的上一层查找

find -name authorized_keys

那么我们就开启免密登录功能,命令如下:

# 输入命令后一直回车就可以了
ssh-keygen -t rsa

在ssh目录下创建该文件,命令如下:

touch /root/.ssh/authorized_keys

 

接下来将xhell的公钥追加到 authorizedkeys 文件,并且给 authorizedkeys 文件赋予执行权限

cd /root
cat id_rsa_2048.pub >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys

2.3 Xshell 免密登录测试

点击新建会话,输入主机IP地址

        输入完之后,不要点击确定,接下来点击 “用户身份验证”,并选择 Public Key ,之后输按照如图所示输入用户名密码(本例是root/xiaoyu123),下面的秘钥的密码也是xiaoyu123,输完用户名密码之后点击“确定”

选择会话之后点击连接,不需要输入用户名密码就可以成功登录

输入ifconfig查看连接的服务器ip地址

3. 如何进行应急响应

3.1  查看服务器开放的端口号与服务

        查看服务器开放的端口号,发现有个ssh连接,并且与负责人确定改IP正常情况下不能登录服务器

# 查看服务器开放的端口号
netstat -anpt

3.2 查看可疑进程

根据PID号查看进程,并未发现异常,是正常的ssh登录

ll /proc/1948

3.3 查看SSH成功登录的日志(查看可疑ip和用户)    

     这里其实还是看不出来什么,很多师傅是不是想到要进行查看文件是否被修改,这里其实可以通过查看登录成功的日志信息发现,不懂命令的师傅可以看我之前的文章,基本每一篇都有在提

more /var/log/secure | grep 'Appected'

        发现一个通过秘钥登录的用户,这里可以和运维人员进行确认,那么接下来查看authorized_keys 文件是否被篡改

3.4 查看被修改的.ssh/authorized_keys文件信息

cat /root/.ssh/authorized_keys

发现被添加了未知用户的公钥,查看文件的一些属性

查看被篡改时间,确定是最近被篡改的

#  这里用下面的命令都可以查看最近一次文件的修改时间
stat /root/.ssh/authorized_keys
ll /root/.ssh/authorized_keys

3.5 清除后门 

如何清除后门,直接将公钥文件的信息删除即可

# 下面的三条命令都可以清除文件中的信息
sudo truncate -s 0 /root/.ssh/authorized_keys
sudo sh -c 'echo "" > /root/.ssh/authorized_keys'
sudo echo -n "" > /root/.ssh/authorized_keys

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

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

相关文章

AIGC技术下的动画新纪元:效率与创意的双重飞跃

文章目录 一、技术革新:从辅助到引领二、创作效率与质量的双重飞跃三、创新与艺术的深度融合四、挑战与展望《Procreate Dreams动画设计与制作完全解析》亮点内容简介作者简介目录 《猎头高情商沟通实务》亮点内容简介作者简介 在科技日新月异的今天,人工…

初始Python篇(1)——输入输出函数、数据类型、运算符

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: Python 以B站up主:Python_子木的视频 :花了2万多买的Python教程全套,现在分享给大家,入门到精…

C++进阶 二叉搜索树的讲解

二叉搜索树的概念 二叉搜索树又称为二叉排序树。 二叉搜索树的性质 若它的左子树不为空,则左子树上所有结点的值都小于等于根结点的值若它的右子树不为空,则右子树上所有结点的值都大于等于根结点的值它的左右子树也分别为二叉搜索树二叉搜索树中可以支持…

vscode搭建ros开发环境问题记录(更新...)

文章目录 vscode 不能自动补全 开发环境: vmware 15.7 ubuntu 20.04 ros noetic vscode 不能自动补全 这里将头文件已经正确包含到c_cpp_properties.json中代码中仍然不能自动补全, 将C_CPP插件设置中的Intelli Sense Engine 设置为TagParser,然后重新加…

MySQL:基本查询操作

插入 基本插入语法: insert [into] 表名 (列1, 列2 ...) values (值1, 值2 ...); create table students( id int unsigned primary key auto_increment, sn int not null unique comment 学号, name varchar(20) not null, tel varchar(20) );一次性指定所有值&…

损耗金属件检测系统源码分享

损耗金属件检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer V…

25达能笔试测评秋招校招认知和行为偏好测评题型分析

达能认知和行为偏好测评笔试测评用的游戏化测评数字推理,具体有四类: 职业行为测试:从选项中选择你更偏向的那个,在选择的时候就可以往达能的企业文化相关方向靠。 motion challenge:类似华容道呢,要用最…

18063 圈中的游戏

### 思路 1. 创建一个循环链表表示围成一圈的 n 个人。 2. 从第一个人开始报数,每报到 3 的人退出圈子。 3. 重复上述过程,直到只剩下一个人。 4. 输出最后留下的人的编号。 ### 伪代码 1. 创建一个循环链表,节点表示每个人的编号。 2. 初始…

初识软件测试

目录 一、什么是测试 1. 生活中的测试场景 2. 为什么需要软件测试 3. 软件测试定义 二、测试的岗位有哪些 1. 软件测试开发工程师 2. 测试工程师 🌴高频面试题: 三、软件测试和开发的区别 1. 工作内容 2. 难易程度上 3. 工作环境 4. Money …

【WPF】桌面程序开发之xaml页面绑定数据模型详解

使用Visual Studio开发工具,我们可以编写在Windows系统上运行的桌面应用程序。其中,WPF(Windows Presentation Foundation)项目是一种常见的选择。然而,对于初学者来说,WPF项目中xaml页面的布局设计可能是一…

java项目之在线考试与学习交流网页平台源码(springboot)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的在线考试与学习交流网页平台。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 基于JAVA语言…

C++数据结构-树的概念及分类介绍(基础篇)

1.什么是树 树是数据结构中的一种,其属于非线性数据结构结构的一种,我们前文所提到的数据结构多数都是线性的,这也是较为简单的数据结构,而接下来的树与图均属于非线性数据结构,也是概念极多的一类。 树是由结点或顶…

OSS对象资源管理

1、登录aliyun 1.1、什么是OSS?有什么用? OSS 是“Object Storage Service”的缩写,中文常称为“对象存储服务”。OSS 是一种互联网云存储服务,主要用于海量数据的存储与管理。 相较于nginx,OSS更灵活,不…

yolov8 pose姿态关键点识别动物姿态识别

导言 介绍了 Tiger数据集,这是一个专为姿势估计任务设计的多功能数据集。该数据集由来自YouTube 视频的 263 张图片组成,其中 210 张用于训练,53 张用于验证。它是测试姿势估计算法和排除故障的绝佳资源。 尽管虎姿态数据集只有 210 张图像…

AT89C51 Intel HEX手工结构分析 反汇编工具

在不查询格式情况下分析确定 Intel HEX 格式 Hex文件内容 :0300000002090BE7 :0C090B00787FE4F6D8FD7581080208F63C :01091700419E :1008F60078087C007D007BFF7A0979177E007F01EE :050906001208D080FE84 :10080000E709F608DFFA8046E709F208DFFA803EDA :1008100088828C83E709F0…

9.15 BFS中等 133 Clone Graph review 138 随机链表的复制

133 Clone Graph //错误代码class Solution { public:Node* cloneGraph(Node* node) {//邻接表、BFS---》类似于二叉树的层次遍历if(!node || !node->val) return node;//构造队列queue<Node*> prev;prev.push(node);//构造新的图结点列表vector<Node*> adjList…

用Spring Boot搭建的读书笔记分享平台

第1章 绪论 1.1课题背景 计算机的普及和互联网时代的到来使信息的发布和传播更加方便快捷。用户可以通过计算机上的浏览器访问多个应用系统&#xff0c;从中获取一些可以满足用户需求的管理系统。网站系统有时更像是一个大型“展示平台”&#xff0c;用户可以选择所需的信息进入…

framework解决权限不足无法安装apk

文件浏览器中安装apk权限不足 源码位置 base/services/core/java/com/android/server/uri/UriGrantsManagerService.java

java数据结构----图

图的存储结构: 代码实现 public class Graph {// 标记顶点数目private int V;// 标记边数目private int E;// 邻接表private Queue<Integer>[] adj;public Graph(int v) {V v;this.E 0;this.adj new Queue[v];for (int i 0; i < adj.length; i) {adj[i] new Queu…

初中(7-9年级)数学-人教版视频全套

文章目录 一、紧贴教材&#xff0c;内容全面二、生动讲解&#xff0c;易于理解三、灵活学习&#xff0c;随时随地四、获取方式 初中数学人教版视频全套&#xff0c;专为使用人教版教材的学生打造。通过高清视频、生动讲解和精准辅导&#xff0c;帮助学生轻松掌握数学知识点&…