disable_functions bypass - dl function

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Belangrike nota:

image

dl is 'n PHP-funksie wat gebruik kan word om PHP-uitbreidings te laai. As die funksie nie gedeaktiveer is nie, kan dit misbruik word om disable_functions te omseil en arbitrêre opdragte uit te voer. Dit het egter 'n paar streng beperkings:

  • Die dl funksie moet teenwoordig wees in die omgewing en nie gedeaktiveer wees nie

  • Die PHP-uitbreiding moet saamgecompileer wees met dieselfde hoofweergawe (PHP API-weergawe) wat die bediener gebruik (jy kan hierdie inligting in die uitvoer van phpinfo sien)

  • Die PHP-uitbreiding moet geleë wees in die gids wat definieer is deur die extension_dir riglyn (jy kan dit in die uitvoer van phpinfo sien). Dit is baie onwaarskynlik dat 'n aanvaller wat probeer om die bediener te misbruik, skryfreëls oor hierdie gids sal hê, so hierdie vereiste sal waarskynlik voorkom dat jy hierdie tegniek misbruik).

As jy aan hierdie vereistes voldoen, gaan voort om die pos te lees https://antichat.com/threads/70763/ om te leer hoe om disable_functions te omseil. Hier is 'n opsomming:

Die dl funksie word gebruik om PHP-uitbreidings dinamies tydens skripuitvoering te laai. PHP-uitbreidings, tipies geskryf in C/C++, verbeter PHP se funksionaliteit. Die aanvaller, toe hy opgemerk het dat die dl funksie nie gedeaktiveer is nie, besluit om 'n pasgemaakte PHP-uitbreiding te skep om stelselsopdragte uit te voer.

Stappe geneem deur die aanvaller:

  1. PHP Weergawe Identifikasie:

  • Die aanvaller bepaal die PHP-weergawe met 'n skrip (<?php echo 'PHP Version is '.PHP_VERSION; ?>).

  1. PHP Bron Verkryging:

  • Laai die PHP-bron van die amptelike PHP-webwerf of die argief af as die weergawe ouer is.

  1. Plaaslike PHP Opstelling:

  • Onthul en installeer die spesifieke PHP-weergawe op hul stelsel.

  1. Uitbreiding Skepping:

Aantekeninge vir die saamstel van die pasgemaakte uitbreiding:

  1. ZEND_MODULE_API_NO:

  • Die ZEND_MODULE_API_NO in bypass.c moet ooreenstem met die huidige Zend Extension Build, wat verkry kan word met:

php -i | grep "Zend Extension Build" |awk -F"API4" '{print $2}' | awk -F"," '{print $1}'
  1. PHP_FUNCTION Wysiging:

  • Vir onlangse PHP-weergawe (5, 7, 8), mag PHP_FUNCTION(bypass_exec) aanpassing benodig. Die verskafde kode-snippet detail hierdie aanpassing.

Pasgemaakte Uitbreidingslêers:

  • bypass.c:

  • Implementeer die kernfunksionaliteit van die pasgemaakte uitbreiding.

  • php_bypass.h:

  • Koplêer, wat uitbreidingseienskappe definieer.

  • config.m4:

  • Gebruik deur phpize om die bou-omgewing vir die pasgemaakte uitbreiding te konfigureer.

Bou van die Uitbreiding:

  1. Saamstel Opdragte:

  • Gebruik phpize, ./configure, en make om die uitbreiding saam te stel.

  • Die resulterende bypass.so is dan geleë in die modules subgids.

  1. Skoonmaak:

  • Voer make clean en phpize --clean uit na saamstel.

Oplaai en Uitvoering op die Slachtoffer Gasheer:

  1. Weergawe Kompatibiliteit:

  • Verseker dat PHP API-weergawe ooreenstem tussen die aanvaller se en die slagoffer se stelsels.

  1. Uitbreiding Laai:

  • Gebruik die dl funksie, omseil beperkings deur relatiewe paaie of 'n skrip te gebruik om die proses te outomatiseer.

  1. Skrip Uitvoering:

  • Die aanvaller laai bypass.so en 'n PHP-skrip na die slagoffer se bediener op.

  • Die skrip gebruik dl_local funksie om dinamies bypass.so te laai en roep dan bypass_exec aan met 'n opdrag wat deur die cmd vraeparameter oorgedra word.

Opdrag Uitvoering:

  • Die aanvaller kan nou opdragte uitvoer deur toegang te verkry tot: http://www.example.com/script.php?cmd=<command>

Hierdie gedetailleerde stap-vir-stap gids skets die proses van die skepping en implementering van 'n PHP-uitbreiding om stelselsopdragte uit te voer, wat die dl funksie misbruik, wat idealiter gedeaktiveer moet wees om sulke sekuriteitsbreuke te voorkom.

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Last updated