Butch

Information Gathering

NMAP - Ports and Services

                                                                                                                                                                                                                                            
┌──(me㉿justakazh)-[~/ctf/offsec/butch]
└─$ nmap -p21,25,135,139,445,450,5985 192.168.212.63 -sS -sV 
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-01-18 10:34 WIB
Stats: 0:00:08 elapsed; 0 hosts completed (1 up), 1 undergoing Service Scan
Service scan Timing: About 42.86% done; ETC: 10:34 (0:00:09 remaining)
Nmap scan report for 192.168.212.63
Host is up (0.39s latency).

PORT     STATE SERVICE       VERSION
21/tcp   open  ftp           Microsoft ftpd
25/tcp   open  smtp          Microsoft ESMTP 10.0.17763.1
135/tcp  open  msrpc         Microsoft Windows RPC
139/tcp  open  netbios-ssn   Microsoft Windows netbios-ssn
445/tcp  open  microsoft-ds?
450/tcp  open  http          Microsoft IIS httpd 10.0
5985/tcp open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
Service Info: Host: butch; OS: Windows; CPE: cpe:/o:microsoft:windows

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 33.38 seconds

SMB

mencoba anonymous login dan guest user namun tidak bisa

FTP

tidak bisa anonymous login

FFUF - HTTP 450

Road to flag

Web server berjalan pada port 450 dan hanya menampilkan login page

http://192.168.212.63:450/

disini saya mendapatkan informasi bahwa terdapat username butchmungkin ini akan bermanfaat. selain itu ini juga rentan terhadap SQL Injection

mencoba rce menggunakan EXEC xp_cmdshell namun tidak bisa

sudah coba untuk setting xp_cmdshell namun hasilnya sama saja

Time based SQL Injection

referensi : https://auspisec.com/blog/20220118/proving_grounds_butch_walkthrough.html

Time based sql injection memang sedikit memakan waktu banyak dalam exploitasinya karena mengandalkan time dengan query WAITFOR DELAY '00:00:15'. dibawah ini adalah step umum yang dilakukan dalam enumerasi database

payload diatas digunakan untuk identifkasi nama table umum yang digunakan berdasarkan query berikut

apabila table user tersedia maka akan melakukan delay selama 10 detik

intinya seperti pengecheckan apakah table itu ada atau tidak, kalo misal ada delay 10 detik kalo ga ada ya gabakal delay

ini bisa dikombinasikan sama burpsuite > intruder > paste list common tables name atau pake script python buat ngebrute force.

valid tables

table yang valid adalah : users

jika sudah dapat tablenya, selanjutnya enumerasi nama columns yang umum dengan payload berikut

payload diatas tersebut melakukan pengecheckan apakah ada column username atau tidak, flownya sama seperti yang sebelumnya jika ada maka delay 10 detik. payload tersebut berdasarkan dari query berikut

valid columns

columns yang valid adalah: username

selanjutnya saya akan mencari columns yang menyimpan password, bisa menggunakan cara diatas dengan menyediakan wordlist dan brute. cara lainnya adalah dengan payload berikut ini

simbol % biasa digunakan sebagai wildcard, hampir sama kaya *. jadi disini bisa ngebrute satu persatu hurufnya [a-z]

columns yang valid adalah : password_hash

mungkin password yang didalam columns tersebut berbentuk hash, akan memakan waktu lama apabila melakukannya baik manual atau otomatis. jadi disini saya akan update passwordnya saja.

Username enum

karena sebelumnya ada informasi username di login page alangkah baiknya mending divalidasiin pake payload dibawah ini

payload tersebut diambil berdasarkan query berikut ini

valid username: butch

karena saya udah dapat username yang valid jadi saya akan coba update password

akan tetapi saya belum bisa login, hal ini mungkin password yang tersimpan harus berbentuk hash, mengingat nama columnsnya adalah password_hash. saya akan mencoba hash yang common digunkan seperti md5, sha1, sha256, bcrypt.

valid hash : sha256 -> text: a

selanjutnya validasi username dan password

berhasil. selanjutnya login dengan butch:a

disini saya mencoba upload file aspx namun ada filterisasi, tetapi extensi .txt masuk ke server

mengingat terdapat direktori /dev jadi saya coba untuk melihat isi direktori tersebut

terdapat 2 file, namun disini yang menarik adalah site.master.txt yang dimana isinya adalah source code.

site.master adalah sebuah file yang berperan penting pada website berbasis .NET, kalo misal dilihat disini file yang diupload berada pada direktori (/) yang dimana site.master.cs berada disana, oleh karena itu saya dapat melakukan replace site.master.cs tersebut dengan payload reverse shell berikut ini

upload dan work.

Machine Recap

  1. Nmap Port and Service Scan

  2. port 450 menjalankan http service

  3. time based SQL Injection

    1. enumerasi table

    2. enumerasi columns

    3. enumerasi user

    4. update password user

  4. login dengan user

  5. static analyst site.master.txt

  6. lokasi directory upload adalah (/)

  7. mereplace site.master.cs dengan site.master.txt yang telah dimodifikasi

  8. upload site.master.cs dan reverse shell

Last updated