14 KiB
27017,27018 - Πεντεστάροντας το MongoDB
Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
- Αν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε την Οικογένεια PEASS, τη συλλογή μας από αποκλειστικά NFTs
- Συμμετέχετε στη 💬 ομάδα Discord ή στη ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.
Εγγραφείτε στον διακομιστή 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-ψήφιες εξαδεκαδικές συμβολοσειρές:
Για παράδειγμα, έτσι μπορούμε να αναλύσουμε ένα πραγματικό Object ID που επιστρέφεται από μια εφαρμογή: 5f2459ac9fa6dc2500314019
- 5f2459ac: 1596217772 σε δεκαδική μορφή = Παρασκευή, 31 Ιουλίου 2020 17:49:32
- 9fa6dc: Αναγνωριστικό μηχανής
- 2500: Αναγνωριστικό διεργασίας
- 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:
- Εάν θέλετε να δείτε την εταιρική σας διαφήμιση στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF, ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε The PEASS Family, τη συλλογή μας από αποκλειστικά NFTs
- Συμμετάσχετε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.