pwntools

6 篇文章 0 订阅

pwntools学习笔记

from pwn import *

常用模块

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等

接受远端回传的数据

interactive() : 在取得shell之后使用,直接进行交互,相当于回到shell的模式.

recv(numb=字节大小, timeout=default) : 接收指定字节数.

recvall(): 一直接收直到达到文件EOF.

recvline(keepends=True) : 接收一行,keepends为是否保留行尾的\n.

recvuntil(delims, drop=False) : 一直读到delims的pattern出现为止.

recvrepeat(timeout=default) : 持续接受直到EOF或timeout.

向远端发送数据

send(data):发送数据;
sendline(data):send+\n .

判断回传的数据

stratwith判断以何值开头.

示例

先转到python环境下,然后导入模块from pwn import*
本地连接process(’./pwnpwn’)
recvline()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CdxDW8B3-1628493907032)(_v_images/20201017150045548_18253.png)]

from pwn import *
用来导入pwntools模块

context(arch = 'i386', os = 'linux')
设置目标机的信息

r = remote('exploitme.example.com', 31337)
用来建立一个远程连接,url或者ip作为地址,然后指明端口

这里也可以仅仅使用本地文件,调试时方便:
r = process("./test")
test即为文件名,这使得改变远程和本地十分方便.

asm(shellcraft.sh())
asm()函数接收一个字符串作为参数,得到汇编码的机器代码。
比如

 >>> asm(‘mov eax, 0’)
 >’\xb8\x00\x00\x00\x00’

shellcraft模块是shellcode的模块,包含一些生成shellcode的函数。

其中的子模块声明架构,比如shellcraft.arm 是ARM架构的,shellcraft.amd64是AMD64架构,shellcraft.i386是Intel 80386架构的,以及有一个shellcraft.common是所有架构通用的。

而这里的shellcraft.sh()则是执行/bin/sh的shellcode了

r.send()将shellcode发送到远程连接

最后,
r.interactive()

将控制权交给用户,这样就可以使用打开的shell了

ROPgadget

找binsh字符串的地址:ROPgadget --binary ./ret2libc1 --string "/bin/sh"
寻找pop的汇编片段:ROPgadget --binary ./ret2libc2 --only "pop|ret"

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ca1m4n

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值