Common Exploiting Problems
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
예를 들어 **system('/bin/sh')
**를 호출하는 익스플로잇을 원격 서버에 전송할 때, 이는 서버 프로세스에서 실행되며, /bin/sh
는 stdin(FD: 0
)에서 입력을 기대하고 stdout과 stderr(FDs 1
및 2
)에 출력을 인쇄합니다. 따라서 공격자는 셸과 상호작용할 수 없습니다.
이를 해결하는 방법은 서버가 시작될 때 FD 번호 3
(리스닝용)을 생성하고, 그 다음에 당신의 연결이 **FD 번호 4
**에 있을 것이라고 가정하는 것입니다. 따라서 시스템 호출 **dup2
**를 사용하여 stdin(FD 0)과 stdout(FD 1)을 FD 4(공격자의 연결)로 복제할 수 있으므로, 셸이 실행되면 연락할 수 있게 됩니다.
socat은 이미 **stdin
**과 **stdout
**을 소켓으로 전송합니다. 그러나 pty
모드는 DELETE 문자를 포함합니다. 따라서 \x7f
( DELETE
-)를 보내면 당신의 익스플로잇의 이전 문자를 삭제합니다.
이를 우회하기 위해서는 전송되는 모든 \x7f
앞에 이스케이프 문자 \x16
을 추가해야 합니다.
여기에서 이 동작의 예제를 찾을 수 있습니다.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)