Konferensi DEFCON 20. Ambil dalam 60 detik: dari akun tamu hingga administrator domain Windows. Bagian 2

Konferensi DEFCON 20. Ambil dalam 60 detik: dari akun tamu hingga administrator domain Windows. Bagian 1

Hal yang baik adalah bahwa kita dapat memasuki jaringan lokal dengan memalsukan DNS. Bagaimana dengan rekayasa sosial yang memperhitungkan preferensi dan kecenderungan pengguna? Pentester tahu bahwa di IE Anda dapat meletakkan tag file gambar, misalnya, dari format .jpg, untuk jalur jaringan UNC, dan kemudian IE akan mentransfer ini kembali ke Windows dan secara otomatis terhubung ke folder jaringan, mencoba untuk mendapatkan gambar yang diminta atau sesuatu yang lain, misalnya , JavaScript, iFrame, dll. Jadi untuk hari ini, IE memiliki autentikasi otomatis.



Hal yang sama dapat dilakukan di Firefox dan Chrome, meskipun orang berpikir browser ini lebih aman. Tangkapan layar ini menunjukkan konsol kesalahan Firefox, yang menyatakan bahwa browser tidak dapat mengunduh file gambar ini dari jaringan publik, karena kebijakan keamanan mencegah pengunduhan file yang tidak ada dalam konteks keamanan browser. Fitur yang menarik dari alat kami adalah Firefox dan browser Chrome dapat dipaksa untuk mengunduh file hanya dengan mengirim header HTTP untuk memaksa Content-Type: application / force-download untuk mengunduh dan kemudian membuka file-file ini dari folder Temp atau langsung dari desktop. Dengan demikian, kami mengatur konteks keamanan file dan mengaktifkan otentikasi otomatis di SMB umum, jadi sekarang Anda dapat memaksa pengguna untuk mengautentikasi pada server penipuan Anda.

Tetapi bagaimana jika mereka tidak mengklik "unggah file" atau membukanya dari folder Temp? Dalam hal ini, Anda dapat membuatnya agar pengguna secara otomatis mengautentikasi saat melihat halaman HTML di browser. Untuk melakukan ini, plug-in harus terhubung ke Firefox dan Chrome. Perhatian saya tertuju pada plugin, QuickTime, yang sering diinstal secara default oleh pengguna. Saya tahu ada puluhan plugin berbeda, tetapi paling sering Anda bertemu orang-orang dengan iTunes di iPhone Anda dan menginstal QuickTime. Saya membaca daftar fitur QuickTime dan bertanya-tanya bagaimana cara mengacaukannya ke server jaringan penipuan saya untuk memaksa orang untuk mengotentikasi dengan memasukkan nama pengguna dan kata sandi mereka.
Kami berpikir sedikit dan memutuskan bahwa Anda dapat memasukkan daftar putar ke jalur jaringan UNC, dan kemudian pengguna akan secara otomatis mengautentikasi dan memotong konteks keamanan lokal. Kita perlu bekerja sedikit lebih banyak pada dua plugin lainnya, tetapi untuk saat ini, QuickTime melakukan pekerjaan yang sangat baik dari tugas kita.

Cara lain untuk memaksa orang untuk mengotentikasi secara otomatis di server kami adalah melalui email. Beberapa orang tahu bahwa di Outlook Anda dapat menggunakan email HTML, atau email menggunakan templat HTML. Jika kami memiliki sumber daya jaringan bersama, kami dapat menyisipkannya di dalam surel semacam itu, dan jika pengguna membuka surel ini, ia akan secara otomatis terhubung ke sumber daya ini dan mengautentinya.

Untuk keperluan kami, Anda dapat menggunakan file dalam format .docs. Setiap dokumen dapat digunakan dengan cara yang sama seperti gambar atau file HTML yang dimasukkan ke dalam UNC, yang pembukaannya secara otomatis akan terhubung ke jaringan berbagi.

Jangan lupa tentang file desktop.ini. Ini tidak terlalu terkenal, tetapi Anda dapat membuat file ini untuk menginstal sumber daya desktop seperti ikon dan wallpaper, dan menempatkannya di folder "bersama". Dalam hal ini, sekali lagi, sistem akan terhubung secara otomatis untuk menerima ikon-ikon ini dan “masuk” menggunakan akun pengguna saat ini.



Dengan cara yang sama, Anda dapat mengubah pengaturan file pintasan dengan ekstensi .lnk untuk secara otomatis terhubung ke sumber daya.

Jadi, alat kami dengan cepat dan mudah secara otomatis membuat file .ini atau HTML ini.
Hal terakhir yang ingin saya bicarakan adalah MITM, atau "pria di tengah." Anda dapat mengarahkan permintaan otentikasi NTLM atau menanamkan konten HTML di halaman, karena alat tidak, dan dengan demikian membantu melakukan tugasnya. Dengan cara ini, Anda dapat memaksa klien untuk terhubung ke server penipuan untuk menerapkan NTLM Relay. Ada alat lain yang memungkinkan Anda untuk melakukan Relay NTLM melalui SMB atau HTTP dan memaksa pengguna untuk mengotentikasi untuk Anda.

Fitur keren lain dari Squirtle adalah kemampuan untuk menjadikannya sebagai titik awal untuk membuat permintaan API, di mana Anda dapat menggunakan alat apa pun yang Anda tulis untuk menerima pesan Tipe 2 dan 3. Pesan tipe 3 adalah permintaan otentikasi terakhir, Anda harus mengirim pesan API untuk menerimanya Ketik 2 dan dapatkan kembali. Saya cepat-cepat menulis API yang memungkinkan Anda untuk menggunakan seperangkat alat yang Anda inginkan, Anda dapat mengubah kode sumber dan menggunakan server penipuan untuk menghubungkan dan sebagainya.

Namun, jika Anda seorang pentester atau pengguna pengujian, maka Anda memerlukan beberapa hubungan, interaksi terbalik. Karena itu, alat kami mencakup seperangkat aturan. Saya sudah mengatakan bahwa semua alat yang ada mengirim pengguna ke sumber yang sama, dan kita harus menentukan siapa pengguna ini. Saya ingin melakukan ini dalam satu klik sehingga, seperti yang saya katakan, adalah mungkin untuk mendapatkan otoritas dari administrator domain dalam 60 detik.

Saya menulis dalam aturan aplikasi kami berdasarkan pada fakta bahwa pengguna milik grup dan tujuan milik grup tujuan.

Segera setelah kami mengetahui bahwa pengguna tersebut adalah anggota suatu kelompok dan dapat mengakses sesuatu dengan koneksi otomatis, kami tidak perlu memaksanya untuk terhubung, tunggu dan berharap ia akan kembali. Kami membuat aturan sederhana, nanti saya akan menunjukkannya di antarmuka pengguna bahwa jika pengguna memasuki grup X, modul Y tertentu digunakan untuk melakukan tindakan Z dalam kaitannya dengan grup target T. Setelah beberapa detik saya akan menunjukkan cara kerjanya.

Aturan juga terdiri dengan segera memeriksa permintaan API, memeriksa aturan umum, dan mengulanginya sampai batas waktu terjadi. Segera setelah batas waktu terjadi, Anda harus menjawab dengan panggilan statis dan menahan status otentikasi, tidak memungkinkan pengguna untuk memutuskan sambungan.

Kita dapat menggunakan SMB untuk terhubung ke SMB, HTTP untuk terhubung ke HTTP, HTTP untuk terhubung ke SMB, dan sebagainya, dengan menerapkan NTLM Relaying. Masalahnya adalah orang secara praktis tidak menggunakan banyak protokol lain, jadi saya memutuskan untuk melihat lebih dekat pada protokol seperti LDAP dan MSSQL.

Saya akan berbicara tentang LDAP sedikit kemudian, tetapi untuk saat ini saya akan perhatikan bahwa MSSQL adalah hal yang keren, karena kami bisa mendapatkan basis data, kami dapat mengakses data, dan ini luar biasa.



Karena kami berurusan dengan pelanggan, kami ingin tindakan dilakukan secara otomatis segera setelah kami terhubung. Oleh karena itu, kami mendaftarkan pengguna dan grup menggunakan Metasploit, yang dipresentasikan pada konferensi BlackHat tahun ini. Jadi, sebagai pentester, saya mendapat akses ke file bersama, mendapat kesempatan untuk mengeksekusi perintah dan memiliki informasi tentang pengguna target dan grup target, tanpa hak administrator. Namun, dengan semua ini, saya tidak dapat terhubung ke pengontrol domain. Alasannya adalah bahwa secara default sebagian besar pengontrol domain memiliki tanda tangan SMB. Bagi mereka yang tidak terbiasa dengan penandatangan SMB, saya akan mengatakan bahwa ini adalah mekanisme keamanan protokol SMB, juga disebut tanda tangan keamanan. Ini menggunakan hash NTLM asli untuk menandatangani sesi dan menandatangani setiap paket, dan jika tidak ada tanda tangan, itu memutus Anda. Oleh karena itu, secara default, kami tidak dapat menerapkan NTLM Relay ke pengontrol domain. Ini membuat saya kesal, jadi saya memutuskan untuk mencari tahu betapa mudah dan cepatnya untuk sampai ke pengontrol ini. Mari kita kembali beberapa slide.



Ternyata LDAP diaktifkan secara default di pengontrol domain, yang memungkinkan menggunakan otentikasi NTLM, yang hebat. Tetapi kami tidak dapat mengubah kata sandi, karena, sebagai suatu peraturan, mengubah kata sandi atau menambahkan pengguna memerlukan SSL dan SSL dimasukkan dalam LDAP jika domain memiliki sertifikat CA. Apa yang kami lakukan adalah memasukkan ke dalam alat kami bahwa Anda dapat mengubah kata sandi pengguna, mengecualikan dan menambahkan pengguna, mendaftarkan domain, mengekstrak hash pengguna yang aktif dari memori, masuk ke kontrol domain dan melakukan hal-hal keren lainnya. Yang hebat adalah Anda dapat menambahkan pengguna ke grup tanpa SSL dan hal-hal lain, sehingga sebagai pentester Anda dapat mengambil dan menghubungkan akun pengguna lain, menambahkannya ke grup administrator domain jika Anda memiliki hak administrator, dan seterusnya dan seterusnya.

Kembali ke SMB. Selama penerbangan 4 jam saya di sini dari Chicago, saya berpikir untuk menggunakan proxy SMB SOCKS untuk tujuan kami. Siapa pun yang tahu menyadari bahwa protokol ini memungkinkan aplikasi untuk berkomunikasi melalui firewall yang memblokir koneksi langsung menggunakan server perantara yang kedua klien dapat terhubung. Yaitu, proksi SOCKS mengirimkan data bersih dari satu klien ke klien lain dan sebaliknya. Dengan demikian, proksi ini dapat menggantikan paket NTLM dengan data yang disampaikan.



Menggunakan HTTP, kita bisa menautkan server SharePoint ke situs web internal. Beberapa orang percaya bahwa tidak akan ada masalah dengan NTLM karena Anda berada di jaringan internal, tetapi bagaimana dengan jaringan eksternal? Ada juga kadang-kadang server SharePoint di sana, tetapi tidak terlalu sering. Saya pikir banyak organisasi terbuka untuk akses eksternal, mendukung NTLM dan mengizinkan pertukaran layanan web. Bagi mereka yang tidak terbiasa dengan Exchange Web Services (EWS), saya akan mengatakan bahwa mereka adalah semacam HTTP API, yang biasanya terletak di server yang sama dengan Outlook Web Access. Secara default, mereka menggunakan metode Negosiasi HTTP otentikasi, yang mendukung NTLM, sehingga kita dapat melakukan relai HTTP eksternal ke layanan yang terletak di EWS.

Ini meresahkan, karena dari luar Anda dapat mengakses korespondensi, kontak, kalender acara, dan menetapkan aturan Anda sendiri untuk email menggunakan titik koneksi HotSpot. Anda dapat masuk ke server EWS melalui Internet jika mereka tidak memiliki aturan firewall untuk koneksi keluar yang tidak memungkinkan Anda untuk terhubung ke server SMB yang curang dan secara otomatis menerima otentikasi. Dan semua ini dimungkinkan karena fakta bahwa setiap orang memiliki ponsel yang terhubung ke layanan EWS dan disinkronkan dengan mereka.

Dan sekarang saya perlu minum, karena di tempat ini saya ingin memulai demo. Jadi, slide ini menunjukkan seperti apa antarmuka pengguna grafis dari aplikasi ZackAttack saya, saya akan gulir ke bawah halaman tepat di bawah untuk melihat pengaturan untuk tindakan, sasaran, grup target, dan grup pengguna.



Jadi, Anda bisa mendapatkan gagasan tentang fungsinya dan seberapa kuat kemampuannya. Server HTTP yang curang, server SMB yang curang dan server HTTP yang mengelola sedang berjalan saat ini. Slide lebih lanjut menunjukkan grup mana pengguna berada.



Ini menunjukkan siapa dan kapan terhubung ke jaringan, sehingga Anda dapat melihat pengguna mana yang telah terhubung kembali.



Di sebelah kanan, akun sistem dan akun pengguna yang ada ditampilkan dalam warna merah, dari mana Anda dapat mendaftar tujuan melalui SMB dengan satu klik, menerima email dari Exchange Web Services, menggunakan shell perintah jika Anda adalah administrator sesi, mengakses file bersama, SharePoint, dan sebagainya.



Seperti yang saya katakan, kita dapat membuat aturan dan kita dapat menambahkan pengguna ke grup dengan penghitungan otomatis atau dengan membuat grup secara manual, misalnya, membuat grup yang disebut "moo".



Sesuatu yang tidak bisa saya lakukan, seperti yang saya katakan, para dewa demo tidak menyukai saya. Kami harus kembali dan men-tweak sesuatu di program.



Maaf teman-teman, tapi ini hanya rilis alpha, saya menulis kode ini sendiri dalam 3 minggu. Sekarang saya akan menambahkan grup yang disebut "yar", sekarang Anda melihat bahwa kedua grup ini telah muncul di bagian bawah, di mana pengguna yang dipilih telah ditambahkan.



Seperti yang saya katakan, kita juga dapat mendaftar berbagai grup pengguna dari pengontrol domain, ini adalah tab "UserGroups", dan membuat aturan untuk autentikasi otomatis menggunakan tab "Aturan Serangan" - "Aturan Serangan".

Anda lihat di sini pengguna grup Yar yang baru dibuat yang dapat terhubung ke Layanan Web Exchange untuk tujuan spesifik grup target, dan di sini Anda juga dapat menambahkan alamat IP apa pun, misalnya, 10.1.10.250 ke grup target.



Segera setelah permintaan otentikasi diterima dari seseorang dari grup pengguna, kami secara otomatis terhubung ke EWS dan mengeluarkan semua surat dari Kotak Masuk, dari folder Konsep, kami dapat dengan mudah menambahkan folder lain, katakanlah, Item Terkirim.



Bagian terbaik tentang alat ini adalah bahwa setelah otentikasi, sesi tetap terbuka sepanjang seluruh koneksi ke server penipuan dan semua tindakan ini dilakukan. Karenanya, kita tidak perlu mengautentikasi lagi untuk menerima email yang masuk.
Karena kami memiliki 30 permintaan yang berasal dari sistem, pertama-tama kami dapat menetapkan sekitar 30 aturan dan kemudian melakukan berbagai tindakan dalam hubungan khusus ini. Seperti yang saya katakan, kami dapat mengulangi semua langkah ini untuk semua pengguna dan untuk semua tujuan koneksi ini atau untuk tujuan tertentu.

Pada saat yang sama, kami dapat menghasilkan payload dengan mengklik tab Payload Auth. Dari sini, Anda dapat membuat file HTML untuk menentukan OC pengguna dan menggunakan salah satu dari 3 metode untuk memaksa browser untuk melakukan otentikasi secara otomatis.



Di sini Anda dapat membuat desktop.ini untuk mengunggah file ke folder bersama dan menggunakan generator file untuk menyuntikkan UNC Path ke file xml .doc, membuat file shortcut .lnk dan mengarsip file Zip, seperti halnya secara otomatis membuat file email XTML. Semua ini dilakukan sesederhana mungkin dengan bantuan Firesheep dan NTLM Relaying.

Akhirnya, melalui tab Hasil + Log, alat saya melacak hash pengguna seperti yang terjadi sebelum otentikasi statis, sehingga Anda dapat mencoba memecahkan kata sandi.



Jadi, ini adalah demonstrasi kemampuan ZackAttack. Jadi bagaimana kita melindungi diri kita dari ini? Pertahanan adalah untuk membatasi permukaan serangan.



Masing-masing memiliki metode pertahanannya sendiri terhadap serangan semacam ini. Orang-orang menyarankan untuk menggunakan NTLM versi 2. Alat saya mendukung versi ini, tetapi tidak ada perbedaan yang signifikan antara versi 2 dan versi 1.

Anda dapat menginstal firewall pada port 445 keluar, yang akan melindungi Anda dari orang lain yang mengirimkan muatan penipuan yang memaksa otentikasi otomatis. Namun, ini tidak melindungi terhadap penetrasi melalui perangkat seluler.

Anda dapat mengonfigurasi kebijakan grup untuk membatasi penggunaan program GPO di Windows 7 untuk membatasi tujuan otentikasi NTLM. Semua orang mengklaim solusi terbaik adalah Kerberos. Namun, masalahnya adalah bahwa organisasi harus mengalihkan semuanya ke Kerberos, dan ini tidak akan berhasil, karena ada banyak hal yang tidak mendukung Kerberos. Hal lain adalah bahwa jika Anda mengaktifkan Kerberos, Anda tidak akan dapat mendukung NTLM sama sekali, hal yang sama berlaku untuk penandatanganan, karena bagi mereka yang tidak Anda kenal, Anda harus menandatangani setiap paket dengan hash kata sandi asli. Menandatangani LDAP, tanda tangan SMB, otentikasi HTTP tingkat lanjut - semua ini tidak didukung oleh Cerberus, sehingga orang-orang salah dalam berpikir bahwa tanda tangan akan menyelesaikan semua masalah. Jika Anda menerapkan tanda tangan wajib, ini dapat menonaktifkan banyak hal.

Karena itu, dalam melindungi organisasi, Anda harus menjaga keseimbangan. Jika Anda adalah pengguna akhir, Anda biasanya tidak khawatir tentang hal-hal seperti itu, tetapi jika Anda adalah administrator sistem suatu perusahaan, masalah terbesar bagi Anda adalah kebutuhan untuk menolak menggunakan NTLM.

Karena Windows 8 dan Windows 2012 masih mendukung NTLM secara default, akan butuh waktu untuk menyerah dan beralih menggunakan Kerberos, dan saya harap alat saya membantu. Ini akan dipublikasikan pada hari Selasa 31 Juli segera setelah saya tiba di rumah di zfasel.com/tools . Ini juga tersedia di DVD konferensi ini, serta slide saya. Jika Anda ingin memberi tahu saya seberapa buruk kinerja dan demo saya, kirim email ke dc20@zfasel.com atau cari di Twitter untuk nama panggilan @zfasel saya.



Terima kasih telah tinggal bersama kami. Apakah Anda suka artikel kami? Ingin melihat materi yang lebih menarik? Dukung kami dengan melakukan pemesanan atau merekomendasikannya kepada teman-teman Anda, diskon 30% untuk pengguna Habr pada analog unik dari server entry-level yang kami temukan untuk Anda: Seluruh kebenaran tentang VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps dari $ 20 atau bagaimana membagi server? (opsi tersedia dengan RAID1 dan RAID10, hingga 24 core dan hingga 40GB DDR4).

VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps hingga musim semi gratis ketika membayar selama setengah tahun, Anda dapat memesan di sini .

Dell R730xd 2 kali lebih murah? Hanya kami yang memiliki 2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TV dari $ 249 di Belanda dan Amerika Serikat! Baca tentang Cara Membangun Infrastruktur kelas menggunakan server Dell R730xd E5-2650 v4 seharga 9.000 euro untuk satu sen?

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


All Articles