APT36 Serang Windows & BOSS Linux: .desktop Palsu, Poseidon, dan Perburuan 2FA (2025)

Image by <a href="https://pixabay.com/users/tumisu-148124/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=3390518">Tumisu</a> from <a href="https://pixabay.com//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=3390518">Pixabay</a>

Transparent Tribe (APT36) Serang Windows & BOSS Linux: File .desktop Palsu, Backdoor Poseidon, dan Perburuan 2FA

Komplotan advanced persistAPT36 Serang Windows & BOSS Linux: .desktop Palsu, Poseidon, dan Perburuan 2FAent threat Transparent Tribe (APT36) kembali menyasar lembaga pemerintah India dengan operasi lintas platform yang menyatukan spear-phishing, dropper Linux, dan pencurian kredensial bernuansa sosial rekayasa. Target tak hanya Windows; distribusi BOSS (Bharat Operating System Solutions) Linux ikut dibidik lewat shortcut .desktop yang disamarkan sebagai dokumen rapat. Begitu diklik, shortcut memicu skrip shell yang mengambil file heksadesimal dari server kendali securestore[.]cv, menyimpannya sebagai ELF berisi payload berbasis Go, lalu membuka PDF umpan di Google Drive melalui Firefox agar korban merasa semuanya normal. Pada saat yang sama, payload melakukan koneksi ke modgovindia[.]space:4000 untuk instruksi, unduh muat balik, dan eksfiltrasi data, kemudian menanam cron agar tetap hidup pasca reboot atau kill proses.

Jalur Masuk & Evolusi Teknik

Operasi diawali email pancingan dengan tema undangan rapat. Lampiran ditata agar terlihat seperti “Meeting_Ltr_ID1543ops.pdf.desktop”—ekstensi ganda yang menyamarkan executable sebagai PDF. Penggunaan .desktop mengakali kebiasaan pengguna Linux yang cenderung percaya pada ikon/dokumen kantor, sementara PDF umpan yang memang terbuka mengurangi kecurigaan. Di balik layar, dropper mengambil biner heksadesimal, men-decode, mengeksekusi, dan menaut ke C2 untuk menerima perintah lanjutan.

Kampanye ini juga memanfaatkan pemeriksaan anti-debugging/anti-sandbox sederhana: rekayasa untuk mengelabui emulator/analisis statis sehingga artefak berbahaya luput terdeteksi dalam pemeriksaan permukaan. Tujuan akhirnya adalah ketekalan (persistence) dan akses jangka panjang di lingkungan sensitif—bukan sekadar sekali aksi.

Poseidon: Backdoor untuk Akses Panjang atau Berulang


Analisis independen menunjukkan payload mengantarkan Poseidon, backdoor milik Transparent Tribe. Fungsinya mencakup inventarisasi sistem, pengumpulan data, perampasan kredensial, hingga potensi gerak lateral. Dengan infrastruktur C2 yang dikodekan langsung di biner dan penjadwalan via cron, operator bisa mempertahankan pijakan tanpa banyak kebisingan jaringan. Sub-klaster SideCopy yang kerap bekerja bareng APT36 memperkuat ekosistem alat dan taktik, memperluas jejak dari satu akun ke segmen jaringan yang lebih luas.

Garis Depan Sosial Rekayasa/Social Engineering: Password + 2FA


Di luar malware Linux, APT36 masih memeras nilai dari kampanye phishing kredensial yang meniru domain resmi dan menargetkan solusi 2FA Kavach. Alurnya sederhana namun efektif: korban mengetik email di halaman login tiruan, lalu diarahkan ke halaman kedua yang meminta kata sandi dan kode Kavach. Dengan domain tipografi-mirip (typosquatting) dan infrastruktur server yang dilaporkan berlokasi di Pakistan, pola ini konsisten dengan TTP kelompok—mengikis pertahanan berlapis organisasi lewat kesan “portal resmi”.

Lintasan Regional: SideWinder & Laman Mirip Resmi

Selaras dengan tren kawasan, kampanye APT lain SideWinder menyasar Bangladesh, Nepal, Pakistan, Sri Lanka, dan Turki menggunakan halaman tiruan di platform hosting populer seperti Netlify dan Pages.dev. Tema yang dipakai meniru Zimbra dan portal aman untuk dokumen/unggahan, menggiring korban agar menyerahkan kredensial di panel login palsu.

Apa Artinya untuk Indonesia?

Meski sasaran utama adalah lembaga India, bahaya limpahan (spillover) ke Indonesia nyata. Pertama, file .desktop bukan isu eksklusif; banyak distro Linux (termasuk yang dipakai tim riset, kampus, dan beberapa instansi) memanfaatkan launcher serupa. Kebijakan default beberapa desktop environment yang memudahkan menjalankan shortcut berisiko disalahgunakan jika higienitas lampiran email lemah. Kedua, phishing 2FA akan relevan di sini karena banyak institusi mengandalkan OTP berbasis aplikasi/SMS—mudah disadap lewat halaman berantai yang meminta password dan kode satu kali pakai secara berurutan. Ketiga, penggunaan Netlify/Pages.dev untuk hosting laman tiruan lazim di ekosistem lokal; nama domain yang terlihat kredibel sering menipu staff non-teknis.

Dampak praktisnya bukan sekadar kebocoran satu akun. Begitu akses awal berhasil, actor bisa merambah repositori kode, surel internal, sistem tiket, bahkan VDI/VPN; efek menular ini membuat insiden sulit diputus, apalagi jika persistence berbasis cron, systemd, dan kebijakan egress longgar.

Deteksi & Mitigasi

Organisasi di Indonesia perlu memperlakukan lampiran .desktop sebagai eksekutabel berbahaya secara default. Saring di email gateway dan EDR Linux; tampilkan peringatan eksplisit saat file mencoba jalan dari direktori Downloads. Terapkan kebijakan “buka sebagai teks” untuk tipe ini sehingga konten Exec= terlihat jelas, bukan langsung dieksekusi. Di sisi keaslian pengguna, pindahkan 2FA ke yang tahan-phishing (mis. FIDO2/WebAuthn), minimal tambahkan challenge kontekstual (lokasi/perangkat) dan rate-limit percobaan kode OTP. Untuk threat hunting, pantau:

  • Koneksi keluar ke modgovindia[.]space:4000 dan endpoint tak wajar yang berkait domain securestore[.]cv.
  • Aktivitas cron yang baru, binari ELF yang tiba-tiba muncul di direktori pengguna, serta eksekusi Firefox yang memanggil PDF eksternal segera setelah dropper berjalan.
  • Perubahan kebijakan desktop environment yang mengizinkan trust file launcher tanpa prompt.
Langkah tambahan yang sering dilupakan: kontrol egress di sisi jaringan (allow-list), code-signing internal untuk tooling, dan tata kelola domain (pemantauan typo-squatting terhadap merek .go.id dan .ac.id).

Analisis Redaksi & Kesimpulan

Analisis. Kekuatan kampanye APT36 bukan pada eksploitasi teknis canggih semata, melainkan orkestrasi realistis yang menempel pada kebiasaan kerja harian: undangan rapat, PDF dari Drive, 2FA yang sudah dianggap “aman”, dan shortcut yang tampak wajar. Perpaduan low-noise persistence (cron), decoy visual, serta phishing dua tahap membuat insiden tahan lama dan sulit didiagnosis. Menyasar BOSS Linux menunjukkan kesadaran konteks pelaku terhadap standar lingkungan target.

Kesimpulan. Untuk ekosistem Indonesia, pelajaran utamanya jelas: jangan mengandalkan OTP saja, naikkan ke 2FA tahan-phishing, keras-kan kebijakan execution pada desktop file, dan tighten egress. Edukasi sederhana—“PDF bukan selalu PDF”—sering lebih efektif daripada membeli alat baru. Jika kebiasaan klik lampiran tak berubah, kampanye seperti ini hanya butuh branding lokal untuk memberikan kesadaran kepada pengguna awam.

Favicon Hash & Page Similarity Fingerprinting: Cara Cepat Memetakan Aset Web (2025)

Favicon Hash & Page Similarity Fingerprinting

Teknik identifikasi cepat untuk memetakan aset web—etis, terukur, dan relevan di 2025

Dua teknik—favicon hash dan page similarity fingerprinting—mempercepat pemetaan aset (asset discovery), pengelompokan sistem serupa, hingga deteksi klon brand. Keduanya minim intrusif, hemat bandwidth, dan efektif saat dipadukan dengan recon pasif lain. Artikel ini merangkum konsep, alat, contoh kode, pitfall, serta langkah aman agar bisa langsung dipakai dalam pentest berizin atau operasi threat hunting tim biru (BlueTeam).

1) Intuisi & kegunaan

  • Pemetaan cepat: menemukan layanan/host yang kemungkinan dikelola tim yang sama (ikon & tampilan serupa).
  • Prioritisasi: kelompokkan target look-alike untuk efisiensi uji lebih lanjut.
  • Brand protection: deteksi domain phishing/typosquatting yang meniru tampilan.
  • Kontrol perubahan: pantau perubahan besar UI/ikon di estate produksi.

2) Favicon Hash: konsep & cara kerja

Ide dasar: ambil favicon.ico (atau ikon yang dideklarasikan), hitung hash tertentu (umumnya mmh3 untuk pencarian cepat atau SHA-256 untuk integritas), lalu cocokkan terhadap indeks internalmu atau mesin pencarian keamanan.

Sumber ikon
  • Tag HTML: <link rel="icon">, <link rel="shortcut icon">, <link rel="apple-touch-icon">
  • Jalur default: /<site-root>/favicon.ico
  • Variasi tema/dark-mode atau per-path favicon (beberapa framework)
Alur ringkas
  1. Request halaman utama → parse tag <link ... rel="icon">.
  2. Ambil setiap kandidat ikon (absolute/relative URL).
  3. Normalisasi: content-type, redirect, kompresi.
  4. Hash: mmh3 (khas untuk pencarian), simpan juga sha256.
  5. Simpan: host, path, size, mmh3, sha256, last-seen.
Contoh perintah (alat baris perintah):
# ProjectDiscovery httpx (mencari favicon & hash)
httpx -l hosts.txt -silent -favicon -hash -threads 50 -random-agent -retries 2 -timeout 10

Contoh Python (mmh3 + fallback favicon):
import requests, mmh3, base64, hashlib
from bs4 import BeautifulSoup
from urllib.parse import urljoin

def find_favicons(base_url):
    r = requests.get(base_url, timeout=10, headers={"User-Agent":"Mozilla/5.0"})
    r.raise_for_status()
    soup = BeautifulSoup(r.text, "html.parser")
    hrefs = [lnk.get("href") for lnk in soup.find_all("link") if lnk.get("rel") and "icon" in ",".join(lnk.get("rel")).lower()]
    cand = [urljoin(base_url, h) for h in hrefs if h] + [urljoin(base_url, "/favicon.ico")]
    seen = []
    for u in dict.fromkeys(cand):
        try:
            fr = requests.get(u, timeout=10, headers={"User-Agent":"Mozilla/5.0"})
            if fr.ok and fr.content:
                b64 = base64.b64encode(fr.content)
                mmh3_hash = mmh3.hash(b64)
                sha256 = hashlib.sha256(fr.content).hexdigest()
                seen.append({"url": u, "mmh3": mmh3_hash, "sha256": sha256, "bytes": len(fr.content)})
        except requests.RequestException:
            pass
    return seen

Penerapan praktis
  • Clustering: grupkan host dengan mmh3 sama → kandidat satu stack atau template.
  • Pivoting: query ke platform intel (mis. indeks internalmu) berdasarkan hash untuk menemukan host lain yang identik.
  • Anomali: perubahan tiba-tiba hash favicon di host kritikal → alert perubahan UI/tampilan.
Pitfall umum
  • Ikon bawaan framework/CDN dipakai banyak situs → false positive.
  • Favicon dynamic (dihasilkan JS atau berdasar tema) → hasil tidak konsisten.
  • Beberapa situs menaruh ikon per-subpath → cocokkan host+path agar akurat.
  • Soft 404 / halaman blok WAF yang mengembalikan ikon generik → verifikasi content-length & header.

3) Page Similarity Fingerprinting: teks, struktur, dan visual

Tujuan: menilai kemiripan halaman untuk mendeteksi domain kembar/klon UI, cluster aplikasi sejenis, atau watering hole.

3.1 Teks (SimHash / Jaccard)

  • SimHash: robust terhadap perubahan kecil; cocok untuk near-duplicate detection.
  • Jaccard n-gram: bandingkan shingle 3–5 kata dari teks yang sudah dibersihkan (hapus HTML/JS/CSS).
import re, requests
from bs4 import BeautifulSoup
from simhash import Simhash

def page_text_fingerprint(url):
    r = requests.get(url, timeout=10, headers={"User-Agent":"Mozilla/5.0"})
    soup = BeautifulSoup(r.text, "html.parser")
    for tag in soup(["script","style","noscript"]): tag.extract()
    text = re.sub(r"\s+"," ", soup.get_text(" ", strip=True)).lower()
    return Simhash(text).value  # integer 64-bit

def hamming_distance(a,b): return bin(a ^ b).count("1")

3.2 Fuzzy hash HTML (ssdeep/TLSH)

  • ssdeep: cepat, tetapi sensitif terhadap re-chunking.
  • TLSH: lebih stabil pada perubahan kecil; bagus untuk clustering halaman HTML.

3.3 Visual (pHash/aHash) dari screenshot

  • Ambil screenshot (mis. gowitness, aquatone) → hitung pHash.
  • Kuat untuk mendeteksi look-alike meski teks/DOM berubah tetapi tata letak/ikon konsisten.
Workflow kombinasi
  1. Ambil HTML & teks → SimHash.
  2. Ambil favicon → mmh3/sha256.
  3. Jika borderline, ambil screenshotpHash.
  4. Skor total = w1·(SimHash) + w2·(favicon match) + w3·(pHash). Tetapkan ambang.

4) Alur kerja

  1. Kumpulan target: hasil subdomain enum / ASN / passive DNS.
  2. Pengayaan pasif: jalankan httpx untuk favicon & header (rate-limit ketat).
  3. Fingerprint teks: jalankan crawler ringan → SimHash/TLSH.
  4. Clustering: gabungkan (favicon, SimHash, pHash) → kelompok kandidat.
  5. Triase: pilih kluster bernilai (login portal, admin UI, unknown brand usage).
  6. Validasi: cek ulang false positive, perhatikan CDN & template populer.
  7. Dokumentasi: catat bukti, jelaskan dampak bisnis, dan saran mitigasi.

5) Triase, kualitas data, dan kesalahan umum

  • CDN/template: favicon sama ≠ sistem sama. Cek title, server banner, wappalyzer hasil.
  • Variasi bahasa/tema: SimHash tetap mirip; gunakan ambang konservatif dan gabungkan fitur lain.
  • Halaman login generik: pHash mirip lintas produk; tambahkan sinyal unik (logo, teks legal).
  • Caching: set cache-busting saat validasi agar tidak memutuskan dari artefak lama.

6) Rekomendasi mitigasi (untuk pemilik layanan)

  • Gunakan favicon unik per produk/lingkungan untuk mengurangi korelasi tak diinginkan.
  • Terapkan brand monitoring terhadap domain look-alike (typosquatting).
  • Versikan UI/branding internal dengan pengendalian distribusi agar tidak “bocor” ke publik.
  • Harden halaman login: rate-limit, bot challenge, dan generic error.

7) Contoh hasil & pelaporan

Sajikan minimal: host, URL ikon, ukuran konten, hash (mmh3, sha256), fingerprint teks (SimHash/TLSH), cap waktu, dan screenshot ringkas.

Nilai dampak: korelasi aset yang membuka peta serangan lebih luas (mis. temuan serangkaian panel admin serupa di beberapa subdomain).

Rekomendasi: perubahan ikon/tema, segmentasi, serta brand takedown bila ditemukan domain peniru.

Cloud Intrusions: Murky/Genesis/Glacial Panda & Taktik Menyusup Cloud (2025) + Cara Bertahan (2025)

 

Image by <a href="https://pixabay.com/users/thedigitalartist-202249/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=6842560">Pete Linforth</a> from <a href="https://pixabay.com//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=6842560">Pixabay</a>

Cloud Intrusions: Murky/Genesis/Glacial Panda & Taktik Menyusup Cloud (2025) + Cara Bertahan

Ringkasan Eksekutif

Tiga kelompok berjejaring China—Murky Panda (alias Silk Typhoon/Hafnium), Genesis Panda, dan Glacial Panda—menunjukkan evolusi serangan ke kontrol plane cloud dan rantai pasok TI. Polanya mencakup eksploitasi perangkat menghadap internet, pemanfaatan SOHO device sebagai exit node, peretasan tenant dan service principal di Entra ID, pengambilan kredensial via Instance Metadata Service (IMDS), hingga pemasangan backdoor OpenSSH pada sistem Linux telekomunikasi. Tujuan utamanya: akses berkelanjutan, pergerakan lateral, dan pengumpulan intelijen dengan jejak serendah mungkin.

1) Murky Panda: Menyusup Lewat Relasi Tepercaya di Cloud

Fokus utama Murky Panda adalah menyalahgunakan hubungan tepercaya antar organisasi dan tenant cloud. Kelompok ini cepat memanfaatkan N-day maupun zero-day untuk akses awal—khususnya pada appliances yang terekspos internet. Mereka juga diduga menguasai perangkat SOHO di negara target untuk menyamarkan sumber lalu lintas.

Teknik awal & muatan pasca-kompromi

  • Eksploitasi celah pada Citrix NetScaler ADC/Gateway (CVE-2023-3519) dan Commvault (CVE-2025-3928).
  • Penempatan web shell (mis. neo-reGeorg) untuk persistensi.
  • Dropper menuju CloudedHope (ELF 64-bit, Golang) yang berperan sebagai RAT sederhana, dilindungi anti-analysis, timestomping, dan pembersihan jejak.
Murky Panda mengompromi pemasok dari entitas Amerika Utara, memanfaatkan hak admin pemasok ke tenant Entra ID korban untuk menambah akun backdoor sementara, lalu memodifikasi service principal yang berkaitan dengan manajemen Active Directory dan surel. Fokus operasi tampak diarahkan untuk memperoleh akses email tingkat tinggi.

Implikasi: Relasi B2B/mitra integrator dan pengaturan delegated admin pada cloud kini menjadi permukaan serang kritikal. Jika tidak dibatasi ketat, tenant dapat menjadi pivot ke korban hilir.

2) Genesis Panda: Menguasai Kontrol Plane Cloud

Aktif setidaknya sejak Januari 2024, Genesis Panda beroperasi lintas 11 negara dengan target keuangan, media, telekomunikasi, dan teknologi. Pola khasnya: kompromi sistem berhosting cloud untuk memanfaatkan kontrol plane sebagai media lateral movement, persistensi, dan enumerasi.

Ciri teknis yang menonjol
  • Kuiri IMDS pada mesin berhosting cloud untuk memperoleh kredensial sementara kontrol plane serta parameter jaringan/instans.
  • Penggunaan kredensial dari VM yang telah jatuh untuk memperdalam akses pada akun cloud korban.
  • Eksploitasi luas pada web-facing vulns; eksfiltrasi data cenderung terbatas—mengindikasikan peran initial access broker bagi operasi intelijen lanjutan.

3) Glacial Panda: Fokus Telekomunikasi & Linux

Aktivitas negara-bangsa di sektor telekomunikasi meningkat tajam (≈130% dalam setahun), dan Glacial Panda menjadi salah satu aktor yang menargetkannya lintas Asia, Amerika, dan Afrika. Mereka membidik Linux—termasuk distro legacy yang menopang teknologi telko generasi lama.

Rantai serangan & persistensi
  • Akses awal lewat celah lama/konfigurasi lemah pada server menghadap internet, diikuti eskalasi hak dengan Dirty COW (CVE-2016-5195) dan PwnKit (CVE-2021-4034).
  • Penggunaan living-off-the-land untuk menyamarkan aktivitas.
  • Pemasangan komponen OpenSSH bertrojan (ShieldSlide) guna memanen sesi autentikasi dan kredensial. Varian sshd bertrojan ini menerima kata sandi hardcoded untuk mengautentikasi akun apa pun—termasuk root—sebagai pintu belakang.

4) Kenapa Ini Penting untuk Organisasi di Indonesia

  • Rantai pasok TI lokal semakin terhubung ke SaaS/global CSP; akses delegated admin mitra perlu pengendalian ketat.
  • Telekomunikasi, finansial, media, teknologi—empat sektor yang banyak beroperasi di Indonesia—termasuk sasaran utama.
  • Kerja jarak jauh memperbanyak SOHO device yang dapat disalahgunakan sebagai exit node atau foothold.
  • Fokus musuh pada email dan identitas berarti IAM/IdP adalah mahkota yang harus dijaga.

5) Playbook Deteksi (Defensif, Tanpa Eksploit)

Identitas & Entra ID / M365
  • Audit akun baru/sementara, perubahan Service Principal, consent aplikasi, dan rotasi secret/certificate yang tidak biasa.
  • Pantau sign-in dari alamat IP/ASN consumer (indikasi SOHO) dan perubahan kebijakan Conditional Access di luar jam kerja.
  • Telusuri akses eDiscovery/mailbox berisiko tinggi.

Kontrol plane & cloud workload

  • Deteksi kueri berulang ke IMDS dan permintaan metadata dari proses yang tidak semestinya.
  • Alert untuk pembuatan akses programmatic mendadak (IAM user/service account/API key) dan role binding bern privilese.
Host Linux (khusus telko & server publik)
  • Verifikasi integritas /usr/sbin/sshd, modul PAM, dan paket OpenSSH (bandingkan hash terhadap repositori resmi).
  • Periksa anomali timestomp pada file penting, setuid/setcap mencurigakan, dan jejak eksploit Dirty COW/PwnKit.
  • Hunt untuk artefak web shell dan proses Go ELF yang tidak dikenal.
Jaringan
  • Profilkan trafik keluar ke IP residensial di negara target, domain baru berumur pendek, atau beaconing berinterval stabil.

6) Prioritas Hardening (Rencana 30–60–90 Hari)

30 hari
  • Patch segera perangkat NetScaler/Commvault dan sistem EoL; nonaktifkan directory listing & port manajemen publik.
  • Audit semua delegated admin lintas tenant; terapkan PIM/JIT dan break-glass yang diawasi.
  • Wajibkan MFA kuat + phishing-resistant untuk admin dan layanan.
60 hari
  • Terapkan kebijakan Conditional Access berbasis perangkat/konteks; batasi cross-tenant access dan persetujuan aplikasi.
  • Paksa IMDS v2 (atau setara) dan batasi akses metadata dari kontainer/pod yang tidak memerlukan.
  • Implementasi File Integrity Monitoring dan golden image verifikasi untuk host kritikal.
90 hari
  • Key/secret rotation terjadwal untuk Service Principal/IAM, serta kill switch untuk akses pemasok.
  • Segmentasi jaringan + kontrol e-gress berbasis policy, bukan daftar statis.
  • Latih table-top exercise insiden tenant cloud (skenario: backdoor SP, mailbox exfil).

7) Respons Insiden (Jika Ada Indikasi Kompromi)

  1. Isolasi jalur pemasok/akun aplikasi berisiko; suspend akses sementara.
  2. Preservasi forensik: snapshot VM/log, memory capture pada host penting.
  3. Eradikasi: cabut SP/aplikasi berbahaya, ganti secret/cert, keluarkan token aktif.
  4. Penyembuhan: hardening ulang kebijakan identitas, validasi integritas SSH/OpenSSH, patch ulang semua perangkat.
  5. Pemulihan & pembelajaran: post-mortem teknis, perbaikan kontrol, dan threat sharing.
Garis bawahnya: operasi modern Murky/Genesis/Glacial Panda memindahkan titik berat pertahanan dari sekadar endpoint ke identitas dan kontrol plane cloud. Keamanan Indonesia perlu menutup celah pada relasi mitra, IMDS, dan akses terkelola lintas tenant. Dengan monitoring identitas yang ketat, hardening cloud berlapis, dan kebersihan Linux yang disiplin, peluang mempertahankan visibilitas dan menekan dwell time meningkat drastis.

Panduan Content Discovery + 403 Check Dasar untuk Web Pentest (2025)

Content Discovery + 403 Check Dasar

Panduan ini membahas teknik pasif (robots.txt, sitemap.xml, Wayback/GAU, analisis JavaScript, dorking) serta teknik aktif terukur (ffuf, dirsearch, gobuster, feroxbuster) dengan konfigurasi wordlist, concurrency, dan rate-limit yang aman. Kamu akan memahami kode status 403, perbedaan WAF vs mis-konfigurasi, serta metode validasi dan triase yang bertanggung jawab. 

Disertakan contoh perintah, pola wordlist, tips fingerprinting stack, header penting, serta praktik logging yang menjaga bukti. Konten cocok bagi pemula maupun praktisi, dengan fokus mitigasi, hardening, dan laporan temuan yang jelas. 

Gunakan hanya pada aset berotorisasi, taati hukum, dan simpan bukti audit. Jadikan artikel ini rujukan kerja lapangan, checklist, dan baseline program bug bounty atau internal pentest tim keamanan. Bahasan mencakup skenario umum, tanda bahaya, false positive, langkah reproduksi, dan template laporan, sehingga proses hunting, verifikasi, dan komunikasi temuan berjalan rapi, cepat, terukur, efektif.

1) Ruang lingkup & etika singkat

Content discovery bertujuan memetakan permukaan serang: folder/area publik, file indeks, endpoint lama yang tertinggal, staging, hingga backup keliru. Aktivitas ini hanya untuk aset berizin (miliki sendiri/ada mandat tertulis). Catat semua tindakan (waktu, IP, perintah, hasil) untuk akuntabilitas dan memudahkan perbaikan.

2) Alur kerja ringkas (yang aman & efektif)

  1. Scoping: domain, subdomain, jalur kritikal, jam kerja aman.
  2. Pasif dulu: kumpulkan URL resmi/arsip tanpa menyentuh server agresif.
  3. Aktif terukur: brute-force terarah dengan rate-limit.
  4. 403 check: pahami penyebab, validasi aman, dokumentasikan.
  5. Triase & rekomendasi: nilai dampak, beri saran hardening.

3) Teknik pasif (minim risiko)


a) robots.txt, sitemap.xml, security.txt

Cari petunjuk direktori, jalur admin, atau lokasi API. Simpan sebagai awal wordlist.

b) Arsip & indeks URL

Manfaatkan arsip/web indexers untuk URL historis: Wayback, GAU/waybackurls, serta crawler modern (misal katana/hakrawler) pada halaman publik perusahaan untuk menemukan tautan relatif, file JS, dan pola path.

c) Analisis JavaScript

Ekstrak endpoint dari file .js (pola /api/…, /admin/…, .json, .bak). Identifikasi baseURL, versi API, dan parameter umum. Hindari mengeksekusi kode—cukup static analysis.

d) Dorking etis

Gunakan operator pencarian untuk menemukan artefak non-sensitif: release notes, changelog, atau direktori docs yang mengarah ke jalur aplikasi. Hindari PII/akses ilegal.

4) Teknik aktif terukur (brute-force direktori/endpoint)

Prinsip: lambat, dan relevan terhadap tech stack. Uji di staging bila tersedia.

Wordlist cerdas: gabungkan kata kunci brand, produk, nama tim, framework umum (static, uploads, build, api/v1, backup, old, beta, staging), ekstensi kandidat (.zip, .tar.gz, .bak, .old, .json, .txt).

Contoh perintah (pakai target dummy https://example.com)
Ffuf (fleksibel & cepat):
ffuf -u https://example.com/FUZZ -w wordlist.txt \
     -mc 200,204,301,302,307,308,401,403 \
     -t 50 -timeout 10 -ac -rate 200

  • -mc tangkap status penting (termasuk 403).
  • -ac auto-calibration untuk mengurangi noise.
  • -rate batasi RPS agar tidak agresif.
Dirsearch (praktis, rekursif aman):
dirsearch -u https://example.com -w wordlist.txt -e php,js,json,txt \
          --timeout=10 --rate-limit=200 --random-agent --exclude-status=429 \
          -R 1
Gobuster (stabil):
gobuster dir -u https://example.com -w wordlist.txt -t 50 -k -r \
             -b 404,429 -s 200,204,301,302,307,308,401,403
Feroxbuster (rekursif granular):
feroxbuster -u https://example.com -w wordlist.txt -t 40 -k \
            -x js,json,txt,zip -s 200,204,3xx,401,403 --auto-bail

Tips kualitas hasil
  • Simpan fingerprint respons (ukuran body, title, hash konten) untuk membedakan soft 404.
  • Pantau Retry-After, X-RateLimit-*, tanda WAF, dan variasi respons antar User-Agent.

5) Memahami 403: diagnosis cepat

403 Forbidden ≠ selalu WAF. Bisa karena:
  • ACL/izin salah (objek ada, tapi deny-by-default).

  • Proteksi peran (butuh login/role tertentu).

  • Normalisasi path di reverse proxy berbeda dengan aplikasi.
  • Geo/IP allowlist, token referer, atau origin tertentu.
  • WAF/rate-limit memblokir pola brute-force.
Langkah dasar validasi
  1. Bandingkan content-length, headers, dan body signature antar permintaan.
  2. Coba metode aman (HEAD/OPTIONS) untuk melihat perbedaan perilaku.
  3. Ubah User-Agent dan jeda antar permintaan; cek apakah 403 berubah jadi 200/302/429 (indikasi WAF/rate-limit).
  4. Cek variasi case, trailing slash, dan URL-encoding ringan (lihat bagian berikut).

6) 403 Check dasar (non-destruktif)

Tujuan: memastikan apakah 403 benar-benar hard deny atau hasil normalisasi/WAF yang salah sasaran. Jangan gunakan teknik merusak (tidak ada payload berbahaya).
Percobaan yang aman

Path shape:
    Tambah/kurangi / di akhir: /admin → /admin/
    Ubah case: /Admin/
    URL-encode sebagian: /admin%2f atau %2e%2e/ tanpa traversal eksplisit berbahaya.

Header informatif (hanya baca/only-read):
    curl -I https://example.com/admin \
        -H "User-Agent: Mozilla/5.0" \
        -H "Accept: */*" -H "Cache-Control: no-cache"

Metode aman:
    curl -X HEAD -i https://example.com/area
    curl -X OPTIONS -i https://example.com/area

Host/Origin bervariasi (sebagian aplikasi salah mengikat izin ke referer/origin):
    curl -I https://example.com/area -H "Origin: https://example.com"

Jika tanda WAF/limit muncul (mis. captcha page, block page, atau 429), hentikan, catat bukti, dan rekomendasikan allowlist sementara untuk pengujian terkontrol.

7) Triase & dokumentasi temuan 

Catat minimal: target, waktu, alamat IP, perintah, request/response raw, hash konten, screenshots, dan reasoning mengapa itu masalah.
Nilai dampak bisnis:
  • Tinggi: akses ke backup, build artifacts, config, secret terbuka.
  • Sedang: direktori listing dengan data non-sensitif tapi berpotensi digabung.
  • Rendah: halaman stub atau placeholder kosong namun memetakan struktur privat.
Gunakan langkah reproduksi jelas dan rekomendasi terukur.

8) Rekomendasi mitigasi (BlueTeam)

  • Terapkan deny-by-default pada direktori sensitif; hanya allow rute yang memang publik.
  • Matikan directory listing, blokir file artefak (*.bak, *.old, *.zip, *.tar.gz).
  • Normalisasi path konsisten di proxy dan aplikasi; hindari kebocoran karena case sensitivity berbeda.
  • Tambahkan rate-limit, bot control, dan error page generik untuk 403/404 tanpa bocoran versi.
  • Audit build pipeline agar artefak tidak terunggah ke static/ atau public/.
  • Review bucket/storage publik (objek ACL).
  • Publikasikan security.txt dan prosedur pelaporan.

9) Checklist praktis

  • Kumpulkan URL pasif: robots, sitemap, arsip, JS.
  • Susun wordlist khusus domain/produk.
  • Jalankan brute-force terukur, simpan fingerprint.
  • Bedakan 403 karena izin vs WAF/rate-limit.
  • Dokumentasikan bukti & dampak.
  • Beri mitigasi prioritas tinggi, uji ulang.

10) Contoh workflow singkat (ilustratif)

  1. Pasif: ambil robots.txt, sitemap.xml, tarik URL arsip, parse JS.
  2. Konsolidasi: gabungkan ke urls_seed.txt, normalisasi, unik-kan.
  3. Aktif ringan: jalankan ffuf pada jalur akar dan jalur yang terindikasi.
  4. 403 check: uji HEAD/OPTIONS, trailing slash, User-Agent berbeda.
  5. Triase: klasifikasikan risk, buat PoC, tulis rekomendasi.

Content discovery yang disiplin dan 403 check yang rapi memberi peta permukaan serang yang akurat, mengurangi blind spot, dan mempercepat mean time to remediate. Dengan pendekatan pasif-lebih-dulu, aktif-terukur, serta dokumentasi kuat, tim bisa menemukan direktori/area terlupa tanpa mengganggu layanan, sekaligus memberikan rekomendasi hardening yang langsung bisa dieksekusi. Gunakan praktik ini hanya pada aset berizin.

Serangan Terhadap Redis & GeoServer 2025: Monetisasi Siluman, Botnet PolarEdge, dan Cryptojacking — Ancaman Nyata untuk Infrastruktur Indonesia





Serangan Terhadap Redis & GeoServer 2025: Monetisasi Siluman, Botnet PolarEdge, dan Cryptojacking — Ancaman Nyata untuk Infrastruktur Indonesia.





TL;DR

  • Pelaku memonetisasi bandwidth korban secara senyap lewat aplikasi/SDK sah yang disisipkan setelah mengeksploitasi CVE-2024-36401 pada GeoServer/GeoTools.

  • PolarEdge membentuk jaringan Operational Relay Box (ORB) memakai perangkat firewall/router/kamera untuk relai lalu lintas ber-enkripsi.

  • Redis yang terbuka di internet disasar untuk cryptojacking, menambah fitur rootkit dan persistensi.

  • Dampak di Indonesia: IP lokal berisiko masuk daftar hitam, biaya listrik melonjak, dan insiden sulit dilacak karena aktivitas terlihat “normal”.

  • Prioritas: segmentasi jaringan, patch cepat, hardening Redis, deteksi anomali egress, serta pemantauan integritas sistem.

1) Tren Monetisasi Baru: GeoServer/GeoTools Dieksploitasi (CVE-2024-36401)

Apa yang terjadi

Penyerang membidik GeoServer/GeoTools yang terekspos internet dan mengeksploitasi CVE-2024-36401 (RCE, CVSS 9.8). Akses yang didapat dipakai menanam eksekutabel berbasis Dart yang berkomunikasi dengan layanan “passive income” (mis. bandwidth sharing/residential proxies). Biner ini sengaja hemat sumber daya, tidak menambang kripto, dan tidak membuat lonjakan CPU mencolok.

Kenapa sulit terdeteksi

  • Perilaku mirip aplikasi sah (menggunakan SDK/monetisasi legal).

  • Konsumsi sumber daya rendah dan intermiten.

  • Distribusi file melalui layanan mirip transfer.sh sehingga tidak tampak seperti server C2 klasik.

Implikasi

Model ini menggeser fokus dari “merusak” ke “menyedot nilai secara diam-diam”. Tujuannya jangka panjang, profil rendah, dan stabil—lebih menyerupai gray monetization ketimbang serangan bising.

Indikator awal yang patut dicurigai

  • Proses baru berbasis Dart berjalan periodik.

  • Koneksi keluar ke layanan file-sharing privat/unik; pola egress kecil namun berulang.

  • GeoServer membuat koneksi ke domain yang tak terkait peta/OGC.

2) PolarEdge: Botnet ORB dengan Backdoor TLS Kustom

Ringkasannya

PolarEdge menunggangi kerentanan perangkat enterprise firewall dan perangkat konsumer (router, IP camera, VoIP) untuk membangun jaringan Operational Relay Box (ORB). Setelah masuk, penyerang memasang backdoor TLS berbasis Mbed TLS pada port tinggi non-standar untuk C2 terenkripsi, pembersihan jejak log, dan pembaruan infrastruktur dinamis.

Mengapa berbahaya

  • Relai lalu lintas tanpa mengganggu fungsi utama perangkat, sehingga pemilik/ISP jarang curiga.

  • Sangat cocok dipakai serangan lanjutan, penyamaran identitas, dan mengelabui pemantauan perimeter.

  • Distribusi global, dengan konsentrasi besar di beberapa negara; pola seperti ini mudah “menjalar” ke ekosistem perangkat di Asia Tenggara.

Tanda-tanda teknis

  • Koneksi keluar TLS menuju rentang IP/ASN tak lazim dari perangkat IoT.

  • Layanan mendengarkan di port tinggi yang tidak sesuai profil perangkat.

  • Perubahan kecil pada konfigurasi log/rotasi log.

3) Varian Mirai “gayfemboy”: Target Meluas, Arsitektur Beragam

Kemampuan utama

  • Monitor: pantau thread/proses, tambah persistensi & sandbox evasion.

  • Watchdog: bind ke UDP 47272.

  • Attacker: DDoS (UDP/TCP/ICMP) + backdoor command receiver.

  • Killer: terminasi diri bila terdeteksi/sandbox.

Dengan dukungan ARM, AArch64, MIPS, PowerPC, i386, kampanye ini bisa menjangkau router lama, NVR CCTV, hingga server x86 minim pengamanan. Modifikasi dari Mirai memperkuat evasiveness dan ketahanan.

Apa artinya di lapangan

Organisasi yang mengandalkan perangkat jaringan SOHO, pabrik ber-OT ringan, media/ISP kecil, dan startup teknologi berisiko tinggi karena pola patch yang tidak disiplin dan visibilitas terbatas.

4) Redis Terekspos: Cryptojacking Berevolusi (TA-NATALSTATUS)

Modus

Pelaku memindai Redis tanpa autentikasi (default port 6379), menyalahgunakan CONFIG/SET/SAVE untuk menanam cron yang mengeksekusi skrip: mematikan SELinux, memblokir akses eksternal ke port Redis (mengunci pintu untuk saingan), membunuh miner lain, memasang masscan/pnscan, dan menjadwalkan persistensi per jam.

Level stealth baru

  • Mengganti utilitas sistem: ps/top jadi ps.original/top.original dan memasang wrapper agar proses miner tak terlihat.

  • Mengganti curl/wget menjadi nama acak (cd1, wd1) untuk melewati aturan EDR yang memantau nama biner umum.

  • Timestamp forgery pada file untuk mengecoh forensik.

Dampak praktis
Lonjakan tagihan listrik, penurunan performa server, dan kerusakan reputasi IP. Karena pintu masuk ditutup dari luar, tim lain bisa kesulitan melakukan remote rescue tanpa akses alternatif.

5) Dampak untuk Indonesia: Kenapa Harus Peduli?

  • IP lokal berisiko diblokir: Jika perangkat/residential IP dipakai sebagai proxy atau bagian botnet, IP Indonesia bisa masuk daftar hitam layanan global. Efeknya: email bounce, layanan SaaS menolak koneksi, kampanye iklan terganggu.

  • GIS pemerintah & kampus: Banyak instansi memakai GeoServer untuk peta tematik. Eksploitasi CVE-2024-36401 dapat menyusup tanpa gejala dan menyedot bandwidth lembaga.

  • UKM & startup: Perangkat router/CCTV murah yang jarang di-patch menjadi ORM/relay favorit. Dampak bisnis terasa pada latensi, downtime, dan kepercayaan pelanggan.

  • Biaya energi: Cryptojacking pada server cloud/on-prem menaikkan biaya listrik/instances secara pelan namun signifikan.

  • Penegakan hukum & atribusi: Lalu lintas ber-enkripsi dari port tinggi non-standar mempersulit triase; serangan lanjutan bisa kelihatan “berasal dari Indonesia” padahal hanya melintas.

6) Strategi Pertahanan yang Realistis

6.1 Patch & Isolasi

  • GeoServer/GeoTools: perbarui segera, isolasi di subnet tersegmentasi, hanya buka endpoint OGC yang perlu, pasang WAF/Reverse Proxy di depan.

  • Perangkat edge (router, firewall, kamera): pastikan firmware terbaru; matikan admin panel internet-facing, aktifkan auto-update jika tersedia.

6.2 Hardening Redis

  • Jangan mengekspos port 6379 ke internet. Gunakan bind 127.0.0.1 atau VPC/subnet privat, TLS, ACL/requirepass, dan protected-mode yes.

  • Pantau konfigurasi CONFIG GET berkala; drift menunjukkan kompromi.

  • Terapkan egress allow-list agar server Redis tidak bisa keluar semaunya.

6.3 Deteksi & Hunting

  • Cari proses mencurigakan (nama acak) yang membuka UDP 47272 atau port tinggi TLS.

  • Anomali egress berukuran kecil tapi reguler ke domain/file-sharing privat.

  • Periksa hash/perubahan pada ps, top, curl, wget (bandingkan dengan paket sistem).

  • Log yang “tiba-tiba rapi/hilang” pada perangkat IoT adalah sinyal manipulasi.

  • Gunakan FIM (AIDE/Tripwire), ETW/auditing untuk server Windows, dan Sysmon/eBPF di Linux modern.

6.4 Arsitektur & Kebijakan

  • Terapkan Zero Trust di layanan admin: SSO, MFA, dan IP allow-list.

  • Network segmentation: pisahkan jalur IoT/OT dari aset TI inti dan sumber data sensitif.

  • Rate limit & anomaly guard di reverse proxy/CDN untuk mencegah penyalahgunaan bandwidth.

  • IR playbook khusus cryptojacking: prosedur kilat memutus koneksi, containment, validasi integritas biner, pemulihan cron/systemd, dan rotasi kredensial.

7) Indikator & Tanda Praktis (Ringkasan)

  • Port: layanan mendengarkan di port tinggi TLS pada perangkat non-server; UDP 47272 aktif.

  • Proses: biner Dart atau nama acak dengan aktivitas jaringan periodik.

  • File sistem: ps/top jadi *.original, keberadaan wrapper; curl/wget diganti nama.

  • Jaringan: egress kecil-rutin ke domain transfer/file-sharing privat; lonjakan lalu lintas relai.

  • Konfigurasi: Redis bind ke 0.0.0.0, tanpa autentikasi, dan ada cron yang tidak didokumentasikan.

Ancaman 2025 ini kurang “heboh” tapi lebih berbahaya karena menyaru sebagai trafik normal dan monetisasi legal. Di Indonesia—di mana perangkat SOHO banyak dipakai bisnis kecil dan GeoServer eksis di kampus/instansi—model ini akan menggerus keandalan jaringan dan reputasi IP pelan-pelan. Dampak bisnis muncul bukan dari server mati, melainkan dari kredensial bocor, biaya meningkat, pelanggan sulit mengakses layanan karena IP sudah di-blacklist, dan investigasi yang berlarut karena jejaknya rapi.

Fokus pertahanan harus bergeser dari sekadar menutup CVE baru menjadi mengontrol paparan layanan, mengeras-kan konfigurasi, dan menganalisis egress anomali. Kombinasi patch cepat + segmentasi + kebijakan egress + integritas sistem adalah empat serangkai yang paling efektif. Lakukan hal yang sederhana lebih dulu: tutup Redis publik, perbarui GeoServer, audit perangkat edge, dan pasang alarm untuk port tinggi TLS/UDP 47272. Dengan disiplin itu, organisasi di Indonesia bisa mematahkan pola monetisasi siluman sebelum tumbuh menjadi kerugian nyata.

Baca juga Data Breach

Analisis JavaScript: Endpoint & Parameter (Ethical Recon) — Panduan Teknis (2025)

Analisis JavaScript: Endpoint & Parameter (Ethical Recon)

Tujuan & ruang lingkup

Targetnya memetakan endpoint (REST/GraphQL/WebSocket) dan parameter (query/body/header) secara pasif dan/atau izin aktif (di lab sendiri, aset internal, atau program bounty yang in-scope). Tanpa eksploit, tanpa bypass otentikasi. Saat berinteraksi aktif (memuat situs, menjalankan hook), hormati rate-limit dan kebijakan robots untuk crawling lanjutan.

Gambaran alur kerja

  1. Kumpulkan kandidat JS (dari sitemap/robots/arsip—artikel sebelumnya).
  2. Static analysis: grep pola URL, parsing AST (Babel/Esprima/Acorn), deteksi GraphQL & runtime config.
  3. Source maps: coba ambil *.map buat melihat file sumber asli & simbol.
  4. Runtime analysis: hook fetch/XMLHttpRequest, pantau WebSocket, inspeksi Network (DevTools/CDP/Puppeteer).
  5. Normalisasi & prioritas: dedup, beri skor berdasarkan kemunculan/recency/kritikalitas.
  6. Hasil: daftar endpoint + parameter (GET, body, header), catat sumber (file/line, bundle, capture).

Dasar teknis yang perlu dipahami

  • Fetch API adalah cara modern melakukan HTTP request di web; ini menggantikan XHR di banyak use case.
  • XMLHttpRequest (XHR) masih banyak dipakai dan sering di-polyfill; tetap wajib dipantau.
  • WebSocket menyediakan kanal dua arah; banyak aplikasi modern mengirim event/data lewat sini.
  • DevTools/Chrome DevTools Protocol (CDP) expose detail request/response untuk analisis jaringan.

A. Static analysis

1) Grep cepat untuk sinyal awal

Cari pola umum di bundel JS:
ripgrep -n --ignore-case \
  -e 'https?://[^"'\''\s]+' \
  -e '\b/graphql\b' \
  -e '\b/api(/|v\d+)?\b' \
  -e 'wss?://[^"'\''\s]+' \
  -e '(apiKey|auth|token|client_id|x-api-key|Authorization)' \
  dist/**/*.js src/**/*.js

2) Parse AST untuk akurasi (Babel/Esprima/Acorn)

Parser memberi struktur kode sehingga string literal, template literal, properti objek, dan nilai default param bisa di kumpulkan dengan struktur yang rapi.
  • @babel/parser: dukung TS/JSX & proposal modern; dikombinasi @babel/traverse untuk walking.
  • Esprima dan Acorn: parser cepat/solid untuk tokenisasi & parsing.
Contoh skrip Node (ekstrak endpoint & “nama parameter berisiko”):
// ast-scan.js
import fs from 'fs';
import { parse } from '@babel/parser';
import traverse from '@babel/traverse';

const file = process.argv[2];
const code = fs.readFileSync(file, 'utf8');

const ast = parse(code, {
  sourceType: 'unambiguous',
  plugins: ['jsx','typescript','classProperties','dynamicImport']
});

const hits = new Set();

traverse(ast, {
  StringLiteral({ node }) {
    const s = node.value;
    if (/^https?:\/\/|^\/graphql\b|^\/api(\/|$)|^wss?:\/\//i.test(s)) hits.add(s);
  },
  TemplateElement({ node }) {
    const s = node.value.cooked || '';
    if (/^https?:\/\/|^\/graphql\b|^\/api(\/|$)|^wss?:\/\//i.test(s)) hits.add(s);
  },
  ObjectProperty({ node }) {
    const key = node.key.name || node.key.value || '';
    if (/token|auth|apikey|client[_-]?id|session|signature/i.test(key)) {
      hits.add(`param:${key}`);
    }
  }
});

console.log([...hits].join('\n'));

3) Deteksi GraphQL (termasuk Persisted/APQ)

Cek string /graphql, body operationName, variables, dan extensions.persistedQuery.sha256Hash (atau ID manifest). Banyak implementasi mengirim hash SHA-256 alih-alih query untuk penghematan bandwidth dan safelisting; pola ini tampak di client Apollo dan gateway modern.

B. Manfaatkan source map

Banyak bundel menyertakan komentar //# sourceMappingURL=... yang menunjuk ke berkas *.map. Jika publik, file ini bisa membantu memetakan kode ter-minify ke sumber asli (nama file/fungsi/line), memudahkan pencarian endpoint tersembunyi.

# ambil URL .map yang tersemat
grep -RhoE 'sourceMappingURL=([^\s*]+\.map)' dist/*.js \
 | awk -F= '{print $2}' | sort -u > maps.txt

# unduh (sesuaikan BASE jika perlu)
while read -r m; do curl -sSLO "$m"; done < maps.txt

Spesifikasi Source Map v3 menjelaskan struktur sources, names, mappings, dsb., dan (per 2025) ada upaya standardisasi resmi di Ecma.

C. Runtime analysis (izin & batas aman)

1) Hook fetch & XHR di browser

fetch() kini jadi cara utama networking di web; respons bisa di-clone untuk dibaca tanpa mengganggu alur. Hook berikut mencatat method, URL, header, body (ringkas), dan snippet respons.

(() => {
  const orig = window.fetch;
  window.fetch = async function(input, init = {}) {
    const url = typeof input === 'string' ? input : input.url;
    const method = (init?.method || 'GET').toUpperCase();
    console.log('[fetch]', method, url, init.headers || {}, init.body || null);
    const res = await orig.apply(this, arguments);
    res.clone().text().then(t => console.log('[fetch][resp]', url, res.status, (t||'').slice(0,300))).catch(()=>{});
    return res;
  };
})();

B. Hook XMLHttpRequest (masih banyak dipakai)

Walau fetch makin dominan, XHR masih sering muncul (terutama di aplikasi legacy atau polyfill). Hook dasar berikut cukup untuk pemetaan awal.

(() => {
  const open = XMLHttpRequest.prototype.open;
  const send = XMLHttpRequest.prototype.send;
  XMLHttpRequest.prototype.open = function(m,u){ this.__m=m; this.__u=u; return open.apply(this,arguments); };
  XMLHttpRequest.prototype.send = function(b){ 
    console.log('[xhr]', this.__m, this.__u, b || null);
    this.addEventListener('load', function(){ console.log('[xhr][resp]', this.__u, this.status, this.responseType); });
    return send.apply(this, arguments); 
  };
})();

C. Hook WebSocket

Menangkap event dan payload (teks) membantu memetakan saluran realtime. Untuk biner, tampilkan ringkas/hex agar aman. 

(() => {
  const Orig = window.WebSocket;
  window.WebSocket = function(url, prot){
    const ws = new Orig(url, prot);
    console.log('[ws][open]', url);
    ws.addEventListener('message', ev => console.log('[ws][msg]', url, String(ev.data).slice(0,200)));
    return ws;
  };
})();

D. DevTools/CDP & Puppeteer (otomasi logging)

  • Chrome DevTools → Network: inspeksi request/response dan ekspor HAR.
  • Chrome DevTools Protocol (CDP) – Network domain: akses event & detail request/response secara programatik.
  • Puppeteer: aktifkan request interception untuk log isi request/response; wajib memanggil setRequestInterception(true) dulu.
Contoh Node.js (log metode, URL, query, dan body singkat):

import puppeteer from 'puppeteer';

const url = process.argv[2];
const parseQS = (u) => { try { const usp = new URL(u).searchParams;
  const o={}; for (const [k,v] of usp) (o[k]??=[]).push(v); return o; } catch { return {}; } };

const run = async () => {
  const browser = await puppeteer.launch({ headless: true });
  const page = await browser.newPage();
  await page.setRequestInterception(true);

  page.on('request', req => {
    const m = req.method(), u = req.url();
    const qs = parseQS(u);
    let body; try { body = req.postData(); } catch {}
    console.log(JSON.stringify({ type:'req', m, u, qs, body }));
    req.continue();
  });

  page.on('response', async res => {
    const snippet = await res.text().catch(()=> '');
    console.log(JSON.stringify({ type:'res', u: res.url(), status: res.status(), snippet: snippet.slice(0,200) }));
  });

  await page.goto(url, { waitUntil: 'networkidle2', timeout: 120000 });
  await page.waitForTimeout(5000);
  await browser.close();
};
run();

Ekstraksi parameter yang konsisten

  • Gunakan URL & URLSearchParams untuk querystring (stabil lintas kasus/encoding). Perhatikan interaksi URL.searchURL.searchParams yang dapat memengaruhi serialisasi.
  • Body non-GET: cek JSON.stringify({ ... }), FormData, atau opsi lib (axios/fetch).
  • Header: Authorization (Bearer), X-API-Key, custom CSRF/trace id.
  • GraphQL: catat operationName, struktur variables, dan sinyal APQ (extensions.persistedQuery.sha256Hash).

Skoring & prioritas

  • Konsensus lintas metode: endpoint yang terlihat di AST + runtime > prioritas tinggi.
  • Kebaruan: endpoint aktif di runtime (200/WS open) > string sejarah di bundel.
  • Sensitivitas: path atau param yang menyiratkan auth/privilege (/auth, /admin, token, signature).
  • Saluran: REST/GraphQL biasanya lebih mudah diuji; WebSocket perlu analisis format pesan dan alur subscribe.
Output yang di harapkan;
Sumber Endpoint Metode Parameter Catatan
AST /api/v2/profile GET user_id Muncul di src/api/profile.ts
Runtime (fetch) https://api.example.com/graphql POST operationName=GetOrders Ada extensions.persistedQuery.sha256Hash
Runtime (XHR) /auth/refresh POST refresh_token Status 200, cookie HttpOnly
WebSocket wss://ws.example.com/realtime channel=orders JSON tiap 5 detik

Menggabungkan static analysis (AST + source map) dan runtime capture (fetch/XHR/WebSocket via DevTools/CDP/Puppeteer) bikin peta endpoint & parameter jadi presisi. Jalankan sebagai pipeline berkala di aset yang legal/in-scope; simpan bukti (file sumber, offset, log) untuk traceability. Strategi ini menjaga akurasi di 2025, ketika aplikasi makin bergantung pada Fetch, GraphQL persisted queries, dan kanal realtime.

Baca juga Tentang Github Dork