Σίγουρα οι περισσότεροι από εσάς γνωρίζετε το sqlmap σαν το κατεξοχήν εργαλείο εύρεσης ευπαθειών sql injection σε web εφαρμογές. Πέρα από το sqlmap, σε αυτό το άρθρο θα γνωρίσουμε και ένα ακόμα, το sqlninja, ένα open source εργαλείο γραμμένο σε Perl που εξειδικεύεται στην εύρεση ευπαθειών sql injection σε web εφαρμογές που χρησιμοποιούν Microsoft SQL Server σαν backend.
Ο κύριος σκοπός του είναι να παρέχει στον επιτιθέμενο, απομακρυσμένη πρόσβαση προς την ευπαθή βάση ακόμα και όταν το γενικότερο περιβάλλον που βρίσκεται η βάση είναι εχθρικό. Μπορεί να χρησιμοποιηθεί από penetration testers και αναλυτές ασφάλειας οι οποίοι επιθυμούν να ελέγξουν την ύπαρξη ευπαθειών sql injection.
Τι είναι το SQL injection?
Το SQL injection αποτελεί μια τεχνική hacking όπου ο επιτιθέμενος, μέσω της τροποποίησης του URL ή κάποιου άλλου πεδίου εισαγωγής χαρακτήρων της διαδικτυακής εφαρμογής, μπορεί να εισάγει SQL εντολές απευθείας μέσα στη βάση δεδομένων. Αυτό έχει σαν αποτέλεσμα την παράκαμψη των τεχνικών ασφάλειας της εφαρμογής και κατά συνέπεια ο επιτιθέμενος μπορεί να εξάγει δεδομένα από όλη τη βάση, να την τροποποιήσει ακόμα και να την διαγράψει.
Πρόκειται για μια από τις πιο παλιές αλλά και πιο επικίνδυνες επιθέσεις σε web εφαρμογές. Ο οργανισμός OWASP (Open Web Application Security Project) κατατάσσει τις απειλές injection στο νούμερο ένα της λίστας με τις Top 10 απειλές ασφάλειας των web εφαρμογών (OWASP Top 10).
Πως να το χρησιμοποιήσετε
To sqlninja διατίθεται για λειτουργικά συστήματα Unix στα οποία υπάρχει Perl interpreter. Αυτό σημαίνει ότι οι πλατφόρμες που μπορούν να το υποστηρίξουν είναι οι παρακάτω:
- Linux
- FreeBSD
- Mac OS X
- iOS
Το sqlninja δεν υποστηρίζεται προς το παρόν από λειτουργικά συστήματα Windows. Θα το
βρείτε προ-εγκατεστημένο στο Linux distro για penetration testing, Kali Linux.
Linux Ubuntu & Debian
Εγκατάσταση Perm modules
Για να εγκαταστήσετε τα Perm module ανοίξτε ένα terminal και τρέξτε τα παρακάτω:
1 2 3 4 5 6 perl -MCPAN -e “install Net::RawIP” perl -MCPAN -e “install Net::Pcap” perl -MCPAN -e “install Net::PcapUtils” perl -MCPAN -e “install Net::Packet” perl -MCPAN -e “install Net::DNS” perl -MCPAN -e “install IO::Socket::SSL” |
Εγκατάσταση sqlninja
Για να κατεβάσετε το φάκελο του sqlninja, και να το αποσυμπιέσετε ανοίξτε ένα terminal και τρέξτε τα παρακάτω:
1 2 3 4 wget https://sourceforge.net/projects/sqlninja/files/sqlninja/sqlninja-0.2.999-alpha1.tgz tar zxvf sqlninja-0.2.999-alpha1.tgz cd sqlninja-0.2.999-alpha1.tgz |
Πως να το χρησιμοποιήσετε
Ας δούμε τώρα μερικές από τις επιλογές που έχουμε χρησιμοποιώντας το sqlninja.
Αρχικά μπορούμε να δούμε όλες τις δυνατές επιλογές που έχουμε εκτελώντας sqlninja σε ένα terminal:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 root@kali:~# sqlninja Sqlninja rel. 0.2.6-r1 Copyright (C) 2006-2011 icesurfer <r00t@northernfortress.net> Usage: /usr/bin/sqlninja -m <mode> : Required. Available modes are: t/test – test whether the injection is working f/fingerprint – fingerprint user, xp_cmdshell and more b/bruteforce – bruteforce sa account e/escalation – add user to sysadmin server role x/resurrectxp – try to recreate xp_cmdshell u/upload – upload a .scr file s/dirshell – start a direct shell k/backscan – look for an open outbound port r/revshell – start a reverse shell d/dnstunnel – attempt a dns tunneled shell i/icmpshell – start a reverse ICMP shell c/sqlcmd – issue a ‘blind’ OS command m/metasploit – wrapper to Metasploit stagers -f <file> : configuration file (default: sqlninja.conf) -p <password> : sa password -w <wordlist> : wordlist to use in bruteforce mode (dictionary method only) -g : generate debug script and exit (only valid in upload mode) -v : verbose output -d <mode> : activate debug 1 – print each injected command 2 – print each raw HTTP request 3 – print each raw HTTP response all – all of the above …see sqlninja-howto.html for details |
Η συμπεριφορά του sqlninja ελέγχεται μέσω του configuration αρχείου sqlninja.conf, με το οποίο μπορούμε να κατευθύνουμε το εργαλείο ως προς το στόχο, τον τρόπο επίθεσης αλλά και ως προς τη χρήση άλλων παραμέτρων διαχείρισης του. Αυτές μπορεί να είναι οι παρακάτω:
- -m <attackmode>: ελέγχει το mode επίθεσης λέγοντας στο sqlninja τι να κάνει. Πιθανές τιμές της παραμέτρου μπορεί να είναι:
- test
- fingerprint
- bruteforce
- escalation
- resurrectxp
- upload
- dirshell
- backscan
- revshell
- dnstunnel
- icmpshell
- metasploit
- sqlcmd
- Getdata
- -v : verbose output
- -f <configuration file> : καθορίζει το configuration αρχείο που θα χρησιμοποιηθεί.
- -p <‘sa’ password> : χρησιμοποιείται κατά το escalation mode με σκοπό να προσθέσει τον υπάρχον χρήστη της βάσης στο sysadmin γκρουπ. Σε άλλα mode χρησιμοποιείται για να δώσει τη δυνατότητα στον χρήστη να τρέξει queries σαν διαχειριστής.
- -w <wordlist>: λίστα με πιθανά passwords για το bruteforce mode
- -d <debug mode>: ενεργοποιεί το debug mode σε περίπτωση troubleshooting. Πιθανές τιμές είναι:
- 1: εκτύπωσε κάθε εντολή που γίνεται inject
- 2: εκτύπωσε κάθε HTTP request προς τον στόχο
- 3: εκτύπωσε κάθε HTTP response από τον στόχο
- All: όλα τα παραπάνω
Ένα config αρχείο μπορεί να μοιάζει με το παρακάτω:
Για ακόμα πιο πολλές λεπτομέρειες για το εργαλείο sqlninja προτείνουμε να επισκεφτείτε τη σελίδα με το επίσημο documentation ενώ για να δείτε μια live εφαρμογή των τεχνικών του το σχετικό video.
Πηγή άρθρου: https://www.secnews.gr/