Bhunter - παραβίαση κόμβων botnet

Οι αναλυτές ιών και οι ερευνητές ασφάλειας υπολογιστών αγωνίζονται για να συγκεντρώσουν όσο το δυνατόν περισσότερα δείγματα νέων botnet. Χρησιμοποιούν τα honeypots για δικούς τους σκοπούς... Τι γίνεται όμως αν θέλετε να παρατηρήσετε το κακόβουλο λογισμικό σε πραγματικές συνθήκες; Θέλετε τον διακομιστή ή τον δρομολογητή σας σε κίνδυνο; Τι γίνεται αν δεν υπάρχει κατάλληλη συσκευή; Αυτές οι ερωτήσεις με ώθησαν να δημιουργήσω το bhunter, ένα εργαλείο για την απόκτηση πρόσβασης σε κόμβους botnet.

Bhunter - παραβίαση κόμβων botnet

κεντρική ιδέα

Υπάρχουν πολλοί τρόποι για τη διάδοση κακόβουλου λογισμικού για την επέκταση των botnet: από το ηλεκτρονικό ψάρεμα έως την εκμετάλλευση τρωτών σημείων 0 ημερών. Αλλά η πιο κοινή μέθοδος εξακολουθεί να είναι ωμή επιβολή κωδικών πρόσβασης SSH.

Η ιδέα είναι πολύ απλή. Εάν κάποιος κόμβος botnet προσπαθεί να επιβάλει brute-force κωδικούς πρόσβασης για τον διακομιστή σας, τότε πιθανότατα αυτός ο ίδιος ο κόμβος καταγράφηκε από απλούς κωδικούς πρόσβασης brute-forcing. Αυτό σημαίνει ότι για να αποκτήσετε πρόσβαση σε αυτό, πρέπει απλώς να το ανταποδώσετε.

Έτσι ακριβώς λειτουργεί το bhunter. Ακούει τη θύρα 22 (υπηρεσία SSH) και συλλέγει όλα τα στοιχεία σύνδεσης και τους κωδικούς πρόσβασης με τα οποία προσπαθούν να συνδεθούν σε αυτήν. Στη συνέχεια, χρησιμοποιώντας τους συλλεγμένους κωδικούς πρόσβασης, προσπαθεί να συνδεθεί με κόμβους επίθεσης.

Αλγόριθμος της εργασίας

Το πρόγραμμα μπορεί να χωριστεί σε 2 κύρια μέρη, τα οποία λειτουργούν σε ξεχωριστά νήματα. Το πρώτο είναι το honeypot. Επεξεργάζεται τις προσπάθειες σύνδεσης, συλλέγει μοναδικά στοιχεία σύνδεσης και κωδικούς πρόσβασης (σε αυτή την περίπτωση, το ζεύγος σύνδεσης + κωδικού πρόσβασης θεωρείται ως ένα ενιαίο σύνολο) και προσθέτει επίσης διευθύνσεις IP που προσπάθησαν να συνδεθούν στην ουρά για περαιτέρω επίθεση.

Το δεύτερο μέρος είναι άμεσα υπεύθυνο για την επίθεση. Επιπλέον, η επίθεση πραγματοποιείται σε δύο τρόπους: BurstAttack (επίθεση ριπής) - brute force logins και κωδικοί πρόσβασης από τη γενική λίστα και SingleShotAttack (επίθεση με μία βολή) - brute force passwords που χρησιμοποιήθηκαν από τον κόμβο που επιτέθηκε, αλλά δεν έχουν ακόμη χρησιμοποιηθεί προστέθηκε στη γενική λίστα.

Προκειμένου να έχουμε τουλάχιστον κάποια βάση δεδομένων με στοιχεία σύνδεσης και κωδικούς πρόσβασης αμέσως μετά την εκκίνηση, το bhunter προετοιμάζεται με μια λίστα από το αρχείο /etc/bhunter/defaultLoginPairs.

διεπαφή

Υπάρχουν διάφοροι τρόποι εκκίνησης του bhunter:

Απλά σαν ομάδα

sudo bhunter

Με αυτήν την εκκίνηση, είναι δυνατός ο έλεγχος του bhunter μέσω του μενού κειμένου του: προσθήκη στοιχείων σύνδεσης και κωδικών πρόσβασης για επίθεση, εξαγωγή βάσης δεδομένων με στοιχεία σύνδεσης και κωδικών πρόσβασης, καθορισμός στόχου για επίθεση. Όλοι οι παραβιασμένοι κόμβοι εμφανίζονται στο αρχείο /var/log/bhunter/hacked.log

Χρησιμοποιώντας tmux

sudo bhunter-ts # команда запуска bhunter через tmux  
sudo tmux attach -t bhunter # подключаемся к сессии, в которой запущен bhunter

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

Το σενάριο bhunter-ts δημιουργεί μια περίοδο λειτουργίας tmux και χωρίζει το παράθυρο σε τρία πλαίσια. Το πρώτο, μεγαλύτερο, περιέχει ένα μενού κειμένου. Η επάνω δεξιά γωνία περιέχει αρχεία καταγραφής honeypot, εδώ μπορείτε να δείτε μηνύματα σχετικά με προσπάθειες σύνδεσης στο honeypot. Ο κάτω δεξιός πίνακας εμφανίζει πληροφορίες σχετικά με την πρόοδο της επίθεσης σε κόμβους botnet και σχετικά με επιτυχημένες εισβολές.

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

Ως υπηρεσία

systemctl enable bhunter
systemctl start bhunter

Σε αυτήν την περίπτωση, ενεργοποιούμε την αυτόματη εκκίνηση του bhunter κατά την εκκίνηση του συστήματος. Σε αυτήν τη μέθοδο, δεν παρέχεται αλληλεπίδραση με το bhunter και η λίστα των παραβιασμένων κόμβων μπορεί να ληφθεί από το /var/log/bhunter/hacked.log

Αποτελεσματικότητα

Ενώ δούλευα στο bhunter, κατάφερα να βρω και να αποκτήσω πρόσβαση σε εντελώς διαφορετικές συσκευές: raspberry pi, δρομολογητές (ειδικά mikrotik), διακομιστές ιστού και κάποτε ένα αγρόκτημα εξόρυξης (δυστυχώς, η πρόσβαση σε αυτό ήταν κατά τη διάρκεια της ημέρας, οπότε δεν υπήρχε ενδιαφέρον ιστορία). Ακολουθεί ένα στιγμιότυπο οθόνης του προγράμματος, το οποίο δείχνει μια λίστα με χακαρισμένους κόμβους μετά από αρκετές ημέρες εργασίας:

Bhunter - παραβίαση κόμβων botnet

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

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

Σφάλματα που δεν έχω διορθώσει ακόμα

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

Η μονάδα Paramiko, η οποία χρησιμοποιείται για να λειτουργεί με SSH, μερικές φορές συμπεριφέρεται λανθασμένα: περιμένει ατελείωτα μια απάντηση από τον κεντρικό υπολογιστή όταν προσπαθεί να συνδεθεί σε αυτόν. Πειραματίστηκα με χρονόμετρα, αλλά δεν πήρα το επιθυμητό αποτέλεσμα

Τι άλλο πρέπει να δουλέψουμε;

Ονομα Υπηρεσίας

Σύμφωνα με το RFC-4253, ο πελάτης και ο διακομιστής ανταλλάσσουν ονόματα υπηρεσιών που υλοποιούν το πρωτόκολλο SSH πριν από την εγκατάσταση. Αυτό το όνομα περιέχεται στο πεδίο «ΕΠΩΝΥΜΙΑ ΥΠΗΡΕΣΙΑΣ», που περιέχεται τόσο στο αίτημα από την πλευρά του πελάτη όσο και στην απάντηση από την πλευρά του διακομιστή. Το πεδίο είναι μια συμβολοσειρά και η τιμή του μπορεί να βρεθεί χρησιμοποιώντας το wireshark ή το nmap. Ακολουθεί ένα παράδειγμα για το OpenSSH:

$ nmap -p 22 ***.**.***.** -sV
Starting Nmap ...
PORT   STATE SERVICE VERSION
22/tcp open  ssh     <b>OpenSSH 7.9p1 Debian 10+deb10u2</b> (protocol 2.0)
Nmap done: 1 IP address (1 host up) scanned in 0.47 seconds

Ωστόσο, στην περίπτωση του Paramiko, αυτό το πεδίο περιέχει μια συμβολοσειρά όπως το "Paramiko Python sshd 2.4.2", το οποίο μπορεί να τρομάξει τα botnets που έχουν σχεδιαστεί για να "αποφεύγουν" παγίδες. Ως εκ τούτου, νομίζω ότι είναι απαραίτητο να αντικατασταθεί αυτή η γραμμή με κάτι πιο ουδέτερο.

Άλλοι φορείς

Το SSH δεν είναι το μόνο μέσο απομακρυσμένης διαχείρισης. Υπάρχει και telnet, rdp. Αξίζει να τους ρίξετε μια πιο προσεκτική ματιά.

επέκταση

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

Πού μπορώ να κατεβάσω;

Τη στιγμή της σύνταξης, είναι έτοιμη μόνο μια δοκιμαστική έκδοση, την οποία μπορείτε να κατεβάσετε από αποθετήριο στο Github.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο