Capstone Project — IDN Blue Team: Web Attack Investigation dengan Wazuh, Wireshark & Volatility
Investigasi serangan web end-to-end menggunakan Wazuh SIEM, Wireshark, dan Volatility3 — mencakup deteksi SQLi, XSS, LFI, RFI, hingga analisis memory dump untuk menemukan proses mencurigakan.
Introduction
Pada capstone ini, saya melakukan investigasi terhadap serangkaian serangan web yang terjadi pada host Metasploitable — sebuah mesin yang menjalankan web application rentan di atas Apache2. Serangan yang perlu ditelusuri mencakup SQL Injection, Cross-Site Scripting, File Inclusion (Local & Remote), dan reverse shell activity.
Proses investigasi dilakukan dari tiga sisi: analisis log di Wazuh SIEM, inspeksi network capture menggunakan Wireshark, dan analisis memory dump menggunakan Volatility3.
Tools yang digunakan:
| Tool | Fungsi |
|---|---|
| Wazuh Dashboard | Analisis SIEM log dan alert |
| Wireshark | Inspeksi network capture (PCAP) |
| Volatility3 | Analisis Windows memory dump |
Investigation & Findings
Q1 — Nama Agent yang Terhubung ke SIEM
Untuk melihat agent yang terdaftar di Wazuh, saya SSH ke Wazuh server dan menjalankan perintah berikut:
1
sudo /var/ossec/bin/agent_control -l
Output:
1
2
ID: 000, Name: wazuh-server (server), IP: 127.0.0.1, Active/Local
ID: 001, Name: metasploitable, IP: any, Active
ID 000 adalah Wazuh manager itu sendiri. ID 001 adalah endpoint eksternal yang sedang dimonitor — host inilah yang Apache access log-nya berisi semua jejak serangan yang perlu diinvestigasi.
Answer:
metasploitable
Q2 — Nama Web Server yang Terhubung ke SIEM
Saya membuka salah satu event di Wazuh Dashboard, lalu melihat detail JSON-nya dan mencari field location:
1
"location": "/var/log/apache2/access.log"
Path tersebut secara langsung menunjukkan bahwa web server yang log-nya dikumpulkan Wazuh adalah Apache2. Untuk memastikan, saya juga menggunakan filter berikut di menu Discover:
1
agent.name: "metasploitable" AND data.srcip:*
Seluruh request HTTP yang muncul berasal dari Apache access log pada agent metasploitable.
Answer:
Apache2
Q3 — Index untuk Menyimpan RAW Logs
Saya membuka menu Discover di Wazuh Dashboard dan melihat daftar index pattern yang tersedia. Wazuh memisahkan penyimpanan data ke dalam dua jenis index:
| Index Pattern | Isi |
|---|---|
wazuh-alerts-* | Log yang sudah memicu rule atau alert |
wazuh-archives-* | Semua RAW log tanpa filter apapun |
Saya memilih index pattern wazuh-archives-*, kemudian membuka salah satu dokumen. Field _index menampilkan:
1
"_index": "wazuh-archives-4.x-2024.02.26"
Index ini menyimpan semua log mentah dari agent termasuk field full_log, yaitu baris asli Apache access log persis seperti yang tertulis di file log — tanpa perubahan apapun.
Answer:
wazuh-archives-4.x-*
Q4 — Jumlah Aktivitas SQL Injection yang Terdeteksi
Saya memfilter event di Wazuh Dashboard menggunakan:
1
agent.name: "metasploitable" AND data.url: *sqli*
Dari hasil filter tersebut, saya menemukan empat request HTTP yang berisi payload SQL Injection terhadap endpoint /prod/vulnerabilities/sqli/:
| # | URL Payload |
|---|---|
| 1 | /prod/vulnerabilities/sqli/?id=%27+or+1%3D1%23&Submit=Submit |
| 2 | /prod/vulnerabilities/sqli/?id=%27+UNION+SELECT+user%2C+password+FROM+users%23&Submit=Submit |
| 3 | /prod/vulnerabilities/sqli/?id=1+or+1%3D1+UNION+SELECT+user%2C+password+FROM+users%23&Submit=Submit |
| 4 | /prod/vulnerabilities/sqli/?id=%27+UNION+SELECT+user%2C+password+FROM+users%23&Submit=Submit |
Teknik yang digunakan mencakup OR 1=1 untuk bypass autentikasi, dan UNION SELECT untuk mengekstrak data dari kolom user dan password di database.
Answer:
4
Q5 — HTTP Status Code pada Aktivitas XSS
Saya memfilter event XSS menggunakan:
1
agent.name: "metasploitable" AND data.url: *xss_r*
Kemudian membuka salah satu event dan melihat field full_log. Contoh raw log dari reflected XSS request:
1
"GET /prod/vulnerabilities/xss_r/?name=%3Cscript%3Ealert%28document.cookie%29%3B%3C%2Fscript%3E HTTP/1.1" 200 4374
Angka 200 setelah HTTP/1.1 adalah status code yang dikembalikan server. Artinya server memproses request tersebut tanpa menolak payload XSS — script berbahaya diterima dan dirender oleh aplikasi.
Answer:
200
Q6 — Nama File pada Aktivitas File Inclusion
Saya memfilter event File Inclusion menggunakan:
1
agent.name: "metasploitable" AND data.url: */fi/*
Di antara semua request ke endpoint /prod/vulnerabilities/fi/, saya melihat pola penggunaan parameter page:
1
2
/prod/vulnerabilities/fi/?page=include.php
/prod/vulnerabilities/fi/?page=/etc/passwd
File include.php adalah file PHP pada aplikasi yang mengimplementasikan fitur file inclusion tanpa validasi input. File ini menerima nilai dari parameter page dan langsung memuatnya — inilah yang dieksploitasi untuk melakukan LFI maupun RFI.
Answer:
include.php
Q7 — Port Komunikasi Mencurigakan pada RFI
Saya membuka file suspected.pcap di Wireshark, lalu ke menu:
1
Statistics → Conversations → TCP
Di sana terlihat daftar semua koneksi TCP yang terekam. Ada satu koneksi yang langsung mencurigakan karena menggunakan port non-standar dan arahnya terbalik — Metasploitable yang memulai koneksi ke arah attacker:
1
192.168.117.190 (Metasploitable) → 192.168.117.242 (Attacker) : dst port 9001
Ini adalah pola reverse shell. Setelah file PHP berbahaya berhasil dieksekusi melalui celah RFI, server korban terhubung balik ke attacker melalui port 9001.
Answer:
9001
Q8 — Source Port yang Terhubung ke Destination Port 4444
Saya membuka file external.pcapng di Wireshark, kemudian menggunakan filter:
1
tcp.dstport == 4444
Dari hasil filter tersebut, saya menemukan satu koneksi yang relevan:
1
2
3
4
Source IP : 192.168.132.238
Source Port : 49816
Destination IP : 192.168.132.242
Destination Port : 4444
Host internal 192.168.132.238 melakukan koneksi keluar ke 192.168.132.242 pada port 4444. Source port yang digunakan untuk koneksi tersebut adalah 49816.
Answer:
49816
Q9 — PID shell.exe pada Memory Dump
File suspected.raw adalah Windows memory image yang saya analisis menggunakan Volatility3. Saya menggunakan plugin windows.psscan untuk memindai semua proses yang ada di memori, termasuk yang sudah tidak aktif:
1
python3 vol.py -f suspected.raw windows.psscan | grep -i shell
Output yang relevan:
1
2
3
4
PID PPID ImageFileName
7396 5716 shell.exe
7640 2576 powershell.exe
5228 824 ShellExperienc...
shell.exe berjalan dengan PID 7396. Proses ini bukan bagian dari sistem Windows yang normal, sehingga sangat dicurigai sebagai backdoor yang dijalankan setelah sistem berhasil dikompromis.
Catatan: Saya memilih
psscandibandingpslistkarenapsscanmampu mendeteksi proses yang sudah di-unlink dari process list normal — teknik yang umum digunakan untuk menyembunyikan proses berbahaya.
Answer:
7396
Q10 — URL Aktivitas Local File Inclusion (LFI)
Saya kembali ke Wazuh Dashboard dan memfilter semua request ke endpoint file inclusion:
1
agent.name: "metasploitable" AND data.url: */fi/*
Di antara semua request yang muncul, saya mengidentifikasi URL yang secara spesifik merupakan Local File Inclusion — request yang mencoba membaca file sensitif di server secara langsung melalui parameter page:
| URL | Keterangan |
|---|---|
/prod/vulnerabilities/fi/?page=include.php | Akses file biasa |
/prod/vulnerabilities/fi/?page=/etc/passwd | LFI langsung |
/prod/vulnerabilities/fi/?page=file/../../../../../../etc/passwd | LFI dengan directory traversal |
URL yang paling mewakili aktivitas LFI yang terdeteksi di SIEM adalah:
1
/prod/vulnerabilities/fi/?page=/etc/passwd
Request ini menyebabkan aplikasi membaca dan menampilkan isi /etc/passwd — file yang berisi daftar akun user di sistem Linux.
Answer:
/prod/vulnerabilities/fi/?page=/etc/passwd
Results Summary
| No | Pertanyaan | Jawaban |
|---|---|---|
| Q1 | Nama agent yang terhubung ke SIEM | metasploitable |
| Q2 | Web server yang digunakan | Apache2 |
| Q3 | Index untuk RAW logs | wazuh-archives-4.x-* |
| Q4 | Jumlah aktivitas SQLi | 4 |
| Q5 | HTTP status code pada aktivitas XSS | 200 |
| Q6 | Nama file pada aktivitas File Inclusion | include.php |
| Q7 | Port komunikasi mencurigakan (RFI) | 9001 |
| Q8 | Source port ke destination port 4444 | 49816 |
| Q9 | PID shell.exe di memory dump | 7396 |
| Q10 | URL aktivitas LFI | /prod/vulnerabilities/fi/?page=/etc/passwd |
Kesimpulan
Dari keseluruhan investigasi ini, saya berhasil merekonstruksi alur serangan menggunakan tiga sumber data yang saling melengkapi.
Wazuh menangkap semua aktivitas berbahaya di level HTTP — SQLi dengan payload UNION SELECT, XSS yang lolos dengan status 200, dan File Inclusion yang berhasil membaca /etc/passwd. Wireshark mengungkap aktivitas pasca-eksploitasi berupa reverse shell ke port 9001 setelah RFI berhasil, dan koneksi keluar ke port 4444 dari host internal. Volatility3 mengonfirmasi keberadaan shell.exe dengan PID 7396 di memori — bukti bahwa akses sudah mencapai level proses pada sistem yang dikompromis.
Ketiga sumber ini membentuk gambaran yang lengkap, dari serangan pertama masuk hingga attacker mendapat kendali penuh atas sistem target.









