7.3 KiB
27017,27018 - Pentesting MongoDB
{% hint style="success" %}
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Sluit aan by HackenProof Discord bediener om met ervare hackers en bug bounty jagters te kommunikeer!
Hacking Inligting
Betrek jouself met inhoud wat die opwinding en uitdagings van hacking ondersoek
Regstyds Hack Nuus
Bly op hoogte van die vinnig bewegende hacking wêreld deur regstydse nuus en insigte
Laaste Aankondigings
Bly ingelig oor die nuutste bug bounties wat bekendgestel word en belangrike platform opdaterings
Sluit by ons aan op Discord en begin vandag saamwerk met top hackers!
Basiese Inligting
MongoDB is 'n oopbron databasisbestuurstelsel wat 'n dokument-georiënteerde databasismodel gebruik om verskillende vorme van data te hanteer. Dit bied buigsaamheid en skaalbaarheid vir die bestuur van ongestructureerde of semi-gestructureerde data in toepassings soos groot data analise en inhoudsbestuur. Standaard poort: 27017, 27018
PORT STATE SERVICE VERSION
27017/tcp open mongodb MongoDB 2.6.9 2.6.9
Opname
Handmatig
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 server information"
- Soek na volle oop mongodb bedieners:
"mongodb server information" -"partially enabled"
- Slegs gedeeltelik geaktiveerde outentisering:
"mongodb server information" "partially enabled"
Login
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 kredensiale 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 hier vandaan.
Mongo Object ID's is 12-byte hexadesimale strings:
Byvoorbeeld, hier is hoe ons 'n werklike Object ID kan ontleed wat deur 'n toepassing teruggestuur is: 5f2459ac9fa6dc2500314019
- 5f2459ac: 1596217772 in desimale = Vrydag, 31 Julie 2020 17:49:32
- 9fa6dc: Masjien Identifiseerder
- 2500: Proses ID
- 314019: 'n Inkrementele teenaar
Van die bogenoemde elemente sal die masjien identifiseerder dieselfde bly solank die databasis op dieselfde fisiese/virtuele masjien draai. Proses ID sal slegs verander as die MongoDB-proses herbegin word. Tydstempel sal elke sekonde opgedateer word. Die enigste uitdaging om Object ID's te raai deur eenvoudig die teenaar en tydstempel waardes te inkrementeer, is die feit dat Mongo DB Object ID's genereer en aan Object ID's op 'n stelselniveau toewys.
Die hulpmiddel 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 ID's terug wat moontlik aan die volgende objekte toegeken kon gewees het, so jy moet net hulle bruteforce.
Post
As jy root is, kan jy die mongodb.conf lêer wysig sodat geen akrediteerbare inligting benodig word (noauth = true) en aanmeld sonder akrediteerbare inligting.
Sluit aan by HackenProof Discord bediener om met ervare hackers en bug bounty jagters te kommunikeer!
Hacking Inligting
Betrek jouself met inhoud wat die opwinding en uitdagings van hacking ondersoek
Regte Tyd Hack Nuus
Bly op hoogte van die vinnig bewegende hacking wêreld deur middel van regte tyd nuus en insigte
Laaste Aankondigings
Bly ingelig oor die nuutste bug bounties wat bekendgestel word en belangrike platform opdaterings
Sluit by ons aan op Discord en begin vandag saamwerk met top hackers!
{% hint style="success" %}
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PR's in te dien na die HackTricks en HackTricks Cloud github repos.