9 KiB
27017,27018 - MongoDB Pentesting
AWS hacklemeyi sıfırdan kahramanla öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek için ABONELİK PLANLARI'na göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- The PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonumuz
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter 🐦 @carlospolopm'u takip edin.
- Hacking hilelerinizi HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.
Deneyimli hackerlar ve ödül avcıları ile iletişim kurmak için HackenProof Discord sunucusuna katılın!
Hacking İçgörüleri
Hacking'in heyecanını ve zorluklarını inceleyen içeriklerle etkileşime geçin
Gerçek Zamanlı Hack Haberleri
Hızlı tempolu hacking dünyasını gerçek zamanlı haberler ve içgörülerle takip edin
En Son Duyurular
Yeni ödül avı başlatmaları ve önemli platform güncellemeleri hakkında bilgi sahibi olun
Bize katılın Discord ve bugün en iyi hackerlarla işbirliği yapmaya başlayın!
Temel Bilgiler
MongoDB, çeşitli veri biçimlerini işlemek için bir belge odaklı veritabanı modeli kullanan bir açık kaynaklı veritabanı yönetim sistemidir. Büyük veri analitiği ve içerik yönetimi gibi uygulamalarda yapısal olmayan veya yarı yapılandırılmış verileri yönetmek için esneklik ve ölçeklenebilirlik sunar. Varsayılan port: 27017, 27018
PORT STATE SERVICE VERSION
27017/tcp open mongodb MongoDB 2.6.9 2.6.9
Saptama
El ile
from pymongo import MongoClient
client = MongoClient(host, port, username=username, password=password)
client.server_info() #Basic info
#If you have admin access you can obtain more info
admin = client.admin
admin_info = admin.command("serverStatus")
cursor = client.list_databases()
for db in cursor:
print(db)
print(client[db["name"]].list_collection_names())
#If admin access, you could dump the database also
Bazı MongoDB komutları:
show dbs
use <db>
show collections
db.<collection>.find() #Dump the collection
db.<collection>.count() #Number of records of the collection
db.current.find({"username":"admin"}) #Find in current db the username admin
Otomatik
MongoDB, bir NoSQL veritabanıdır ve genellikle web uygulamalarında kullanılır. MongoDB, varsayılan olarak 27017 ve 27018 portlarını kullanır. Bu portlar, MongoDB sunucusuna erişim sağlamak için kullanılır.
MongoDB sunucusuna otomatik olarak saldırmak için bazı araçlar ve teknikler vardır. Bu araçlar, MongoDB sunucusuna erişim sağlamak için standart saldırı vektörlerini kullanır. Bu saldırı vektörleri arasında brute force saldırıları, zayıf şifrelerin tespiti ve MongoDB sunucusunun açıkta bırakılan verilerini keşfetmek için yapılan sorgular yer alır.
Bir MongoDB sunucusuna otomatik olarak saldırmak için kullanılan bazı popüler araçlar şunlardır:
-
MongoDB Exploit Framework (MongoBuster): Bu araç, MongoDB sunucusuna brute force saldırıları gerçekleştirmek için kullanılır. Kullanıcı adı ve şifre kombinasyonlarını deneyerek MongoDB sunucusuna erişim sağlamaya çalışır.
-
MongoSniff: Bu araç, MongoDB sunucusuna yapılan sorguları dinlemek ve analiz etmek için kullanılır. Bu sayede, MongoDB sunucusunun açıkta bırakılan verilerini keşfetmek mümkün olabilir.
-
Mongoaudit: Bu araç, MongoDB sunucusunun güvenlik açıklarını tespit etmek için kullanılır. Zayıf şifreler, güvenlik duvarı ayarları ve diğer güvenlik önlemleri gibi konuları kontrol eder.
Bu araçlar, MongoDB sunucusuna otomatik olarak saldırmak için kullanılan bazı popüler tekniklerdir. Ancak, bu tekniklerin yasal ve etik sınırlar içinde kullanılması önemlidir.
nmap -sV --script "mongo* and default" -p 27017 <IP> #By default all the nmap mongo enumerate scripts are used
Shodan
- Tüm mongodb'leri ara:
"mongodb sunucu bilgileri"
- Tamamen açık mongodb sunucularını ara:
"mongodb sunucu bilgileri" -"kısmen etkin"
- Sadece kısmen yetkilendirme etkinleştirilmiş olanları ara:
"mongodb sunucu bilgileri" "kısmen etkin"
Giriş
Varsayılan olarak mongo şifre gerektirmez.
Admin, yaygın bir mongo veritabanıdır.
mongo <HOST>
mongo <HOST>:<PORT>
mongo <HOST>:<PORT>/<DB>
mongo <database> -u <username> -p '<password>'
Nmap betiği: mongodb-brute, kimlik bilgilerinin gerekip gerekmediğini kontrol edecektir.
nmap -n -sV --script mongodb-brute -p 27017 <ip>
Brute force
Kimlik bilgilerinin gerekip gerekmediğini öğrenmek için /opt/bitnami/mongodb/mongodb.conf dosyasına bakın:
grep "noauth.*true" /opt/bitnami/mongodb/mongodb.conf | grep -v "^#" #Not needed
grep "auth.*true" /opt/bitnami/mongodb/mongodb.conf | grep -v "^#\|noauth" #Not needed
Mongo Objectid Tahmini
Örnek buradan alınmıştır.
Mongo Object ID'leri 12 baytlık onaltılık dizelerdir:
Örneğin, bir uygulama tarafından döndürülen gerçek bir Object ID'yi nasıl analiz edebileceğimizi görelim: 5f2459ac9fa6dc2500314019
- 5f2459ac: 1596217772 ondalık olarak = Cuma, 31 Temmuz 2020 17:49:32
- 9fa6dc: Makine Tanımlayıcısı
- 2500: İşlem Kimliği
- 314019: Artan bir sayaç
Yukarıdaki unsurlardan, makine tanımlayıcısı, veritabanı aynı fiziksel/virtual makine üzerinde çalıştığı sürece aynı kalır. İşlem Kimliği, MongoDB işlemi yeniden başlatıldığında yalnızca değişir. Zaman damgası her saniye güncellenir. Sadece sayaç ve zaman damgası değerlerini artırarak Object ID'leri tahmin etme konusundaki tek zorluk, Mongo DB'nin Object ID'leri oluşturması ve Object ID'leri sistem düzeyinde atamasıdır.
https://github.com/andresriancho/mongo-objectid-predict aracı, başlangıç Object ID'si verildiğinde (bir hesap oluşturabilir ve başlangıç ID'si alabilirsiniz), bir sonraki nesnelere atanan olası 1000 Object ID'sini geri gönderir, bu yüzden sadece onları bruteforce yapmanız gerekir.
Gönderi
Eğer root iseniz, mongodb.conf dosyasını değiştirerek kimlik bilgisi gerektirilmez (noauth = true) ve kimlik bilgisi olmadan giriş yapabilirsiniz.
Deneyimli hackerlar ve hata ödül avcıları ile iletişim kurmak için HackenProof Discord sunucusuna katılın!
Hacking Insights
Hacking'in heyecanına ve zorluklarına dalmış içeriklerle etkileşim kurun
Gerçek Zamanlı Hack Haberleri
Hızlı tempolu hacking dünyasını gerçek zamanlı haberler ve içgörülerle takip edin
En Son Duyurular
Yeni hata ödülleri başlatma ve önemli platform güncellemeleri hakkında bilgi edinin
Bize katılın Discord ve bugün en iyi hackerlarla işbirliği yapmaya başlayın!
htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!
HackTricks'i desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklam vermek veya HackTricks'i PDF olarak indirmek için ABONELİK PLANLARINI kontrol edin!
- Resmi PEASS & HackTricks ürünlerini edinin
- Özel NFT'lerden oluşan koleksiyonumuz The PEASS Family'yi keşfedin
- 💬 Discord grubuna veya telegram grubuna katılın veya bizi Twitter'da 🐦 @carlospolopm** takip edin.**
- Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek hacking hilelerinizi paylaşın.