tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Σημαντική σημείωση:

image

dl είναι μια συνάρτηση PHP που μπορεί να χρησιμοποιηθεί για να φορτώσει επεκτάσεις PHP. Αν η συνάρτηση δεν είναι απενεργοποιημένη, μπορεί να καταχραστεί για να παρακάμψει το disable_functions και να εκτελέσει αυθαίρετες εντολές.
Ωστόσο, έχει κάποιους αυστηρούς περιορισμούς:

  • Η συνάρτηση dl πρέπει να είναι παρούσα στο περιβάλλον και όχι απενεργοποιημένη
  • Η επέκταση PHP πρέπει να είναι μεταγλωττισμένη με την ίδια κύρια έκδοση (έκδοση API PHP) που χρησιμοποιεί ο διακομιστής (μπορείτε να δείτε αυτές τις πληροφορίες στην έξοδο του phpinfo)
  • Η επέκταση PHP πρέπει να είναι τοποθετημένη στον κατάλογο που είναι ορισμένος από την κατεύθυνση extension_dir (μπορείτε να το δείτε στην έξοδο του phpinfo). Είναι πολύ απίθανο ένας επιτιθέμενος που προσπαθεί να καταχραστεί τον διακομιστή να έχει δικαιώματα εγγραφής σε αυτόν τον κατάλογο, οπότε αυτή η απαίτηση πιθανότατα θα σας αποτρέψει από το να καταχραστείτε αυτή την τεχνική).

Αν πληροίτε αυτές τις απαιτήσεις, συνεχίστε να διαβάζετε την ανάρτηση https://antichat.com/threads/70763/ για να μάθετε πώς να παρακάμψετε το disable_functions. Ακολουθεί μια περίληψη:

Η συνάρτηση dl χρησιμοποιείται για να φορτώσει δυναμικά επεκτάσεις PHP κατά την εκτέλεση του σεναρίου. Οι επεκτάσεις PHP, που συνήθως είναι γραμμένες σε C/C++, ενισχύουν τη λειτουργικότητα της PHP. Ο επιτιθέμενος, παρατηρώντας ότι η συνάρτηση dl δεν είναι απενεργοποιημένη, αποφασίζει να δημιουργήσει μια προσαρμοσμένη επέκταση PHP για να εκτελέσει εντολές συστήματος.

Βήματα που ακολουθεί ο επιτιθέμενος:

  1. Αναγνώριση Έκδοσης PHP:
  • Ο επιτιθέμενος προσδιορίζει την έκδοση PHP χρησιμοποιώντας ένα σενάριο (<?php echo 'PHP Version is '.PHP_VERSION; ?>).
  1. Απόκτηση Πηγών PHP:
  1. Τοπική Ρύθμιση PHP:
  • Εξάγει και εγκαθιστά την συγκεκριμένη έκδοση PHP στο σύστημά του.
  1. Δημιουργία Επέκτασης:

Σημειώσεις για τη Μεταγλώττιση της Προσαρμοσμένης Επέκτασης:

  1. ZEND_MODULE_API_NO:
  • Το ZEND_MODULE_API_NO στο bypass.c πρέπει να ταιριάζει με την τρέχουσα Έκδοση Επέκτασης Zend, που μπορεί να ανακτηθεί με:
bash
php -i | grep "Zend Extension Build" |awk -F"API4" '{print $2}' | awk -F"," '{print $1}'
  1. Τροποποίηση PHP_FUNCTION:
  • Για πρόσφατες εκδόσεις PHP (5, 7, 8), η PHP_FUNCTION(bypass_exec) μπορεί να χρειαστεί προσαρμογή. Το παρεχόμενο απόσπασμα κώδικα περιγράφει αυτή την τροποποίηση.

Αρχεία Προσαρμοσμένης Επέκτασης:

  • bypass.c:
  • Υλοποιεί τη βασική λειτουργικότητα της προσαρμοσμένης επέκτασης.
  • php_bypass.h:
  • Αρχείο κεφαλίδας, ορίζοντας τις ιδιότητες της επέκτασης.
  • config.m4:
  • Χρησιμοποιείται από το phpize για να ρυθμίσει το περιβάλλον κατασκευής για την προσαρμοσμένη επέκταση.

Κατασκευή της Επέκτασης:

  1. Εντολές Μεταγλώττισης:
  • Χρησιμοποιεί phpize, ./configure, και make για να μεταγλωττίσει την επέκταση.
  • Το αποτέλεσμα bypass.so βρίσκεται στη συνέχεια στον υποκατάλογο modules.
  1. Καθαρισμός:
  • Εκτελεί make clean και phpize --clean μετά τη μεταγλώττιση.

Ανέβασμα και Εκτέλεση στον Διακομιστή Θύματος:

  1. Συμβατότητα Έκδοσης:
  • Διασφαλίζει ότι οι εκδόσεις API PHP ταιριάζουν μεταξύ των συστημάτων του επιτιθέμενου και του θύματος.
  1. Φόρτωση Επέκτασης:
  • Χρησιμοποιεί τη συνάρτηση dl, παρακάμπτοντας περιορισμούς χρησιμοποιώντας σχετικές διαδρομές ή ένα σενάριο για να αυτοματοποιήσει τη διαδικασία.
  1. Εκτέλεση Σεναρίου:
  • Ο επιτιθέμενος ανεβάζει το bypass.so και ένα σενάριο PHP στον διακομιστή του θύματος.
  • Το σενάριο χρησιμοποιεί τη συνάρτηση dl_local για να φορτώσει δυναμικά το bypass.so και στη συνέχεια καλεί τη bypass_exec με μια εντολή που περνάται μέσω της παραμέτρου ερωτήματος cmd.

Εκτέλεση Εντολής:

  • Ο επιτιθέμενος μπορεί τώρα να εκτελεί εντολές προσβάλλοντας: http://www.example.com/script.php?cmd=<command>

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

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks