权限维持 | Centos Linux环境变量后门

admin 2021年5月14日03:34:48评论258 views字数 2238阅读7分27秒阅读模式
权限维持 | Centos Linux环境变量后门
0x00 前言
虽然是周日,但小黑今天还是个光荣的打工人,要爬起来去上班,所以写文章的时间就压缩了很多,这周的文章就简单介绍一种linux后门吧。

本文使用centos linux系统做实验,对其他版本linux不保证可用性。0x01--0x04部分是原理,想看利用可以直接跳到0x05

0x01 环境变量文件分类
Linux系统在每个用户登陆或打开一个新shell时,都会去加载执行一些环境变量文件(shell语言)。我们可以考虑用这个特性去留后门作为权限维持的一种手段。

由上述原理可以想象,这个后门应该是管理员做类似登陆的操作才会触发。那根据一种最常见的登陆场景:【管理员使用ssh登陆linux系统】,可以将linux的环境变量文件分为以下三类:

第一大类:ssh登陆后会执行的环境文件

/etc/profile

/etc/bashrc

~/.bashrc

~/.bash_profile


第二大类:特殊条件下会执行的环境文件
~/ .bash_login
~/.bash_logout

第三大类:不常用shell的环境文件
例如:
~/.cshrc
~/.tcshrc
等……

下面会一一介绍分类的依据,每个文件的触发特性,以及如何利用该特性制作后门。

0x02 ssh登陆后会执行的文件
这一类环境变量是ssh登陆系统后通常必定会执行的文件,其中/etc/profile/etc/bashrc系统级环境变量,影响所有用户。而~/.bashrc~/.bash_profile用户级环境变量,只对单个用户有影响。

我们在这四个环境文件中分别写一行shell代码,功能是用echo函数在开头输出文件自身的名字,然后去实际登陆一下,以输出顺序来判定他们的执行顺序。

(1)在/etc/profile文件开头添加如下代码(其他三个文件以此类推):
权限维持 | Centos Linux环境变量后门
(2)实际登陆操作:
权限维持 | Centos Linux环境变量后门
(3)显示顺序截图:
权限维持 | Centos Linux环境变量后门
结论:/etc/profile > ~/.bash_profile >~/.bashrc /etc/bashrc 

这里顺便再测试一下不实际登陆,只是用当前用户打开一个新bash shell时会怎么样:
权限维持 | Centos Linux环境变量后门
结论:只有bashrc文件会触发,顺序:~/.bashrc > /etc/bashrc 

0x03 特殊条件会执行的环境文件
其实也没什么特殊的啦,执行的触发条件一句话就能讲清楚:
~/.bash_login 触发规则:
    当~/.bash_profile文件不存在时才会执行。

(1)先改掉~/.bash_profile
权限维持 | Centos Linux环境变量后门
(2)然后重新登陆:
权限维持 | Centos Linux环境变量后门
结论~/.bash_profile文件不存在时,会执行~/.bash_login文件。同时发现 /etc/bashrc  ~/.bashrc 都不会执行。

不过这个并不绝对,实际上只要看一下这些文件的源码就会知道他们是相互调用的,具体会不会执行要看实际环境的调用情况。比如下图~/.bash_profile文件中调用了~/.bashrc文件。
权限维持 | Centos Linux环境变量后门

~/.bash_logout 触发规则:
    用户登出时会执行。
权限维持 | Centos Linux环境变量后门

0x04 不常用shell的环境文件
顾名思义,就是除bash shell之外的shell的环境文件,使用其他shell时会触发。比如我这里的.cshrc和.tcshrc就是csh shell的环境文件。

权限维持 | Centos Linux环境变量后门

bash shell 是 Linux 的默认 shell,管理员使用ssh登陆时会默认调用bash,所以会触发bash的环境文件。至于其他类型的shell,使用场景比较少见,这里就不多介绍啦。

0x05 环境文件后门的利用思路
知道了原理,那利用环境文件做后门的思路就很明确了:在这些文件中添加恶意代码,让管理员登陆/登出时隐蔽的做一些事情。

具体添加什么代码呢,我这里初步想了几个方案,逐步排除后只剩一种,师傅们有更好的方案可以在留言板补充。

【方案123】:改管理员密码、加新的管理员用户、加ssh登陆公钥。
排除理由:手法老套容易被发现,在不知道管理员登陆习惯时不能及时上去清理痕迹,动静太大。

【方案4】:直接反弹shell
在环境变量中添加反弹shell的代码,在代码触发后能在自己的服务器上直接获得权限,简单直接而且后门触发后很快就可以获知消息。
权限维持 | Centos Linux环境变量后门
排除理由:这种交互性的命令会在登陆后阻塞管理员的终端,影响可用性,而且也更容易被发现了。
权限维持 | Centos Linux环境变量后门
登出的时候也同样会阻塞:
权限维持 | Centos Linux环境变量后门

【方案5】:nohup执行msf木马
关于msf木马的制作和使用方法可以参考这篇:
实验 | msf反弹后门的使用演示

(1)这里先向目标机器传入msf木马,命名为backdoor.sh(实战中木马的命名和位置可以更隐蔽一些)
权限维持 | Centos Linux环境变量后门
(2)在环境变量文件中添加nohup执行木马的语句:
权限维持 | Centos Linux环境变量后门
(3)管理员登陆后无任何异常:
权限维持 | Centos Linux环境变量后门
(4)实际msf木马已经在后台静默运行
权限维持 | Centos Linux环境变量后门

0x06 后记

这是2.1--2.7这周的文章

自从去年7月正式运营公众号之后,我想到什么好的文章灵感都会记录下来作为选题,留着有空再写。这周的文章就是很久以前记录的一个选题,目前积累的还没有写的选题有这些:

权限维持 | Centos Linux环境变量后门
大家想看哪个可以留言给我,也可以贡献一些这里没有的选题,被留言的选题我会考虑提升一下优先级~

0x07 参考文献
https://blog.csdn.net/whatday/article/details/78929247
https://cloud.tencent.com/developer/article/1683267

本文始发于微信公众号(小黑的安全笔记):权限维持 | Centos Linux环境变量后门

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年5月14日03:34:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   权限维持 | Centos Linux环境变量后门https://cn-sec.com/archives/264356.html

发表评论

匿名网友 填写信息