Ανακαλύψτε εύκολα κενά ασφαλείας χρησιμοποιώντας το Nmap

Χρήση Nmap

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

Στο προηγούμενο άρθρο, είχαμε δει το OWASP για τον έλεγχο κενών ασφαλείας και παρόλο που το Nmap, είναι το κατεξοχήν εργαλείο εντοπισμού δικτυακών συσκευών και τον έλεγχό τους ως προς το λογισμικό, τις υπηρεσίες και τα ανοιχτά ports που διαθέτουν (δείτε το άρθρο «Μάθε την πιο απλή χρήση του Nmap») μπορεί να χρησιμοποιηθεί και για τον έλεγχο ύπαρξης κενών ασφαλείας.

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

xrisi-nmap

Όπως βλέπετε από την παραπάνω εικόνα, το αποτέλεσμα της σάρωσης στο Nmap αποτελείται από μια λίστα στόχων, με βασικές πληροφορίες όπως τον αριθμό της θύρας (port) και το πρωτόκολλο, το όνομα υπηρεσίας, και την κατάσταση του port.

Η κατάσταση ενός port μπορεί να είναι

  • ανοικτή: σημαίνει ότι μια εφαρμογή στον υπολογιστή-στόχο δέχεται συνδέσεις/πακέτα στην συγκεκριμένη θύρα
  • φιλτραρισμένη: σημαίνει ότι ένα τείχος προστασίας (firewall), ή άλλο εμπόδιο του δικτύου μπλοκάρει τη θύρα με αποτέλεσμα το Nmap να μην μπορεί να πει αν είναι ανοιχτή ή κλειστή.
  • κλειστή: σημαίνει οι θύρες δεν δέχονται συνδέσεις και πακέτα, αν και θα μπορούσαν να ανοίξουν οποιαδήποτε στιγμή.
  • αφιλτράριστη: σημαίνει ότι ανταποκρίνονται στην σάρωση του Nmap, αλλά το Nmap δεν μπορεί να προσδιορίσει εάν είναι ανοικτές ή κλειστές

Το Nmap αναφέρει τους συνδυασμούς κατάστασης ανοιχτές/φιλτραρισμένες και κλειστές/φιλτραρισμένες όταν δεν μπορεί να προσδιορίσει ποιο από τα δύο καταστάσεις περιγράφουν μια θύρα. Ο πινάκας της θύρας μπορεί επίσης να περιλαμβάνει λεπτομέρειες έκδοσης του λογισμικού όταν έχει ζητηθεί τέτοιου είδους ανίχνευση.

Ως «ελβετικός σουγιάς» το Nmap μπορεί να παρέχει περαιτέρω πληροφορίες σχετικά με τους στόχους, συμπεριλαμβανομένης της αντίστροφης ονομάτων DNS (reverse name lookup), πρόβλεψη του λειτουργικού συστήματος, τύποι των συσκευών και τις διευθύνσεις MAC.

NSE Scripts για γρηγορότερη εύρεση ευπαθειών

Μια από τις σημαντικές βελτιώσεις που έχει προσφέρει η κοινότητα του Nmap είναι τα NSE scripts. Δυο απο αυτά είναι το nmap-vulphones και vulscan.

Και τα δύο σχεδιάστηκαν για την προβολή πληροφοριών CVE για μια συγκεκριμένη υπηρεσία όπως SSH, RDP, SMB και πολλά άλλα. Το CVE ή τα κοινά ευάλωτα σημεία και εκθέσεις (Common Vulnerabilities and Exposures)2 είναι μια μέθοδος αναφοράς που χρησιμοποιείται από τους ερευνητές ασφάλειας για να καταγράψουν σε βάσεις δεδομένων αναφορές σχετικά με τις ευπάθειες λογισμικού (individual vulnerabilities).

Για παράδειγμα, το Exploit Database είναι μια δημοφιλής βάση δεδομένων που μπορεί να βρει κάποιος καταχωρημένες όλες τις ευπάθειες που έχουν εντοπιστεί. Το Exploit-DB χρησιμοποιεί CVEs για να καταγράψει τα exploits και τα τρωτά σημεία που σχετίζονται με μια συγκεκριμένη έκδοση μιας υπηρεσίας π.χ. «SSH v7.2». Παρακάτω είναι ένα στιγμιότυπο οθόνης του Exploit-DB όπου μπορείτε να παρατηρήστε τον αριθμό CVE που αντιστοιχεί σε αυτή την συγκεκριμένη έκδοση SSH.

Nmap exploitdb

Οι nmap-vulners και οι vulscan χρησιμοποιούν εγγραφές CVE για να ενισχύσουν την ανίχνευση που χρησιμοποιεί έναντι του στόχου το Nmap. Με λίγα λόγια το Nmap θα προσδιορίσει τις πληροφορίες έκδοσης μιας σαρωμένης υπηρεσίας και στην συνέχεια τα script NSE θα λάβουν αυτές τις πληροφορίες και θα προβάλουν τα σχετικά CVE που μπορούν να χρησιμοποιηθούν για την εκμετάλλευση τις όποιας ευπάθειας βρεθεί σχετικά με την υπηρεσία. Αυτό καθιστά την εύρεση ευπάθειας πολύ απλούστερη.

Παρακάτω είναι ένα παράδειγμα ανίχνευσης έκδοσης υπηρεσίας από το Nmap χωρίς τη χρήση NSEscripts. Το Nmap ανακάλυψε μια υπηρεσία SSH στη θύρα 22 που χρησιμοποιεί την έκδοση «OpenSSH 4.3».

nmap ευπάθειες ssh

Και εδώ είναι ένα παράδειγμα απο την σάρωση του ίδιου διακομιστή αλλά με χρήση NSE scripts. Όπως βλέπετε υπάρχει πολύ πιο ουσιαστική ανάλυση.
nmap ευπάθειες - openssh vulnerability
Το NSE script (που επισημαίνεται με κόκκινο χρώμα) παρουσιάζει τα δώδεκα CVEs που αποκαλύφθηκαν τα τελευταία χρόνια. Τα CVEs κατατάσσονται με βάση την κρισιμότητα οπότε το «9.3»  τοποθετημένο στην κορυφή της λίστας αξίζει να διερευνηθεί. Το vulscan NSE script (που επισημάνθηκε με μπλε χρώμα) παρουσιάζει επίσης διάφορες ενδιαφέρουσες ευπάθειες που σχετίζονται με το OpenSSH έκδοσης v4.3 που εντοπίσαμε.

Και τα δύο αυτά NSE scripts κάνουν εξαιρετική δουλειά προβολής χρήσιμων πληροφοριών σχετικά με ευάλωτες υπηρεσίες. Οπότε ας μάθουμε πρώτα πώς να εγκαταστήσουμε τα scripts NSE προτού να μπει σε χρήση.

Βήμα 1: Εγκατάσταση του Nmap-Vulners

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

Για να εγκαταστήσετε το nmap-vulners, θα χρησιμοποιήσουμε πρώτα την εντολή cd για να μπούμε στον φάκελο του Nmap όπου προσθέτουμε τα scripts (θα χρειαστεί να είστε root / sudo).

cd /usr/share/nmap/scripts/

Στη συνέχεια, αντιγράφουμε το nmap-vulnesi GitHub αποθετήριο

git clone https://github.com/vulnersCom/nmap-vulners.git

Για το vulscan, θα χρειαστεί επίσης να αντιγράψουμε το αποθετήριο GitHub στον κατάλογο Nmap scripts

git clone https://github.com/scipag/vulscan.git

Αυτό ήταν. Δεν χρειάζεται απολύτως καμία διαμόρφωση μετά την εγκατάσταση.

Το vulscan χρησιμοποιεί βάσεις δεδομένων που αποθηκεύονται τοπικά στον υπολογιστή μας. Μπορούμε να δούμε αυτές τις βάσεις δεδομένων στη ρίζα του καταλόγου vulscan. Εκτελέστε την παρακάτω εντολή για να εμφανίσετε τις διαθέσιμες βάσεις δεδομένων.

ls vulscan/*.csv

nmap ευπάθειες vulscan db

Το Vulscan υποστηρίζει μια σειρά από άριστες βάσεις δεδομένων εκμετάλλευσης. Εδώ είναι μια πλήρης λίστα:

Για να διασφαλίσουμε ότι οι βάσεις δεδομένων είναι πλήρως ενημερωμένες, μπορούμε να χρησιμοποιήσουμε το script updateFiles.sh που βρίσκεται στον κατάλογο vulscan/utilities/updater/. Μεταβείτε στον κατάλογο updater πληκτρολογώντας την παρακάτω εντολή σε ένα τερματικό.

cd vulscan/utilities/updater/

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

chmod +x updateFiles.sh

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

./updateFiles.sh

Με αυτόν τον τρόπο, είμαστε έτοιμοι να αρχίσουμε να χρησιμοποιούμε τα script NSE.

Βήμα 2: Σκανάρωντας με το Nmap-Vulners

Η χρήση των script NSE είναι απλή. Το μόνο που πρέπει να κάνουμε είναι να προσθέσουμε την παράμετρο --script στην εντολή Nmap και να πούμε στο Nmap ποιο NSE script θα χρησιμοποιήσει. Για να χρησιμοποιήσουμε το script nmap-vulners, θα χρησιμοποιήσαμε την παρακάτω εντολή.

nmap --script nmap-vulners -sV <target IP>

Το -sV είναι απολύτως απαραίτητο. Με το -sV, λέμε στο Nmap να διερευνήσει τη διεύθυνση προορισμού για πληροφορίες έκδοσης των λογισμικών που θα βρει.

Βήμα 3: Σκανάρωντας με το Vulscan

Μπορούμε να χρησιμοποιήσουμε το Vulscan NSE με τον ίδιο ακριβώς τρόπο όπως και το nmap-vulners:

nmap --script vulscan -sV <target IP>

Από προεπιλογή, το vulscan θα ψ’αχνει σε όλες τις βάσεις δεδομένων ταυτόχρονα! Συνιστώ ανεπιφύλακτα την χρήση μόνο μιας βάσης δεδομένων κάθε φορά. Μπορούμε να το επιτύχουμε προσθέτοντας την παράμετρο vulscandb στην εντολή Nmap και καθορίζοντας μια βάση δεδομένων όπως φαίνεται στα παρακάτω παραδείγματα.

nmap --script vulscan --script-args vulscandb=scipvuldb.csv -sV <target IP>
nmap --script vulscan --script-args vulscandb=exploitdb.csv -sV <target IP>
nmap --script vulscan --script-args vulscandb=securitytracker.csv -sV <target IP>

Βήμα 4: Συνδυάστε τα όλα σε μια εντολή

Τα NSE scripts βελτιώνουν σημαντικά την ευελιξία του Nmap ως σαρωτή ασφαλείας. Για να αξιοποιήσουμε στο έπακρο τη σάρωση έκδοσης του Nmap, μπορούμε να χρησιμοποιήσουμε τόσο το nmap-vulners όσο και το vulscan σε μία εντολή. Για να το κάνουμε αυτό, πληκτρολογούμε την παρακάτω εντολή στο τερματικό μας.

nmap --script nmap-vulners,vulscan --script-args vulscandb=scipvuldb.csv -sV <target IP>

nmap ευπάθειες - openssh vulnerability

Επίλογος

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


Παραπομπές


  1. Nmap (επίσημη σελίδα) 
  2. ExploitDB (επίσημη σελίδα) 
Advertisements

3 σκέψεις σχετικά με το “Ανακαλύψτε εύκολα κενά ασφαλείας χρησιμοποιώντας το Nmap

  1. Με το nmap μπορώ να βρω την ip και το όνομα των υπολογιστων ενος LAN? Η nmap -sn δείχνει μόνο την ip. Υπάρχει άλλος τρόπος?

  2. Η nmap -A υπάρχει στο παράδειγμα στο man page, αλλά δεν δεν εμφανίζει το hostname.
    Επίσης και με την arp -a βλέπω μόνο την ip address.

Σου άρεσε το άρθρο; Πες την άποψή σου... έστω και Ανώνυμα:

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση /  Αλλαγή )

Σύνδεση με %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.