当前位置: 首页 > article >正文

权限维持—Linux系统Rootkit后门

前言

最近接触了一下这个Rootkit后门,这玩意大多数用来做权限维持,对于红队来说是比较好用的一个工具。如果你是大手子,直接自己写一个Rootkit,当然啦,我这种小菜鸡就只能用开源的项目来玩了,哈哈哈。

什么是Rootkit

一般来说,Rootkit自身并不是恶意软件,它是恶意软件用来隐藏自己的一种手段。但经二次改造的Rootkit可能包括间谍软件和其它的程序,如监视网络通信和用户击键的程序,也可以在系统中构建一个后门便于黑客使用,被改造的Rootkit恶意软件可以包含多个恶意工具,其中通常包括用于启动分布式拒绝服务(DDoS)攻击的机器人;可以禁用安全软件,窃取银行和信用卡详细信息以及窃取密码的软件;和击键记录器。Rootkit 通常为攻击者提供进入计算机的后门,使他们能够访问受感染的计算机,并使他们能够在选择时更改或删除软件和组件。

Rootkit权限维持

首先当我们通过C2后门拿到一台主机权限的时候,它会存在以下这几个问题:

1、暴露外联的IP

2、暴露后门进程

3、暴露的后门文件

即使你免杀做的再好,蓝队依旧可以通过这三点把C2后门给排查出来,我们要做的就是通过Rootkit 把这三点给隐藏起来,以此来达到权限维持的一个目的。

这里我们用的是这个项目,下面就是项目的适用版本。

https://github.com/f0rb1dd3n/Reptile

现在靶机安装以下环境,这几个包都是Linux常用的,基本部署业务的主机都会有。

yum -y install perl vim gcc make g++ unzip

动态获取内核版本并且安装。

yum -y localinstall kernel-devel-$(uname -r).rpm

OK假如现在我获取到了靶机的权限,可以到看到网络连接显示靶机通过58762端口外联到171主机的8888端口。

还能查看到我们的shell.elf这个进程。

通过PID来定位到后门文件。

通过以上的几个步骤可以快速定位到后门文件,现在我们来使用上面的Rootkit项目进行隐藏一下,下载好项目之后直接上传到受控主机解压即可,也才40多KB而已。解压之后执行setup.sh脚本,可以看到有四个选项,install就是安装Rootkit,remove就是移除Rootkit,client就是安装客户端。

这里我们先安装Rootkit,要注意一下这个Hide name,直译过来就是隐藏名字。意思就是以你设置的名字来命名的文件就会被隐藏起来,比如我这里设定为 wlw666 ,那么待会我用 wlw666来命名的文件或者文件夹就会被隐藏起来,如果不设定名字就默认为reptile。

./setup.sh install

下面的这些密码还有端口啥的,直接默认就行。

这里选择 y 使用回连功能,IP就是你远控主机的IP,端口随便来个,最后输入1,就是1秒后开始安装。

这样子就安装完成了,这里会提示是否要删除这个安装目录,实战中可以删除那么就会更加隐蔽,这里为了方便我就留下了。

我们先来验证一下是否安装成功,当前目录下创建一个文件架,就叫wlw666123,可以看到无论是ls 还是 ls -la 都看不见这个文件夹。

但是我们 cd 是能进去的,因为我们前面讲过了,只要文件名或文件夹名存在wlw666都会被隐藏,那我们是不是就可以把上面的 shell.elf 重命名为wlw666shell.elf,以此来达到后门隐藏的目的。

光是文件隐藏还不够,还要把进程给隐藏掉才行,后面就是你的PID。

/reptile/reptile_cmd hide 111672

此时再来查看一下 shell.elf 的进程,可以看到是被完全隐藏起来的了。

剩下的一个网络连接我们也一并隐藏。

/reptile/reptile cmd tcp 192.168.145.171 8888 hide

可以看到此时查看网络连接情况是看不到我们后门的外联的。

现在我不用C2后门去进行控制靶机,用Rootkit自带的远控功能去实现,先在另一台主机安装一下客户端。

如果按照报错,执行下面的命令安装一下这玩意就行。

yum install readline-devel

靶机重新安装一下Rootkit,回连IP填客户端的IP即可,端口随便。

客户端来到 bin 目录下运行 client 文件。

设置参数,LHOST就是客户端的IP,LPORT就是上面我们设置的端口,SRCHOST也是客户端IP,SRCPORT默认为666,如果安装的时候没有改的话。RHOST就是受控主机的IP,RPORT就是连接端口,随便设置一个就行,但是要开放的才行,PROT就是通讯协议,设置为TCP即可,PASS和TOKEN直接复制过来就行。

设置完之后直接 run 即可收到回连,输入shell就可以拿到受控主机的权限。

我们只能在网络连接里面看到有异常。

进程是不会有东西的,直接把网络连接隐藏就行,蓝队排查难度比较大。

总结

总的来说如果主机植入了Rootkit的话,排查起来的难度还是挺大的,也比较麻烦。

最后,以上仅为个人的拙见,如何有不对的地方,欢迎各位师傅指正与补充,有兴趣的师傅可以一起交流学习。


http://www.kler.cn/a/597052.html

相关文章:

  • victoriametrics 部署
  • S32k3XX MCU时钟配置
  • 【Linux】达梦数据库图形如何新建表、 插入表
  • 3. 轴指令(omron 机器自动化控制器)——>MC_SetPosition
  • RAG 技术:让大型语言模型更智能
  • LLM - CentOS上离线部署Ollama+Qwen2.5-coder模型完全指南
  • CCF-CSP认证 202206-2寻宝!大冒险!
  • 详解简单选择排序
  • LeetCode 160 Intersection Of Two Linked Lists 相交链表 Java
  • 简单实用!百度AI + Raphael AI = 免费生图
  • 第十四届蓝桥杯省赛电子类单片机学习记录(客观题)
  • [笔记.AI]多头自注意力机制(Multi-Head Attention)
  • 计划变动的坐标系-基线
  • MyBatis-Plus 自动填充:优雅实现创建/更新时间自动更新!
  • SQL之delete、truncate和drop区别
  • JavaScript基础-DOM事件流
  • 【CSS文字渐变动画】
  • 在Mac M1/M2芯片上完美安装DeepCTR库:避坑指南与实战验证
  • OpenCV图像处理:分割、合并、打码、组合与边界填充
  • 一区思路!