EvilVM:Forth Shellcode
摘要
EvilVM 是一个原生代码的 Forth 编译器,作为位置无关的 shellcode 部署,用于信息安全环境中的远程代码执行,提供交互式 shell 以及远程代码传输和编译功能。
<p><a href="https://lobste.rs/s/vhbyvk/evilvm_forth_shellcode">评论</a></p>
查看缓存全文
缓存时间: 2026/09/22 14:41
# EvilVM 文档站点
来源:https://web.archive.org/web/20250418124519/http://evilvm.ninja/
EvilVM
## NolaCon 2019 演示
我在2019年 NolaCon 会议 (https://web.archive.org/web/20250418124519/https://nolacon.com/) 上展示了 EvilVM 的 Alpha 版本。您可以在 YouTube 上查看 Irongeek (https://web.archive.org/web/20250418124519/http://www.irongeek.com/) 的视频录像,其中包含对该项目的良好介绍和一些演示:
下载 NolaCon 2019 演示幻灯片,提供 LibreOffice ODP 格式 (https://web.archive.org/web/20250418124519/http://evilvm.ninja/evilvm-presentation-4-3.odp) 和 PDF 格式 (https://web.archive.org/web/20250418124519/http://evilvm.ninja/evilvm-presentation-4-3.pdf)。
## 获取代码
在 https://web.archive.org/web/20250418124519/https://github.com/jephthai/EvilVM/ 查找 EvilVM 的代码。
## 快速入门
要快速了解该系统,请遵循快速入门指南 (https://web.archive.org/web/20250418124519/http://evilvm.ninja/pages/quickstart) 中的说明。
## 概述
此站点托管 EvilVM 及其组成工具的文档。该项目围绕一个原生代码 Forth 编译器构建,该编译器以位置无关 shellcode 形式部署。它为远程代码执行提供了一个平台,这在信息安全领域非常有用。
EvilVM 的主要用例是在远程系统上部署代理并与之交互。该语言的外部解释器以交互式 shell 或 REPL 形式呈现,系统提供将代码传送到代理的能力,代码随后被编译并添加到超静态全局环境中。
技术选择是基于项目目标做出的:
1. **小巧、易于部署的有效载荷**:EvilVM 代理是一个位置无关的 x86_64 shellcode,大小在 5-10KB 之间,具体取决于选项和封装方式。
2. **远程 I/O 流**:与语言交互的标准 I/O 范式通过抽象的、支持网络的流实现,允许通过 TCP、HTTP 等进行传输。
3. **底层访问**:运行时环境提供对编译器内部结构、机器代码和直接内存交互的直接访问。
4. **原生互操作性**:提供了一个简单的 C FFI,便于导入 DLL、查找导出函数,并使用 Forth 函数定义对其进行封装。
5. **富有表现力的语言**:虽然 Forth 提供了“低门槛”(在接近汇编语言的层级运行),但它也提供了“高上限”,允许在运行时对语言进行句法扩展,非常适合元编程技术。
6. **信息安全考量**:有效载荷的生成支持不同的编码和封装方案,以很好地适应典型的恶意软件交付场景(漏洞利用、注入等)。
最后更新于 2019年5月6日
相似文章
字节码虚拟机在意外场景中的应用 (2024)
本文探讨了字节码虚拟机的出人意料的应用,特别是Linux内核中的eBPF以及编译后二进制文件中用于调试信息的DWARF表达式。
Evocation - 从宇宙中召唤计算的青蓝火焰,将其能量编织成织物,使我们能与之交融。
Evocation 是一种 Forth 方言和自托管编译器,针对 amd64 架构,专为语言设计实验而设计,并具有自举特性以生成可审计的二进制文件。
逆向工程 Claude Web 的 MicroVM:揭秘 Anthropic 的隐藏应用托管平台
这篇博客文章详细介绍了对 Claude Code Web 运行时环境的逆向工程过程,揭示其使用了 Firecracker MicroVM,并发现了 Anthropic 未公开的应用托管平台。
@tetsuoai: 攻击者如何在没有注入任何新代码的情况下获取shell。返回导向编程。链接以ret结尾的小工具…
该推文解释了返回导向编程,一种攻击者通过链接二进制文件中现有代码小工具来获得控制权,而无需注入新代码的技术。
构建Clang后端并将Doom移植到我的自定义字节码虚拟机
作者复活了他的自定义字节码虚拟机(UVM),并借助AI解析文本LLVM IR构建了一个Clang后端,成功将Doom移植到该虚拟机上。