预备知识
pwn
“Pwn”是一个黑客语法的俚语词,是指攻破设备或者系统。发音类似“砰”,对黑客而言,这就是成功实施黑客攻击的声音——砰的一声,被“黑”的电脑或手机就被你操纵。以上是从百度百科上面抄的简介,而我个人理解的话,应该就是向目标发送特定的数据,使得其执行本来不会执行的代码,前段时间爆发的永恒之蓝等病毒其实也算得上是pwn的一种。
pwntools
pwntools是一个CTF框架和漏洞利用开发库,用Python开发,由rapid设计,旨在让使用者简单快速的编写exploit。
实验目的
通过该实验了解pwntools常见用法,能够在实际比赛中应用pwntools快速有效的解题。
实验环境
服务器:kali1,kali2,win 7,IP地址:随机分配
辅助工具:win7装有IDA
welpwn文件与python源码请在实验机内下载使用:http://tools.hetianlab.com/tools/T057.zip
实验步骤一
1.Pwntools安装及模块(已装)
1)安装:
安装命令:pip install --upgrade pwntools。
安装完毕后在python环境下只需使用from pwn import *即可导入。
这会将大量的功能导入到全局命名空间,然后我们就可以直接使用单一的函数进行汇编、反汇编、pack,unpack等操作。
2)常用模块如下:
asm:汇编与反汇编,支持x86/x64/arm/mips/powerpc等基本上所有的主流平台。
dynelf:用于远程符号泄漏,需要提供leak方法。
elf:对elf文件进行操作。
gdb:配合gdb进行调试。
memleak:用于内存泄漏。
shellcraft:shellcode的生成器。
tubes:包括tubes.sock,tubes.process,tubes.ssh,tubes.serialtube,分别适用于不同场景的PIPE。
utils:一些实用的小功能,例如CRC计算,cyclic pattern等。
2.常用模块详细介绍
1)Tubes读写接口:
这是exploit最为基础的部分,对于一次攻击而言前提就是与目标服务器或者程序进行交互,这里就可以使用remote(address, port)产生一个远程的socket然后就可以读写了。
先来看看pwntools建立连接的功能。
先在kali1上开启ftp服务:
service vsftpd start