7.5 KiB
27017,27018 - Pentesting MongoDB
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite svoju kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu proverite PLANOVE ZA PRIJATELJSTVO!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte Porodicu PEASS, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitteru 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Pridružite se HackenProof Discord serveru kako biste komunicirali sa iskusnim hakerima i lovcima na bagove!
Hakerski Uvidi
Uključite se u sadržaj koji istražuje uzbuđenje i izazove hakovanja
Vesti o Hakovanju u Realnom Vremenu
Budite u toku sa brzim svetom hakovanja kroz vesti i uvide u realnom vremenu
Poslednje Najave
Budite informisani o najnovijim nagradama za pronalaženje bagova i važnim ažuriranjima platformi
Pridružite nam se na Discord-u i počnite da sarađujete sa vrhunskim hakerima danas!
Osnovne Informacije
MongoDB je open source sistem za upravljanje bazama podataka koji koristi model baze podataka orijentisan na dokumente za obradu različitih oblika podataka. Nudi fleksibilnost i skalabilnost za upravljanje nestrukturiranim ili polu-strukturiranim podacima u aplikacijama poput analitike velikih podataka i upravljanja sadržajem. Podrazumevani port: 27017, 27018
PORT STATE SERVICE VERSION
27017/tcp open mongodb MongoDB 2.6.9 2.6.9
Enumeracija
Ručno
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
Neke MongoDB komande:
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
Automatsko
nmap -sV --script "mongo* and default" -p 27017 <IP> #By default all the nmap mongo enumerate scripts are used
Shodan
- Svi mongodb:
"informacije o mongodb serveru"
- Pretražite potpuno otvorene mongodb servere:
"informacije o mongodb serveru" -"delimično omogućeno"
- Samo delimično omogućena autentifikacija:
"informacije o mongodb serveru" "delimično omogućeno"
Prijava
Podrazumevano, mongo ne zahteva lozinku.
Admin je česta mongo baza podataka.
mongo <HOST>
mongo <HOST>:<PORT>
mongo <HOST>:<PORT>/<DB>
mongo <database> -u <username> -p '<password>'
Nmap skripta: mongodb-brute će proveriti da li su potrebni pristupni podaci.
nmap -n -sV --script mongodb-brute -p 27017 <ip>
Brute force
Pogledajte unutar /opt/bitnami/mongodb/mongodb.conf da biste saznali da li su potrebni pristupni podaci:
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
Predviđanje Mongo Objectid-a
Primer ovde.
Mongo Object ID-ovi su 12-bajtni heksadecimalni stringovi:
Na primer, evo kako možemo razložiti stvarni Object ID koji je vraćen od strane aplikacije: 5f2459ac9fa6dc2500314019
- 5f2459ac: 1596217772 u decimalnom sistemu = Petak, 31. jul 2020. 17:49:32
- 9fa6dc: Identifikator mašine
- 2500: ID procesa
- 314019: Inkrementalni brojač
Od navedenih elemenata, identifikator mašine će ostati isti dok god baza podataka radi na istoj fizičkoj/virtualnoj mašini. ID procesa će se promeniti samo ako se proces MongoDB ponovo pokrene. Vremenska oznaka će se ažurirati svake sekunde. Jedini izazov u pogađanju Object ID-ova jednostavnim inkrementiranjem vrednosti brojača i vremenske oznake je činjenica da Mongo DB generiše Object ID-ove i dodeljuje ih na nivou sistema.
Alat https://github.com/andresriancho/mongo-objectid-predict, uzimajući početni Object ID (možete kreirati nalog i dobiti početni ID), vraća oko 1000 verovatnih Object ID-ova koji bi mogli biti dodeljeni sledećim objektima, tako da ih samo trebate probati metodom "brute force".
Post
Ako ste root, možete modifikovati fajl mongodb.conf tako da ne budu potrebne akreditacije (noauth = true) i prijaviti se bez akreditacija.
Pridružite se HackenProof Discord serveru kako biste komunicirali sa iskusnim hakerima i lovcima na bagove!
Hakerski Uvidi
Uključite se u sadržaj koji istražuje uzbuđenje i izazove hakovanja
Vesti o Hakovanju u Realnom Vremenu
Budite u toku sa dinamičnim svetom hakovanja kroz vesti i uvide u realnom vremenu
Najnovije Najave
Budite informisani o najnovijim programima nagrađivanja za pronalaženje bagova i važnim ažuriranjima platforme
Pridružite nam se na Discord-u i počnite da sarađujete sa vrhunskim hakerima danas!
Naučite hakovanje AWS-a od početnika do stručnjaka sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite svoju kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu proverite PLANOVE ZA PRIJAVU!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte Porodicu PEASS, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.