PWN工具
*IDA pro(静态调试)
*pwntools
*pwndbg(动态调试)
*checkesc(pwn第一步,了解程序相关保护措施)
*ROPgadget
*one_gadget(自动获得shell)
IDA使用基础
1.导入文件后将机器码转为汇编语言
2.找到目标函数,选择目标函数的任意代码段,F5将该函数的汇编语言一键反编译为C语言
3.进入目标函数后,选择其中的可能出现漏洞的子函数,双击进入该函数的反编译后的C语言界面
4.寻找漏洞,进行PWN分析
TIPS:
*某些函数无C语言代码,无法反编译为C语言代码,如start()
*可在option中开启机械码显示(便于对照)
*可将C语言代码拷贝到汇编代码中进行对照
*CTRL+S可保存做题进程,保存为.idb类型
*功能键冲突(如shift+F12),可加Fn消除冲突
*shift+F12,字符串表,可根据字符串查找该字符串所在函数的位置
Pwntools
1)python3
2)from pwn import
3)ls
4)io = process("./name")
,链接本地端口展开攻击,完成后再链接远程端口
5)io
查看类型
6)利用io.process io.remote io.recv io.send
进行简单操作
*可利用-d
命令进行解码得到flag
Pwndbg
1)gdb filename
进入pwngdb调试
2)b main
在main函数设置断点
3)r
运行,显示出寄存器,汇编码,栈,函数关系 四栏信息
4)n
过到目标子函数,s
进入函数,n
执行函数,输入函数执行信息
5)stack 所需查看数
查看函数栈空间
6)查询后门函数地址,计算到达后门函数所需字节数
7)退出Pwndbg,重新进入python开始攻击,执行io命令链接后,payload相应字节数填充垃圾数据,在缓冲区位置填入打包后的后门函数地址
8)成功获得shell
9)io.remote+远程地址
获得远程服务器控制权
10)ctrl+d退出python环