0x01 工具

  • IDA Pro
  • Linux
    • x86 and x64
    • 推荐Debian系列(Ubuntu,Debian,Kali,…)
  • qemu
  • gdb
    • 自定义.gdbinit
  • gdb-peda
  • gdb script
    • gdb -q -x cmd ./binary
  • gdb-server
  • C
  • Python
  • Perl
  • Bash功能
    • /dev/tcp/<IPADDR>/<PORT>
  • Binutils , Elfutils
    • objdump,readelf,eu-readelf…
  • nasm/ndisasm/radare2
  • netcat(nc)
  • socat
    • socat TCP-LISTEN:4444,reuseaddr,fork exec:./binary&
  • strace/ltrace
    • strace –fiv ./binary
  • checksec.sh
    • checksec.sh --file ./binary
  • rp++
    • rp-lin-x86 --file=binary --unique --rop=5

0x02 pwn问题类型

  • 本地权限提升
  • remote shell 夺取

0x03 pwn问题的攻略方法

基本战略:

  1. binary各项设定检查
    • checksec(NX,ASLR,RELRO,PIE)
  2. 分析binary,找到漏洞点
  3. 向漏洞点发送测试数据
  4. 控制binary运行流程
    • 例如控制EIP
  5. getshell

打开shell的各种方法:

  1. 运行shellcode
    • Exec-shell
    • Exec-shell + back connect
  2. system("/bin/sh") や execve("/bin/sh",0,0)
  3. open("flag") -> read() -> write()
    • 某些情况下不能直接获取shell,但能读取flag