0x00 demo功能
-
进程名、命令行伪装:内置不同长度的命令行及对应的进程名,根据原始命令行的长度以及伪装方式,自动选择合适的伪装命令行及进程名,确保不会覆盖环境变量; -
环境变量伪装:自动复制原有环境变量,且仍可通过 environ
数组访问;同时使用内置无威胁环境变量,覆盖原有环境变量的内存地址空间,规避基于环境变量的威胁检测 -
进程树伪装:通过 fork
以及setsid
破坏进程树,使伪装进程PPID=1; -
自动选择伪装方式:基于进程权限,选择不同的伪装方式;进程名皆通过prctl系统调用实现。如果进程 euid=0
,则命令行和环境变量用prctl修改对应内存空间开始以及结束地址;否则,则清空原有空间并写入新内容,因选择的命令行小于等于原始命令行,所以不会出现覆盖环境变量的情况;
0x01 测试结果
测试环境:Centos7.9+glibc2.17+内核3.10.0-1160.118.1.el7.x86_64
0x02 结尾
/proc/pid/exe
的说法,但是笔者没有碰到过,且为什么不通过LD_PRELOAD
实现动态链接库注入+覆盖环境变量的形式实现呢?感觉更方便一些。原文始发于微信公众号(风奕安全):Linux进程伪装(三):优化版本demo
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论