Kami menulis secara teratur tentang bagaimana peretas sering mengandalkan teknik peretasan tidak berbahaya untuk menghindari deteksi. Mereka benar-benar “bertahan di atas rumput” menggunakan alat Windows standar, dengan demikian melewati antivirus dan utilitas lain untuk mendeteksi aktivitas jahat. Sebagai pembela HAM, kita sekarang harus menghadapi konsekuensi mengerikan dari teknik peretasan yang cerdik seperti itu: seorang karyawan yang ditempatkan dengan baik dapat menggunakan pendekatan yang sama untuk mencuri data secara diam-diam (kekayaan intelektual perusahaan, nomor kartu kredit). Dan jika dia meluangkan waktu, dan bekerja dengan lambat dan tanpa disadari, akan sangat sulit - tetapi masih mungkin, dengan pendekatan yang tepat dan alat yang tepat - untuk mendeteksi aktivitas semacam itu.
Di sisi lain, saya tidak ingin menjelekkan karyawan, karena tidak ada yang mau bekerja di lingkungan bisnis langsung dari Orwell's 1984. Untungnya, ada sejumlah langkah praktis dan peretasan hidup yang dapat membuat hidup jauh lebih sulit bagi orang dalam. Kami akan melihat metode serangan tersembunyi yang digunakan oleh peretas oleh karyawan dengan beberapa latar belakang teknis. Dan sedikit lebih jauh kita akan membahas opsi-opsi untuk mengurangi risiko semacam itu - kami akan mempelajari opsi teknis dan organisasi untuk tindakan.
Apa yang salah dengan PsExec?
Edward Snowden, benar atau tidak, telah menjadi identik dengan pencurian data orang dalam. Ngomong-ngomong, jangan lupa untuk melihat postingan ini tentang orang dalam lain yang juga pantas mendapatkan status ketenaran. Satu hal penting yang perlu ditekankan tentang metode yang digunakan Snowden adalah sejauh yang kami ketahui, dia tidak menginstal perangkat lunak berbahaya eksternal!
Sebaliknya, Snowden menggunakan sedikit rekayasa sosial dan menggunakan pekerjaannya sebagai administrator sistem untuk mengumpulkan kata sandi dan membuat kredensial. Tidak ada yang mewah - tidak ada mimikatz , serangan man-in-the-middle atau metasploit .
Organisasi tidak selalu dalam posisi unik Snowden, tetapi ada sejumlah pelajaran yang harus diperhatikan dari konsep "bertahan hidup merumput" - untuk tidak melakukan tindakan berbahaya yang dapat dideteksi, dan sangat berhati-hati dalam menggunakan kredensial. Ingat pikiran ini.
Psexec dan sepupunya crackmapexec telah mengesankan para pentester , peretas, dan blogger keamanan informasi yang tak terhitung jumlahnya. Dan bila digabungkan dengan mimikatz, psexec memungkinkan penyerang untuk menavigasi dalam jaringan tanpa harus mengetahui kata sandi teks yang jelas.
Mimikatz mencegat hash NTLM dari proses LSASS, dan kemudian meneruskan token atau kredensial - yang disebut. Lewati serangan hash- di psexec, memungkinkan penyerang untuk masuk ke server lain atas nama pengguna lain . Dan dengan setiap perpindahan berikutnya ke server baru, penyerang mengumpulkan kredensial tambahan, memperluas jangkauan kemampuannya dalam menemukan konten yang tersedia.
Ketika saya pertama kali mulai bekerja dengan psexec, rasanya ajaib bagi saya - terima kasih kepada Mark Russinovich , pengembang psexec yang jenius - tetapi saya juga tahu tentang komponennya yang berisik . Dia tidak pernah merahasiakannya!
Fakta menarik pertama tentang psexec adalah bahwa ia menggunakan protokol file jaringan SMB Microsoft yang sangat kompleks . Psexec menggunakan SMB untuk mengirim biner kecilfile ke sistem target dengan menempatkannya di folder C: \ Windows.
Selanjutnya, psexec membuat layanan Windows menggunakan biner yang disalin dan menjalankannya di bawah nama yang sangat "tidak terduga" PSEXECSVC. Pada saat yang sama, Anda benar-benar dapat melihat semua ini, seperti yang saya lakukan, mengamati mesin jarak jauh (lihat di bawah).
Kartu nama Psexec: layanan "PSEXECSVC". Ini meluncurkan file biner yang ditempatkan di atas SMB di folder C: \ Windows.
Sebagai langkah terakhir, biner yang disalin membuka koneksi RPC ke server target dan kemudian menerima perintah kontrol (secara default - melalui shell cmd Windows), menjalankannya dan mengarahkan input dan output ke mesin rumah penyerang. Dalam kasus ini, penyerang melihat baris perintah dasar - sama seperti jika dia terhubung secara langsung.
Banyak komponen dan proses yang sangat bising!
Proses internal canggih Psexec menjelaskan pesan yang membingungkan saya selama pengujian pertama saya beberapa tahun yang lalu: "Memulai PSEXECSVC ..." diikuti dengan jeda sebelum baris perintah muncul.
Psexec dari Impacket benar-benar menunjukkan apa yang terjadi di balik tenda.
Tidak heran: psexec melakukan banyak pekerjaan di bawah tenda. Jika Anda tertarik dengan penjelasan yang lebih rinci, lihat deskripsi hebat ini di sini.
Jelas, ketika digunakan sebagai alat administrasi sistem, yang merupakan tujuan awal dari psexec, tidak ada yang salah dengan semua mekanisme Windows ini berdengung. Namun, bagi penyerang, psexec akan menimbulkan komplikasi, dan bagi orang dalam yang berhati-hati dan licik seperti Snowden, psexec, atau utilitas serupa akan terlalu berisiko.
Dan kemudian muncullah Smbexec
SMB adalah cara yang cerdas dan tersembunyi untuk mentransfer file antar server, dan peretas telah menyusup ke SMB secara langsung selama berabad-abad. Saya kira semua orang sudah tahu bahwa Anda seharusnya tidak membuka port SMB 445 dan 139 ke Internet, bukan?
Di Defcon pada tahun 2013, Eric Milman ( brav0hax ) merilis smbexec sehingga penguji penetrasi dapat mencoba peretasan SMB yang tersembunyi. Saya tidak tahu keseluruhan ceritanya, tapi kemudian Impacket menyempurnakan smbexec lebih jauh. Bahkan, untuk pengujian saya, saya mengunduh skrip dari Impacket dengan python dari Github .
Tidak seperti psexec, smbexec menghindarimentransfer file biner yang berpotensi dapat dideteksi ke mesin target. Sebaliknya, utilitas hidup sepenuhnya dengan menjalankan baris perintah Windows lokal .
Inilah yang dilakukannya: ia mengirimkan perintah dari mesin yang menyerang melalui SMB ke file input khusus, dan kemudian membuat dan menjalankan baris perintah yang kompleks (seperti layanan Windows) yang akan tampak familier bagi pengguna Linux. Singkatnya: ini meluncurkan shell cmd Windows asli, mengalihkan output ke file lain, dan kemudian mengirimkannya melalui SMB kembali ke mesin penyerang.
Cara terbaik untuk memahami ini adalah dengan mempelajari baris perintah, yang bisa saya ambil dari log peristiwa (lihat di bawah).
Bukankah ini cara terbaik untuk mengalihkan I / O? Omong-omong, pembuatan layanan memiliki ID peristiwa 7045.
Seperti psexec, ini juga membuat layanan yang melakukan semua pekerjaan, tetapi layanan tersebut kemudian dihapus - hanya digunakan sekali untuk menjalankan perintah dan kemudian menghilang! Seorang petugas keamanan informasi pemantauan mesin korban tidak akan dapat mendeteksi jelas indikator serangan: tidak ada file executable berbahaya, tidak ada layanan gigih diinstal, dan tidak ada bukti dari RPC yang digunakan, karena SMB adalah satu-satunya cara mentransfer data. Cemerlang!
Pada saat yang sama, "pseudo-shell" tersedia dari sisi penyerang dengan penundaan antara mengirim perintah dan menerima respons. Tetapi ini cukup untuk pekerjaan penyerang - baik orang dalam atau peretas eksternal yang sudah memiliki pijakan - untuk mulai mencari konten yang menarik.
Untuk mengeluarkan data kembali dari mesin target ke mesin penyerang, digunakan smbclient . Ya, ini adalah utilitas Samba yang sama , tetapi dimodifikasi untuk skrip Python oleh Impacket. Nyatanya, smbclient memungkinkan Anda untuk mengatur FTP secara rahasia melalui transfer SMB.
Mari mundur selangkah dan pikirkan tentang apa yang dapat dilakukannya untuk karyawan tersebut. Dalam skenario fiksi saya, katakanlah seorang blogger, analis keuangan, atau konsultan keamanan bergaji tinggi diperbolehkan menggunakan laptop pribadi untuk bekerja. Sebagai hasil dari beberapa proses ajaib, dia tersinggung di perusahaan dan "berusaha sekuat tenaga". Bergantung pada sistem operasi laptop, itu menggunakan versi Python dari Impact, atau versi Windows dari smbexec atau smbclient sebagai file .exe.
Seperti Snowden, dia mempelajari kata sandi pengguna lain baik dengan mengintipnya dari balik bahunya, atau dia beruntung dan dia menemukan file teks dengan kata sandinya. Dan dengan kredensial ini, dia mulai mempelajari sistem pada tingkat hak istimewa yang baru.
Meretas DCC: Kami Tidak Membutuhkan Mimikatz Bodoh
Di postingan pentest saya sebelumnya, saya banyak menggunakan mimikatz. Ini adalah alat yang hebat untuk mencegat kredensial - hash NTLM dan bahkan kata sandi teks biasa yang disembunyikan di dalam laptop dan menunggu untuk digunakan.
Waktu telah berubah. Alat pemantauan menjadi lebih baik dalam mendeteksi dan memblokir mimikatz. Administrator keamanan informasi juga mendapatkan lebih banyak opsi untuk mengurangi risiko yang terkait dengan serangan hash (selanjutnya disebut sebagai PtH).
Jadi, apa yang harus dilakukan karyawan yang cerdas untuk mengumpulkan kredensial tambahan tanpa menggunakan mimikatz?
Impacket menyertakan utilitas yang disebut secretdumpyang mengambil kredensial dari Cache Kredensial Domain, atau disingkat DCC. Sejauh yang saya mengerti, jika pengguna domain masuk ke server tetapi pengontrol domain tidak tersedia, DCC memungkinkan server untuk mengotentikasi pengguna. Bagaimanapun, secretdump memungkinkan Anda membuang semua hash ini, jika tersedia. Hash
DCC bukan hash NTML dan tidak dapat digunakan untuk serangan PtH .
Nah, Anda bisa mencoba memecahkannya untuk mendapatkan kata sandi asli. Namun, Microsoft menjadi lebih pintar dengan DCC dan menjadi sangat sulit untuk memecahkan hash DCC. Ya, ada hashcat , "pemetik kata sandi tercepat di dunia", tetapi membutuhkan GPU untuk bekerja secara efisien.
Sebaliknya, mari kita coba berpikir seperti Snowden. Karyawan tersebut dapat melakukan manipulasi psikologis secara langsung dan mungkin mengetahui beberapa informasi tentang orang yang kata sandinya ingin dia buka. Misalnya, cari tahu apakah akun online orang ini pernah diretas dan periksa kata sandi teks mereka untuk mencari petunjuk.
Dan ini adalah skenario yang saya putuskan untuk pergi. Misalkan ada orang dalam yang mengetahui bahwa bosnya, Cruella, telah diretas beberapa kali di sumber daya web yang berbeda. Setelah menganalisis beberapa sandi ini, ia menyadari bahwa Cruella lebih suka menggunakan nama tim bisbol "Yankees" diikuti dengan "Yankees2015" tahun ini.
Jika saat ini Anda mencoba mereproduksi ini di rumah, Anda dapat mengunduh file "C" kecilkode yang mengimplementasikan algoritma hashing DCC dan mengkompilasinya. John the Ripper menambahkan dukungan DCC, jadi Anda juga bisa menggunakannya. Mari kita asumsikan bahwa orang dalam tidak ingin terlibat dalam mempelajari tentang John the Ripper dan suka menjalankan "gcc" dalam kode C lama.
Saat memerankan peran sebagai orang dalam, saya menjalankan beberapa kombinasi berbeda dan pada akhirnya saya dapat menemukan bahwa sandi Cruella adalah "Yankees2019" (lihat di bawah). Misi terselesaikan!
Dengan sedikit rekayasa sosial, sedikit ramalan, dan sedikit Maltego, Anda sedang dalam perjalanan untuk memecahkan hash DCC.
Saya mengusulkan untuk mengakhiri ini. Kami akan kembali ke pertanyaan ini di posting lain dan melihat metode serangan yang lebih lambat dan tersembunyi, sambil terus mengandalkan rangkaian utilitas yang sangat baik dari Impacket.