shellnoob包装说明
写作的shellcodes一直是超级好玩的,但是有一些部分是非常枯燥而且容易出错。只注重有趣的部分,并使用ShellNoob! 产品特点:
- 转换不同的格式和信号源之间的shellcode。目前支持的格式:ASM,斌,六角,OBJ,EXE,C,Python和Ruby,漂亮,safeasm,completec,shellstorm。 (以下简称“格式描述”部分中的所有细节。)
- 交互式汇编到操作码的转换(反之亦然)模式。这时候,你不能在shellcode的使用特定字节,你要搞清楚,如果一个特定的汇编指令会产生问题是非常有用的。
- 为AT&T与英特尔的语法支持。检查-Intel开关。
- 对于32位和64位(x86_64的机器上玩的时候)的支持。检查-64开关。
- 解决系统调用号,常量和错误号(现在已经实现了真正的!:-))。
- 便携且易于配置(只/依赖于gcc作为/ objdump的和Python)。这仅仅是一个自包含的Python脚本,它同时支持Python2.7 +和Python3 +。
- 就地开发:你直接在目标体系结构上运行ShellNoob!
- 内置用于Linux / x86上,Linux的/ x86_64的,Linux的/ ARM,FreeBSD的/ 86,FreeBSD的/ x86_64的支持。
- “前面加上断点”选项。检查-c开关。
- 从标准输入读取/写入stdout支持(用“ - ”作为文件名)
- 超级便宜的调试:检查-to-strace的和-to-GDB的选择!
- 使用ShellNoob作为脚本的Python模块!选中“ShellNoob作为一个库”部分。
- 详细模式显示了低级别步骤的转换:有用的调试/理解/学习!
- 额外的插件:二进制补丁轻松使用-file补丁,-vm补丁,-fork-nopper选择! (下面的所有详情) 资料来源:https://github.com/reyammer/shellnoob
- 作者:Yanick Fratantonio
- 许可:MIT
0x01 包含在shellnoob包工具
shellnoob - shellcode的写作工具包:~# shellnoob -h shellnoob.py [--from-INPUT] (input_file_path | - ) [--to-OUTPUT] [output_file_path | - ] shellnoob.py -c (prepend a breakpoint (Warning: only few platforms/OS are supported!) shellnoob.py --64 (64 bits mode, default: 32 bits) shellnoob.py --intel (intel syntax mode, default: att) shellnoob.py -q (quite mode) shellnoob.py -v (or -vv, -vvv) shellnoob.py --to-strace (compiles it & run strace) shellnoob.py --to-gdb (compiles it & run gdb & set breakpoint on entrypoint) Standalone "plugins" shellnoob.py -i [--to-asm | --to-opcode ] (for interactive mode) shellnoob.py --get-const <const> shellnoob.py --get-sysnum <sysnum> shellnoob.py --get-strerror <errno> shellnoob.py --file-patch <exe_fp> <file_offset> <data> (in hex). (Warning: tested only on x86/x86_64) shellnoob.py --vm-patch <exe_fp> <vm_address> <data> (in hex). (Warning: tested only on x86/x86_64) shellnoob.py --fork-nopper <exe_fp> (this nops out the calls to fork(). Warning: tested only on x86/x86_64) "Installation" shellnoob.py --install [--force] (this just copies the script in a convinient position) shellnoob.py --uninstall [--force] Supported INPUT format: asm, obj, bin, hex, c, shellstorm Supported OUTPUT format: asm, obj, exe, bin, hex, c, completec, python, bash, ruby, pretty, safeasm All combinations from INPUT to OUTPUT are supported! Check out the README file for more info.
0x02 shellnoob用法示例
开始在ASM操作码模式 (-to-操作码) 交互模式 (-i):
:~# shellnoob -i --to-opcode
asm_to_opcode selected (type "quit" or ^C to end)
>> xchg %eax, %esp
xchg %eax, %esp ~> 94
>> ret
ret ~> c3
>>
原文来自https://www.hackfun.org/kali-tools/shellnoob_zh.html。转载请注明原出处,商用请联系原作者授权。