mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-29 08:01:00 +00:00
149 lines
7.5 KiB
Markdown
149 lines
7.5 KiB
Markdown
# 27017,27018 - Pentesting MongoDB
|
||
|
||
{% hint style="success" %}
|
||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>Support HackTricks</summary>
|
||
|
||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||
|
||
</details>
|
||
{% endhint %}
|
||
|
||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
||
|
||
**Hacking Insights**\
|
||
Engage with content that delves into the thrill and challenges of hacking
|
||
|
||
**Real-Time Hack News**\
|
||
Keep up-to-date with fast-paced hacking world through real-time news and insights
|
||
|
||
**Latest Announcements**\
|
||
Stay informed with the newest bug bounties launching and crucial platform updates
|
||
|
||
**Join us on** [**Discord**](https://discord.com/invite/N3FrSbmwdy) and start collaborating with top hackers today!
|
||
|
||
## Temel Bilgiler
|
||
|
||
**MongoDB**, çeşitli veri biçimlerini işlemek için **belge odaklı veritabanı modeli** kullanan **açık kaynak** bir veritabanı yönetim sistemidir. Yapısal olmayan veya yarı yapısal verileri büyük veri analitiği ve içerik yönetimi gibi uygulamalarda 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
|
||
```
|
||
## Enumeration
|
||
|
||
### Manual
|
||
```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:
|
||
print(db)
|
||
print(client[db["name"]].list_collection_names())
|
||
#If admin access, you could dump the database also
|
||
```
|
||
**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
|
||
```
|
||
### Otomatik
|
||
```bash
|
||
nmap -sV --script "mongo* and default" -p 27017 <IP> #By default all the nmap mongo enumerate scripts are used
|
||
```
|
||
### Shodan
|
||
|
||
* Tüm mongodb: `"mongodb server information"`
|
||
* Tamamen açık mongodb sunucularını arayın: `"mongodb server information" -"partially enabled"`
|
||
* Sadece kısmen kimlik doğrulama etkin: `"mongodb server information" "partially enabled"`
|
||
|
||
## Giriş
|
||
|
||
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>'
|
||
```
|
||
nmap betiği: _**mongodb-brute**_ kimlik bilgilerine ihtiyaç olup olmadığını kontrol edecektir.
|
||
```bash
|
||
nmap -n -sV --script mongodb-brute -p 27017 <ip>
|
||
```
|
||
### [**Brute force**](../generic-methodologies-and-resources/brute-force.md#mongo)
|
||
|
||
Kimlik bilgilerine ihtiyaç olup olmadığını öğ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
|
||
```
|
||
## Mongo Objectid Tahmini
|
||
|
||
Örnek [buradan](https://techkranti.com/idor-through-mongodb-object-ids-prediction/) alınmıştır.
|
||
|
||
Mongo Object ID'leri **12 baytlık onaltılık** dizelerdir:
|
||
|
||
![http://techidiocy.com/\_id-objectid-in-mongodb/](../.gitbook/assets/id-and-ObjectIds-in-MongoDB.png)
|
||
|
||
Örneğin, bir uygulama tarafından döndürülen gerçek bir Object ID'yi nasıl parçalayabileceğimize bakalım: 5f2459ac9fa6dc2500314019
|
||
|
||
1. 5f2459ac: 1596217772 ondalık = Cuma, 31 Temmuz 2020 17:49:32
|
||
2. 9fa6dc: Makine Tanımlayıcı
|
||
3. 2500: Süreç ID'si
|
||
4. 314019: Artan sayaç
|
||
|
||
Yukarıdaki öğelerden, makine tanımlayıcısı, veritabanı aynı fiziksel/sanal makinede çalıştığı sürece aynı kalacaktır. Süreç ID'si yalnızca MongoDB süreci yeniden başlatıldığında değişecektir. Zaman damgası her saniye güncellenecektir. Object ID'leri tahmin etmenin tek zorluğu, sayaç ve zaman damgası değerlerini basitçe artırmak, Mongo DB'nin Object ID'leri oluşturması ve sistem düzeyinde atamasıdır.
|
||
|
||
Araç [https://github.com/andresriancho/mongo-objectid-predict](https://github.com/andresriancho/mongo-objectid-predict), başlangıç Object ID'si verildiğinde (bir hesap oluşturabilir ve bir başlangıç ID'si alabilirsiniz), muhtemel olarak bir sonraki nesnelere atanmış olabilecek yaklaşık 1000 olası Object ID'si geri gönderir, böylece bunları brute force ile denemeniz yeterlidir.
|
||
|
||
## Post
|
||
|
||
Eğer root iseniz, **mongodb.conf** dosyasını **değiştirebilirsiniz** böylece kimlik bilgilerine ihtiyaç duyulmaz (_noauth = true_) ve **kimlik bilgileri olmadan giriş yapabilirsiniz**.
|
||
|
||
***
|
||
|
||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||
|
||
**Hacking İçgörüleri**\
|
||
Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun
|
||
|
||
**Gerçek Zamanlı Hack Haberleri**\
|
||
Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında güncel kalın
|
||
|
||
**Son Duyurular**\
|
||
Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi sahibi olun
|
||
|
||
**Bugün en iyi hackerlarla işbirliği yapmak için** [**Discord**](https://discord.com/invite/N3FrSbmwdy) sunucumuza katılın!
|
||
|
||
{% hint style="success" %}
|
||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>HackTricks'i Destekleyin</summary>
|
||
|
||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||
|
||
</details>
|
||
{% endhint %}
|