tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
Önemli not:
dl
bir PHP fonksiyonudur ve PHP uzantılarını yüklemek için kullanılabilir. Eğer bu fonksiyon devre dışı bırakılmamışsa, disable_functions
'ı atlamak ve rastgele komutlar çalıştırmak için kötüye kullanılabilir.
Ancak, bazı katı sınırlamaları vardır:
dl
fonksiyonu bulunmalıdır ve devre dışı bırakılmamalıdır- PHP Uzantısı sunucunun kullandığı aynı ana sürümle (PHP API sürümü) derlenmiş olmalıdır (bu bilgiyi phpinfo çıktısında görebilirsiniz)
- PHP uzantısı,
extension_dir
direktifi ile tanımlanan dizinde bulunmalıdır (bunu phpinfo çıktısında görebilirsiniz). Bir saldırganın sunucuyu kötüye kullanmaya çalışırken bu dizinde yazma erişimine sahip olması çok olası değildir, bu nedenle bu gereklilik muhtemelen bu tekniği kötüye kullanmanızı engelleyecektir.
Bu gereklilikleri karşılıyorsanız, disable_functions
'ı atlamak için nasıl devam edeceğinizi öğrenmek için bu gönderiyi okumaya devam edin https://antichat.com/threads/70763/. İşte bir özet:
dl fonksiyonu, PHP uzantılarını dinamik olarak yüklemek için kullanılır. PHP uzantıları, genellikle C/C++ ile yazılmıştır ve PHP'nin işlevselliğini artırır. Saldırgan, dl
fonksiyonunun devre dışı bırakılmadığını fark ettiğinde, sistem komutlarını çalıştırmak için özel bir PHP uzantısı oluşturmaya karar verir.
Saldırganın Aldığı Adımlar:
- PHP Sürüm Belirleme:
- Saldırgan, bir script kullanarak PHP sürümünü belirler (
<?php echo 'PHP Version is '.PHP_VERSION; ?>
).
- PHP Kaynağını Temin Etme:
- Resmi PHP web sitesinden veya sürüm eskiyse arşivden PHP kaynağını indirir.
- Yerel PHP Kurulumu:
- Belirli PHP sürümünü sistemine çıkarır ve kurar.
- Uzantı Oluşturma:
- PHP uzantıları oluşturmayı inceler ve PHP kaynak kodunu gözden geçirir.
ext/standard/exec.c
dosyasındaki exec fonksiyonunun işlevselliğini kopyalamaya odaklanır.
Özel Uzantıyı Derleme Notları:
- ZEND_MODULE_API_NO:
bypass.c
dosyasındakiZEND_MODULE_API_NO
, mevcut Zend Uzantı Derlemesi ile eşleşmelidir, şu şekilde alınabilir:
php -i | grep "Zend Extension Build" |awk -F"API4" '{print $2}' | awk -F"," '{print $1}'
- PHP_FUNCTION Değişikliği:
- Son PHP sürümleri (5, 7, 8) için
PHP_FUNCTION(bypass_exec)
ayarlama gerektirebilir. Sağlanan kod parçası bu değişikliği detaylandırır.
Özel Uzantı Dosyaları:
- bypass.c:
- Özel uzantının temel işlevselliğini uygular.
- php_bypass.h:
- Uzantı özelliklerini tanımlayan başlık dosyası.
- config.m4:
- Özel uzantı için yapılandırma ortamını ayarlamak üzere
phpize
tarafından kullanılır.
Uzantıyı Derleme:
- Derleme Komutları:
- Uzantıyı derlemek için
phpize
,./configure
vemake
kullanır. - Ortaya çıkan
bypass.so
, modüller alt dizininde bulunur.
- Temizlik:
- Derlemeden sonra
make clean
vephpize --clean
komutlarını çalıştırır.
Kurban Sunucusunda Yükleme ve Çalıştırma:
- Sürüm Uyumluluğu:
- Saldırganın ve kurbanın sistemleri arasında PHP API sürümlerinin eşleştiğinden emin olur.
- Uzantı Yükleme:
dl
fonksiyonunu kullanarak, kısıtlamaları aşmak için göreli yollar veya süreci otomatikleştiren bir script kullanır.
- Script Çalıştırma:
- Saldırgan,
bypass.so
ve bir PHP scriptini kurbanın sunucusuna yükler. - Script,
bypass.so
'yu dinamik olarak yüklemek içindl_local
fonksiyonunu kullanır ve ardındancmd
sorgu parametresi aracılığıyla geçirilen bir komut ilebypass_exec
'i çağırır.
Komut Çalıştırma:
- Saldırgan artık komutları şu şekilde çalıştırabilir:
http://www.example.com/script.php?cmd=<command>
Bu ayrıntılı kılavuz, sistem komutlarını çalıştırmak için bir PHP uzantısı oluşturma ve dağıtma sürecini, dl
fonksiyonunu kötüye kullanarak, açıklamaktadır; bu tür güvenlik ihlallerini önlemek için ideal olarak devre dışı bırakılmalıdır.
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.