Common Exploiting Problems
Last updated
Last updated
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
当向远程服务器发送一个利用代码,例如调用 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(攻击者的连接),这样在执行 shell 后就可以与之联系。
注意,socat 已经将 stdin
和 stdout
转移到套接字。然而,pty
模式 包含 DELETE 字符。因此,如果你发送 \x7f
( DELETE
-),它将 删除你利用中的前一个字符。
为了绕过这一点,必须在发送的任何 \x7f
前加上转义字符 \x16
。
在这里你可以 找到这个行为的示例。
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)