80,443 - Pentesting Web Methodology
Αν σας ενδιαφέρει η καριέρα στο χάκινγκ και το χάκαρισμα του αχάκαρτου - σας προσλαμβάνουμε! (απαιτείται άριστη γνώση γραπτού και προφορικού Πολωνικών).
Βασικές Πληροφορίες
Η υπηρεσία ιστού είναι η πιο συνηθισμένη και εκτεταμένη υπηρεσία και υπάρχουν πολλοί διαφορετικοί τύποι ευπαθειών.
Προεπιλεγμένη θύρα: 80 (HTTP), 443 (HTTPS)
Οδηγίες Web API
pageWeb API PentestingΣύνοψη μεθοδολογίας
Σε αυτήν τη μεθοδολογία θα υποθέσουμε ότι πρόκειται να επιτεθείτε σε έναν τομέα (ή υποτομέα) και μόνο σε αυτόν. Έτσι, θα πρέπει να εφαρμόσετε αυτήν τη μεθοδολογία σε κάθε ανακαλυφθέντα τομέα, υποτομέα ή IP με μη καθορισμένο διακομιστή web εντός του πεδίου εφαρμογής.
Έκδοση Διακομιστή (Ευπάθειες;)
Αναγνώριση
Ελέγξτε αν υπάρχουν γνωστές ευπάθειες για την έκδοση του διακομιστή που εκτελείται. Τα κεφαλίδες HTTP και τα cookies της απόκρισης μπορεί να είναι πολύ χρήσιμα για την αναγνώριση των τεχνολογιών και/ή έκδοσης που χρησιμοποιούνται. Η σάρωση Nmap μπορεί να αναγνωρίσει την έκδοση του διακομιστή, αλλά μπορεί επίσης να είναι χρήσιμα τα εργαλεία whatweb, webtech ή https://builtwith.com/:
Αναζήτηση για ευπαθείς του web application έκδοση
Έλεγχος εάν υπάρχει WAF
Κόλπα τεχνολογίας Web
Μερικά κόλπα για εύρεση ευπαθειών σε διαφορετικές καλά γνωστές τεχνολογίες που χρησιμοποιούνται:
Λάβετε υπόψη ότι το ίδιο domain μπορεί να χρησιμοποιεί διαφορετικές τεχνολογίες σε διαφορετικές θύρες, φάκελους και υποτομείς. Εάν το web application χρησιμοποιεί κάποια καλά γνωστή τεχνολογία/πλατφόρμα που αναφέρθηκε πριν ή οποιαδήποτε άλλη, μην ξεχάσετε να αναζητήσετε στο Internet νέα κόλπα (και ενημερώστε με!).
Αναθεώρηση Κώδικα Πηγής
Εάν ο κώδικας πηγής της εφαρμογής είναι διαθέσιμος στο github, εκτός από το να πραγματοποιήσετε μόνοι σας ένα Λευκό κουτί τεστ της εφαρμογής, υπάρχει κάποια πληροφορία που θα μπορούσε να είναι χρήσιμη για το τρέχον Μαύρο-Κουτί τεστ:
Υπάρχει Αρχείο Αλλαγών ή Readme ή Αρχείο Έκδοσης ή οποιαδήποτε άλλη πληροφορία με πληροφορίες έκδοσης προσβάσιμη μέσω του web;
Πώς και πού αποθηκεύονται οι διαπιστεύσεις; Υπάρχει κάποιο (προσβάσιμο;) αρχείο με διαπιστεύσεις (ονόματα χρηστών ή κωδικούς πρόσβασης);
Οι κωδικοί πρόσβασης είναι σε καθαρό κείμενο, κρυπτογραφημένοι ή ποιος αλγόριθμος κατακερματισμού χρησιμοποιείται;
Χρησιμοποιεί κάποιο κύριο κλειδί για την κρυπτογράφηση κάτι; Ποιος αλγόριθμος χρησιμοποιείται;
Μπορείτε να έχετε πρόσβαση σε οποιοδήποτε από αυτά τα αρχεία εκμεταλλευόμενοι κάποια ευπάθεια;
Υπάρχει κάποια ενδιαφέρουσα πληροφορία στο github (λυμένα και μη λυμένα) θέματα; Ή στο ιστορικό δέσμευσης (ίσως κάποιος κωδικός εισήχθη μέσα σε μια παλιά δέσμευση)?
Αυτόματοι σαρωτές
Αυτόματοι σαρωτές γενικής χρήσης
Σαρωτές CMS
Εάν χρησιμοποιείται ένα CMS, μην ξεχνάτε να εκτελέσετε ένα σαρωτή, ίσως βρεθεί κάτι ενδιαφέρον:
Clusterd: JBoss, ColdFusion, WebLogic, Tomcat, Railo, Axis2, Glassfish CMSScan: WordPress, Drupal, Joomla, vBulletin ιστοσελίδες για θέματα ασφαλείας. (Γραφικό περιβάλλον) VulnX: Joomla, Wordpress, Drupal, PrestaShop, Opencart CMSMap: (W)ordpress, (J)oomla, (D)rupal ή (M)oodle droopscan: Drupal, Joomla, Moodle, Silverstripe, Wordpress
Σε αυτό το σημείο θα πρέπει να έχετε ήδη κάποιες πληροφορίες για τον web server που χρησιμοποιείται από τον πελάτη (εάν έχει δοθεί κάποια δεδομένα) και μερικά κόλπα που πρέπει να έχετε υπόψη κατά τη διάρκεια της δοκιμής. Αν είστε τυχεροί, μπορεί να έχετε βρει ακόμα και ένα CMS και να έχετε εκτελέσει κάποιο scanner.
Ανακάλυψη Εφαρμογής Web Βήμα-προς-Βήμα
Από αυτό το σημείο θα αρχίσουμε να αλληλεπιδρούμε με την web εφαρμογή.
Αρχικοί Έλεγχοι
Προεπιλεγμένες σελίδες με ενδιαφέρουσες πληροφορίες:
/robots.txt
/sitemap.xml
/crossdomain.xml
/clientaccesspolicy.xml
/.well-known/
Ελέγξτε επίσης τα σχόλια στις κύριες και δευτερεύουσες σελίδες.
Εξαναγκασμός σφαλμάτων
Οι web servers μπορεί να συμπεριφέρονται απροσδόκητα όταν στέλνονται παράξενα δεδομένα σε αυτούς. Αυτό μπορεί να ανοίξει ευπάθειες ή αποκάλυψη ευαίσθητων πληροφοριών.
Πρόσβαση σε ψεύτικες σελίδες όπως /whatever_fake.php (.aspx,.html,.κλπ)
Προσθήκη "[]", "]]" και "[[" σε τιμές cookie και τιμές παραμέτρων για δημιουργία σφαλμάτων
Δημιουργία σφάλματος δίνοντας είσοδο ως
/~randomthing/%s
στο τέλος του URLΔοκιμάστε διαφορετικές HTTP Μέθοδους όπως PATCH, DEBUG ή λανθασμένες όπως FAKE
Έλεγχος εάν μπορείτε να μεταφορτώσετε αρχεία (PUT μέθοδος, WebDav)
Εάν ανακαλύψετε ότι το WebDav είναι ενεργοποιημένο αλλά δεν έχετε αρκετές άδειες για μεταφόρτωση αρχείων στον ριζικό φάκελο, προσπαθήστε:
Επίθεση με βία στα διαπιστευτήρια
Μεταφόρτωση αρχείων μέσω WebDav στο υπόλοιπο των εντοπισμένων φακέλων μέσα στην ιστοσελίδα. Μπορεί να έχετε άδειες για μεταφόρτωση αρχείων σε άλλους φακέλους.
Ευπάθειες SSL/TLS
Εάν η εφαρμογή δεν αναγκάζει τη χρήση HTTPS σε καμία περίπτωση, τότε είναι ευάλωτη σε MitM
Εάν η εφαρμογή αποστέλλει ευαίσθητα δεδομένα (κωδικούς πρόσβασης) χρησιμοποιώντας HTTP. Τότε είναι μια υψηλή ευπάθεια.
Χρησιμοποιήστε το testssl.sh για έλεγχο ευπαθειών (Σε προγράμματα ανταμοιβής ευρημάτων πιθανόν αυτού του είδους ευπάθειες δεν θα γίνουν δεκτές) και χρησιμοποιήστε το a2sv για επανέλεγχο των ευπαθειών:
Πληροφορίες σχετικά με ευπάθειες SSL/TLS:
Spidering
Εκκινήστε κάποιο είδος αράχνης μέσα στον ιστό. Ο στόχος της αράχνης είναι να βρει όσο το δυνατόν περισσότερα μονοπάτια από τη δοκιμαζόμενη εφαρμογή. Επομένως, θα πρέπει να χρησιμοποιηθεί web crawling και εξωτερικές πηγές για να βρεθούν όσο το δυνατόν περισσότερα έγκυρα μονοπάτια.
gospider (go): HTML αράχνη, LinkFinder σε αρχεία JS και εξωτερικές πηγές (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
hakrawler (go): HTML αράχνη, με LinkFinder για αρχεία JS και το Archive.org ως εξωτερική πηγή.
dirhunt (python): HTML αράχνη, επίσης ενδεικτική για "juicy αρχεία".
evine (go): Διαδραστική CLI HTML αράχνη. Αναζητά επίσης στο Archive.org.
meg (go): Αυτό το εργαλείο δεν είναι μια αράχνη, αλλά μπορεί να είναι χρήσιμο. Μπορείτε απλά να υποδείξετε ένα αρχείο με hosts και ένα αρχείο με μονοπάτια και το meg θα ανακτήσει κάθε μονοπάτι σε κάθε κόμβο και θα αποθηκεύσει την απόκριση.
urlgrab (go): HTML αράχνη με δυνατότητες απεικόνισης JS. Ωστόσο, φαίνεται ότι δεν συντηρείται, η προεπιλεγμένη έκδοση είναι παλιά και ο τρέχων κώδικας δεν μεταγλωτίζεται.
gau (go): HTML αράχνη που χρησιμοποιεί εξωτερικούς παρόχους (wayback, otx, commoncrawl).
ParamSpider: Αυτό το σενάριο θα βρει URLs με παραμέτρους και θα τα καταχωρίσει.
galer (go): HTML αράχνη με δυνατότητες απεικόνισης JS.
LinkFinder (python): HTML αράχνη, με δυνατότητες ομορφοποίησης JS ικανή να αναζητήσει νέα μονοπάτια σε αρχεία JS. Μπορεί να αξίζει επίσης να ρίξετε μια ματιά στο JSScanner, το οποίο είναι ένα περιτύλιγμα του LinkFinder.
goLinkFinder (go): Για την εξαγωγή σημείων αναφοράς τόσο από την πηγή HTML όσο και από ενσωματωμένα αρχεία javascript. Χρήσιμο για κυνηγούς ευκαιριών ευπάθειας, ομάδες ερυθρού και ειδικούς ασφάλειας πληροφοριών.
JSParser (python2.7): Ένα σενάριο python 2.7 που χρησιμοποιεί Tornado και JSBeautifier για να αναλύσει σχετικές διευθύνσεις URL από αρχεία JavaScript. Χρήσιμο για την εύκολη ανακάλυψη αιτημάτων AJAX. Φαίνεται να μην συντηρείται.
relative-url-extractor (ruby): Δεδομένου ενός αρχείου (HTML) θα εξάγει URLs από αυτό χρησιμοποιώντας εξυπνούς κανόνες εκφράσεων για να βρει και να εξάγει τα σχετικά URLs από άσχημα (συμπιεσμένα) αρχεία.
JSFScan (bash, πολλά εργαλεία): Συγκεντρώνει ενδιαφέρουσες πληροφορίες από αρχεία JS χρησιμοποιώντας πολλά εργαλεία.
subjs (go): Βρίσκει αρχεία JS.
page-fetch (go): Φορτώνει μια σελίδα σε ένα headless πρόγραμμα περιήγησης και εκτυπώνει όλες τις διευθύνσεις URL που φορτώθηκαν για να φορτώσει τη σελίδα.
Feroxbuster (rust): Εργαλείο ανακάλυψης περιεχομένου που συνδυάζει διάφορες επιλογές των προηγούμενων εργαλείων.
Javascript Parsing: Μια επέκταση Burp για την εύρεση μονοπατιών και παραμέτρων σε αρχεία JS.
Sourcemapper: Ένα εργαλείο που δεδομένου του URL .js.map θα σας δώσει τον καλύτερο κώδικα JS.
xnLinkFinder: Αυτό είναι ένα εργαλείο που χρησιμοποιείται για την ανακάλυψη σημείων αναφοράς για ένα συγκεκριμένο στόχο.
waymore: Ανακαλύψτε συνδέσμους από το wayback machine (και κατεβάστε τις απαντήσεις στο wayback και αναζητήστε περισσότερους συνδέσμους
HTTPLoot (go): Αναζητήστε (ακόμα και συμπληρώνοντας φόρμες) και βρείτε επίσης ευαίσθητες πληροφορίες χρησιμοποιώντας συγκεκριμένες regexes.
SpiderSuite: Το Spider Suite είναι ένα προηγμένο πολυχαρακτηριστικό GUI εργαλείο ασφάλειας ιστού Crawler/Spider σχεδιασμένο για επαγγελματίες κυβερνοασφάλειας.
jsluice (go): Είναι ένα πακέτο Go και εργαλείο γραμμής εντολών για την εξαγωγή διευθύνσεων URL, μονοπατιών, μυστικών και άλλων ενδιαφερουσών δεδομένων από τον κώδικα πηγής JavaScript.
ParaForge: Το ParaForge είναι μια απλή επέκταση του Burp Suite για εξαγωγή των παραμέτρων και των σημείων αναφοράς από το αίτημα για τη δημιουργία προσαρμοσμένης λίστας λέξεων για fuzzing και απαρίθμηση.
katana (go): Εξαιρετικό εργαλείο για αυτό.
Επίθεση Brute Force σε καταλόγους και αρχεία
Ξεκινήστε την επίθεση Brute Force από τον ριζικό φάκελο και βεβαιωθείτε ότι εφαρμόζετε επίθεση Brute Force σε όλους τους βρεθέντες καταλόγους χρησιμοποιώντας αυτήν τη μέθοδο και όλους τους καταλόγους που ανακαλύφθηκαν από την αράχνη (μπορείτε να κάνετε αυτήν την επίθεση Brute Force αναδρομικά και να προσθέτετε στην αρχή της χρησιμοποιούμενης λίστας λέξεων τα ονόματα των βρεθέντων καταλόγων). Εργαλεία:
Dirb / Dirbuster - Συμπεριλαμβάνεται στο Kali, παλιό (και αργό) αλλά λειτουργικό. Επιτρέπει αυτόματα υπογεγραμμένα πιστοποιητικά και αναδρομική αναζήτηση. Πολύ αργό σε σύγκριση με τις άλλες επιλογές.
Dirsearch (python): Δεν επιτρέπει αυτόματα υπογεγραμμένα πιστοποιητικά αλλά επιτρέπει αναδρομική αναζήτηση.
Gobuster (go): Επιτρέπει αυτόματα υπογεγραμμένα πιστοποιητικά,
/usr/share/wordlists/dirb/common.txt
/usr/share/wordlists/dirb/big.txt
/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
Σημείωση ότι κάθε φορά που ανακαλύπτετε ένα νέο κατάλογο κατά τη διαδικασία της επίθεσης με δύναμη ή της ανάρριψης ιστοσελίδων, πρέπει να γίνει επίθεση με δύναμη.
Τι να ελέγξετε σε κάθε αρχείο που βρίσκετε
Έλεγχος σπασμένων συνδέσμων: Βρείτε σπασμένους συνδέσμους μέσα σε HTML που μπορεί να είναι επιρρεπείς σε κατάληψη
Αντίγραφα αρχείων: Αφού βρείτε όλα τα αρχεία, ψάξτε για αντίγραφα όλων των εκτελέσιμων αρχείων (".php", ".aspx"...). Συνήθεις παραλλαγές ονομασίας για ένα αντίγραφο είναι: file.ext~, #file.ext#, ~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp και file.old. Μπορείτε επίσης να χρησιμοποιήσετε το εργαλείο bfac ή backup-gen.
Ανακάλυψη νέων παραμέτρων: Μπορείτε να χρησιμοποιήσετε εργαλεία όπως το Arjun, parameth, x8 και Param Miner για να ανακαλύψετε κρυμμένες παραμέτρους. Αν μπορείτε, μπορείτε να δοκιμάσετε κρυμμένες παραμέτρους σε κάθε εκτελέσιμο αρχείο ιστοσελίδας.
Όλες οι προεπιλεγμένες λίστες λέξεων του Arjun: https://github.com/s0md3v/Arjun/tree/master/arjun/db
Param-miner "params": https://github.com/PortSwigger/param-miner/blob/master/resources/params
Assetnote "parameters_top_1m": https://wordlists.assetnote.io/
nullenc0de "params.txt": https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773
Σχόλια: Ελέγξτε τα σχόλια όλων των αρχείων, μπορείτε να βρείτε διαπιστευτήρια ή κρυφή λειτουργικότητα.
Εάν παίζετε CTF, ένα "συνηθισμένο" κόλπος είναι να κρύψετε πληροφορίες μέσα στα σχόλια στα δεξιά της σελίδας (χρησιμοποιώντας εκατοντάδες κενά ώστε να μην βλέπετε τα δεδομένα αν ανοίξετε τον πηγαίο κώδικα με τον περιηγητή). Άλλη πιθανότητα είναι να χρησιμοποιήσετε πολλές νέες γραμμές και να κρύψετε πληροφορίες σε ένα σχόλιο στο κάτω μέρος της ιστοσελίδας.
Κλειδιά API: Εάν βρείτε κάποιο κλειδί API υπάρχει οδηγός που επισημαίνει πώς να χρησιμοποιήσετε κλειδιά API διαφορετικών πλατφορμών: keyhacks, zile, truffleHog, SecretFinder, RegHex, DumpsterDive, EarlyBird
Κλειδιά Google API: Εάν βρείτε οποιοδήποτε κλειδί API που μοιάζει με AIzaSyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik μπορείτε να χρησιμοποιήσετε το έργο gmapapiscanner για να ελέγξετε ποια APIs μπορεί να έχει πρόσβαση το κλειδί.
Κάδοι S3: Κατά την ανάρριψη ελέγξτε αν κάποιο υποτομέα ή οποιοδήποτε σύνδεσμος σχετίζεται με κάποιον κάδο S3. Σε αυτήν την περίπτωση, ελέγξτε τις άδειες του κάδου.
Ειδικές ευρήσεις
Κατά την εκτέλεση της ανάρριψης και της επίθεσης με δύναμη μπορείτε να βρείτε ενδιαφέροντα πράγματα που πρέπει να παρατηρήσετε.
Ενδιαφέροντα αρχεία
Αναζητήστε συνδέσμους προς άλλα αρχεία μέσα στα αρχεία CSS.
Εάν βρείτε ένα .env μπορεί να βρεθούν πληροφορίες όπως κλειδιά api, κωδικοί βάσεων δεδομένων και άλλες πληροφορίες.
Εάν βρείτε API endpoints θα πρέπει επίσης να τα δοκιμάσετε. Δεν είναι αρχεία, αλλά πιθανότατα θα "μοιάζουν" με αυτά.
Αρχεία JS: Στην ενότητα της ανάρριψης αναφέρθηκαν διάφορα εργαλεία που μπορούν να εξάγουν διαδρομές από αρχεία JS. Επίσης, θα ήταν ενδιαφέρον να παρακολουθείτε κάθε αρχείο JS που βρίσκετε, καθώς σε ορισμένες περιπτώσεις, μια αλλαγή μπορεί να υποδείξει ότι εισήχθη μια πιθανή ευπάθεια στον κώδικα. Μπορείτε να χρησιμοποιήσετε για παράδειγμα το JSMon.
Αποκωδικοποιητής και αποσυμπιεστής Javascript: https://lelinhtinh.github.io/de4js/, https://www.dcode.fr/javascript-unobfuscator
Ομορφοποιητής Javascript: http://jsbeautifier.org/, http://jsnice.org/
Αποκωδικοποίηση JsFuck (javascript με χαρακτήρες:"[]!+" https://ooze.ninja/javascript/poisonjs/)
TrainFuck:
+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.
Σε πολλές περιπτώσεις θα χρειαστεί να κατανοήσετε τις τακτικές εκφράσεις που χρησιμοποιούνται, αυτό θα είναι χρήσιμο: https://regex101.com/
Μπορείτε επίσης να παρακολουθείτε τα αρχεία όπου ανιχνεύθηκαν φόρμες, καθώς μια αλλαγή στην παράμετρο ή η εμφάνιση μιας νέας φόρμας μπορεί να υποδηλώνει μια πιθανή νέα ευάλωτη λειτουργικότητα.
403 Απαγορευμένο/Βασική Ταυτοποίηση/401 Μη εξουσιοδοτημένο (παράκαμψη)
page403 & 401 Bypasses502 Σφάλμα Προϊστορίας
Εάν μια σελίδα ανταποκρίνεται με αυτόν τον κωδικό, πιθανότατα είναι ένας κακά διαμορφωμένος διαμεσολαβητής. Αν στείλετε ένα αίτημα HTTP όπως: GET https://google.com HTTP/1.1
(με την κεφαλή και άλλες κοινές κεφαλίδες), ο **διαμεσο
Έλεγχος Ευπαθειών Ιστού
Τώρα που έχει πραγματοποιηθεί μια σφαιρική απαρίθμηση της εφαρμογής ιστού, είναι καιρός να ελεγχθούν πολλές πιθανές ευπαθείες. Μπορείτε να βρείτε τον έλεγχο εδώ:
pageWeb Vulnerabilities MethodologyΒρείτε περισσότερες πληροφορίες σχετικά με ευπαθείες ιστού σε:
Παρακολούθηση Σελίδων για Αλλαγές
Μπορείτε να χρησιμοποιήσετε εργαλεία όπως το https://github.com/dgtlmoon/changedetection.io για την παρακολούθηση σελίδων για τροποποιήσεις που ενδέχεται να εισάγουν ευπαθείες.
Αν σας ενδιαφέρει η καριέρα στο χάκινγκ και το χάκινγκ του αδυνάτου - προσλαμβάνουμε! (απαιτείται άριστη γνώση γραπτού και προφορικού Πολωνικών).
Αυτόματες Εντολές HackTricks
Last updated