带你推开PWN世界的大门

admin 2023年12月17日01:26:30评论43 views字数 1520阅读5分4秒阅读模式
带你推开PWN世界的大门

CTF-PWN简介

CTF中的PWN指的是通过通过程序本身的漏洞,编写利用脚本破解程序拿到主机的权限的一类赛题。这就需要对程序进行分析,了解操作系统的特性和相关漏洞。

程序本身是有自己的执行流程A通过程序漏洞执行到我们感兴趣的代码/函数

带你推开PWN世界的大门

解题流程

◆一个ip地址和端口号

Example:

nc 106.75.2.53 60044

1.nc==>即netcat,一个小巧的网络工具(Linux中自带),用来建立TCP连接;

2.连接成功后,目标主机会运行题目文件,通过TCP连接进行交互;

带你推开PWN世界的大门

◆一个二进制文件

即目标主机会运行的题目文件。

通常情况下,比赛时可以在二进制层面知道目标主机将会运行什么代码(通常没有源代码)

带你推开PWN世界的大门

◆分析二进制文件,找到其中的漏洞

IDA Pro:目前工业界最先进的反汇编和反编译器(基本上也是唯一好用的反编译器)。

◆通过异常的输入,利用漏洞,执行目标代码

常见的套路是执行system(“/bin/sh”),获得交互shell,然后读取flag文件。

◆获取flag

flag一般在当前文件夹下

“cat flag”,打开flag文件(一般txt格式),获得flag(一串字符)后提交。

基础知识

C语言基础、汇编语言基础、函数调用时的栈帧变换

◆简单的逆向(reverse engineering)基础,通过二进制代码了解程序的功能

操作系统内核相关特性

◆了解简单的软件防护技术:

栈保护:Canary,堆栈不可执行:NX(No-eXecute)

地址随机化:PIE(position-independent executable或者叫ALSR(address space layout randomization)

◆常用的漏洞利用手法:

ROP(Return-Oriented Programming)技巧(还有JOP, ret2libc, GOT,Hook ……目标劫持控制流)

◆常见的漏洞类型:

的漏洞(overflow)、 的漏洞(UAF,double free)、格式化字符串漏洞、逻辑漏洞、整数溢出条件竞争侧信道....

必备工具

◇IDA Pro :反汇编及反编译,同时也是强大的调试器(不过Linux环境下调试文件略麻烦)

◇pwntools : 一个用来解题的Python库,处理payload方便

◇GDB:Linux下命令行界面的调试器,有一些好用的插件,比如peda、pwndbg、gef插件可以在GitHub上找到,开源,易安装

◇ROPgadget:用于查找gadget和生成ROP链

◇Vmware & Linux虚拟机:当前大部分赛题都是Linux下

学习路线

基础:

◇简单的栈溢出、格式化字符串入手

堆漏洞基本利用手法(glibc基本的内存管理方式)

堆漏洞高级利用手法(IO_file相关的house of系列等)

进阶:

Linux 内核

docker逃逸

Qemu/Vmware虚拟机逃逸

代码解释器

Windows可执行程序

网络协议服务程序如httpd

Windows内核

异架构Arm、MIPS、RISC-V...

Rust、go、C++ 等编译的程序uclibc / musl-libc库

Chrome v8 浏览器内核......

如何学习

◇强大的内驱力,兴趣牵引

◇身边的同学一起学习

◇学会用搜索引擎,自主解决问题

◇以赛促训,定期复现总结

写技术博客,总结相关技术

◇加入联合战队,共同进步

干货分享

◇CTF入门百科ctf-wiki:https://ctf-wiki.org

亚利桑那州立大学课程pwncollege:www.pwn.college/

◇刷题网站buuctf:https://buuoj.cn/

各大师傅的博客

·END·

原文始发于微信公众号(ipasslab):带你推开PWN世界的大门

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月17日01:26:30
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   带你推开PWN世界的大门https://cn-sec.com/archives/2294625.html

发表评论

匿名网友 填写信息