合适的工具

发布: (2025年12月13日 GMT+8 23:47)
3 min read
原文: Dev.to

Source: Dev.to

Cover image for The right tool for the job

介绍

最近,我在 Hack the Box 上开始了 Intro to Assembly Language 模块。由于我有 C 语言的背景,我以为自己已经很好地掌握了编译语言。然而,我很快意识到汇编是一种完全不同的“野兽”。虽然 Hack the Box 是一个优秀的平台,但它并不一定是深入学习编程语言的理想场所。

该模块也是我完成 SOC Analyst Prerequisites Skill Path 所需的最后一个,我不想留下未完成的任务。

挑战

我们正在进行一次渗透测试,在二进制利用练习中,到了需要运行我们的 shellcode 的阶段。但我们只能使用 50 字节 的缓冲区空间。因此,我们必须优化我们的汇编代码,使其能够作为 shellcode 使用且大小不超过 50 字节,以成功在易受攻击的服务器上运行。

提示

  • 参考 “Syscalls” 部分了解汇编代码的作用。
  • 参考 “Shellcoding Techniques” 部分以便优化汇编代码。

上述服务器模拟了一个可以运行我们 shellcode 的易受攻击环境。目标是对 flag.s 进行 shellcode 优化,使其大小低于 50 字节,并将 shellcode 发送以获取 flag(可以自行编写自定义 shellcode)。

在两天的手动优化后,我意识到黑客的思维方式往往与传统程序员不同:最有效的解决方案往往是选择合适的工具,而不是从头编写所有代码。

使用 MSFVenom

我转向了 MSFVenom,这是一款强大的 payload 生成工具。我使用的命令如下:

msfvenom -p 'linux/x64/exec' CMD='cat /flg.txt' -a 'x64' --platform 'linux' -f 'hex'
  • -p 'linux/x64/exec' – 选择执行命令的 payload
  • CMD='cat /flg.txt' – 指定要运行的命令
  • -a 'x64' – 定义系统架构
  • --platform 'linux' – 设置目标操作系统
  • -f 'hex' – 选择输出格式

结果

command result

最后一步很简单:使用 netcat 将生成的 shellcode 发送到目标机器。Boom!成功获取 flag。

收获

黑客本质上是关于工具选择和策略思考,而不仅仅是纯粹的编码技能。有时,最优雅的解决方案就是最简单的那个。

延伸阅读与收听

Back to Blog

相关文章

阅读更多 »