小白的pwn入门介绍

前言:

这篇文章主要是对想要了解朋友做的一个简述,同时分享学习过程中的经验,我这个小菜鸡也想和大佬们多多学习。

本文由小菜鸡所写,有不恰当的地方,还希望大佬们指点指点。

介绍:

Pwn是一个黑客语法的俚语词,自”own”这个字引申出来的,早期在游戏中表示对手被你干掉了,pwn也是对枪声的拟声。

在比赛中的Pwn题,通常会给一个已经编译好的二进制程序(一般是Linux下的ELF文件),也是用C语言写的程序。需要选手对该程序进行逆向分析程序的漏洞,然后对漏洞进行利用,通过编写脚本,来实现远程攻击,最终拿到目标服务器的shell夺得flag。

当然,Pwn也并不会一直有这些局限,有的题目可能是不给文件的盲Pwn,或者是C++,python等写的文件,跟深入一点也会有分析Linux和Windows内核的题。这就是后话,不多说了。

Pwn在CTF里是门槛最高的,难度大,分值也高,需要一定的基础知识才能很好的深入学习。它的前置知识包括但不限于python,汇编语言,数据结构,操作系统等。需要注意的是对这些知识的学习需要保持一定的灵活性。

Pwn环境:

具体过程就不赘述的,简单说一下需要的工具:

1.Vmware,虚拟机,python
这个不用多说了,这是做题的环境(有Pwn专用的Ubuntu,或者kali也行),具体安装还请参考网上大佬们的博客。

2.GDB
gdb是Linux下常用的一款命令行调试器,十分强大。
分析程序时,对程序的调试是必不可少的,gdb非常的方便。

界面像这样,非常简单。(peda是gdb的插件)

3.windbg
windows下的动态分析工具,可以调试内核态,使用的时候需要注意。

3.Pwntools
这是写EXP必要的python库

像这个最简单的exp,直接import。

4.IDA
反编译工具有很多,但IDA是目前最棒的一个,其功能异常强大。
界面清爽,逻辑性强,是分析二进制的必要神器。

当然,有时候不能完全依赖IDA,也需要掌握一些其它工具,比如binaryninja,OllyDebug,w32dasm等等

可用的好工具还有很多,就不过多介绍了,工具只是工具,自身的不断学习和积累更重要。

吾爱破解工具资源很多:https://www.52pojie.cn

推荐书籍

1.《加密与解密》对于windows的逆向分析
2.《IDA pro权威指南》IDA的详细使用教程
3.《黑客反汇编揭密》
其它的还是看自己的情况,挑选适合自己的书吧,另外网上大佬的博客,也是非常非常有帮助的学习资料。

学习交流

我也是Pwn小小菜鸡,学pwn也不久,非常想和大家一起交流学习,一起进步。
总的来说呢,我个人认为基础知识非常重要,要入门pwn呢,一定的python,汇编,linux内存分配原理等知识是必要的,再者在学习过程中对程序的调试也要足够仔细和耐心。Pwn不像Web这样广泛,但是非常深入,需要潜下心来去慢慢的学,Pwn和逆向的区别在于,逆向主要是对程序算法上的分析,构造payload,反推出结构,Pwn在于对程序漏洞的分析,这涉及的知识也更深入。

这介绍先到这里,请大佬们轻点下手。(狗头)

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据