Κοινή χρήση τεχνολογίας

Χρησιμοποιήστε το docker για να δημιουργήσετε ένα περιβάλλον ευπάθειας και χρησιμοποιήστε το SSRF Redis για να γράψετε τα δημόσια κλειδιά του centos και του ubuntu για να επιτύχετε σύνδεση χωρίς κωδικό πρόσβασης.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Πειραματικό περιβάλλον

kali: Δημιουργήστε ένα περιβάλλον κοντέινερ στο kali Εδώ χρησιμοποιώ κυρίως το πρώτο.

Ως βάση δεδομένων, το redis μπορεί να γράψει δεδομένα στη μνήμη Χρησιμοποιούμε αιτήματα ssrf για να επιτρέψουμε στον διακομιστή να γράψει το δικό του δημόσιο κλειδί για να πειραματιστεί με σύνδεση χωρίς κωδικό πρόσβασης.

2. Πειραματική διαδικασία

Προκαταρκτική προετοιμασία και δοκιμή

Το Redis αποθηκεύει δεδομένα με τη μορφή βασικών τιμών Εδώ χρησιμοποιώ το περιβάλλον centos που έχει δημιουργηθεί με docker.

Χρησιμοποιήστε την ακόλουθη εντολή για να εισαγάγετε το κοντέινερ centos.

docker exex -it 容器的编号 /bin/bash

Δεδομένου ότι το centos έχει ήδη ένα σενάριο για την εκτέλεση του διακομιστή redis, χρειάζεται μόνο να ενεργοποιήσουμε το redis-cli στο κοντέινερ.

Ελέγξτε εάν μπορεί να γραφτεί κανονικά Όπως φαίνεται στο σχήμα, το γραπτό περιεχόμενο ή ο κατάλογος μπορεί να τροποποιηθεί.

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

Μετά την τροποποίηση, αποθηκεύστε το, όπως φαίνεται στην εικόνα, η εγγραφή είναι επιτυχής!

Προβλήματα που προκύπτουν και επιλύονται

Εάν υπάρχει μια κατάσταση όπου ο διακομιστής δεν μπορεί να συνδεθεί, μπορούμε να χρησιμοποιήσουμε το ./start.sh για να εκτελέσουμε αυτό το σενάριο.

Σύντομη εισαγωγή SSRF και έναρξη πειράματος

Σφυρηλατήστε αιτήματα μέσω του διακομιστή, χρησιμοποιήστε το πρωτόκολλο gopher ή το time dict για να ζητήσετε redis και να γράψετε αρχεία.

σενάριο γενιάς γόφερ

Δημιουργήθηκε ωφέλιμο φορτίο

Μπορούμε λοιπόν να κάνουμε ένα αίτημα, να επικολλήσουμε το παραπάνω περιεχόμενο σε αυτό και να κάνουμε κλικ στην Ανάκτηση

Προβλήματα που προέκυψαν

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

αποτέλεσμα

Μπορεί να φανεί ότι το δημόσιο κλειδί έχει εγγραφεί με επιτυχία στον διακομιστή προορισμού.

Στη συνέχεια, μπορείτε να συνδεθείτε μέσω ssh χωρίς κωδικό πρόσβασης Φαίνεται ότι η σύνδεση είναι επιτυχής!

Προβλήματα που προέκυψαν

Υπάρχουν ορισμένα προβλήματα στο περιβάλλον Dockerfile, το οποίο εμποδίζει την εκκίνηση της θύρας 22 στην εικόνα του docker, επομένως το αρχείο τροποποιείται και εκτελεί το /usr/sbin/sshd για να ξεκινήσει το sshd.

Όταν αντιμετωπίζουμε την προαναφερθείσα αποτυχία λήψης, μπορούμε απλώς να αρχικοποιήσουμε το αρχείο, όπως φαίνεται στο παρακάτω σχήμα.

3. Περίληψη

Τα βήματα για τα centos και το ubuntu είναι σχεδόν τα ίδια, εκτός από το ότι λόγω του μηχανισμού προστασίας του redis, θα προκύψουν τα ακόλουθα σφάλματα, με αποτέλεσμα να μην είναι δυνατή η τροποποίηση ορισμένων ιδιοτήτων Η λύση είναι να απενεργοποιήσετε τη λειτουργία προστατευμένης λειτουργίας και να χρησιμοποιήσετε τα ακόλουθα εντολή;

config set protected-mode no

Λόγω των περιορισμών της έκδοσης redis, η ασφάλεια της 7.2.5 είναι πολύ υψηλή, γεγονός που θα προκαλέσει την αποτυχία της σύνδεσης ssh χωρίς κωδικό πρόσβασης, οπότε το τράβηξα εδώ.

Έκδοση 5.0.5

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