如何使用DDexec在Linux上隐蔽运行二进制文件

一颗小胡椒2022-11-22 10:38:43

关于DDexec

DDexec是一种能够在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

依赖组件

该脚本依赖下列组件实现其功能:

dd
bash | zsh | ash (busybox)
head
tail
cut
grep
od
readlink
wc
tr
base64

工具使用

将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.html
https://www.sektor7.net/
https://blog.sektor7.net/#!res/2018/pure-in-memory-linux.md
https://github.com/carlospolop
https://book.hacktricks.xyz/
https://github.com/carlospolop/PEASS-ng
https://rootedcon.com/
linux系统二进制代码
本作品采用《CC 协议》,转载必须注明作者和本文链接
AI安全论文第21篇介绍S&P经典的离地攻击论文,希望您喜欢
Binutils一组二进制程序处理工具,包括:addr2line、ar、objcopy、objdump、as、ld、ldd、readelf、size等。静态库的代码在编译过程中已经被载入可执行程序,因此体积较大。C语言标准仅仅定义了C标准库函数原型,并没有提供实现。C运行时库又常简称为C运行库。与C语言类似,C++也定义了自己的标准,同时提供相关支持库,称为C++运行时库。准备工作由于GCC工具链主要是在Linux环境中进行使用,因此本文也将以Linux系统作为工作环境。
iddm带你读论文——SymQEMU:Compilation-based symbolic execution for binaries 本篇文章收录于2021年网络安全顶会NDSS,介绍了最新的符号执行技术,并且清晰地比较了当前流行的各种符号执行的引擎的优劣势,可以比较系统的了解符号执行技术的相关知识
众所周知,在Linux上运行一个程序,则这个程序必须以一个文件的形式存在,而且必须能够通过文件系统层次结构并以某种方式访问到它,这也是execve()的工作机制。这种机制不仅使得我们可以轻松控制Linux系统中运行的内容,而且还可以轻松检测到安全威胁或攻击者植入的恶意程序,甚至还可以阻止攻击者尝试执行他们的任何工具,比如说不允许未经授权的用户将可执行文件放在任何地方。
初识Shell
2022-03-11 22:42:44
程序是由序列组成的,告诉计算机如何完成一个具体的任务。编写程序花费的时间往往是实际运行时间的几十倍或几百倍。除了计算机生产厂家的专业人员外,绝大多数的 程序员已经不再去学习机器语言了。包含的功能几乎可以涵盖Shell所具有的功能,所以一般的Shell脚本都会指定它为执行路径。目前使用的 并不多,已经被/bin/tcsh所取代。
2021 年,随着数字货币的流行以及国家间对抗的加剧,以“高级持续性威胁”(APT)组织为代表的黑客组织高度活跃,严重危及各国的政治、经济和军事安全,甚至一度引发社会动荡。这一年来,利用主流产品的漏洞入侵系统仍是黑客组织最青睐的攻击手段,被利用的零日漏洞仅上半年内就多达 40 个,范围遍及 Window、Microsoft Office、iOS、Android 和 Chrome等几乎所有主流系统
前言最近一段时间在研究Android加壳和脱壳技术,其中涉及到了一些hook技术,于是将自己学习的一些hook技术进行了一下梳理,以便后面回顾和大家学习。主要是进行文本替换、宏展开、删除注释这类简单工作。所以动态链接是将链接过程推迟到了运行时才进行。
PHP disable_functions disable_functions是php.ini中的一个设置选项。相当一个黑名单,可以用来设置PHP环境禁止使用某些函数,通常是网站管理员为了安全起见,用来禁用某些危险的命令执行函数等。
disable_functions是php.ini中的一个设置选项。相当一个黑名单,可以用来设置PHP环境禁止使用某些函数,通常是网站管理员为了安全起见,用来禁用某些危险的命令执行函数等。
相当一个黑名单,可以用来设置PHP环境禁止使用某些函数,通常是网站管理员为了安全起见,用来禁用某些危险的命令执行函数等。高ini_restore()可用于恢复 PHP 环境配置参数到其初始值
一颗小胡椒
暂无描述