Ubuntu 16.04 for pwn

来源:互联网 发布:linux 文件最后一行 编辑:程序博客网 时间:2024/05/16 16:18

往往我们做pwn题,都是拿到可执行文件(elf)和其依赖文件libc.so,工欲善其事必先利其器,利用好的工具,可以事半功倍。在此列出自己做pwn题的ubuntu配置:

对于可执行文件(elf),可以从三个不同的方向入手:

1)        运行程序,了解程序逻辑;

2)        gdb调试,动态调试程序;

3)        IDA静态分析,理解程序逻辑。

以上三步主要涉及漏洞挖掘,这是最基础的部分,也是方向和手段最多的部分。如果我们可以找到漏洞,那么一起好说。

利用工具:

peda :gdb插件,调试神器,谁用谁知道。

vim : 安装插件,为后续编写exploit。


安装vim插件:https://github.com/ma6174/vim

速度可能较慢,耐心等待,效果图:


 

安装peda插件:https://github.com/longld/peda

安装命令:

git clonehttps://github.com/longld/peda.git ~/peda

echo"source ~/peda/peda.py" >> ~/.gdbinit

echo"DONE! debug your program with gdb and enjoy"

 

截图:


利用peda调试事半功倍。


在分析程序时,往往少不了IDA Pro来静态分析程序,或者F5查看程序的伪代码,程序下载:http://www.52pojie.cn/thread-450156-1-1.html

此版本为linux下ida pro,但是没有F5功能,我往往是将IDA Pro安装在windows下,ubuntu作为虚拟机来运行,充分利用各自的优势。

windows下IDA Pro下载地址:链接: http://pan.baidu.com/s/1dFBgpjz 密码: sgjs

 

以上是漏洞挖掘,主要是靠人工手动的来分析程序寻找漏洞,另外还可以通过fuzzing测试,来让程序产生crash,从而能更快速的定位问题,常见的fuzzing工具有:

peach :高度定制,万能fuzzing工具;

Trinity :用于fuzzing linux内核驱动;

sulley/kitty-fuzzer等,请自行google。

 

常见的pwn漏洞堆溢出、栈溢出、use after free、格式化字符串、命令注入以及竞态(常见于多线程)等程序漏洞,在程序漏洞利用常利用python脚本来编写exploit,也有大牛专门写了pwn的python库——pwntools。

下载地址:https://github.com/Gallopsled/pwntools

说明指导文档:https://pwntools.readthedocs.org/

安装:

apt-get update

apt-get install python2.7 python-pippython-dev git libssl-dev

pip install --upgradegit+https://github.com/Gallopsled/pwntools.git

可能安装不太顺利,多安装几次。

在程序栈溢出中我们通常会用到ROP编程,所谓的rop编程就是控制eip跳转同时利用程序本身或者libc库来构造代码片段执行指令达到程序构造的目的。而这些代码片段称为gadget,寻找可用的gadget有下面等工具:

1)        ROPEME: https://github.com/packz/ropeme

2)        Ropper: https://github.com/sashs/Ropper

3)        ROPgadget: https://github.com/JonathanSalwan/ROPgadget/tree/master

4)        rp++: https://github.com/0vercl0k/rp

 

本人比较喜欢用Ropper/ROPgadget,Ropper依赖包主要有filebytes、capstone等,安装pwntools时一般会安装capstone,安装命令pip install capstone安装成功后,执行ropper/ROPgadget时往往会出错。

解决方法:

pip uninstall capstone来卸载capstone,然后到github上下载安装包手动安装:https://github.com/aquynh/capstone

make && make install 来安装capstone,然后进去目录


在此目录下: sudo python setup.py install,安装成功后ROPgadget/Ropper就可以成功运行了。


1 0
原创粉丝点击