Linux进程伪装(三):优化版本demo

admin 2024年11月6日19:30:12评论6 views字数 673阅读2分14秒阅读模式

0x00 demo功能

笔者在研究Linux进程伪装的过程中,也学习不少代码的优秀案例,像bpfdoor nginx等。笔者基于自己的一些想法,结合这些优秀案例,实现了一版Linux进程伪装的demo。主要功能如下:
  1. 进程名、命令行伪装:内置不同长度的命令行及对应的进程名,根据原始命令行的长度以及伪装方式,自动选择合适的伪装命令行及进程名,确保不会覆盖环境变量;
  2. 环境变量伪装:自动复制原有环境变量,且仍可通过environ数组访问;同时使用内置无威胁环境变量,覆盖原有环境变量的内存地址空间,规避基于环境变量的威胁检测
  3. 进程树伪装:通过fork以及setsid破坏进程树,使伪装进程PPID=1;
  4. 自动选择伪装方式:基于进程权限,选择不同的伪装方式;进程名皆通过prctl系统调用实现。如果进程euid=0,则命令行和环境变量用prctl修改对应内存空间开始以及结束地址;否则,则清空原有空间并写入新内容,因选择的命令行小于等于原始命令行,所以不会出现覆盖环境变量的情况;

0x01 测试结果

测试环境:Centos7.9+glibc2.17+内核3.10.0-1160.118.1.el7.x86_64
root用户运行:
Linux进程伪装(三):优化版本demo
普通用户运行:
Linux进程伪装(三):优化版本demo

0x02 结尾

demo代码的话,私信获取吧,此处不直接贴出来了。另外的话,Linux进程伪装中还有伪装/proc/pid/exe的说法,但是笔者没有碰到过,且为什么不通过LD_PRELOAD实现动态链接库注入+覆盖环境变量的形式实现呢?感觉更方便一些。

原文始发于微信公众号(风奕安全):Linux进程伪装(三):优化版本demo

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月6日19:30:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux进程伪装(三):优化版本demohttps://cn-sec.com/archives/3365044.html

发表评论

匿名网友 填写信息