7.4 KiB
27017,27018 - Pentesting MongoDB
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy jou maatskappy geadverteer wil sien in HackTricks of HackTricks in PDF wil aflaai Kyk na die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS Familie, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou haktruuks deur PRs in te dien by die HackTricks en HackTricks Cloud github-opslag.
![](/Mirrors/hacktricks/media/commit/8ce39509c2a5e8f10a3e17231314293829363645/.gitbook/assets/image%20%28377%29.png)
Sluit aan by HackenProof Discord bediener om te kommunikeer met ervare hackers en foutbeloningsjagters!
Hacking-insigte
Raak betrokke by inhoud wat die opwinding en uitdagings van hack bevat
Hack Nuus in Werklikheid
Bly op hoogte van die snelveranderende hack-wêreld deur werklikheidsnuus en insigte
Nuutste Aankondigings
Bly ingelig met die nuutste foutbelonings wat bekendgestel word en belangrike platformopdaterings
Sluit by ons aan op Discord en begin vandag saamwerk met top hackers!
Basiese Inligting
MongoDB is 'n open source databasisbestuurstelsel wat 'n dokumentgeoriënteerde databasismodel gebruik om diverse vorms van data te hanteer. Dit bied buigsaamheid en skaalbaarheid vir die bestuur van ongestruktureerde of semi-gestruktureerde data in toepassings soos groot data-analise en inhoudsbestuur. Verstekpoort: 27017, 27018
PORT STATE SERVICE VERSION
27017/tcp open mongodb MongoDB 2.6.9 2.6.9
Opsomming
Handleiding
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
Sommige MongoDB-opdragte:
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
Outomaties
nmap -sV --script "mongo* and default" -p 27017 <IP> #By default all the nmap mongo enumerate scripts are used
Shodan
- Alle mongodb:
"mongodb bediener inligting"
- Soek na volledig oop mongodb bedieners:
"mongodb bediener inligting" -"gedeeltelik geaktiveer"
- Slegs gedeeltelik geaktiveerde outentifikasie:
"mongodb bediener inligting" "gedeeltelik geaktiveer"
Aanteken
Standaard vereis mongo nie 'n wagwoord nie.
Admin is 'n algemene mongo databasis.
mongo <HOST>
mongo <HOST>:<PORT>
mongo <HOST>:<PORT>/<DB>
mongo <database> -u <username> -p '<password>'
Die nmap-skrip: mongodb-brute sal nagaan of geloofsbriewe benodig word.
nmap -n -sV --script mongodb-brute -p 27017 <ip>
Brute force
Kyk binne /opt/bitnami/mongodb/mongodb.conf om te weet of geloofsbriewe benodig word:
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 Voorspel
Voorbeeld van hier.
Mongo Object IDs is 12-byte heksadesimale strings:
Byvoorbeeld, hier is hoe ons 'n werklike Object ID wat deur 'n aansoek teruggegee is, kan ontled: 5f2459ac9fa6dc2500314019
- 5f2459ac: 1596217772 in desimaal = Vrydag, 31 Julie 2020 17:49:32
- 9fa6dc: Masjien Identifiseerder
- 2500: Proses ID
- 314019: 'n inkrementele teller
Van die bogenoemde elemente, sal die masjien identifiseerder dieselfde bly solank die databasis op dieselfde fisiese/virtuele masjien loop. Proses ID sal net verander as die MongoDB proses heraangestel word. Tydstempel sal elke sekonde opgedateer word. Die enigste uitdaging in die raai van Object IDs deur eenvoudig die teller en tydstempel waardes te inkrementeer, is die feit dat Mongo DB Object IDs genereer en Object IDs op 'n stelselvlak toeken.
Die gereedskap https://github.com/andresriancho/mongo-objectid-predict, gegewe 'n begin Object ID (jy kan 'n rekening skep en 'n begin ID kry), stuur ongeveer 1000 waarskynlike Object IDs terug wat moontlik aan die volgende voorwerpe toegewys kon gewees het, sodat jy hulle net hoef te bruteforce.
Plasing
As jy root is kan jy die mongodb.conf lêer verander sodat geen geloofsbriewe nodig is (noauth = true) en aanmeld sonder geloofsbriewe.
![](/Mirrors/hacktricks/media/commit/8ce39509c2a5e8f10a3e17231314293829363645/.gitbook/assets/image%20%28377%29.png)
Sluit aan by HackenProof Discord bediener om met ervare hackers en foutbeloningsjagters te kommunikeer!
Hackinsigte
Gaan in gesprek met inhoud wat in die opwinding en uitdagings van hack betrokke is
Reële Tyd Hack Nuus
Bly op hoogte van die snelveranderende hackwêreld deur middel van nuus en insigte in reële tyd
Nuutste Aankondigings
Bly ingelig met die nuutste foutbelonings wat bekendgestel word en noodsaaklike platformopdaterings
Sluit by ons aan op Discord en begin vandag saamwerk met top hackers!
Leer AWS hack van nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy wil sien dat jou maatskappy geadverteer word in HackTricks of HackTricks in PDF aflaai Kontroleer die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS Familie, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou hacktruuks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.