SHERLOCK SCENARIO:
As a fast growing startup, Forela have been utilising a business management platform. Unfortunately our documentation is scarce and our administrators aren’t the most security aware. As our new security provider we’d like you to take a look at some PCAP and log data we have exported to confirm if we have (or have not) been compromised.
CHALLENGE STEP-BY-STEP
Pada Challenge ini, diberikan 2 file.
Untuk menjawab pertanyaan dari challenge ini, saya harus menganalisa file log .pcap tersebut.
Disini saya menggunakan tools wireshark untuk melakukan analisa pcap traffic dan terlihat beberapa aktifitas request dengan menggunakan Method POST ke IP 172.31.6.44 . dengan endpoint > /bonita/loginservice.
Dari hasil analisa sementara, saya mendapatkan keyword “Bonita” dan disini saya mencoba untuk melakukan pencarian pada file .json bahwa Aplikasi yang dijalankan adalah Web Apps dari Bonitasoft.
Kembali ke Wireshark, disini saya berasumsi bahwa Attacker melakukan Brute Force pada aplikasi tersebut. dimana terlihat beberapa Request dengan Response 401 yang mana menunjukkan “Unauthorized Access” seperti yang terlihat pada gambar berikut:
Pada hasil Capture diatas, saya mencoba Follow TCP Stream pada HTTP Request tersebut dan mendapati beberapa kredensial berbeda telah digunakan, dimana asumsi pertama saya benar bahwa attacker melakukan brute force login untuk mencoba mendapatkan akses login ke aplikasi.
Kemudian saya mencoba melihat kembali pada file .json dan terlihat bahwa terdapat alert yang menunjukkan *Default User Login Attempt* pada web tersebut, yang mana masuk ke dalam CVE-2022–25237.
CVE-2022–25237 Detail
Description:
Bonita Web 2021.2 is affected by a authentication/authorization bypass vulnerability due to an overly broad exclude pattern used in the RestAPIAuthorizationFilter. By appending ;i18ntranslation or /../i18ntranslation/ to the end of a URL, users with no privileges can access privileged API endpoints. This can lead to remote code execution by abusing the privileged API actions.
Setelah membaca dokumentasi CVE , saya menemukan pernyataan bahwa penyerang menambahkan ;i18ntranslation atau /../i18ntranslation/ di akhir URL.
Kembali melanjutkan analisa pada file .pcap tadi, dimana pada setiap username yang Attacker coba input selalu menggunakan domain @forela.co.uk, yang mana itu meng-indikasikan bahwa attacker menggunakan Email Company.
Bisa disimpulkan Attacker Menggunakan teknik Credential Stuffing.
Credential stuffing adalah jenis serangan siber di mana penyerang mengumpulkan kredensial akun yang dicuri, biasanya terdiri dari daftar nama pengguna atau alamat email dan kata sandi yang sesuai, dan kemudian menggunakan daftar tersebut untuk mencoba masuk ke akun di situs web dan aplikasi yang berbeda.
Untuk melihat jumlah Request Attempt yang dilakukan oleh Attacker, saya menggunakan filter “urlencode-form.key == username” pada wireshark, berikut hasilnya:
Untuk melihat value dari “username”, saya menggunakan fitur custom column pada wireshark.
Klik edit → preferences → columns , kemudian set tipe column.
Terdapat 118 Log yang terlihat.
Pada log tersebut , terlihat ada beberapa request yang tidak perlu. disini saya melakukan filter kembali menggunakan “urlencoded-form.key == “username” && !(http contains “install”)”. Maka akan muncul seperti berikut:
Terdapat total 59 Request, dimana masih ada beberapa duplicate request pada log tersebut.
Pada tahap selanjutnya, saya harus mencari tau Requests Login Attempt yang berhasil dilakukan oleh attacker.
Saya kembali melakukan filter untuk mencari Status Code yang bernilai dibawah 300 dengan menggunakan filter “http.response.code < 300”
Terlihat bahwa username: seb.broom@forela.co.uk berhasil melakukan login ditandai dengan Response Code 204.
Tahap selanjutnya saya harus mencari tau Text sharing yang digunakan oleh attacker, untuk menjawab ini saya mencoba melakukan filter kembali dengan menggunakan “http.request.method”. Dan terlihat parameter yang digunakan oleh Attacker untuk melakukan RCE dimana Attacker menggunakan script yang disimpan di pastes.io
Selanjutnya saya harus mencari tau public key yang digunakan oleh Attacker untuk mendapatkan Persistence pada target host.
Untuk mendapatkan public key, saya harus meng-ekspor objek HTTP dari paket sebelumnya.
Ekspor dan Simpan file tersebut, kemudian gunakan command `file` untuk memastikan bahwa yang telah di eksport merupakan file .json, selanjutnya gunakan command `strings` untuk melihat informasi pada file tersebut.
Terlihat Endpoint berisi script yang digunakan oleh Attacker dan kemudian saya mencoba akses Endpoint tersebut dan akan terlihat hasil seperti berikut:
Terlihat pada URL : https://pastes.io/raw/hffgra4unv , dimana file “hffgra4unv” berisikan authorized keys SSH.
Selanjutnya, untuk mencari Mitre Technique yang digunakan oleh Attacker untuk melakukan persistence pada host, kunjungi website MITRE ATT&CK dan pada form pencarian gunakan keyword “ssh”.
Pada hasil pertama, terlihat bahwa Sub-Technique T1098.004 sangat relevan dengan case ini.
LESSON LEARNED
- Meng-identifikasi serangan Credential Stuffing
- Melakukan riset CVE yang terdampak pada Bonitasoft
- Melakukan Packet Filtering dan menggunakan fitur Custom Column pada Wireshark