合适的工具
Source: Dev.to

介绍
最近,我在 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'– 选择执行命令的 payloadCMD='cat /flg.txt'– 指定要运行的命令-a 'x64'– 定义系统架构--platform 'linux'– 设置目标操作系统-f 'hex'– 选择输出格式
结果

最后一步很简单:使用 netcat 将生成的 shellcode 发送到目标机器。Boom!成功获取 flag。
收获
黑客本质上是关于工具选择和策略思考,而不仅仅是纯粹的编码技能。有时,最优雅的解决方案就是最简单的那个。