Victory at PHDays 9. Kami berbagi hacks kehidupan dalam tiga bagian. Bagian 2

Halo semuanya! Nama saya Vitaliy Malkin. Saya adalah kepala departemen analisis keamanan di Informzashchita dan kapten paruh waktu tim True0xA3. Lebih dari seminggu yang lalu, kami memenangkan salah satu kompetisi peretas putih paling bergengsi di CIS. Dalam artikel terakhir (jika Anda melewatkannya, Anda dapat membacanya di sini ) kami berbicara tentang pentingnya persiapan awal. Dalam hal ini - saya akan berbicara tentang apa yang terjadi secara langsung di kompetisi itu sendiri, menjelaskan mengapa kadang-kadang penting untuk membuat penyesuaian rencana yang ada selama pertandingan dan mengapa, menurut pendapat saya, tidak ada kantor yang dilindungi diretas.

Hari pertama


9:45 MSK
Hari itu dimulai dengan fakta bahwa kami diberi hasil peluncuran MassScan-a. Kami mulai dari fakta bahwa kami segera menulis semua host dengan port 445 terbuka dan tepat pukul 10.00 kami meluncurkan pemeriksa metasplit siap pakai untuk MS17-010. Dipandu oleh rencana kami, tugas No. 1 adalah untuk menangkap domain bigbrogroup, sehingga secara bersamaan dipecah oleh dua orang dari tim kami sekaligus. Dalam diagram di bawah ini Anda dapat melihat distribusi awal anggota tim kami berdasarkan kantor.

Seperti yang dapat dilihat dari diagram, kami mencakup hampir semua kantor. Dan di sini fakta bahwa ada 20 orang di tim banyak membantu.

10:15
Pada saat ini, salah satu anggota Tim-1 menemukan host di bigbrogroup.phd yang rentan terhadap MS17-010. Kami mengeksploitasi kerentanan dengan tergesa-gesa. Beberapa tahun yang lalu kami sudah dalam situasi ketika kami mendapatkan shell meterpreter ke node penting dan setelah 10 detik kami terlempar keluar dari sana, secara bersamaan menutup port. Tahun ini ini tidak terjadi: kami berhasil menangkap node, menutup port SMB dan mengubah port RDP menjadi 50002. Kami mengambil sikap yang sangat bertanggung jawab terhadap masalah mempertahankan akses, jadi kami menambahkan beberapa administrator lokal dan mengatur RAT kami sendiri. Setelah itu kita melanjutkan.

10:25
Kami terus berurusan dengan apa yang kami temukan. Selain fakta bahwa simpul ini memiliki akses ke jaringan internal dan ke pengontrol domain, token administrator domain juga ditemukan di sana. Ini jackpotnya! Kami segera memeriksa untuk melihat apakah dia "busuk", dan tidak ada batas untuk sukacita kita. Domain pertama telah jatuh. Waktu peretasan - 27 menit 52 detik.

Akhirnya, setelah setengah jam dari awal kompetisi, kami masih pergi ke portal peretas dan mencoba memahami apa yang perlu kami lakukan untuk mendapatkan publik. Kami melihat kumpulan standar: kredensial administrator domain, administrator workstation, pertukaran, serta beberapa puncak. Kami mengunduh dari domain ntds.dit, sekaligus menemukan stasiun CUDA. Bayangkan betapa terkejutnya kami ketika kami melihat bahwa domain memiliki mode enkripsi yang dapat dibalik diaktifkan, yang memungkinkan kami untuk mendapatkan semua kata sandi pengguna dalam teks yang jelas. Untuk membentuk pemahaman tentang pengguna mana yang menarik bagi kami, kami melibatkan dua orang dari Tim-1 untuk menganalisis struktur AD dan grupnya. Lima menit kemudian, kami mendapat semua jawaban. Kami mengirim mereka ke portal dan mulai menunggu. Jujur - pada saat itu saya benar-benar ingin menumpahkan darah pertama untuk mempertahankan moral, sehingga untuk berbicara, tetapi hanya setelah satu jam kita bisa mengerti bagaimana checker bekerja:

a) pemeriksa otomatis;
b) pemeriksa memiliki format yang sulit;
c) pemeriksa tidak menerima jawaban kami beberapa detik setelah mengirim jawabannya, karena Itu dalam format yang salah.

Setelah menguasai formatnya, sekitar jam 11.00 kita mendapatkan darah First yang didambakan. Ya!

11:15
Tim-1 dibagi menjadi dua bagian. Peserta dari satu sub-perintah terus mendapatkan pijakan di domain: menerima krbtgt, memperkuat domain, mengubah kata sandi untuk akun. Bahkan saat briefing, panitia PHDays memperjelas bahwa siapa pun yang bangun lebih dulu memakai sandal. Karena itu, kami mengubah kata sandi pada akun untuk memastikan: jika seseorang menendang kami, mereka akan menerima skor minimum.

Tim-2 terus meneliti domain, dan menemukan jawaban untuk tugas lain. Di desktop direktur keuangan, sebuah laporan keuangan ditemukan, sehingga perlu bagi seseorang. Tetapi masalahnya adalah bahwa itu ada di arsip, yang dilindungi kata sandi. Yah, bukan tanpa alasan kami menemukan stasiun CUDA. Dengan gerakan pergelangan tangan, kami mengubah arsip menjadi hash dan mengirimkannya ke hashcat.

Tim-2 saat ini menemukan beberapa layanan menarik dengan RCE dan mulai "memelintir" mereka. Ini pemantauan di CF-media, yang dibangun atas dasar Nagios. Ini adalah sistem pembuatan bagan dari perusahaan kapal, yang dibangun di atas teknologi yang kami lihat untuk pertama kalinya. Dan juga beberapa layanan lain yang berpotensi menarik seperti konverter dari DOC ke PDF.

Subkomand kedua dari Tim-1, sementara itu, bergerak di bank dan menemukan basis yang menarik pada MongoDB, di mana, di antara hal-hal lain, ada nama tim kami dan keseimbangannya dalam beberapa sistem. Kami โ€œmemelintirโ€ saldo kami sebesar 50 juta dan melanjutkan.

2 malam
Kami dikalahkan oleh kemunduran pertama. Pertama, dua layanan yang kami terima RCE di segmen yang dilindungi menjadi tidak tersedia. Para pembela HAM hanya mematikannya. Tentu saja, kami akan mengadu ke panitia. Ini tidak mengarah pada apa pun. Ya, di Standoff, sayangnya, tidak ada bisnis yang akan memberikan batasan seperti itu. Selain itu, kami tidak dapat menemukan daftar pelanggan. Kami berasumsi bahwa itu tersembunyi di suatu tempat di kedalaman 1C, tetapi tidak ada basis atau konfigurasi yang berfungsi. Ini jalan buntu.

Kami mencoba meningkatkan saluran VPN antara server jarak jauh kami dan jaringan ICS. Untuk alasan yang tidak diketahui, kami melakukan ini pada pengontrol domain bigbrogroup, dan ketika jembatan antara antarmuka dibangun, koneksi terputus. Pengontrol domain tidak tersedia. Bagian dari tim yang menangkap bigbrogroup hampir mengalami serangan jantung: pertengkaran pertama dimulai, ketegangan umum semakin meningkat.

Tiba-tiba, kami menyadari bahwa pengontrol domain masih tersedia dari server kami, tetapi salurannya sangat tidak stabil. Seperti dalam strategi berbasis giliran - kami menonaktifkan mode jembatan melalui RDP, pengontrol domain tersedia lagi. Fuh !!! Semua orang tenang. Kami akhirnya menaikkan VPN dari server lain, kami menghargai dan menghargai kontroler domain. Semua tim memiliki skor nol, ini meyakinkan.

16:50
Panitia akhirnya menerbitkan penambang dan kami, menggunakan psexec, menginstalnya pada semua node yang dikendalikan oleh kami. Kami mendapatkan penghasilan stabil tambahan.

Team-2 mengacaukan kerentanan Nagios. Versi yang rentan <= 5.5.6 CVE-2018-15710 CVE-2018-15708 diinstal di sana. Ada exploit publik, tetapi menggunakan koneksi terbalik untuk mengunduh shell web. Kami berada di belakang NAT, jadi kami harus menulis ulang exploit dan memecahnya menjadi dua bagian. Yang pertama memaksa Nagios untuk terhubung ke server jarak jauh kami melalui Internet, dan yang kedua, yang terletak langsung di server, memberi Nagios shell web. Setelah menerima shell web, WSO diunduh dan skrip PHP yang rentan "magpie_debug.php" dihapus. Ini memberi kami akses proxy ke domain CF-media. Sambungan tidak stabil dan sulit digunakan, kami memutuskan untuk mengirim exploit ke Bug-bounty, dan saat ini kami mencoba untuk "meningkatkan" ke Root.

18:07
Dan inilah kejutan yang dijanjikan dari penyelenggara: BigBroGroup, beli CF-media! Secara umum, kami mengambil giliran yang sama. Dalam perjalanan studi dari kontroler domain bigbrogroup, kami melihat kepercayaan antara domain ini dan domain cf-media.

Sayangnya, pada saat itu tidak ada akses jaringan. Tetapi pada saat pengumuman merger, dia muncul. Ini membebaskan kami dari sakit kepala yang terkait dengan paging melalui nagios. Kredensial bigbrogroup berjalan di cf-media, tetapi pengguna tidak memiliki hak istimewa. Tidak ada kerentanan yang mudah dieksploitasi, tetapi kami tidak putus asa. Pasti ada sesuatu.

18:30
Kami tersingkir dari pengontrol domain BigBroGroup. Siapa Dimana? Sepertinya tim CARK. Mereka mengubah kata sandi administrator domain, tetapi kami memiliki empat cadangan. Ubah kembali, setel ulang semua kata sandi. Itu tidak membantu, mereka melumpuhkan kita lagi. Pada saat yang sama, kami menemukan vektor dalam CF-media. Salah satu server menggunakan kata sandi administrator lokal yang sama seperti pada domain bigbrogroup. Nah, gunakan kembali kata sandi, tetap untuk mengambil hash! Menggunakan hashkiller kami menemukan kata sandi - "P @ ssw0rd". Kami melangkah lebih jauh.

19:00
Pertarungan untuk bigbrogroup tidak berhenti. TSARKA mengubah kata sandi dua kali menjadi krbtgt, kami kehilangan semua admin. Apakah ini akhirnya?

19:30
Kami mendapatkan domain admin CF-media, mulai mengibarkan bendera. Terlepas dari kenyataan bahwa domain tersebut tampaknya dikonfigurasi seaman mungkin, enkripsi balik kembali diaktifkan. Kami menerima tampilan, login, kata sandi. Kami mengulang semuanya seperti di domain sebelumnya: kami memperbaiki, mengeraskan, mengubah kata sandi, melewati VPN. Kami menemukan laporan keuangan kedua. Ngomong-ngomong, ada apa dengan yang pertama? Yang pertama sudah diputar, tetapi tidak diterima oleh orgs. Ternyata Anda harus menyerahkan 7z yang dienkripsi !!! Tidak perlu brute apapun, sia-sia tiga jam !!!

Hasilnya, kami menyerahkan keduanya. Kami memiliki sekitar 1 juta poin, CARK 125.000, sisanya nol. CARKA mulai menyerahkan bendera dengan Bigbrogroup. Kami memahami bahwa ini perlu segera dihentikan, tetapi BAGAIMANA?!

19:45
Ada solusinya !!! Kami masih memiliki kredensial administrator lokal. Kami terhubung, mengambil tiket dan memutuskan untuk hanya menjatuhkan domain. Domain dikirim untuk mematikan, menutup semua port di server kecuali RDP, mengubah kata sandi administrator lokal. Sekarang kita sendiri, dan mereka sendiri. Namun, untuk mencapai operasi VPN yang stabil dan semuanya secara umum akan sangat baik. Dihembuskan ...

Kami menyebarkan penambang di semua node di domain CF-media. TsARKA menyusul kami secara total, tetapi kami jelas mengejar mereka, karena kami memiliki lebih banyak kekuatan.

Malam itu


Dalam gambar Anda dapat melihat distribusi tim di malam hari.

Orang-orang itu secara bertahap mulai pulang. Menjelang tengah malam, sembilan orang tersisa. Efisiensi sangat berkurang. Setiap jam kita pergi untuk mencuci dan bernafas - agar tidak tertidur.

Mendapatkan ke ACS TP.

02:00
Malam itu sangat sulit. Kami menemukan vektor beberapa kali, tetapi mereka sudah ditutup. Tidak sepenuhnya jelas apakah mereka awalnya ditutup, atau CARKA telah mengunjungi kami di sini dan menutupnya. Secara bertahap mulai terbiasa dengan sistem kontrol proses otomatis, kami menemukan pengontrol yang rentan terhadap serangan melalui NetBus. Menggunakan modul metasplit, kami melakukan sesuatu, tidak sepenuhnya memahami apa. Cahaya di kota padam. Panitia siap untuk memulai tugas jika kita dapat menyalakan lampu kembali. Pada titik ini, koneksi VPN turun lagi. Server tempat VPN digunakan berada di bawah kendali CARK. Sekali lagi, tampaknya inilah akhirnya: kita membahas ICS terlalu berisik dan mereka entah bagaimana dapat memutuskan hubungan kita.

3:30 pagi
"Memotong" mimpi yang paling gigih. Hanya tujuh yang tetap terjaga. Tiba-tiba (tanpa alasan yang jelas) VPN mulai bekerja kembali. Kami dengan cepat mengulangi fokus dengan cahaya. Ada +200.000 publikasi !!!

Bagian dari tim terus mencari vektor lain, bagian terus bekerja secara aktif dengan ICS. Kami menemukan dua lagi kerentanan potensial. Kami berhasil mengeksploitasi salah satunya. Hasilnya mungkin menimpa firmware pengontrol. Kami setuju dengan panitia bahwa kami akan menunggu sampai pagi dan bersama-sama memutuskan apa yang harus dilakukan.

05:30
VPN bekerja 10 menit per jam, sisa waktu itu mati. Kami berusaha menemukan setidaknya sesuatu. Kinerja kami hampir nol. Kami memutuskan untuk tidur setidaknya satu jam. SPOILER: ide yang buruk.

Lima orang terus melanggar TP ACS.

Pagi


Pada pagi hari, kami memahami bahwa kami secara substansial telah keluar dengan poin dari yang lain, hampir 1 juta. CARKA dapat melewati dua tugas dari ACS TP dan beberapa tugas dari telekomunikasi dan bigbrogroup. Mereka sudah banyak menambang, tetapi menurut perkiraan kami, mereka memiliki stok yang belum mereka jual. Pada tingkat saat ini, itu mencapai 200-300 ton publik. Ini membuat kami takut: ada perasaan bahwa mereka mungkin memiliki beberapa bendera lagi di zashashnik yang bisa mereka simpan untuk percepatan terakhir. Di resimen kami tiba. Pemeriksaan suara pagi di situs ini sedikit mengganggu, tetapi menyegarkan.

Kami masih berusaha untuk memecahkan TP ACS, tetapi tanpa banyak harapan. Kesenjangan antara tim melamar tempat pertama dan kedua, dan sisanya terlalu besar. Kami tidak percaya bahwa penyelenggara akan meninggalkan semuanya apa adanya.

Setelah kinerja bersama dengan CARK di atas panggung, kami mengubah paradigma dari "Anda perlu mencetak lebih banyak poin", menjadi "Anda perlu mencegah CARK mendapatkan lebih banyak poin".

Di salah satu server kami, luncurkan Cain & Abel dan transfer semua lalu lintas ke server kami. Kami menemukan beberapa VPN Kazakh, kami โ€œpotongโ€ mereka. Akibatnya, kami memutuskan untuk meretas semua lalu lintas, mengatur firewall lokal di gateway untuk melarang semua lalu lintas di jaringan ICS (ini adalah cara melindungi ICS). Panitia berlari dan mengatakan bahwa mereka tidak memiliki akses ke ACS TP. Kami melihat mereka mengakses alamat IP mereka (inilah cara Anda tidak perlu melindungi ICS).

12:47
Tidak heran mereka gugup. Panitia melempar kejutan lain. Entah dari mana, empat akun domain untuk setiap domain muncul. Kami memobilisasi tim.

Tugas Tim-1 adalah masuk ke segmen yang dilindungi sedalam dan secepat mungkin. Tugas Tim-2 adalah menggunakan Outlook Web Access untuk mengubah kata sandi akun. Beberapa pembela HAM, setelah melihat sesuatu, matikan saja VPN. Beberapa melakukannya lebih rumit - mereka menerjemahkan sistem mereka ke dalam bahasa Cina. Fungsionalitas berfungsi, tetapi tidak mungkin digunakan (orgy, ay!). Melalui VPN, kami terhubung ke tiga jaringan. Mengusir kita dari yang pertama dalam satu menit.

12:52
Kami menemukan server yang tidak sehat di jaringan yang rentan terhadap MS17-010 (dilindungi! Segmen). Kami beroperasi tanpa menemui perlawanan, kami mendapatkan hash dari administrator domain dan melalui Pth kami pergi ke pengontrol domain. Coba tebak apa yang kita temukan di sana? Enkripsi Terbalik!

Tampaknya mereka yang membela segmen ini melakukan pekerjaan rumah dengan buruk. Kami mendapatkan semua informasi untuk tugas, kecuali bagian yang terkait dengan 1C. Ada opsi untuk mengambilnya selama 40-50 menit lagi, tetapi kami memutuskan untuk hanya membuang domain. Kami tidak membutuhkan pesaing.

13:20
Kami menyerahkan tugas: kami memiliki 2.900.000 poin dan beberapa hadiah bug yang tidak dapat diterima. CARK memiliki sedikit lebih dari 1 juta, mereka menyerahkan cryptocurrency mereka dan meningkatkan 200 ton, Kami tidak lagi sangat takut, hampir tidak mungkin untuk mengejar ketinggalan dengan kami.

13:55
Orang-orang datang, selamat. Kami masih takut pada beberapa jenis pengaturan, tetapi tampaknya tidak, kami benar-benar juara!

Ini adalah kronik 28 jam dari True0xA3. Banyak hal yang tertinggal di belakang layar. Misalnya, naik panggung, menyiksa Wi-Fi dan GSM, berbicara dengan wartawan, tapi menurut saya bukan yang paling menarik.

Itu adalah pengalaman yang sangat keren bagi kita semua dan saya berharap saya berhasil menyampaikan setidaknya sedikit suasana yang telah mengelilingi kita selama ini dan menunjukkan betapa menariknya untuk berpartisipasi dengan kita sendiri. Masih ada satu lagi, artikel terakhir, di mana kita akan mengevaluasi kesalahan kita, dan mencoba menyusun rencana untuk koreksi mereka. Lagi pula, tidak ada yang lebih baik daripada belajar dari kesalahan orang lain.

Source: https://habr.com/ru/post/id454366/


All Articles