二进制安全入门
pwn:”Pwn”是一个黑客语法的俚语词 ,是指攻破设备或者系统 。发音类似“砰”,对黑客而言,这就是成功实施黑客攻击的声音——砰的一声,被“黑”的电脑或手机就被你操纵。
CTF中PWN题型通常会直接给定一个已经编译好的二进制程序(Windows下的EXE或者Linux下的ELF文件等),然后参赛选手通过对二进制程序进行逆向分析和调试来找到利用漏洞,并编写利用代码,通过远程代码执行来达到溢出攻击的效果,最终拿到目标机器的shell夺取flag。
二进制逆向可以概括为 从目标代码反推到源代码,再通过源代码去理解该文件的实现的功能和创作的意义,这项技术在实战中常应用的领域为 软件破解、漏洞挖掘、恶意木马的分析。
0x01 基础知识
掌握C语言,推荐小甲鱼的教学视频
掌握汇编语言,推荐书籍《汇编语言(第三版)》——王爽
学习linux系统,推荐书籍《鸟哥的linux私房菜》
学习python基本语法,推荐廖雪峰的网站 \ 《python核心编程》
0x02 工具准备
- VMWare虚拟机中安装ubuntu16&&18
- IDA Pro
- OllyDbg
对于这些工具都要会简单的调试
ubuntu中的工具安装
pwntools(pwntools的官方文档)
gdb(以下三种选一即可) 学会使用gdb
- peda
- pwndbg
- gef
python
ROPgadget
one_gadget
剩下的一些工具在学习中用到时再慢慢安装,如roputils 、 LibcSearcher
0x03 学习资料
集合:
CTF-wiki 入门可以先跟着Wiki走,从栈溢出开始学习,跟着复现
CTF-All-In-One 也是一个不错的资料
栈
一步一步ROP系列
- 之x86
- 之x64
- 之gadgets和2free
堆
书
《程序员的自我修养》
《深入理解计算机系统》
《有趣的二进制》
《0day漏洞挖掘与利用》
0x04 其他
可以到 jarvis oj \ buuctf \ pwnable.tw \ pwnable.kr 等平台进行练习ctf-pwn
常去一些安全平台,如 看雪、FreeBuf、安全客、先知、吾爱破解等学习新知识新思想
逆向和二进制不分家,入门二进制,基础很重要
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!