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
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论