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

Halo semuanya! Nama saya Vitaliy Malkin. Saya adalah kepala departemen analisis keamanan di Informzashchita dan kapten paruh waktu tim True0xA3. Dengan artikel ini, kami memulai siklus 3 materi yang didedikasikan untuk kinerja kami di PHDays IX Standoff. Dalam artikel ini kami akan menjelaskan mengapa persiapan yang kompeten adalah setengah dari keberhasilan, mengapa begitu penting untuk mengambil "buah-buahan" dalam waktu, dan bagaimana Anda dapat mengatur interaksi tim pentest dalam kerangka satu proyek tunggal.

TL; DR artikel berisi sejumlah besar bahasa Inggris dan istilah teknis yang rumit, yang saya minta maaf secara terpisah.

I. Masukan


Kami memiliki 16 pentester yang dipilih, 4 peserta pelatihan, 6 server, stasiun CUDA kami sendiri dan keinginan besar untuk menang.

Kami memulai fase persiapan aktif 8 hari sebelum dimulainya StandOff. Ini adalah upaya kami yang ketiga sebagai penyerang, dan banyak dari kita sudah memiliki cukup pengalaman untuk memahami apa yang harus dicari tahun ini. Kami melihat 5 bidang prioritas untuk elaborasi:

  1. Koordinasi yang efektif;
  2. Koleksi Buah Gantung Rendah;
  3. Eksploitasi kerentanan teknologi atipikal (untuk kita) (ACS TP, IoT, GSM);
  4. Persiapan infrastruktur dan peralatan eksternal;
  5. Pengembangan menambahkan. metode ketekunan dan pengerasan.

Mari kita coba untuk menguraikan item-item ini secara berurutan.

1. Koordinasi yang efektif


Paling mudah bagi saya untuk membicarakan hal ini, karena keputusan umum saya bertanggung jawab atas implementasinya. Selama StandOff, masalah yang paling umum untuk pemula, menurut saya, adalah koordinasi yang buruk. Anggota tim menyelesaikan tugas yang sama, tidak ada pemahaman yang jelas tentang apa yang telah ditonton dan apa yang tidak. Informasi yang diterima pada tugas tidak ditransmisikan satu sama lain, akibatnya, efisiensi kerja sangat menurun. Dan semakin banyak peserta, semakin banyak efisiensinya turun. Selain itu, sangat berguna untuk memiliki seseorang yang memahami gambaran umum infrastruktur dengan baik dan dapat menghubungkan kerentanan individu ke dalam vektor serangan penuh.

Platform Discord tahun ini dipilih untuk interaksi tim. Secara umum, ini sangat mirip dengan obrolan IRC lama yang bagus dengan fitur tambahan seperti file-upload-a dan komunikasi suara. Kami mengambil deskripsi dari semua objek dari kompetisi Agend dan membuat saluran untuk masing-masing, di mana informasi diposting. Dengan demikian, setiap orang yang terhubung ke tugas tersebut dapat melihat semua yang muncul padanya, termasuk hasil meluncurkan berbagai alat dan pencarian manual. Di semua saluran info, batas satu pesan per menit ditetapkan untuk mencegah banjir. Dan seluruh diskusi dilakukan dalam obrolan terpisah, yang juga dibuat untuk setiap objek.



Sejumlah keputusan organisasi juga dibuat untuk meningkatkan koordinasi. Secara umum, tidak lazim bagi kita untuk menetapkan tugas dengan kata-kata β€œPERLU” di tim kami. Kami mencoba untuk membahas mengapa tugas ini atau itu ditetapkan, apa yang akan mengarah pada implementasinya, dan juga bagaimana menyelesaikannya dengan lebih efisien. Namun dalam kerangka kerja StandOff, model seperti itu dapat menyebabkan pertengkaran yang tidak perlu, jadi kami memutuskan untuk mempercayakan koordinator dengan otoritas penuh atas proses tersebut. Dalam 28 jam kompetisi, keputusannya praktis tidak dibahas, yang tentunya menghemat banyak waktu. Meskipun mungkin telah mempengaruhi kualitas komunikasi. Selain itu, kami memutuskan untuk menggambarkan dengan jelas bidang-bidang tanggung jawab: terlepas dari kenyataan bahwa beberapa anggota tim tidak mendapatkan tugas yang paling menarik.

2. Koleksi Buah Gantung Rendah


Menurut pendapat saya, rahasia utama kesuksesan kami adalah: pengalaman proyek yang luar biasa setiap hari dan prioritas tugas yang benar. Tahun lalu, kami dapat menangkap seluruh kantor dan menahannya untuk seluruh game hanya karena dengan cepat meretas kerentanan sederhana. Tahun ini, kami mendekati masalah secara terpusat dan menyusun daftar kerentanan semacam itu.

ms17-010; ms08-67; SMBCRY LibSSH RCE; HP DATA Protectoer; HP iLo; ipmi Cisco Smart Install Java RMI JDWP; JBOSS; drupalgeddon2; weblogic hati shellshock; ibm websphere iis-webdav; layanan; vnc; ftp-anon; NFS seseorang-nol; Tomcat

Selanjutnya, dua layanan pemeriksa dan penetrator ditulis, yang dalam mode otomatis, menggunakan eksploitasi publik dan metasploit, pertama memeriksa kerentanan, dan kemudian mencoba untuk mengeksploitasi mereka. Utilitas menerima laporan nmap pada input, yang pada akhirnya mempercepat proses.

3. Eksploitasi kerentanan teknologi atipikal (untuk kita) (ACS TP, IoT, GSM)


Kami paling sering melakukan proyek untuk bank dan organisasi keuangan lainnya. Sistem SCADA, jika mereka melakukannya, lebih mungkin dalam gaya: "Jika Anda bisa mendapatkan akses jaringan ke scada, perbaiki ini dan hitung ini sebagai salah satu kriteria untuk keberhasilan proyek." Oleh karena itu, kami tidak memiliki pengalaman terapan yang baik dalam menganalisis keamanan sistem kontrol proses. Ini pada gilirannya menyebabkan fakta bahwa seminggu sebelum StandOff kami segera duduk untuk mempelajari kerentanan yang khas. Dengan IoT dan GSM, situasinya bahkan lebih buruk: jika IoT kadang-kadang ditemukan dalam proyek, maka kita melihat GSM hanya pada StandOffs sebelumnya.

Jadi, selama persiapan, kami mengidentifikasi dua orang yang terpisah pada sistem kontrol proses otomatis, dan dua lainnya pada GSM dan IoT. Selama minggu persiapan, kelompok ke-1 menulis pendekatan khas pada sistem SCADA yang paling canggih, dan juga mempelajari secara terperinci sebuah video tentang infrastruktur ICS tahun lalu. Orang-orang juga memompa sekitar 200 GB berbagai HMI, driver, dan perangkat lunak lain yang berhubungan langsung dengan controller. Adapun GSM dan IoT, di sini kami menyiapkan beberapa potong besi, membaca semua artikel yang tersedia di GSM dan berharap ini akan cukup. (SPOILER: Tidak juga!)

4. Persiapan infrastruktur dan peralatan eksternal


Memahami bahwa tim kami akan cukup besar tahun ini, kami segera memutuskan bahwa kami membutuhkan peralatan tambahan. Berikut ini adalah daftar saran yang telah kami kumpulkan di dalam tim, tanda "+" menunjukkan bahwa kami akhirnya mengambil:

- mesin kopi;
+ - CUDA-server (mereka tidak membawanya, tetapi mereka menggunakannya);
+ laptop cadangan;
+ Router WIFI;
+ sakelar yang dikelola;
+ kabel jaringan berbagai panjang (20 pcs);
+ pilot (3 pcs);
+ Wi-fi Alfa (3 pcs);
+ bebek karet (2 pcs);
- proxmark;
- sebuah kamera.

Sedangkan untuk infrastruktur, ini adalah lagu yang terpisah. Tahun lalu, kami menyadari betapa berguna menggunakan stasiun CUDA, memecahkan beberapa jabat tangan, sehingga tidak ada keraguan tentang perlunya menggunakannya. Adalah penting bahwa tahun ini, juga di masa lalu, semua penyerang berada di belakang NATth, yang umumnya menolak kemungkinan koneksi balik dari DMZ. Tetapi tentu saja semua host harus memiliki akses ke Internet, kecuali untuk node ICS. Dalam hal ini, kami memutuskan untuk meningkatkan tiga server pendengar, dapat diakses dari Internet. Selain itu, untuk kesederhanaan pivoting dan konsolidasi, kami menggunakan server OpenVpn kami sendiri dengan mode klien-ke-klien diaktifkan. Sayangnya, tidak mungkin untuk mengotomatiskan proses menghubungkan gateway, jadi selama sekitar 12 jam dari 28, salah satu anggota tim bekerja dengan gateway.

5. Pengembangan add. metode ketekunan dan pengerasan


Pengalaman kami di masa lalu dengan StandOff telah menunjukkan dengan sangat jelas bahwa itu tidak cukup untuk meretas server dengan sukses: penting untuk tidak membiarkan orang lain mendapatkan pijakan di dalamnya. Oleh karena itu, perhatian yang cukup diberikan kepada RAT dengan tanda tangan dan skrip baru untuk memperkuat perlindungan Windows. Kami menggunakan RAT standar kami, sedikit mengubah metode kebingungan. Peraturannya sedikit lebih rumit. Secara umum, kami menentukan sendiri skrip berikut:

  • menutup SMB dan RPC;
  • porting RDP ke port non-standar;
  • Menonaktifkan enkripsi yang dapat dibalik, akun tamu, dan pengaturan lain dari garis dasar keamanan.

Untuk Linux, skrip init khusus dikembangkan yang menutup semua port, membuka SSH pada port non-standar, dan mendaftarkan kunci publik dari perintah untuk mengakses SSH.

II Briefing


Pada 17 Mei, 5 hari sebelum StandOff, sebuah briefing diadakan untuk para penyerang. Dalam perjalanannya, banyak informasi muncul yang memengaruhi pelatihan kami.

Pertama, panitia menerbitkan peta jaringan, dan ini telah menjadi bantuan besar bagi kami. Kami dapat membagi area tanggung jawab di muka, memperbarui segmen jaringan, dan yang paling penting, untuk memahami apa yang sama-sama jaringan. Menurut pendapat saya, pernyataan paling penting yang dibuat dalam briefing adalah ungkapan bahwa jaringan ICS akan dapat diakses hanya dari satu segmen, dan segmen ini tidak akan dilindungi. Selain itu, poin terbanyak akan diberikan untuk ICS dan kantor aman, dan penyelenggara langsung mendorong perjuangan untuk jaringan antara peretas.

Kami mengambil informasi ini seperti ini: "Orang yang menangkap bigbrogroup kemungkinan akan memenangkan permainan." Masalahnya adalah bahwa pengalaman kami memberi tahu kami: tidak peduli hukuman apa yang akan diberikan oleh penyelenggara untuk layanan yang sederhana, para pembela HAM akan meninggalkan layanan yang rentan jika mereka tidak bisa menambalnya. Lagipula, jauh lebih buruk ketika mereka mengumumkan dari tahap konferensi keamanan informasi terbesar bahwa Anda telah merusak peretas daripada jika mereka mengambil beberapa poin permainan dari Anda. Teori kami telah dikonfirmasi, tetapi kami akan membicarakan ini secara rinci di artikel ke-2.

Sebagai hasilnya, kami memutuskan untuk membagi seluruh tim menjadi 4 bagian:

1. Bigbrogroup. Ini adalah tugas yang kami berikan prioritas tertinggi. Tim tersebut melibatkan orang-orang yang memiliki pengalaman paling banyak membobol infrastruktur internal pelanggan yang berbeda. Secara total, tim mini ini terdiri dari 5 orang. Tujuan mereka adalah untuk mendapatkan pijakan di domain secepat mungkin dan memotong tim lain dari akses ke ICS.

2. Jaringan Nirkabel. Tim yang bertanggung jawab untuk memantau Wi-Fi, melacak titik-titik baru, menyadap jabat tangan dan membrut mereka. GSM juga masuk ke dalam tugas mereka, tetapi pertama-tama itu perlu untuk menangkap Wi-Fi dan memotong perintah lain dari itu.

3. Jaringan yang tidak dilindungi. Tim yang selama empat jam pertama memilih semua jaringan yang tidak terlindungi untuk kerentanan. Kami memahami bahwa dalam empat jam ini tidak ada yang super penting yang akan terjadi di segmen yang dilindungi, dan jika itu terjadi, para pembela akan mengembalikannya. Oleh karena itu, mereka fokus pada apa yang bisa berubah secara permanen. Ternyata - tidak sia-sia. Empat jam kemudian, kelompok yang sama mulai menganalisis segmen yang dilindungi.

4. Grup pemindai. Panitia langsung menyatakan bahwa jaringan akan berubah, jadi kami memiliki dua orang yang terus memindai jaringan untuk perubahan. Itu tidak mudah untuk diotomatisasi, karena di bawah jaringan yang berbeda, pengaturan yang berbeda diperlukan pada waktu yang berbeda. Sebagai contoh, pada jam pertama di jaringan fe.phd, nmap bekerja dengan baik untuk kami dalam mode T3, dan setelah 12 jam itu hampir tidak berfungsi di T1.

Vektor penting lainnya bagi kami adalah daftar perangkat lunak dan teknologi yang diterbitkan oleh penyelenggara. Untuk setiap teknologi, kami mencoba membuat pusat kompetensi kami sendiri, yang dapat dengan cepat membantu dan melihat kerentanan tipikal.

Untuk beberapa layanan, kami menemukan kerentanan yang sangat menarik, tetapi tidak ada eksploitasi publik. Jadi, misalnya, dengan Redis Pasca-eksploitasi RCE. Kami yakin bahwa kerentanan ini akan muncul di infrastruktur game, jadi kami memutuskan untuk menulis eksploitasi 1 hari kami sendiri. Tidak mungkin untuk menulis 1 hari khusus untuk kerentanan ini, tetapi secara keseluruhan kami memiliki sekitar lima eksploitasi non-publik yang siap kami gunakan.



Sayangnya, kami tidak berhasil berbagi semua teknologi, tetapi tidak begitu menakutkan. Kami membahas set utama, dan ini sudah cukup. Ada juga daftar pengontrol proses, yang juga kami atur dan coba persiapkan untuk itu.

Dalam persiapan untuk pertempuran, kami menyiapkan beberapa alat untuk menghubungkan mulus ke jaringan fisik ICS. Sebagai contoh, kami mengimplementasikan analog murah Pineapple-a menggunakan raspberry. Modul terhubung melalui Ethernet ke jaringan industri dan melalui GSM ke layanan manajemen. Selanjutnya, kita dapat mengkonfigurasi koneksi Ethernet dari jarak jauh dan mendistribusikannya di tempat menggunakan modul Wi-Fi bawaan. Sayangnya, pada briefing, panitia dengan jelas menjelaskan bahwa Anda tidak dapat terhubung secara fisik ke ICS, jadi kami meninggalkan modul ini hingga waktu yang lebih baik.

Banyak informasi tentang bank, bank lepas pantai, dan karya anti-penipuan. Tetapi setelah mengetahui bahwa tidak ada banyak uang di dalamnya, kami memutuskan untuk tidak mempersiapkan ini sebelumnya, tetapi untuk menghasilkan sesuatu di sepanjang jalan.

Kesimpulannya, kami telah melakukan sejumlah besar pekerjaan dalam persiapan. Penting untuk dicatat bahwa selain plus yang jelas dalam bentuk kinerja yang sukses di StandOff, ada juga yang tidak jelas.

  • Persiapan semacam itu adalah cara yang bagus untuk mengalihkan perhatian dan melakukan sesuatu yang sudah lama ingin saya coba dan eksplorasi, dan tidak ada waktu dalam kerangka kegiatan proyek.
  • Kami tidak memiliki proyek yang melibatkan seluruh tim sebagai bagian dari satu tugas, jadi kami mendapatkan pembangunan tim yang baik, mengejar tujuan tertentu.
  • Banyak dari apa yang telah kami lakukan dapat digunakan dalam proyek nyata, jadi selain untuk memperluas kompetensi kami, kami juga mendapatkan alat yang sudah jadi.

Sekarang, setelah menjelaskan semua ini dalam teks, saya mengerti bahwa kami tidak melakukan sesuatu yang semegah seperti sebelumnya. Secara umum, menurut saya tahap persiapan yang diatur dengan benar menjadi alasan utama kemenangan tim kami. Dan apa yang secara langsung terjadi selama StandOff sendiri - saya akan ceritakan di artikel kedua dari siklus.

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


All Articles