Nmap Summary (ESP)

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24

Παράμετροι

IPs για σάρωση

  • <ip>,<net/mask>: Δείχνουν τις διευθύνσεις ip απευθείας

  • -iL <ips_file>: λίστα_IPs

  • -iR <number>: Αριθμός τυχαίων Ips, μπορείτε να εξαιρέσετε πιθανές Ips με --exclude <Ips> ή --excludefile <file>.

Ανακάλυψη εξοπλισμού

Από προεπιλογή, το Nmap ξεκινά μια φάση ανακάλυψης που αποτελείται από: -PA80 -PS443 -PE -PP

  • -sL: Δεν είναι επεμβατικό, καταχωρεί τους στόχους κάνοντας αιτήσεις DNS για την ανάλυση ονομάτων. Είναι χρήσιμο για να μάθετε αν για παράδειγμα το www.prueba.es/24 όλες οι Ips είναι οι στόχοι μας.

  • -Pn: Χωρίς ping. Αυτό είναι χρήσιμο αν γνωρίζετε ότι όλα είναι ενεργά (αλλιώς, θα μπορούσατε να χάσετε πολύ χρόνο, αλλά αυτή η επιλογή παράγει επίσης ψευδείς αρνητικές απαντήσεις λέγοντας ότι δεν είναι ενεργά), αποτρέπει τη φάση ανακάλυψης.

  • -sn : Χωρίς σάρωση θυρών. Μετά την ολοκλήρωση της φάσης αναγνώρισης, δεν σαρώνει θύρες. Είναι σχετικά αθόρυβο και επιτρέπει μια μικρή σάρωση δικτύου. Με προνόμια στέλνει ένα ACK (-PA) στη θύρα 80, ένα SYN(-PS) στη θύρα 443 και μια αίτηση echo και μια αίτηση Timestamp, χωρίς προνόμια ολοκληρώνει πάντα συνδέσεις. Εάν ο στόχος είναι το δίκτυο, χρησιμοποιεί μόνο ARP(-PR). Εάν χρησιμοποιηθεί με μια άλλη επιλογή, πέφτουν μόνο τα πακέτα της άλλης επιλογής.

  • -PR: Ping ARP. Χρησιμοποιείται από προεπιλογή κατά την ανάλυση υπολογιστών στο δίκτυό μας, είναι ταχύτερο από τη χρήση pings. Εάν δεν θέλετε να χρησιμοποιήσετε πακέτα ARP, χρησιμοποιήστε --send-ip.

  • -PS <ports>: Αποστέλλει πακέτα SYN στα οποία αν απαντήσει με SYN/ACK είναι ανοιχτή (στα οποία απαντά με RST για να μην ολοκληρωθεί η σύνδεση), αν απαντά με RST είναι κλειστή και αν δεν απαντά είναι μη προσβάσιμη. Σε περίπτωση που δεν έχετε προνόμια, χρησιμοποιείται αυτόματα μια συνολική σύνδεση. Εάν δεν δίνονται θύρες, το στέλνει στη θύρα 80.

  • -PA <ports>: Όπως το προηγούμενο αλλά με ACK, συνδυάζοντας και τα δύο δίνει καλύτερα αποτελέσματα.

  • -PU <ports>: Το αντίθετο, στέλνονται σε θύρες που αναμένεται να είναι κλειστές. Κάποιοι τοίχοι πυρασφάλειας ελέγχουν μόνο τις συνδέσεις TCP. Εάν είναι κλειστό απαντά με port unreachable, εάν απαντά με κάποιο άλλο icmp ή δεν απαντά αφήνεται ως προορισμός μη προσβάσιμος.

  • -PE, -PP, -PM : ICMP PINGS: απάντηση echo, timestamp και addresmask. Αποστέλλονται για να μάθουμε αν ο στόχος είναι ενεργός.

  • -PY<ports>: Αποστέλλει SCTP INIT probes στη θύρα 80 από προεπιλογή, INIT-ACK(ανοιχτή) ή ABORT(κλειστή) ή τίποτα ή ICMP unreachable(ανενεργή) μπορεί να απαντηθεί.

  • -PO <protocols>: Υποδεικνύεται ένα πρωτόκολλο στα headers, από προεπιλογή 1(ICMP), 2(IGMP) και 4(Encap IP). Για τα πρωτόκολλα ICMP, IGMP, TCP (6) και UDP (17) αποστέλλονται τα headers των πρωτοκόλλων, για τα υπόλοιπα αποστέλλεται μόνο το IP header. Ο σκοπός αυτού είναι ότι λόγω της ανωμαλίας των headers, απαντώνται πρωτόκολλα unreachable ή απαντήσεις του ίδιου πρωτοκόλλου για να γνωρίζουμε αν είναι ενεργό.

  • -n: Χωρίς DNS

  • -R: Πάντα DNS

Τεχνικές σάρωσης θυρών

  • -sS: Δεν ολοκληρώνει τη σύνδεση έτσι δεν αφήνει ίχνη, πολύ καλό αν μπορεί να χρησιμοποιηθεί. (προνόμια) Είναι αυτό που χρησιμοποιείται από προεπιλογή.

  • -sT: Ολοκληρώνει τη σύνδεση, οπότε αφήνει ίχνη, αλλά μπορεί να χρησιμοποιηθεί με βεβαιότητα. Από προεπιλογή χωρίς προνόμια.

  • -sU: Πιο αργό, για UDP. Κυρίως: DNS(53), SNMP(161,162), DHCP(67 και 68), (-sU53,161,162,67,68): ανοιχτό(απάντηση), κλειστό(port unreachable), φιλτραρισμένο (άλλο ICMP), ανοιχτό/φιλτραρισμένο (τίποτα). Σε περίπτωση ανοιχτού/φιλτραρισμένου, το -sV στέλνει πολλαπλά αιτήματα για να ανιχνεύσει οποιαδήποτε από τις εκδόσεις που υποστηρίζει το nmap και μπορεί να ανιχνεύσει την πραγματική κατάσταση. Αυξάνει πολύ τον χρόνο.

  • -sY: Το πρωτόκολλο SCTP αποτυγχάνει να καθιερώσει τη σύνδεση, έτσι δεν υπάρχουν καταγραφές, λειτουργεί όπως το -PY

  • -sN,-sX,-sF: Null, Fin, Xmas, μπορούν να διεισδύσουν σε μερικούς τοίχους πυρασφάλειας και να εξάγουν πληροφορίες. Βασίζονται στο γεγονός ότι μη συμμορφούμενες μηχανές θα πρέπει να απαντούν με RST σε όλα τα αιτήματα που δεν έχουν ανασηκωθεί με SYN, RST ή ACK σημαίες: ανοιχτό/φιλτραρισμένο(τίποτα), κλειστό(RST), φιλτραρισμένο (ICMP unreachable). Αναξιόπιστο σε Windows, CIsco, BSDI και OS/400. Σε unix ναι.

  • -sM: Σάρωση Maimon: Αποστέλλει σημαίες FIN και ACK, χρησιμοποιείται για BSD, αυτή τη στιγμή θα επιστρέψει όλα ως κλειστά.

  • -sA, sW: ACK και Window, χρησιμοποιούνται για την ανίχνευση των τοίχων πυρασφάλειας, για να μάθουμε αν οι θύρες είναι φιλτραρισμένες ή όχι. Το -sW διακρίνει μεταξύ ανοιχτών/κλειστών αφού τα ανοιχτά απαντούν με μια διαφορετική τιμή παραθύρου: ανοιχτό (RST με τιμή παραθύρου διαφορετική από 0), κλειστό (RST παράθυρο = 0), φιλτραρισμένο (ICMP unreachable ή τίποτα). Όχι όλοι οι υπολογιστές λειτουργούν με αυτόν τον τρόπο, οπότε αν είναι όλα κλειστά, δεν λειτουργεί, αν είναι λίγα ανοιχτά, λειτουργεί καλά, και αν είναι πολλά ανοιχτά και λίγα κλειστά, λειτουργεί αντίστροφα.

  • -sI: Ανενεργή σάρωση. Για τις περιπτώσεις στις οποίες υπάρχει ένας ενεργός τοίχος πυρασφάλειας αλλά γνωρίζουμε ότι δεν φιλτράρει σε μια συγκεκριμένη Ip (ή όταν απλά θέλουμε ανωνυμία) μπορούμε να χρησιμοποιήσουμε τον σαρωτή --osscan-guess Όταν η ανίχνευση του λειτουργικού συστήματος δεν είναι τέλεια, αυτό κάνει το εργαλείο να προσπαθήσει περισσότερο.

Scripts

--script <όνομα αρχείου>|<κατηγορία>|<κατάλογος>|<έκφραση>[,...]

Για να χρησιμοποιήσετε τα προεπιλεγμένα, αρκεί να χρησιμοποιήσετε -sC ή --script=default

Οι διαθέσιμοι τύποι είναι: auth, broadcast, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version, και vuln

  • Auth: εκτελεί όλα τα διαθέσιμα scripts για πιστοποίηση

  • Default: εκτελεί τα προεπιλεγμένα scripts του εργαλείου

  • Discovery: ανακτά πληροφορίες από τον στόχο ή το θύμα

  • External: script για χρήση εξωτερικών πόρων

  • Intrusive: χρησιμοποιεί scripts που θεωρούνται ενοχλητικοί για το θύμα ή τον στόχο

  • Malware: ελέγχει αν υπάρχουν ανοιχτές συνδέσεις λόγω κακόβουλου κώδικα ή backdoors

  • Safe: εκτελεί scripts που δεν είναι ενοχλητικοί

  • Vuln: ανακαλύπτει τις πιο γνωστές ευπάθειες

  • All: εκτελεί απόλυτα όλα τα διαθέσιμα scripts με επέκταση NSE

Για να αναζητήσετε scripts:

nmap --script-help="http-*" -> Αυτά που ξεκινούν με http-

nmap --script-help="not intrusive" -> Όλα εκτός από αυτά

nmap --script-help="default or safe" -> Αυτά που είναι στο ένα ή στο άλλο ή και στα δύο

nmap --script-help="default and safe" --> Αυτά που είναι και στα δύο

nmap --script-help="(default or safe or intrusive) and not http-*"

--script-args <n1>=<v1>,<n2>={<n3>=<v3>},<n4>={<v4>,<v5>}

--script-args-file <όνομα αρχείου>

--script-help <όνομα αρχείου>|<κατηγορία>|<κατάλογος>|<έκφραση>|all[,...]

--script-trace ---> Παρέχει πληροφορίες σχετικά με την πρόοδο του script

--script-updatedb

Για να χρησιμοποιήσετε ένα script απλά πρέπει να γράψετε: nmap --script Όνομα_του_script στόχος --> Με την εντολή του script θα εκτελεστεί τόσο το script όσο και το εργαλείο σάρωσης, οπότε μπορείτε επίσης να προσθέσετε "safe=1" για να εκτελεστούν μόνο τα ασφαλή.

Έλεγχος χρόνου

Το Nmap μπορεί να τροποποιήσει το χρόνο σε δευτερόλεπτα, λεπτά, ms: --host-timeout arguments 900000ms, 900, 900s, και 15m κάνουν το ίδιο πράγμα.

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

Μπορείτε να το αλλάξετε με**--min-hostgroup** <αριθμός στόχων>; --max-hostgroup <αριθμός στόχων> (Ρύθμιση μεγέθους παράλληλης σάρωσης ομάδων)

Μπορείτε να ελέγξετε τον αριθμό των σαρωτών που λειτουργούν παράλληλα, αλλά είναι καλύτερο να μην το κάνετε (το Nmap έχει ήδη ενσωματωμένο αυτόματο έλεγχο βάσει της κατάστασης του δικτύου): --min-parallelism <αριθμός εξερευνήσεων>; --max-parallelism <αριθμός εξερευνήσεων>

Μπορείτε να τροποποιήσετε το χρονικό όριο rtt, αλλά συνήθως δεν είναι απαραίτητο: --min-rtt-timeout <χρόνος>, --max-rtt-timeout <χρόνος>, --initial-rtt-timeout <χρόνος>

Μπορείτε να τροποποιήσετε τον αριθμό των προσπαθειών:--max-retries <αριθμός προσπαθειών>

Μπορείτε να τροποποιήσετε το χρόνο σάρωσης ενός στόχου: --host-timeout <χρόνος>

Μπορείτε να τροποποιήσετε το χρόνο μεταξύ κάθε δοκιμής για να πηγαίνει αργά: --scan-delay <χρόνος>; --max-scan-delay <χρόνος>

Μπορείτε να τροποποιήσετε τον αριθμό πακέτων ανά δευτερόλεπτο: --min-rate <αριθμός>; --max-rate <αριθμός>

Πολλές θύρες χρειάζονται πολύ χρόνο για να ανταποκριθούν όταν είναι φιλτραρισμένες ή κλειστές, αν ενδιαφέρονται μόνο οι ανοιχτές, μπορείτε να πηγαίνετε πιο γρήγορα με: --defeat-rst-ratelimit

Για να ορίσετε πόσο επιθετικό θέλετε να είναι το Nmap: -T paranoid|sneaky|polite|normal|aggressive|insane

-T (0-1)

-T0 --> Σαρώνει μόνο μια θύρα τη φορά και περιμένει 5 λεπτά μέχρι την επόμενη

-T1 και T2 --> Πολύ παρόμοια αλλά περιμένουν μόνο 15 και 0,4 δευτερόλεπτα αντίστοιχα μεταξύ κάθε δοκιμής

-T3 --> Προεπιλεγμένη λειτουργία, συμπεριλαμβάνει παράλληλη εκτέλεση

-T4 --> --max-rtt-timeout 1250ms --min-rtt-timeout 100ms --initial-rtt-timeout 500ms --max-retries 6 --max-scan-delay 10ms

-T5 --> --max-rtt-timeout 300ms --min-rtt-timeout 50ms --initial-rtt-timeout 250ms --max-retries 2 --host-timeout 15m --max-scan-delay 5ms

Τείχος πυρασφάλειας/IDS

Αποκλείουν τις θύρες και αναλύουν πακέτα.

-f Για να κατακερματίσετε πακέτα, από προεπιλογή τα κατακερματίζει σε 8bytes μετά την κεφαλίδα, για να καθορίσετε αυτό το μέγεθος χρησιμοποιήστε ..mtu (με αυτό, μην χρησιμοποιείτε -f), το offset πρέπει να είναι πολλαπλάσιο του 8. Τα εργαλεία ανίχνευσης εκδόσεων και τα scripts δεν υποστηρίζουν την κατακερματισμό

-D decoy1,decoy2,ME Το Nmap στέλνει σαρώσεις αλλά με άλλες διευθύνσεις IP ως προέλευση, με αυτόν τον τρόπο σας κρύβει. Αν βάλετε το ME στη λίστα, το Nmap θα σας τοποθετήσει εκεί, καλύτερα βάλτε 5 ή 6 πριν από εσάς για να σας κρύψει πλήρως. Μπορείτε να δημιουργήσετε τυχαίες διευθύνσεις IP με RND:<αριθμός> Για να δημιουργήσετε <αριθμό> τυχαίες διευθύνσεις IP. Δεν λειτουργούν με ανίχνευση εκδόσεων χωρίς σύνδεση TCP. Αν βρίσκεστε μέσα σε ένα δίκτυο, σας ενδιαφέρει να χρησιμοποιήσετε διευθύνσεις IP που είναι ενεργές, διότι αλλιώς θα είναι πολύ εύκολο να ανακαλυφθεί ότι είστε ο μοναδικός ενεργός.

Για να χρησιμοποιήσετε τυχαίες διευθύνσεις IP: nmap -D RND: 10 Στόχος_IP

-S IP Όταν το Nmap δεν ανιχνεύει τη διεύθυνση IP σας, πρέπει να τη δώσετε με αυτό. Χρησιμοποιείται επίσης --proxies <Λίστα διευθύνσεων URL προκειμένου> Για να χρησιμοποιήσετε proxies, μερικές φορές ένα proxy δεν διατηρεί τόσες ανοιχτές συνδέσεις όσες επιθυμεί το nmap, οπότε θα πρέπει να τροποποιήσετε την παράλληλη εκτέλεση: --max-parallelism

-sP Για την ανίχνευση των οικοδεσποτών στο δίκτυο στο οποίο βρισκόμαστε μέσω ARP

Πολλοί διαχειριστές δημιουργούν μια κανόνα στον τοίχο προστασίας που επιτρέπει τη διέλευση όλων των πακέτων που προέρχονται από ένα συγκεκριμένο θύρα (όπως οι 20, 53 και 67), μπορούμε να πούμε στο nmap να στείλει τα πακέτα μας από αυτές τις θύρες: nmap --source-port 53 Ip

Εξόδοι

-oN file Κανονική έξοδος

-oX file Έξοδος XML

-oS file Έξοδος για script kiddies

-oG file Έξοδος σε μορφή που μπορεί να αναζητηθεί με grep

-oA file Όλα εκτός από -oS

-v level Επίπεδο λεπτομέρειας

-d level Αποσφαλμάτωση

--reason Λόγος του οικοδεσπότη και κατάσταση

--stats-every time Κάθε τόσο χρόνο μας λέει πώς πάει

--packet-trace Για να δούμε ποια πακέτα αποστέλλονται, μπορούμε να καθορίσουμε φίλτρα όπως: --version-trace ή --script-trace

--open εμφανίζει τους ανοιχτούς, τους ανοιχτούς|φιλτραρισμένους και τους μη φιλτραρισμένους

--resume file Εκτυπώνει ένα σύνοψη

Διάφορα

-6 Επιτρέπει το ipv6

-A Είναι το ίδιο με -O -sV -sC --traceroute

Χρόνος εκτέλεσης

Κατά τη διάρκεια της εκτέλεσης του nmap μπορούμε να αλλάξουμε επιλογές:

v / V Αύξηση / μείωση του επιπέδου λεπτομέρειας

d / D Αύξηση / μείωση του επιπέδου αποσφαλμάτωσης

p / P Ενεργοποίηση / απενεργοποίηση της καταγραφής πακέτων

? Εκτύπωση οθόνης βοήθειας αλληλεπίδρασης κατά τη διάρκεια της εκτέλεσης

Vulscan

Σενάριο του nmap που εξετάζει τις εκδόσεις των υπηρεσιών που ανακτώνται από μια βάση δεδομένων εκτός σύνδεσης (που κατεβάζει από πολύ σημαντικές άλλες) και επιστρέφει τις πιθανές ευπάθειες

Οι βάσεις δεδομένων που χρησιμοποιεί είναι:

  1. Securitytracker.csv | http://www.securitytracker.com

Για να το κατεβάσετε και να το εγκαταστήσετε στο φάκελο του Nmap:

wget http://www.computec.ch/projekte/vulscan/download/nmap_nse_vulscan-2.0.tar.gz && tar -czvf nmap_nse_vulscan-2.0.tar.gz vulscan/ && sudo cp -r vulscan/ /usr/share/nmap/scripts/

Επίσης, θα πρέπει να κατεβάσετε τα πακέτα των βάσεων δεδομένων και να τα προσθέσετε στο /usr/share/nmap/scripts/vulscan/

Χρήση:

Για να χρησιμοποιήσετε όλα: sudo nmap -sV --script=vulscan HOST_A_ESCANEAR

Για να χρησιμοποιήσετε μια συγκεκριμένη βάση δεδομένων: sudo nmap -sV --script=vulscan --script-args vulscandb=cve.csv HOST_A_ESCANEAR

Επιτάχυνση της υπηρεσίας σάρωσης του Nmap x16

Σύμφωνα με αυτήν την ανάρτηση μπορείτε να επιταχύνετε την ανάλυση υπηρεσιών του nmap τροποποιώντας όλες τις τιμές totalwaitms σε /usr/share/nmap/nmap-service-probes σε 300 και το tcpwrappedms σε 200.

Επιπλέον, οι εξετάσεις που δεν έχουν καθορισμένη ειδικά την τιμή servicewaitms χρησιμοποιούν μια προεπιλεγμένη τιμή των 5000. Επομένως, μπορούμε είτε να προσθέσουμε τιμές σε κάθε μια από τις εξετάσεις, είτε να μεταγλωττίσουμε το nmap μόνοι μας και να αλλάξουμε την προεπιλεγμένη τιμή στο service_scan.h.

Αν δεν θέλετε να αλλάξετε καθόλου τις τιμές των totalwaitms και tcpwrappedms στο αρχείο /usr/share/nmap/nmap-service-probes, μπορείτε να επεξεργαστείτε τον κώδικα ανάλυσης έτσι ώστε αυτές οι τιμές στο αρχείο nmap-service-probes να αγνοούνται εντελώς.

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Last updated