139,445 - Pentesting SMB
Port 139
Το Network Basic Input Output System** (NetBIOS)** είναι ένα λογισμικό πρωτόκολλο σχεδιασμένο για να επιτρέπει στις εφαρμογές, τους υπολογιστές και τους επιτραπέζιους υπολογιστές εντός ενός τοπικού δικτύου (LAN) να αλληλεπιδρούν με το υλικό του δικτύου και να διευκολύνουν τη μετάδοση δεδομένων μέσω του δικτύου. Η αναγνώριση και η τοποθεσία των λογισμικών εφαρμογών που λειτουργούν σε ένα δίκτυο NetBIOS επιτυγχάνονται μέσω των ονομάτων NetBIOS τους, τα οποία μπορούν να είναι έως 16 χαρακτήρες σε μήκος και συχνά διαφέρουν από το όνομα του υπολογιστή. Μια συνεδρία NetBIOS μεταξύ δύο εφαρμογών ξεκινά όταν μία εφαρμογή (που λειτουργεί ως πελάτης) εκδίδει μια εντολή για να "καλέσει" μια άλλη εφαρμογή (που λειτουργεί ως διακομιστής) χρησιμοποιώντας TCP Port 139.
Port 445
Τεχνικά, η Θύρα 139 αναφέρεται ως ‘NBT over IP’, ενώ η Θύρα 445 αναγνωρίζεται ως ‘SMB over IP’. Το ακρωνύμιο SMB σημαίνει ‘Server Message Blocks’, το οποίο είναι επίσης σύγχρονα γνωστό ως το Common Internet File System (CIFS). Ως πρωτόκολλο δικτύου επιπέδου εφαρμογής, το SMB/CIFS χρησιμοποιείται κυρίως για να επιτρέπει κοινή πρόσβαση σε αρχεία, εκτυπωτές, σειριακές θύρες και να διευκολύνει διάφορες μορφές επικοινωνίας μεταξύ κόμβων σε ένα δίκτυο.
Για παράδειγμα, στο πλαίσιο των Windows, τονίζεται ότι το SMB μπορεί να λειτουργεί απευθείας πάνω από TCP/IP, εξαλείφοντας την ανάγκη για NetBIOS πάνω από TCP/IP, μέσω της χρήσης της θύρας 445. Αντίθετα, σε διάφορα συστήματα, παρατηρείται η χρήση της θύρας 139, υποδεικνύοντας ότι το SMB εκτελείται σε συνδυασμό με το NetBIOS πάνω από TCP/IP.
SMB
Το Server Message Block (SMB) πρωτόκολλο, που λειτουργεί σε ένα client-server μοντέλο, έχει σχεδιαστεί για να ρυθμίζει την πρόσβαση σε αρχεία, καταλόγους και άλλους πόρους δικτύου όπως εκτυπωτές και δρομολογητές. Χρησιμοποιείται κυρίως μέσα στη σειρά λειτουργικών συστημάτων Windows, το SMB διασφαλίζει την οπισθοδρομική συμβατότητα, επιτρέποντας στις συσκευές με νεότερες εκδόσεις του λειτουργικού συστήματος της Microsoft να αλληλεπιδρούν ομαλά με αυτές που εκτελούν παλαιότερες εκδόσεις. Επιπλέον, το έργο Samba προσφέρει μια δωρεάν λύση λογισμικού, επιτρέποντας την υλοποίηση του SMB σε συστήματα Linux και Unix, διευκολύνοντας έτσι την επικοινωνία μεταξύ πλατφορμών μέσω του SMB.
Οι κοινές χρήσεις, που αντιπροσωπεύουν τυχαία μέρη του τοπικού συστήματος αρχείων, μπορούν να παρέχονται από έναν διακομιστή SMB, καθιστώντας τη ιεραρχία ορατή σε έναν πελάτη εν μέρει ανεξάρτητη από τη πραγματική δομή του διακομιστή. Οι Access Control Lists (ACLs), που καθορίζουν τα δικαιώματα πρόσβασης, επιτρέπουν λεπτομερή έλεγχο πάνω στις άδειες χρηστών, συμπεριλαμβανομένων χαρακτηριστικών όπως execute
, read
και full access
. Αυτές οι άδειες μπορούν να ανατεθούν σε μεμονωμένους χρήστες ή ομάδες, με βάση τις κοινές χρήσεις, και είναι διακριτές από τις τοπικές άδειες που έχουν οριστεί στον διακομιστή.
IPC$ Share
Η πρόσβαση στην κοινή χρήση IPC$ μπορεί να αποκτηθεί μέσω μιας ανώνυμης κενής συνεδρίας, επιτρέποντας την αλληλεπίδραση με υπηρεσίες που εκτίθενται μέσω ονομασμένων σωλήνων. Το εργαλείο enum4linux
είναι χρήσιμο για αυτό το σκοπό. Χρησιμοποιούμενο σωστά, επιτρέπει την απόκτηση:
Πληροφοριών για το λειτουργικό σύστημα
Λεπτομερειών για το γονικό τομέα
Συγκέντρωσης τοπικών χρηστών και ομάδων
Πληροφοριών για διαθέσιμες κοινές χρήσεις SMB
Της αποτελεσματικής πολιτικής ασφάλειας του συστήματος
Αυτή η λειτουργικότητα είναι κρίσιμη για τους διαχειριστές δικτύου και τους επαγγελματίες ασφάλειας για να αξιολογήσουν τη θέση ασφάλειας των υπηρεσιών SMB (Server Message Block) σε ένα δίκτυο. Το enum4linux
παρέχει μια ολοκληρωμένη εικόνα του περιβάλλοντος SMB του στοχευμένου συστήματος, που είναι απαραίτητη για την αναγνώριση πιθανών ευπαθειών και τη διασφάλιση ότι οι υπηρεσίες SMB είναι σωστά ασφαλισμένες.
Η παραπάνω εντολή είναι ένα παράδειγμα του πώς μπορεί να χρησιμοποιηθεί το enum4linux
για να εκτελέσει πλήρη καταμέτρηση σε έναν στόχο που καθορίζεται από το target_ip
.
Τι είναι το NTLM
Αν δεν ξέρετε τι είναι το NTLM ή θέλετε να μάθετε πώς λειτουργεί και πώς να το εκμεταλλευτείτε, θα βρείτε πολύ ενδιαφέρουσα αυτή τη σελίδα σχετικά με το NTLM όπου εξηγείται πώς λειτουργεί αυτό το πρωτόκολλο και πώς μπορείτε να το εκμεταλλευτείτε:
NTLMΚαταμέτρηση Διακομιστή
Σάρωση ενός δικτύου αναζητώντας υπολογιστές:
SMB server version
Για να αναζητήσετε πιθανά exploits για την έκδοση SMB, είναι σημαντικό να γνωρίζετε ποια έκδοση χρησιμοποιείται. Εάν αυτή η πληροφορία δεν εμφανίζεται σε άλλα εργαλεία που χρησιμοποιούνται, μπορείτε να:
Χρησιμοποιήσετε το MSF auxiliary module _auxiliary/scanner/smb/smb_version
Ή αυτό το script:
Αναζήτηση εκμετάλλευσης
Πιθανά Διαπιστευτήρια
Όνομα χρήστη(ες) | Κοινές κωδικοί πρόσβασης |
(κενό) | (κενό) |
guest | (κενό) |
Administrator, admin | (κενό), password, administrator, admin |
arcserve | arcserve, backup |
tivoli, tmersrvd | tivoli, tmersrvd, admin |
backupexec, backup | backupexec, backup, arcada |
test, lab, demo | password, test, lab, demo |
Brute Force
Πληροφορίες Περιβάλλοντος SMB
Απόκτηση Πληροφοριών
Enumerate Users, Groups & Logged On Users
Αυτές οι πληροφορίες θα πρέπει ήδη να έχουν συλλεχθεί από το enum4linux και enum4linux-ng
Καταμέτρηση τοπικών χρηστών
Oneliner
Metasploit - Καταμέτρηση τοπικών χρηστών
Αναγνώριση LSARPC και SAMR rpcclient
rpcclient enumerationΣύνδεση GUI από linux
Στο τερματικό:
xdg-open smb://cascade.htb/
Στο παράθυρο του εξερευνητή αρχείων (nautilus, thunar, κ.λπ.)
smb://friendzone.htb/general/
Αναγνώριση Κοινών Φακέλων
Λίστα κοινών φακέλων
Είναι πάντα προτιμότερο να ελέγξετε αν μπορείτε να έχετε πρόσβαση σε οτιδήποτε, αν δεν έχετε διαπιστευτήρια δοκιμάστε να χρησιμοποιήσετε null διαπιστευτήρια/χρήστης επισκέπτης.
Σύνδεση/Λίστα ενός κοινόχρηστου φακέλου
Χειροκίνητη καταμέτρηση κοινών πόρων Windows και σύνδεση σε αυτούς
Είναι πιθανό να είστε περιορισμένοι στο να εμφανίσετε οποιουσδήποτε πόρους της μηχανής-οικοδεσπότη και όταν προσπαθείτε να τους καταγράψετε, φαίνεται ότι δεν υπάρχουν πόροι για σύνδεση. Έτσι, μπορεί να αξίζει να προσπαθήσετε να συνδεθείτε χειροκίνητα σε έναν πόρο. Για να καταμετρήσετε τους πόρους χειροκίνητα, μπορεί να θέλετε να αναζητήσετε απαντήσεις όπως NT_STATUS_ACCESS_DENIED και NT_STATUS_BAD_NETWORK_NAME, όταν χρησιμοποιείτε μια έγκυρη συνεδρία (π.χ. null session ή έγκυρα διαπιστευτήρια). Αυτά μπορεί να υποδεικνύουν αν ο πόρος υπάρχει και δεν έχετε πρόσβαση σε αυτόν ή αν ο πόρος δεν υπάρχει καθόλου.
Κοινά ονόματα πόρων για στόχους Windows είναι
C$
D$
ADMIN$
IPC$
PRINT$
FAX$
SYSVOL
NETLOGON
(Κοινά ονόματα πόρων από Network Security Assessment 3rd edition)
Μπορείτε να προσπαθήσετε να συνδεθείτε σε αυτούς χρησιμοποιώντας την παρακάτω εντολή
ή για αυτό το σενάριο (χρησιμοποιώντας μια κενή συνεδρία)
παραδείγματα
Καταμέτρηση μεριδίων από Windows / χωρίς εργαλεία τρίτων
PowerShell
CMD κονσόλα
MMC Snap-in (γραφικό)
explorer.exe (γραφικό), εισάγετε \\<ip>\
για να δείτε τις διαθέσιμες μη κρυφές κοινές χρήσεις.
Σύνδεση ενός κοινόχρηστου φακέλου
Λήψη αρχείων
Διαβάστε τις προηγούμενες ενότητες για να μάθετε πώς να συνδεθείτε με διαπιστευτήρια/Pass-the-Hash.
Commands:
mask: καθορίζει τη μάσκα που χρησιμοποιείται για να φιλτράρει τα αρχεία μέσα στον κατάλογο (π.χ. "" για όλα τα αρχεία)
recurse: ενεργοποιεί την αναδρομή (προεπιλογή: απενεργοποιημένη)
prompt: απενεργοποιεί την προτροπή για ονόματα αρχείων (προεπιλογή: ενεργοποιημένη)
mget: αντιγράφει όλα τα αρχεία που ταιριάζουν με τη μάσκα από τον κεντρικό υπολογιστή στη μηχανή του πελάτη
(Πληροφορίες από τη σελίδα man του smbclient)
Domain Shared Folders Search
Snaffler****
CrackMapExec αράχνη.
-M spider_plus [--share <share_name>]
--pattern txt
Ιδιαίτερα ενδιαφέρον από τις κοινές είναι τα αρχεία που ονομάζονται Registry.xml
καθώς μπορεί να περιέχουν κωδικούς πρόσβασης για χρήστες που έχουν ρυθμιστεί με αυτόματη σύνδεση μέσω Πολιτικής Ομάδας. Ή τα αρχεία web.config
καθώς περιέχουν διαπιστευτήρια.
Η κοινή χρήση SYSVOL είναι αναγνώσιμη από όλους τους αυθεντικοποιημένους χρήστες στο τομέα. Εκεί μπορείτε να βρείτε πολλά διαφορετικά batch, VBScript και PowerShell σενάρια. Πρέπει να ελέγξετε τα σενάρια μέσα σε αυτό καθώς μπορεί να βρείτε ευαίσθητες πληροφορίες όπως κωδικούς πρόσβασης.
Ανάγνωση Μητρώου
Μπορεί να είστε σε θέση να διαβάσετε το μητρώο χρησιμοποιώντας κάποια ανακαλυφθέντα διαπιστευτήρια. Το Impacket reg.py
σας επιτρέπει να δοκιμάσετε:
Post Exploitation
Η προεπιλεγμένη ρύθμιση του διακομιστή Samba βρίσκεται συνήθως στο /etc/samba/smb.conf
και μπορεί να έχει κάποιες επικίνδυνες ρυθμίσεις:
Ρύθμιση | Περιγραφή |
| Επιτρέπεται η καταγραφή των διαθέσιμων κοινών πόρων στην τρέχουσα κοινή χρήση; |
| Απαγορεύεται η δημιουργία και η τροποποίηση αρχείων; |
| Επιτρέπεται στους χρήστες να δημιουργούν και να τροποποιούν αρχεία; |
| Επιτρέπεται η σύνδεση στην υπηρεσία χωρίς τη χρήση κωδικού πρόσβασης; |
| Τηρούνται τα δικαιώματα που έχουν ανατεθεί σε συγκεκριμένο SID; |
| Ποια δικαιώματα πρέπει να ανατεθούν στα νεοδημιουργηθέντα αρχεία; |
| Ποια δικαιώματα πρέπει να ανατεθούν στους νεοδημιουργηθέντες καταλόγους; |
| Ποιο σενάριο πρέπει να εκτελείται κατά την είσοδο του χρήστη; |
| Ποιο σενάριο πρέπει να εκτελείται όταν κλείνει το σενάριο; |
| Πού πρέπει να αποθηκεύεται η έξοδος του μαγικού σεναρίου; |
Η εντολή smbstatus
παρέχει πληροφορίες σχετικά με τον διακομιστή και για ποιοι είναι συνδεδεμένοι.
Authenticate using Kerberos
Μπορείτε να αυθεντικοποιηθείτε στο kerberos χρησιμοποιώντας τα εργαλεία smbclient και rpcclient:
Εκτέλεση Εντολών
crackmapexec
crackmapexec μπορεί να εκτελέσει εντολές καταχρώντας οποιαδήποτε από τις mmcexec, smbexec, atexec, wmiexec με το wmiexec να είναι η προεπιλεγμένη μέθοδος. Μπορείτε να υποδείξετε ποια επιλογή προτιμάτε να χρησιμοποιήσετε με την παράμετρο --exec-method
:
Και οι δύο επιλογές θα δημιουργήσουν μια νέα υπηρεσία (χρησιμοποιώντας \pipe\svcctl μέσω SMB) στη μηχανή του θύματος και θα τη χρησιμοποιήσουν για να εκτελέσουν κάτι (psexec θα ανεβάσει ένα εκτελέσιμο αρχείο στο ADMIN$ share και smbexec θα δείξει σε cmd.exe/powershell.exe και θα βάλει στα επιχειρήματα το payload --file-less technique--). Περισσότερες πληροφορίες σχετικά με psexec και smbexec. Στο kali βρίσκεται στο /usr/share/doc/python3-impacket/examples/
Using parameter-k
μπορείτε να αυθεντικοποιηθείτε μέσω kerberos αντί για NTLM
wmiexec/dcomexec
Εκτελέστε κρυφά μια εντολή shell χωρίς να αγγίξετε τον δίσκο ή να εκτελέσετε μια νέα υπηρεσία χρησιμοποιώντας DCOM μέσω port 135. Στο kali βρίσκεται στο /usr/share/doc/python3-impacket/examples/
Χρησιμοποιώντας παράμετρο -k
μπορείτε να αυθεντικοποιηθείτε μέσω kerberos αντί για NTLM
Εκτέλεση εντολών μέσω του Προγραμματιστή Εργασιών (χρησιμοποιώντας \pipe\atsvc μέσω SMB). Στο kali βρίσκεται στο /usr/share/doc/python3-impacket/examples/
Impacket αναφορά
https://www.hackingarticles.in/beginners-guide-to-impacket-tool-kit-part-1/
Bruteforce διαπιστευτήρια χρηστών
Αυτό δεν συνιστάται, μπορεί να αποκλείσετε έναν λογαριασμό αν υπερβείτε τις μέγιστες επιτρεπόμενες προσπάθειες
SMB relay attack
Αυτή η επίθεση χρησιμοποιεί το εργαλείο Responder για να καταγράψει τις συνεδρίες αυθεντικοποίησης SMB σε ένα εσωτερικό δίκτυο και να τις μεταφέρει σε μια στόχο μηχανή. Εάν η αυθεντικοποίηση είναι επιτυχής, θα σας ρίξει αυτόματα σε ένα σύστημα shell. Περισσότερες πληροφορίες σχετικά με αυτή την επίθεση εδώ.
SMB-Trap
Η βιβλιοθήκη Windows URLMon.dll προσπαθεί αυτόματα να αυθεντικοποιηθεί στον υπολογιστή όταν μια σελίδα προσπαθεί να αποκτήσει πρόσβαση σε κάποιο περιεχόμενο μέσω SMB, για παράδειγμα: img src="\\10.10.10.10\path\image.jpg"
Αυτό συμβαίνει με τις συναρτήσεις:
URLDownloadToFile
URLDownloadToCache
URLOpenStream
URLOpenBlockingStream
Οι οποίες χρησιμοποιούνται από ορισμένους περιηγητές και εργαλεία (όπως το Skype)
SMBTrap using MitMf
NTLM Theft
Παρόμοια με το SMB Trapping, η τοποθέτηση κακόβουλων αρχείων σε ένα σύστημα στόχο (μέσω SMB, για παράδειγμα) μπορεί να προκαλέσει μια προσπάθεια αυθεντικοποίησης SMB, επιτρέποντας την παγίδευση του hash NetNTLMv2 με ένα εργαλείο όπως το Responder. Το hash μπορεί στη συνέχεια να σπάσει εκτός σύνδεσης ή να χρησιμοποιηθεί σε μια SMB relay attack.
HackTricks Automatic Commands
Last updated