【原创】python-shellcode常用库(pwntools、socket、os、nc)

admin 2022年12月3日16:29:32安全博客 CTF专场评论44 views1462字阅读4分52秒阅读模式

[huayang]

pwntools

连接本地(process)

p = process('./stack')

连接远程(remote)

p = remote("111.231.70.44",28010)

打包(p32/p64)

payload = 'b' * 13 + p32(0x804850f)

payload = 'b' * 13 + p64(0x804850f)

解包(u32/u64)

puts_addr = u32(io.recv(4))

puts_addr = u64(io.recv(4))

发送数据(sendline)

p.sendline(payload)

与shell交互(interactive)

p.interactive()

获取ELF(二进制文件、可执行文件)文件的信息(elf)

对elf文件进行操作,可以获取elf文件中的PLT条目和GOT条目信息

ELF必须大写

elf = ELF('./pwn')

文件装载的基地址(address)

hex(elf.address)

获取函数PLT地址(plt)

这里为获取文件里函数puts由plt表指向got表的地址

意思就是这个函数要看这个地址才能在got表中找到

puts_plt = elf.plt['puts']

获取函数got表地址(got)

puts_got = elf.got['puts']

获取函数地址(symbols)

main_addr = elf.symbols['main']

设置环境的功能(context)

context.log_level = 'debug'

一般来说我们设置context只需要简单的一句话:

context(os='linux', arch='amd64', log_level='debug')

或者 context(os='linux', arch='amd64')
意思是:

1. os设置系统为linux系统,在完成ctf题目的时候,大多数pwn题目的系统都是linux
2. arch设置架构为amd64,可以简单的认为设置为64位的模式,对应的32位模式是’i386’
3. log_level设置日志输出的等级为debug,这句话在调试的时候一般会设置,这样pwntools会将完整的io过程都打印下来,使得调试更加方便,可以避免在完成CTF题目时出现一些和IO相关的错误。

运行到字符串位置停下(recvuntil)

p.recvuntil(“字符串”)

停下后就可用于输入了

一般可以直接省略字符串,有几行就几个换行

比如:

【原创】python-shellcode常用库(pwntools、socket、os、nc)

有一行

我们可以写为

io.recvuntil("Doing Stuffz...")
或
io.recvuntil("\n")
【原创】python-shellcode常用库(pwntools、socket、os、nc)

这里有两行我们就可简写为

io.recvuntil("\n\n")

用recv函数接收输出的put地址(recv)

p.recv(4)

十六进制输出(hex)

一般所有输出都要转换为16进制

print hex(puts_addr)

socket

创建socker实例(socket)

socket.socket()  

连接服务器端(connect)

s.connect(('127,0.0.1',8009))

接收TCP数据,1024为一次数据接收的大小(recv)

s.recv(1024)

发送TCP数据(send)

s.send(('TRUN .' + 'A'*50 + '\r\n'))

用传输完毕后(close)

s.close()

OS

system函数可以将字符串转化成命令在服务器上运行(简单来说就是调用命令行)

os.system('./elf')

NC

nc -lp 2333

[/huayang]

FROM:浅浅淡淡[hellohy]

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年12月3日16:29:32
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  【原创】python-shellcode常用库(pwntools、socket、os、nc) http://cn-sec.com/archives/1442857.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: