发布于2022年11月4日3年前 如何使用DDexec在Linux上隐蔽运行二进制文件 关于DDexecDDexec是一种能够在Linux上使用无文件技术和隐秘技术运行二进制文件的方法,它可以使用dd工具来将Shell替换为其他进程。众所周知,在Linux上运行一个程序,则这个程序必须以一个文件的形式存在,而且必须能够通过文件系统层次结构并以某种方式访问到它,这也是execve()的工作机制。这样的一种文件可能位于磁盘中或RAM(tmpfs、memfd)中,但我们肯定需要一个文件路径。这种机制不仅使得我们可以轻松控制Linux系统中运行的内容,而且还可以轻松检测到安全威胁或攻击者植入的恶意程序,甚至还可以阻止攻击者尝试执行他们的任何工具,比如说不允许未经授权的用户将可执行文件放在任何地方。但是,DDexec的出现改变了这种情况。技术机制1、大多数的Shell解释器都允许创建文件描述符,而这些文件描述符随后将被子进程继承。我们可以创建一个fd,并指向Shell(带有写入权限)的mem文件,此时子进程将使用这个fd并修改Shell的内存;2、ASLR不会成为“拦路虎”,因为我们可以检查Shell的maps文件或其他信息来获取关于进程地址空间的相关信息;3、使用lseek()来对文件进行查询,在Shell的帮助下,我们可以使用dd工具轻松实现;工具下载广大研究人员可以使用下列命令将该项目源码克隆至本地:git clone https://github.com/arget13/DDexec.git依赖组件该脚本依赖下列组件实现其功能:ddbash | zsh | ash (busybox)headtailcutgrepodreadlinkwctrbase64工具使用将ddexec.sh注入到需要运行的Base64源代码中,注意不要有换行符出现。脚本的参数也就是程序的运行参数,以“argv[0]”开始。下面给出的是一个使用样例:base64 -w0 /bin/ls | bash ddexec.sh /bin/ls -lA项目中还提供了一个ddsc.sh脚本,该脚本允许我们直接运行二进制代码,下面给出的是一段“Hello world”的Shellcode:bash ddsc.sh -x <<< "4831c0fec089c7488d3510000000ba0c0000000f054831c089c7b03c0f0548656c6c6f20776f726c640a00"或者:bash ddsc.sh < <(xxd -ps -r <<< "4831c0fec089c7488d3510000000ba0c0000000f054831c089c7b03c0f0548656c6c6f20776f726c640a00")没错,这种方法也适用于Meterpreter。该工具目前已经在Debian、Alpine和Arch平台上进行过测试,支持的Shell包括Bash、zsh和ash,且支持x86_64和aarch64(arm64)架构。许可证协议本项目的开发与发布遵循GPL-3.0开源许可证协议。项目地址DDexec:【GitHub传送门】参考资料https://porkmail.org/era/unix/award.htmlhttps://www.sektor7.net/https://blog.sektor7.net/#!res/2018/pure-in-memory-linux.mdhttps://github.com/carlospolophttps://book.hacktricks.xyz/https://github.com/carlospolop/PEASS-nghttps://rootedcon.com/
创建帐户或登录后发表意见