S3c_r3v3rs3r

pwntools使用入门教程

pwntools常用模块和函数

前言 PWN tools是 python2 平台上十分好用的二进制分析解决CTFpwn问题的工具。 package中集成的功能十分强大,包含程序交互,socket交互,进程调试,和ELF二进制文件分析等内容。 正文 安装pwntools $ apt-get update $ apt-get install python2.7 python-pip python-dev git libss...

ROP漏洞利用CTF实例

Return-Oriented Programming 漏洞CTF利用实例

前言 题目来自于pwnable.kr平台的horcruxes题目。 ROP全程是Return-oriented Programming,该漏洞是利用buffer overflow实现的攻击。 但是于传统的buffer overflow不同之处在于ROP攻击可以绕过NX保护机制。NX保护机制是 通过设置栈所处的内存为不可执行区域从而实现的shellcode不可在栈中被执行。 然而ROP是通...

GDB常用指令

Linux平台gdb调试程序常用指令

前言 gdb是linux平台必用的调试CLI软件,它不但支持程序员对可读源代码的 调试,同样也支持对程序的逆向汇编和动态调试。 gdb所支持的调试功能十分强大,通过help查看可支持的指令很多。 本片文章总结一些在逆向时常用的一些指令。 正文 1. 运行gdb加载程序 gdb [elf_filename] 2. 运行程序: run(r) [args] 注: [args]可接收多个参...

uaf漏洞原理浅析

Use after free漏洞原理浅析实例

前言 uaf 漏洞全称是use after free,free是指函数是在堆上动态分配空间后不再使用该改数据从而被回收。但是由于程序员的一些不适当的操作,会导致攻击者能够操控已经被释放的区域,从而执行一些byte codes。本文简述了uaf的基本原理,并使用一个简单的例子进行讲解。 正文 首先让我们看一下存在漏洞程序的源码: #include <err.h> #includ...

buffer overflow执行shellcode基本原理

Linux平台下经典buffer overflow原理介绍

前言 虽说针对buffer overflow的防御机制已经很多了,为了防止指针地址被控制, 操作系统强制开启了了ASLR,随机分布地址,使得攻击者难以控制返回地址。 与之类似的防止栈溢出的方法还有NX不可执行栈, 和Canary即在return address前放置一个随机的值,在callee返回之前caller之前先要检测该值是否 被修改。接下来就简单讲一讲最基本的栈溢出是怎么实现发生的...

使用Windbg&OllyDbg从头调试windows服务

Windows平台使用Windbg&OllyDbg从头调试服务

前言 在分析恶意软件时,恶意软件通常会创建服务,然后拉起服务删除自身文件,结束进程。很多关键的操作都在恶意软件新创建的服务之中,当然可以使用IDA进行静态的调试,但同时需要OD对服务进行动态的调试。 正文 对于绝大多数的服务可以直接attach到OD或者windbg上进行调试,但是如果想从启动就开始就调试该服务,这种attach的方法就不是很适用。网上有一些多年前的文档教程,但是在亲身尝试...

使用fuzzer实现anti-debugging的趣味实验 XD

Linux平台下使用fuzzer实现anti-debugging的实验

前言 在youtube和国外论坛上看到了一种比较有趣的使用fuzzing实现反调试的思路. 方法的原理很简单,通过循环修改源文件的一个byte使得该文件正常共能能够实现,但是能够对gdb和radare2这累调试软件进行一定程度上的干扰。通过实验之后发现,该方法不一定适合实战,但是可能会在对于反调试这一部分开拓新思路上面会有所帮助。 正文 首先使用C语言写一个类似于Crackme的简单...