hacktricks/network-services-pentesting/27017-27018-mongodb.md
Translator workflow 35c6b081d2 Translated to Greek
2024-02-10 22:40:18 +00:00

14 KiB
Raw Blame History

27017,27018 - Πεντεστάροντας το MongoDB

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Εγγραφείτε στον διακομιστή HackenProof Discord για να επικοινωνήσετε με έμπειρους χάκερ και κυνηγούς ευρημάτων ασφαλείας!

Εισαγωγή στο Χάκινγκ
Ασχοληθείτε με περιεχόμενο που εξερευνά τον ενθουσιασμό και τις προκλήσεις του χάκινγκ

Ειδήσεις Χάκινγκ σε Πραγματικό Χρόνο
Μείνετε ενημερωμένοι με τον γρήγορο ρυθμό του κόσμου του χάκινγκ μέσω ειδήσεων και αναλύσεων σε πραγματικό χρόνο

Τελευταίες Ανακοινώσεις
Μείνετε ενημερωμένοι με τις νεότερες ευρήματα ασφαλείας που ξεκινούν και τις κρίσιμες ενημερώσεις των πλατφορμών

Ελάτε μαζί μας στο Discord και αρχίστε να συνεργάζεστε με τους κορυφαίους χάκερ σήμερα!

Βασικές Πληροφορίες

Το MongoDB είναι ένα σύστημα διαχείρισης βάσεων δεδομένων ανοικτού κώδικα που χρησιμοποιεί ένα μοντέλο βάσης δεδομένων προσανατολισμένο σε έγγραφα για την χειρισμό διάφορων μορφών δεδομένων. Προσφέρει ευελιξία και κλιματιζόμενη δυνατότητα για τη διαχείριση μη δομημένων ή ημι-δομημένων δεδομένων σε εφαρμογές όπως η ανάλυση μεγάλων όγκων δεδομένων και η διαχείριση περιεχομένου. Προεπιλεγμένη θύρα: 27017, 27018

PORT      STATE SERVICE VERSION
27017/tcp open  mongodb MongoDB 2.6.9 2.6.9

Απαρίθμηση

Χειροκίνητη

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

Ορισμένες εντολές MongoDB:

# Show all databases
show dbs

# Switch to a specific database
use <database_name>

# Show all collections in the current database
show collections

# Show all documents in a collection
db.<collection_name>.find()

# Insert a document into a collection
db.<collection_name>.insertOne({<document>})

# Update a document in a collection
db.<collection_name>.updateOne({<filter>}, {$set: {<update>}})

# Delete a document from a collection
db.<collection_name>.deleteOne({<filter>})

Σημείωση: Αντικαταστήστε τα <database_name>, <collection_name>, <document>, <filter> και <update> με τις αντίστοιχες τιμές που επιθυμείτε.

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

Αυτόματο

Η αυτόματη εκτέλεση είναι μια τεχνική που χρησιμοποιείται στον κόσμο του χάκινγκ για να εκτελεστούν εντολές ή διαδικασίες αυτόματα, χωρίς την ανάγκη για ανθρώπινη παρέμβαση. Αυτό μπορεί να γίνει με τη χρήση ειδικού λογισμικού ή σεναρίων που προγραμματίζονται να εκτελούν συγκεκριμένες ενέργειες αυτόματα.

Στον τομέα της πεντεστινγκ, η αυτόματη εκτέλεση μπορεί να χρησιμοποιηθεί για να εκτελέσει επιθέσεις σε συστήματα MongoDB που εκτίθενται στο διαδίκτυο. Με τη χρήση εργαλείων αυτοματοποίησης, μπορεί να γίνει ανίχνευση ευπάθειών, εκμετάλλευση ευπαθειών και απόκτηση πρόσβασης σε αυτά τα συστήματα χωρίς την ανάγκη για χειροκίνητη επέμβαση από τον χάκερ.

Η αυτόματη εκτέλεση μπορεί να είναι ιδιαίτερα χρήσιμη για τους χάκερ, καθώς επιτρέπει την αυτόματη εκτέλεση επιθέσεων σε μεγάλο αριθμό συστημάτων, εξοικονομώντας χρόνο και πόρους. Ωστόσο, είναι σημαντικό να χρησιμοποιείται με προσοχή και να τηρούνται όλες οι νομικές και ηθικές αρχές κατά τη χρήση αυτής της τεχνικής.

nmap -sV --script "mongo* and default" -p 27017 <IP> #By default all the nmap mongo enumerate scripts are used

Shodan

  • Όλα τα mongodb: "πληροφορίες διακομιστή mongodb"
  • Αναζήτηση για πλήρως ανοιχτούς διακομιστές mongodb: "πληροφορίες διακομιστή mongodb" -"μερικώς ενεργοποιημένος"
  • Μόνο μερικώς ενεργοποιημένη πιστοποίηση: "πληροφορίες διακομιστή mongodb" "μερικώς ενεργοποιημένος"

Σύνδεση

Από προεπιλογή, το mongo δεν απαιτεί κωδικό πρόσβασης.
Admin είναι μια κοινή βάση δεδομένων mongo.

mongo <HOST>
mongo <HOST>:<PORT>
mongo <HOST>:<PORT>/<DB>
mongo <database> -u <username> -p '<password>'

Το nmap script: mongodb-brute θα ελέγξει εάν απαιτούνται διαπιστευτήρια.

nmap -n -sV --script mongodb-brute -p 27017 <ip>

Βίαιη επίθεση

Ρίξτε μια ματιά μέσα στο /opt/bitnami/mongodb/mongodb.conf για να δείτε αν απαιτούνται διαπιστευτήρια:

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

Παράδειγμα από εδώ.

Τα Mongo Object IDs είναι 12-ψήφιες εξαδεκαδικές συμβολοσειρές:

http://techidiocy.com/_id-objectid-in-mongodb/

Για παράδειγμα, έτσι μπορούμε να αναλύσουμε ένα πραγματικό Object ID που επιστρέφεται από μια εφαρμογή: 5f2459ac9fa6dc2500314019

  1. 5f2459ac: 1596217772 σε δεκαδική μορφή = Παρασκευή, 31 Ιουλίου 2020 17:49:32
  2. 9fa6dc: Αναγνωριστικό μηχανής
  3. 2500: Αναγνωριστικό διεργασίας
  4. 314019: Ένας αυξητικός μετρητής

Από τα παραπάνω στοιχεία, το αναγνωριστικό μηχανής θα παραμείνει το ίδιο όσο η βάση δεδομένων εκτελείται στην ίδια φυσική/εικονική μηχανή. Το αναγνωριστικό διεργασίας θα αλλάξει μόνο εάν η διεργασία MongoDB επανεκκινηθεί. Ο χρονοσφραγίδα θα ενημερώνεται κάθε δευτερόλεπτο. Η μόνη πρόκληση στην εύρεση των Object IDs με αύξηση απλά των τιμών του μετρητή και της χρονοσφραγίδας είναι το γεγονός ότι το Mongo DB δημιουργεί Object IDs και αναθέτει Object IDs σε επίπεδο συστήματος.

Το εργαλείο https://github.com/andresriancho/mongo-objectid-predict, δεδομένου ενός αρχικού Object ID (μπορείτε να δημιουργήσετε έναν λογαριασμό και να λάβετε ένα αρχικό ID), επιστρέφει περίπου 1000 πιθανά Object IDs που θα μπορούσαν να έχουν ανατεθεί στα επόμενα αντικείμενα, οπότε απλά χρειάζεται να τα δοκιμάσετε με bruteforce.

Δημοσίευση

Εάν είστε root, μπορείτε να τροποποιήσετε το αρχείο mongodb.conf ώστε να μην απαιτούνται διαπιστευτήρια (noauth = true) και να συνδεθείτε χωρίς διαπιστευτήρια.


Συμμετάσχετε στον διακομιστή HackenProof Discord για να επικοινωνήσετε με έμπειρους χάκερ και κυνηγούς ευρημάτων ασφαλείας!

Εισαγωγή στο Hacking
Ασχοληθείτε με περιεχόμενο που εξερευνά τον ενθουσιασμό και τις προκλήσεις του χάκινγκ.

Ειδήσεις Χάκινγκ σε Πραγματικό Χρόνο
Μείνετε ενημερωμένοι με τον γρήγορο ρυθμό του κόσμου του χάκινγκ μέσω ειδήσεων και αναλύσεων σε πραγματικό χρόνο.

Τελευταίες Ανακοινώσεις
Μείνετε ενημερωμένοι με τις νεότερες ανακοινώσεις για τις νέες αμοιβές ευρετηρίου ευπαθειών και τις κρίσιμες ενημερώσεις της πλατφόρμας.

Συμμετάσχετε στο Discord και αρχίστε να συνεργάζεστε με τους κορυφαίους χάκερ σήμερα!

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks: