
pyshell2bin
如果你在处理漏洞利用和 shellcode,那你已经知道 shellcode 是什么以及如何处理它。有时它会随 C、Perl、Python 等语言的漏洞利用代码一起出现,通常看起来像这样:
payload = (b"xbfxabxd0x9ax5bxdaxc7xd9x74x24xf4x5ax2bxc9" + "xb1x45x83xc2x04x31x7ax11x03x7ax11xe2x5ex2c" + "x72xd2xa0xcdx83x85x29x28xb2x97x4dx38xe7x27" + ...
但有时候你需要这些 shellcode 的二进制文件表示,以便将其注入到某个文件中、调试它,或者出于其他原因。网络上到处都有各种脚本来处理 shellcode 并完成不同的任务,比如二进制转 shellcode、shellcode 转二进制(仅限 bash)…… 但我没有找到能在 Windows 下用的简单脚本。就连将“xxd”命令(进行十六进制转储)移植到 Windows 也是可能的,但并不容易(它似乎随 Windows 版 Vim 捆绑在一起,但以前是随 unixtools 提供的……)。
不管怎样,这里有一个适用于 Windows 的 Python 简单脚本,可以完成这项工作。它能容忍“脏” shellcode(空格、换行、拼接命令……),只保留十六进制字符。然后使用“write”和“wb”模式写入,从而得到一个二进制文件。快速且粗糙。