Selasa, 26 Mei 2026

Implementasi Hacking Tools untuk Pengintaian Jaringan dan Evaluasi Celah Keamanan Layanan Web Server

 

DISUSUN OLEH : 

1. Bintang Renaldy Pratama  [25051204026]

2. Muchammad Achsan Ikhtaru [25051204028]

3. Klement Ezra Suhartanto  [25051204082]

4. Muhammad Nayaka Romero [25051204213] 



BAB I 
PENDAHULUAN

1.1 Latar Belakang

Infrastruktur layanan digital dan web server yang berjalan di atas sistem operasi senantiasa dihadapkan pada ancaman eksploitasi dan serangan siber. Konfigurasi jaringan yang beroperasi dengan baik belum tentu bebas dari celah keamanan (vulnerabilities). Kesalahan implementasi kode atau kerentanan pada arsitektur aplikasi dapat menjadi jalan masuk bagi peretas untuk mengambil alih sistem. Oleh karena itu, diperlukan langkah proaktif berupa simulasi pengujian penetrasi (penetration testing) menggunakan berbagai alat peretasan (hacking tools) standar industri. Praktikum ini dilaksanakan untuk memetakan permukaan serangan (attack surface) melalui fase pengintaian jaringan dan enumerasi direktori web, sehingga mahasiswa dapat memahami logika kerentanan sistem dan langkah mitigasinya secara komprehensif. 

1.2 Rumusan Masalah

  1. 1. Bagaimana cara memetakan target aktif (Host Discovery) dan mendeteksi layanan yang disembunyikan (Port Scanning) pada jaringan lokal menggunakan utilitas Nmap? 
  2. 2. Bagaimana cara mengidentifikasi identitas web server (Service Fingerprinting) yang berjalan di balik port target secara spesifik menggunakan instruksi lanjutan Nmap? 
  3. 3. Bagaimana cara mengeksploitasi kerentanan logika otentikasi (SQL Injection) pada endpoint target murni menggunakan instruksi antarmuka baris perintah (CLI/curl)?  

1.3 Tujuan Praktikum

  1. 1. Mampu mengoperasikan utilitas pemindai jaringan (Nmap) untuk melakukan penemuan host dan pemindaian port guna memetakan topologi target. 
  2. 2. Mampu mengekstrak informasi versi layanan dan kerangka kerja web yang digunakan oleh target tanpa interaksi peramban web (browser). 
  3. 3. Mampu melakukan analisis kerentanan logika otentikasi (seperti penyuntikan basis data) menggunakan instruksi Command Line Interface (CLI). 


BAB II 
LANDASAN TEORI

2.1 Penetration Testing dan Pendekatan Black Box

Penetration testing (Uji Penetrasi) adalah metode evaluasi keamanan sistem komputer dan jaringan yang dilakukan secara proaktif dengan menyimulasikan serangan yang biasa dilakukan oleh peretas (hacker). Tujuannya adalah untuk menemukan kelemahan (vulnerabilities) pada arsitektur sistem sebelum celah tersebut dieksploitasi oleh pihak yang tidak berwenang. Metode pengujian yang umum digunakan adalah Black Box Testing, di mana penguji (analis keamanan) sama sekali tidak dibekali informasi internal mengenai infrastruktur, topologi jaringan, maupun kode sumber (source code) dari sistem target. Pendekatan ini murni menyimulasikan sudut pandang penyerang eksternal. 

2.2 Information Gathering dan Network Scanning (Nmap)

Langkah fundamental pertama dalam uji penetrasi adalah pengumpulan informasi (reconnaissance). Network Mapper (Nmap) merupakan utilitas standar industri berbasis Command Line Interface (CLI) yang dirancang untuk memetakan topologi jaringan dan melakukan pemindaian port (Port Scanning). Nmap beroperasi dengan mengirimkan paket data spesifik ke perangkat target dan menganalisis responsnya.

  • Host Discovery: Nmap menggunakan protokol seperti ICMP (Ping Sweep) untuk mengidentifikasi perangkat yang aktif di dalam suatu jaringan lokal.  
  • TCP Connect Scan: Salah satu metode pemindaian port yang melakukan jabat tangan tiga arah (3-way handshake) secara penuh. Metode ini sering digunakan karena lalu lintas datanya terlihat seperti koneksi normal, sehingga mampu melewati blokir paket dari driver jaringan virtual maupun firewall dasar. 
  • Service Fingerprinting: Fitur lanjutan Nmap yang mampu menginterogasi port terbuka untuk mendeteksi nama layanan, versi perangkat lunak, hingga identitas web server yang berjalan di baliknya. 

2.3 Web Enumeration dan Analisis Endpoint

Setelah target teridentifikasi sebagai layanan web server, tahap selanjutnya adalah pemetaan permukaan serangan (attack surface). Aplikasi web modern sering kali menyembunyikan halaman administratif atau endpoint API (Antarmuka Pemrograman Aplikasi) dari navigasi publik. Utilitas enumerasi web (seperti Gobuster) digunakan untuk menemukan direktori tersembunyi tersebut. Alat ini bekerja menggunakan teknik brute-forcing, yaitu mencocokkan respons dari server target terhadap daftar kata (wordlist) yang dikirimkan secara masif berulang-ulang, guna memetakan seluruh struktur URL aplikasi yang berpotensi memiliki kelemahan. 

2.4 Kerentanan Logika Otentikasi (SQL Injection)

Tahap akhir dari identifikasi adalah melakukan eksploitasi dasar pada endpoint yang telah ditemukan. Salah satu celah keamanan web yang paling kritis adalah kegagalan sistem web dalam melakukan validasi dan sanitasi input dari pengguna (klien). Penyuntikan basis data (SQL Injection) merupakan teknik eksploitasi yang memanfaatkan celah tersebut dengan cara mengirimkan karakter khusus dan logika Boolean (seperti ' OR 1=1 --) ke dalam kolom masukan (input field). Jika server gagal menyaring karakter ini, perintah tersebut akan digabungkan ke dalam kueri basis data di latar belakang. Kondisi 1=1 akan dievaluasi oleh mesin basis data sebagai pernyataan "Selalu Benar" (Always True), yang mengakibatkan sistem mengabaikan proses pengecekan kata sandi dan secara otomatis meloloskan otentikasi. 

 

BAB III 
METODOLOGI PRAKTIKUM

3.1 Lingkungan Uji Coba (Alat dan Bahan)

Pelaksanaan uji penetrasi ini dilakukan di dalam sebuah lingkungan laboratorium virtual yang terisolasi untuk memastikan keamanan jaringan utama. Spesifikasi perangkat keras dan perangkat lunak yang digunakan dalam skenario pengujian ini meliputi: 

3.1.1 Perangkat Keras (Hardware)

  • Komputer/Laptop utama (Host) yang bertindak sebagai mesin fisik.
  • Modul antarmuka jaringan nirkabel (Wi-Fi) untuk perutean koneksi lokal. 

3.1.2 Perangkat Lunak (Software)

  • Hypervisor: Oracle VM VirtualBox (sebagai penyedia mesin virtual). 
  • Sistem Operasi Penyerang (Attacker OS): Kali Linux versi terbaru berbasis antarmuka baris perintah (CLI). 
  • Sistem Operasi Target (Victim OS): Lingkungan host atau kontainer lokal yang menjalankan aplikasi web server. 
  • Aplikasi Target: Image Docker OWASP Juice Shop (aplikasi web yang sengaja dirancang memiliki kerentanan untuk keperluan edukasi).
  • Alat Analisis Penetrasi: Utilitas bawaan Linux (seperti curl) dan pemindai jaringan Network Mapper (Nmap). 

3.2 Topologi dan Skenario Jaringan

Pengujian menggunakan pendekatan Black Box Testing, dimana mesin penyerang (Kali Linux) diposisikan seolah-olah berada dalam satu Jaringan Area Lokal (LAN) yang sama dengan mesin target. Untuk merealisasikan skenario ini, pengaturan antarmuka jaringan pada VirtualBox diubah menggunakan mode Bridged Adapter. Melalui mode ini, mesin tamu (Kali Linux) mendapatkan alokasi IP Address logis secara dinamis (DHCP) langsung dari router jaringan fisik, sehingga letaknya menjadi sejajar dengan mesin target pada subnet yang sama (misalnya pada blok IP 10.145.247.x)

3.3 Prosedur Pengujian (Langkah Kerja)

Proses pengujian dilakukan secara sekuensial berdasarkan metodologi standar uji penetrasi, mulai dari fase pengintaian hingga fase eksploitasi dasar. Berikut adalah langkah kerja operasionalnya:

Tahap 1: Pengintaian Jaringan (Host Discovery) 

  1. Membuka aplikasi terminal pada mesin Kali Linux. 
  2. Melakukan Ping Sweep untuk memetakan dan mengidentifikasi seluruh perangkat yang sedang aktif (berstatus up) pada subnet jaringan lokal. 
  3. Instruksi yang dieksekusi: nmap -sn 10.145.247.*
  4. Mencatat alamat IP target yang terindikasi mencurigakan dari hasil pemindaian.

Tahap 2: Pemindaian Layanan (Port Scanning & Enumeration) 

  1. Melakukan pemindaian secara menyeluruh pada 65.535 port terhadap alamat IP target yang ditemukan pada Tahap 1. 
  2. Pemindaian menggunakan metode TCP Connect Scan (-sT) untuk memastikan paket tidak diblokir oleh antarmuka jaringan virtual, dan mengaktifkan mode verbose (-v) untuk pemantauan waktu nyata.
  3. Instruksi yang dieksekusi: nmap -p- -sT -v <IP_TARGET> 
  4. Setelah port terbuka ditemukan (misalnya port 3000), dilakukan interogasi lanjutan untuk mengekstrak identitas layanan (Service Fingerprinting) dan judul halaman HTTP. 
  5. Instruksi yang dieksekusi: nmap -p 3000 -sT -sV --script http-title <IP_TARGET>

Tahap 3: Enumerasi Direktori Web (Directory Brute-forcing)

  1. Berdasarkan temuan port 3000 yang menjalankan layanan web, dilakukan pemetaan struktur direktori untuk mencari endpoint API tersembunyi menggunakan utilitas Gobuster.
  2. Melakukan eksekusi awal menggunakan kamus data standar bawaan Kali Linux (common.txt). Instruksi yang dieksekusi: gobuster dir -u http://<IP_TARGET>:3000 -w /usr/share/wordlists/dirb/common.txt
  3. Mengamati respons server yang mengalami kendala positif palsu (wildcard routing) akibat arsitektur Single Page Application (SPA), di mana halaman tak terdaftar mengembalikan status 200 OK dengan panjang data identik (9903 bytes). 
  4. Melakukan modifikasi instruksi (troubleshooting) dengan menambahkan parameter penyaring --exclude-length untuk mengabaikan ukuran paket default tersebut. Instruksi yang dieksekusi: gobuster dir -u http://<IP_TARGET>:3000 -w /usr/share/wordlists/dirb/common.txt --exclude-length 9903
  5. Mencatat hasil direktori valid yang merespons dengan ukuran fail berbeda, seperti direktori /api dan /rest, yang mengonfirmasi letak antarmuka API layanan target. 

Tahap 4: Uji Kerentanan dan Eksploitasi (SQL Injection) 

  1. Berdasarkan hasil pengintaian dan enumerasi direktori (/rest), target dipastikan memiliki API otentikasi. 
  2. Melakukan uji injeksi manipulasi basis data pada endpoint API otentikasi login (/rest/user/login)
  3. Memformulasikan muatan (payload) berformat JSON yang diinjeksi dengan parameter logika Boolean khusus, yaitu ' OR 1=1 --, untuk memanipulasi query pengecekan sistem. 
  4. Instruksi yang dieksekusi: echo > “{"email":"' OR 1=1 --","password":"apapun"}” > payload.json
  5. Mengirimkan permintaan metode POST tersebut secara langsung menggunakan utilitas transfer data CLI tanpa membuka browser
  6. Instruksi eksploitasi yang dieksekusi dalam satu baris perintah: curl -X POST http://<IP_TARGET>:3000/rest/user/login -H "Content-Type: application/json" -d @payload.json atau curl -X POST http://<IP_TARGET>:3000/rest/user/login -H "Content-Type: application/json" -d '{"email":"admin@juice-sh.op'\''--","password":"apapun"}'
  7. Mengamati dan mendokumentasikan respons server, termasuk status keberhasilan login dan token otentikasi yang dikembalikan. 

 

BAB IV 
HASIL DAN PEMBAHASAN

4.1 Hasil Pengintaian (Host Discovery) dan Pemindaian Layanan

4.1.1 Hasil Eksekusi



4.1.2 Analisis dan Pembahasan

Fase pengintaian dilakukan dalam dua tahap menggunakan Nmap. Pertama, perintah nmap -sn 10.52.44.* digunakan untuk melakukan Ping Sweep pada subnet 10.52.44.0/24, yang menghasilkan 5 host aktif dari 256 alamat yang dipindai, termasuk target utama 10.52.44.71 dengan NIC vendor AzureWave Technology. Kedua, perintah nmap -sT 10.52.44.71 dijalankan untuk memetakan attack surface target, di mana metode TCP Connect Scan dipilih karena lebih stabil di lingkungan VM. Hasilnya, dari 1000 port yang dipindai, ditemukan satu port terbuka yang krusial yaitu 3000/tcp, yang menjadi endpoint masuk untuk analisis kerentanan pada tahap selanjutnya. 

4.2 Hasil Enumerasi Layanan (Service Fingerprinting)

4.2.1 Hasil Eksekusi


4.2.2 Analisis dan Pembahasan

Pada tahap ini, perintah nmap -p 3000 -sT -sV 10.52.44.71 dijalankan untuk mengidentifikasi layanan yang berjalan di port 3000. Meskipun Nmap tidak dapat mengenali layanannya secara otomatis (ditandai dengan ppp?), analisis manual terhadap raw service fingerprint yang dicetak ke terminal berhasil mengungkap struktur protokol HTTP yang jelas, termasuk header HTTP/1.1 200 OK, Content-Type: text/html, dan yang paling krusial, tag <title>OWASP Juice Shop</title>. Hal ini mengonfirmasi bahwa port 3000 menjalankan aplikasi web OWASP Juice Shop sebagai target serangan. 

4.3 Hasil Enumerasi Web dan Pemetaan Direktori

4.3.1 Hasil Eksekusi



4.3.2 Analisis dan Pembahasan

Pada eksekusi pertama (Gambar 4.3a), perintah gobuster dir -u http://10.52.44.71:3000 -w /usr/share/wordlists/dirb/common.txt gagal berfungsi dengan baik karena arsitektur OWASP Juice Shop yang berbasis Single Page Application (SPA) selalu merespons setiap permintaan — termasuk URL yang tidak eksis — dengan status HTTP 200 OK berukuran 9903 bytes, sehingga Gobuster menganggap semua entri wordlist sebagai direktori valid (false positive).

Untuk mengatasi hal tersebut, parameter --exclude-length 9903 ditambahkan pada eksekusi kedua (Gambar 4.3b) guna memfilter respons berukuran 9903 bytes. Hasilnya, Gobuster berhasil memetakan beberapa direktori tersembunyi yang signifikan, yaitu /api dan /rest yang mengembalikan status 500 Internal Server Error sebagai konfirmasi letak endpoint API — khususnya /rest yang menjadi target utama injeksi pada tahap eksploitasi — serta /ftp yang mengindikasikan direktori penyimpanan file terbuka, dan /robots.txt yang berpotensi membocorkan informasi perutean aplikasi.

4.4 Hasil Uji Kerentanan dan Eksploitasi Dasar (SQL Injection)

4.4.1 Hasil Eksekusi


4.4.2 Analisis dan Pembahasan

Pengujian otentikasi dieksekusi secara langsung menggunakan curl dengan mengirimkan payload JSON {"email":"admin@juice-sh.op'--","password":"apapun"} ke endpoint login. Susunan '\'' dalam sintaks terminal merupakan teknik escaping agar karakter kutip tunggal dapat diteruskan ke server, sehingga nilai yang diterima pada parameter email adalah admin@juice-sh.op'--. Server merespons dengan mengembalikan JSON Web Token (JWT) beserta data profil admin@juice-sh.op, yang menjadi bukti absolut bahwa proses login berhasil meskipun password yang dikirimkan bernilai sembarang.

Keberhasilan eksploitasi ini disebabkan oleh kelemahan Improper Input Sanitization pada backend. Karakter kutip tunggal (') berfungsi menutup paksa parameter string pada query database, sementara -- merupakan sintaks komentar SQL yang membuat seluruh logika pengecekan password diabaikan oleh database. Akibatnya, database hanya mengevaluasi keberadaan email admin@juice-sh.op yang bernilai True, sehingga sistem langsung memberikan hak akses administrator penuh kepada penyerang tanpa verifikasi password sama sekali (authentication bypass).

4.5 Hasil Analisis Pasca-Eksploitasi: Decode Token dan Pemecahan Sandi (Hash Cracking) 

4.5.1 Hasil Eksekusi




4.5.2 Analisis dan Pembahasan

Berdasarkan Gambar 4.5a, token yang dikembalikan oleh server memiliki format standar JSON Web Token (JWT). JWT secara visual terdiri dari tiga bagian yang dipisahkan oleh tanda titik (.), yaitu Header, Payload, dan Signature. Ketiga bagian ini dikodekan menggunakan algoritma Base64Url. Sifat dasar Base64 adalah "pengkodean" (encoding), bukan "enkripsi" (encryption), sehingga siapa pun yang memiliki token ini dapat mendekodenya untuk melihat isi datanya menjadi teks yang dapat dibaca manusia.

Pada Gambar 4.5b, dilakukan proses dekode terhadap bagian tengah JWT (Payload). Analisis terhadap struktur JSON tersebut mengungkap sebuah kerentanan desain arsitektur yang sangat fatal (CWE-312: Cleartext Storage of Sensitive Information). Pengembang aplikasi melakukan kesalahan dengan memasukkan seluruh data profil administrator ke dalam token, termasuk parameter "password" : "0192023a7bbd73250516f069df18b500". Meskipun tidak berbentuk teks terang, mengekspos struktur sandi ke sisi klien merupakan pelanggaran keamanan yang parah. 

Untuk memulihkan kata sandi asli, dilakukan analisis kriptografi terhadap nilai sandi tersebut (Gambar 4.5c). Panjang karakter yang berjumlah 32 digit (128-bit) dalam format heksadesimal mengindikasikan kuat bahwa sistem menggunakan algoritma hashing MD5.

MD5 adalah fungsi hash kriptografi usang yang sangat rentan terhadap serangan kamus data (Dictionary Attack) dan tabel pelangi (Rainbow Tables). Melalui utilitas pemecah hash online, nilai hash tersebut berhasil diidentifikasi secara instan karena telah terindeks dalam pangkalan data secara global. Hasil pemecahan (crack) mengonfirmasi bahwa hash 0192023a7bbd73250516f069df18b500 adalah bentuk MD5 dari teks terang (plaintext): b. 



BAB V 
PENUTUP

5.1 Kesimpulan

  1. Keandalan Information Gathering: Penggunaan utilitas Command Line Interface (CLI) seperti Nmap terbukti sangat presisi dalam memetakan permukaan serangan jaringan. Kombinasi metode Ping Sweep dan TCP Connect Scan berhasil menghindari blokir antarmuka virtual dan menemukan port non-standar (port 3000). Analisis fingerprinting lebih lanjut mengonfirmasi identitas layanan target sebagai aplikasi web OWASP Juice Shop.
  2. Pentingnya Pemahaman Arsitektur SPA: Penggunaan alat enumerasi seperti Gobuster membutuhkan penyesuaian terhadap arsitektur web target. Penerapan parameter logika bypass (--exclude-length) terbukti berhasil mengatasi mekanisme wildcard routing pada Single Page Application, sehingga berhasil mengungkap letak endpoint API rahasia (direktori /rest).
  3. Fatalnya Rantai Kerentanan (Chained Vulnerabilities): Celah keamanan tidak selalu berdiri sendiri. Sistem berhasil diambil alih secara penuh karena rentetan kerentanan sistemik:

  • Kegagalan sanitasi masukan (Improper Input Validation) yang memungkinkan terjadinya eksploitasi otentikasi lewat SQL Injection via permintaan HTTP murni (curl).
  • Kebocoran informasi sensitif (Information Disclosure) akibat desain arsitektur JSON Web Token (JWT) yang menyertakan format ikata sandi di dalam payload Base64 yang tidak dienkripsi.
  • Penggunaan fungsi kriptografi usang (MD5) yang memungkinkan penyerang mendekripsi (crack) hash tersebut menjadi teks terang (kata sandi asli admin123) dalam waktu seketika.



DAFTAR PUSTAKA

Bjorner, J. (n.d.). OWASP Juice Shop Project. OWASP Foundation. Diakses pada 20 Mei 2026, dari https://owasp.org/www-project-juice-shop/

CrackStation. (n.d.). Free Password Hash Cracker, MD5, SHA1, etc.. CrackStation. Diakses pada 20 Mei 2026, dari https://crackstation.net/

Lyon, G. F. (n.d.). Nmap Network Scanning: The Official Nmap Project Guide to Network Discovery and Security Scanning. Nmap.org. Diakses pada 20 Mei 2026, dari https://nmap.org/book/

OWASP Foundation. (n.d.). WSTG-INPV-05: Testing for SQL Injection. OWASP Web Security Testing Guide. Diakses pada 20 Mei 2026, dari https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/05-Testing_for_SQL_Injection

PortSwigger. (n.d.). Using SQL Injection to Bypass Authentication. Web Security Academy. Diakses pada 20 Mei 2026, dari https://portswigger.net/support/using-sql-injection-to-bypass-authentication

PortSwigger. (n.d.). What is SQL Injection? Tutorial & Examples. Web Security Academy. Diakses pada 20 Mei 2026, dari https://portswigger.net/web-security/sql-injection

Reeves, O. (n.d.). Gobuster: Directory/File, DNS and VHost busting tool written in Go. GitHub. Diakses pada 20 Mei 2026, dari https://github.com/OJ/gobuster

RFC 7519. (2015). JSON Web Token (JWT). Internet Engineering Task Force (IETF). Diakses pada 20 Mei 2026, dari https://datatracker.ietf.org/doc/html/rfc7519


Tidak ada komentar:

Posting Komentar