hacktricks/network-services-pentesting/27017-27018-mongodb.md

163 lines
9 KiB
Markdown
Raw Normal View History

2024-02-10 18:14:16 +00:00
# 27017,27018 - MongoDB Pentesting
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>AWS hacklemeyi sıfırdan kahramanla öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'ı desteklemenin diğer yolları:
2024-01-03 10:42:55 +00:00
2024-02-10 18:14:16 +00:00
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
2022-04-28 16:01:33 +00:00
</details>
2023-12-04 15:45:05 +00:00
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
2023-02-27 09:28:45 +00:00
2024-02-10 18:14:16 +00:00
Deneyimli hackerlar ve ödül avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
2023-02-27 09:28:45 +00:00
2024-02-10 18:14:16 +00:00
**Hacking İçgörüleri**\
Hacking'in heyecanını ve zorluklarını inceleyen içeriklerle etkileşime geçin
2023-07-14 15:03:41 +00:00
2024-02-10 18:14:16 +00:00
**Gerçek Zamanlı Hack Haberleri**\
Hızlı tempolu hacking dünyasını gerçek zamanlı haberler ve içgörülerle takip edin
2023-07-14 15:03:41 +00:00
2024-02-10 18:14:16 +00:00
**En Son Duyurular**\
Yeni ödül avı başlatmaları ve önemli platform güncellemeleri hakkında bilgi sahibi olun
2022-11-05 09:07:43 +00:00
2024-02-10 18:14:16 +00:00
**Bize katılın** [**Discord**](https://discord.com/invite/N3FrSbmwdy) ve bugün en iyi hackerlarla işbirliği yapmaya başlayın!
2024-02-10 18:14:16 +00:00
## Temel Bilgiler
2024-02-10 18:14:16 +00:00
**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
```
2024-02-10 18:14:16 +00:00
## Saptama
2024-02-10 18:14:16 +00:00
### El ile
```python
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:
2024-02-10 18:14:16 +00:00
print(db)
print(client[db["name"]].list_collection_names())
#If admin access, you could dump the database also
```
2024-02-10 18:14:16 +00:00
**Bazı MongoDB komutları:**
```bash
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
```
2024-02-10 18:14:16 +00:00
### 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:
2024-02-10 18:14:16 +00:00
- **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.
2024-02-10 18:14:16 +00:00
- **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.
```bash
nmap -sV --script "mongo* and default" -p 27017 <IP> #By default all the nmap mongo enumerate scripts are used
```
2022-05-01 13:25:53 +00:00
### Shodan
2024-02-10 18:14:16 +00:00
* 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"`
2024-02-10 18:14:16 +00:00
## Giriş
2024-02-10 18:14:16 +00:00
Varsayılan olarak mongo şifre gerektirmez.\
**Admin**, yaygın bir mongo veritabanıdır.
```bash
mongo <HOST>
mongo <HOST>:<PORT>
mongo <HOST>:<PORT>/<DB>
mongo <database> -u <username> -p '<password>'
```
2024-02-10 18:14:16 +00:00
Nmap betiği: _**mongodb-brute**_, kimlik bilgilerinin gerekip gerekmediğini kontrol edecektir.
```bash
nmap -n -sV --script mongodb-brute -p 27017 <ip>
```
2022-05-01 13:25:53 +00:00
### [**Brute force**](../generic-methodologies-and-resources/brute-force.md#mongo)
2024-02-10 18:14:16 +00:00
Kimlik bilgilerinin gerekip gerekmediğini öğrenmek için _/opt/bitnami/mongodb/mongodb.conf_ dosyasına bakın:
```bash
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
```
2024-02-10 18:14:16 +00:00
## Mongo Objectid Tahmini
2024-02-10 18:14:16 +00:00
Örnek [buradan](https://techkranti.com/idor-through-mongodb-object-ids-prediction/) alınmıştır.
2024-02-08 21:36:15 +00:00
2024-02-10 18:14:16 +00:00
Mongo Object ID'leri **12 baytlık onaltılık** dizelerdir:
2024-02-08 21:36:15 +00:00
![http://techidiocy.com/_id-objectid-in-mongodb/](../.gitbook/assets/id-and-objectids-in-mongodb.png)
2024-02-10 18:14:16 +00:00
Örneğin, bir uygulama tarafından döndürülen gerçek bir Object ID'yi nasıl analiz edebileceğimizi görelim: 5f2459ac9fa6dc2500314019
2024-02-10 18:14:16 +00:00
1. 5f2459ac: 1596217772 ondalık olarak = Cuma, 31 Temmuz 2020 17:49:32
2. 9fa6dc: Makine Tanımlayıcısı
3. 2500: İşlem Kimliği
4. 314019: Artan bir sayaç
2024-02-10 18:14:16 +00:00
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.
2024-02-10 18:14:16 +00:00
[https://github.com/andresriancho/mongo-objectid-predict](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.
2024-02-10 18:14:16 +00:00
## Gönderi
2024-02-10 18:14:16 +00:00
Eğer root iseniz, **mongodb.conf** dosyasını değiştirerek kimlik bilgisi gerektirilmez (_noauth = true_) ve **kimlik bilgisi olmadan** giriş yapabilirsiniz.
2022-04-28 16:01:33 +00:00
2024-02-08 21:36:15 +00:00
***
2023-12-04 15:45:05 +00:00
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
2023-07-14 15:03:41 +00:00
2024-02-10 18:14:16 +00:00
Deneyimli hackerlar ve hata ödül avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
2023-03-05 19:54:13 +00:00
2023-12-04 15:45:05 +00:00
**Hacking Insights**\
2024-02-10 18:14:16 +00:00
Hacking'in heyecanına ve zorluklarına dalmış içeriklerle etkileşim kurun
2023-02-27 09:28:45 +00:00
2024-02-10 18:14:16 +00:00
**Gerçek Zamanlı Hack Haberleri**\
Hızlı tempolu hacking dünyasını gerçek zamanlı haberler ve içgörülerle takip edin
2023-02-27 09:28:45 +00:00
2024-02-10 18:14:16 +00:00
**En Son Duyurular**\
Yeni hata ödülleri başlatma ve önemli platform güncellemeleri hakkında bilgi edinin
2023-02-27 09:28:45 +00:00
2024-02-10 18:14:16 +00:00
**Bize katılın** [**Discord**](https://discord.com/invite/N3FrSbmwdy) ve bugün en iyi hackerlarla işbirliği yapmaya başlayın!
2022-11-05 09:07:43 +00:00
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin!</summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'i desteklemenin diğer yolları:
2024-01-03 10:42:55 +00:00
2024-02-10 18:14:16 +00:00
* Şirketinizi HackTricks'te **reklam vermek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek **hacking hilelerinizi paylaşın**.
2022-04-28 16:01:33 +00:00
</details>