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

DDexec是一种在Linux上利用无文件技术和隐秘技术运行二进制文件的方法,绕过传统通过文件系统执行程序的方式。它依赖于Shell的文件描述符,结合dd工具和内存操作来执行代码,甚至可以规避ASLR。该工具已在多种Linux发行版和不同架构上测试,并提供了示例用法。
摘要由CSDN通过智能技术生成

关于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)架构。

网络安全工程师企业级学习路线

这时候你当然需要一份系统性的学习路线

如图片过大被平台压缩导致看不清的话,可以在文末下载(无偿的),大家也可以一起学习交流一下。

一些我收集的网络安全自学入门书籍

一些我白嫖到的不错的视频教程:

上述资料【扫下方二维码】就可以领取了,无偿分享

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值