- Halaman default IIS bukan jalan buntu, melainkan titik awal rekonesans bug bounty; server yang terekspos dan vhost tersembunyi bisa dipersempit lewat Shodan, Google dork, dan header respons
- Request HTTP/1.0,
HTTPAPI 2.0 404, sertifikat SSL, dan brute force headerHostmenjadi petunjuk awal untuk menemukan IP internal, hostname Exchange, dan virtual host - Tilde shortname enumeration berbasis DOS 8.3 di IIS dapat mengungkap nama file dan direktori pendek meski directory listing dimatikan, lalu GitHub search, BigQuery, LLM, dan crunch dipakai untuk menebak kandidat nama lengkap
- Fuzzing khusus IIS/.NET sebaiknya lebih dulu membidik path dan ekstensi bernilai tinggi seperti
web.config,trace.axd,elmah.axd,appsettings.*.json, dan.aspx/.ashx/.asmx/.config - Eksposur
web.config, normalisasi path pada cookieless session, reverse proxy path confusion, NTFS alternate data stream, bypass ekstensi upload, dan HPP menunjukkan bagaimana salah konfigurasi dan perilaku legacy bisa berkembang menjadi permukaan serangan
Cara melakukan rekonesans untuk menemukan server IIS
- Target IIS bisa lebih dulu dicari lewat mesin pencari dan layanan pencarian aset internet
- Kueri Shodan mempersempit server IIS dengan menggabungkan sertifikat SSL domain target, nama organisasi, dan
http.title:"IIS"- Contoh target mencakup server staging, panel admin yang terlupakan, dan tool internal yang terekspos ke internet
- Selain Shodan, fofa, censys, netlas, dan odin juga menyediakan indeks internet yang berbeda
- Google dorking digunakan untuk menemukan halaman yang mengindeks jejak IIS
- Folder
aspnet_clientdan_vti_bindiperlakukan sebagai sinyal IIS ext:aspxmencari halaman ASP.NET dan mengisyaratkan ada IIS di belakangnya- Pencarian wildcard seperti
site:*.target.comdansite:*.*.target.comdipakai untuk menemukan subdomain bertingkat yang terlewat oleh enumerasi subdomain dasar
- Folder
- Header respons adalah petunjuk termudah untuk mengidentifikasi IIS
Server: Microsoft-IIS/10.0X-Powered-By: ASP.NET- Untuk verifikasi skala besar,
httpxataunucleibisa dipakai untuk membuat daftar target IIS
Petunjuk awal yang didapat setelah mengonfirmasi IIS
- Beberapa konfigurasi IIS, terutama front-end Exchange atau OWA, dapat membocorkan informasi internal pada request HTTP/1.0
- Header
Locationbisa berisi IP internal sepertihttps://192.168.5.237/owa/ - Header
X-FEServerdapat mengungkap hostname internal server Exchange - Informasi seperti ini dapat berlanjut menjadi information disclosure yang berguna di tahap berikutnya
Otomatisasi dan menemukan virtual host tersembunyi
- Setelah memperoleh daftar target IIS, pekerjaan berulang bisa dikurangi dengan menjalankan
nucleimemakai tag sepertimicrosoft,windows,asp,aspx,iis,azure,config,exposure HTTPAPI 2.0 404belum tentu berarti memang tidak ada apa-apa- Bisa jadi instance IIS terikat ke virtual host tertentu dan request menghasilkan 404 karena header
Hosttidak cocok
- Bisa jadi instance IIS terikat ke virtual host tertentu dan request menghasilkan 404 karena header
- Ada dua cara menemukan vhost tersembunyi
- Mencari hostname yang diperlukan dari subject sertifikat SSL atau field SAN
- Jika sertifikat tidak membantu, lakukan brute force vhost dengan
ffufdan wordlist headerHost
- Jika hostname yang benar ditemukan, aplikasi sebenarnya bisa merespons alih-alih 404 biasa
Enumerasi tilde shortname di IIS
- Karena perilaku lama yang berasal dari aturan nama file DOS 8.3, IIS dapat mengizinkan enumerasi nama pendek file dan direktori lewat request khusus
- Meski directory listing dinonaktifkan, fragmen seperti
WEB~1.CON,GLOBAL~1.ASA,SITEBA~1.ZIP,ADMIN~1tetap bisa terungkap - shortscan digunakan sebagai tool enumerasi shortname IIS
- burp’s IIS Tilde Enumeration Scanner juga bisa digunakan sebagai alternatif
- Ada beberapa cara mengubah nama pendek menjadi nama file lengkap
- LLM: menghasilkan kandidat nama file yang mungkin memuat fragmen shortname
- GitHub code search: mencari nama file nyata berdasarkan 6 karakter pertama sebelum
~1dan ekstensinya - GSNW: menerima fragmen shortname lalu mengumpulkan nama file yang cocok dari GitHub code search
- GitHub-IIS-Shortname-Generator: membuat wordlist dengan pendekatan serupa
- shortnameguesser: membuat wordlist target dengan mengueri beberapa sumber dari output scanner
- Pendekatan BigQuery mencari path file yang cocok dengan pola shortname di dataset publik GitHub pada Google BigQuery
- Untuk
SITEBA~1.ZIP, misalnya, bisa didapat kandidat nama file proyek nyata sepertisitebackup.zipatausitebase.zip - Pendekatan ini terinspirasi dari riset BigQuery Assetnote tentang file tersembunyi IIS
- Untuk
- Jika LLM, GitHub, dan BigQuery gagal, gunakan crunch untuk membuat wordlist kombinasi string yang tersisa lalu coba dengan
ffuf- Variasi nama file seperti tanda hubung, garis bawah, spasi yang di-URL-encode, dan tanpa pemisah juga ikut diperiksa
- Windows mengizinkan spasi dalam nama file dan IIS juga dapat menyajikannya
Fuzzing khusus IIS/.NET
- Hanya mengandalkan wordlist umum bisa membuat file dan endpoint khas ekosistem IIS/.NET terlewat
- Target bernilai tinggi yang sebaiknya diperiksa lebih dulu meliputi
/web.config,/web.config.bak,/web.config.old,/web.config.txt/global.asax/trace.axd/elmah.axd/connectionstrings.config/appsettings.json,/appsettings.Development.json,/appsettings.Staging.json,/appsettings.Production.json,/appsettings.Local.json/secrets.json/WS_FTP.LOG/_vti_pvt/service.cnf
trace.axdadalah ASP.NET trace viewer; bila aktif, ia bisa mengekspos log request/response yang berisi header, cookie, dan kadang kredensialelmah.axdbisa tetap tertinggal sebagai endpoint debug yang tidak dimatikan pengembang, dan menampilkan log error- Target fuzzing ekstensi khusus IIS mencakup
.asp,.aspx,.ashx,.asmx,.wsdl,.wadl,.config,.xml,.zip,.txt,.dll,.json - Wordlist yang layak dipakai meliputi
- secLists IIS.txt: memuat path dasar IIS, handler umum, dan file legacy
- orwa’s iis.txt: diperkenalkan sebagai daftar IIS yang dipakai di program bug bounty nyata
- orwa’s aspx.txt: daftar berfokus pada endpoint
.aspx - wfuzz iis.txt: daftar kecil yang berfokus pada path IIS rentan yang sudah dikenal
- dirbuster-ng iis.txt: daftar ringkas yang membidik kelemahan khusus IIS
- Assetnote wordlists: dibuat otomatis dari data crawling nyata, diperbarui tiap bulan, dan daftar ASP serta ASPX direkomendasikan
- OneListForAll:
onelistforallshort.txtcocok untuk eksekusi target, sedangkan daftar penuh untuk eksekusi jangka panjang
- Karena IIS tidak peka huruf besar-kecil, wordlist mixed-case bisa menghasilkan request duplikat
- Praktik yang digunakan adalah memakai daftar lower-case atau menormalkannya dengan
tr '[:upper:]' '[:lower:]' | sort -u
- Praktik yang digunakan adalah memakai daftar lower-case atau menormalkannya dengan
Eksposur web.config dan kode
- Jika
web.configbisa dibaca melalui path traversal, file backup yang salah terekspos, atau penemuan berbasis shortname, dampaknya pada target IIS bisa besar web.configIIS dapat berisi machine keys yang dipakai untuk penandatanganan dan enkripsi ViewState- Jika machine keys tersedia, penyerang dapat memalsukan payload ViewState serialisasi berbahaya dan berujung pada remote code execution berbasis deserialization
- ysoserial.net adalah tool yang membantu membuat payload ketika key tersedia
- Jika ada parameter download file atau baca file, alurnya berlanjut dengan mencoba
../../web.configdan variasi URL-encoded - Fitur legacy ASP.NET cookieless session dapat menaruh token sesi berbentuk
(S(X))di path URL- Saat IIS menghapus segmen tersebut dalam normalisasi path, pembatasan akses ke direktori
/binbisa dilewati Newtonsoft.Json.dllsendiri adalah library umum dan mungkin tidak berisi rahasia aplikasi- Jika berhasil mendapatkan DLL aplikasi yang sebenarnya, file itu bisa didekompilasi dengan dotPeek atau dnSpy untuk melihat kredensial hardcoded, API key, logika endpoint internal, dan implementasi autentikasi kustom
- Saat IIS menghapus segmen tersebut dalam normalisasi path, pembatasan akses ke direktori
Normalisasi path, NTFS, upload, dan bypass WAF
- Saat IIS berada di belakang reverse proxy atau berperan sebagai reverse proxy, perbedaan normalisasi path dapat menyebabkan bypass kontrol akses
- Proxy mungkin meneruskan path ter-encode sebagai resource berbeda, tetapi IIS mendekode
%2fmenjadi/dan menafsirkan traversal sehingga path terlindungi bisa diakses
- Proxy mungkin meneruskan path ter-encode sebagai resource berbeda, tetapi IIS mendekode
- IIS 7.5 dan versi serupa mungkin memungkinkan bypass basic authentication lewat perilaku NTFS alternate data streams dan index allocation
- Modul autentikasi mungkin tidak mengenalinya sebagai path yang dilindungi, tetapi file system dapat menafsirkannya sebagai direktori yang sebenarnya
- Pada fitur upload file, meski
.aspxdan.aspdiblokir, stored XSS tetap mungkin melalui ekstensi yang secara default disajikan IIS sebagai HTML- Contoh ekstensi yang dirender sebagai HTML:
.cer,.hxt,.htm - Contoh ekstensi vektor XSS berbasis XML:
.dtd,.mno,.vml,.xsl,.xht,.svg,.xml,.xsd,.xsf,.svgz,.xslt,.wsdl,.xhtml
- Contoh ekstensi yang dirender sebagai HTML:
- IIS memiliki perilaku menghapus titik di akhir nama file, sehingga filter upload bisa dilewati dengan
shell.aspx.,shell.aspx..,shell.aspx... - Untuk target server-side includes, ekstensi
.stm,.shtm,.shtmldisebutkan sebagai kandidat - Jika WAF memblokir payload, HTTP Parameter Pollution dapat dipakai untuk memecah payload ke beberapa parameter duplikat
- IIS dan ASP.NET secara default menggabungkan nilai parameter duplikat dengan koma, sehingga payload dapat tersusun ulang di belakang WAF
Pelajaran dan referensi yang tersisa dari bug bounty IIS
- Permukaan serangan bug bounty pada IIS luas, tetapi sering tidak diuji cukup dalam
- Server Windows/IIS yang terekspos dapat membocorkan informasi seperti IP internal, file konfigurasi, dan shortname enumeration
- Dalam praktik, penting untuk tidak berhenti pada halaman default IIS dan melanjutkan rekonesans lebih dalam
- Referensi
1 komentar
Komentar Hacker News
Alasan menaruh halaman landing IIS di depan setiap honeypot memang untuk memancing para black hat
Membayangkan mereka membuang berjam-jam waktu hanya untuk mengejar ekor sendiri rasanya menyenangkan sekali
Black hat kelas atas memburu target besar, sedangkan kelas bawah fokus pada sasaran empuk yang ditemukan di Shodan atau application zero-day yang mereka temukan sendiri
Kalau ada cara untuk mengerjai para port scanner, saya ingin tahu lebih banyak
aspnet_client/admin.phpdan mengaturnya agar mengembalikan header WebObjects sepertinya bisa jadi hobi yang menyenangkanPernyataan bahwa “IIS memiliki perilaku legacy yang diwarisi dari aturan nama file DOS 8.3 lama” membuat saya penasaran apakah ini berarti perilaku sistem operasi dasar terekspos, apalagi document root IIS secara default adalah
C:\InetpubDi Windows 10/11, nama file 8.3 aktif secara default di drive C tetapi nonaktif secara default di drive lain
PS> (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').DisplayVersion→24H2fsutil 8dot3name query C:menghasilkan8dot3 name creation is ENABLED, sedangkanfsutil 8dot3name query U:menghasilkanDISABLEDc:\inetpubdi semua PC non-server dengan alasan samar “perlindungan yang ditingkatkan”https://www.pcworld.com/article/2684062/why-is-windows-11-la...
DisplayVersiontidak memberi respons, dan pada versi lama seperti LTSC tampaknya harus memakaiReleaseIdseperti di bawah ini(Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').ReleaseId→1809Gaya penulisan artikelnya cukup aneh
Wah, ini benar-benar membangkitkan kenangan lama
Dulu scanner IIS begitu banyak sampai log server praktis jadi tidak berguna
Pernah ada kerentanan directory traversal yang cukup dengan URL-encode
../, dan selama berbulan-bulan seolah membakar seluruh internetMasih ada yang memakai IIS?
HOST/MACHINE.DOMAINWindows service dan IIS App Pool Identity login dengan (g)MSA atau akun virtual (
NT Service*), jadi lingkungan Kerberos terkelola bisa berjalan dengan baik tanpa harus menangani rotasi kata sandi 30/60/90 hari secara manualLogin ke MS SQL Server lewat Kerberos, lalu login ke alur OAuth2 webapp lain juga lewat Kerberos, semuanya berjalan mulus
WinRM juga bisa dipakai dari shell Windows standar tanpa konfigurasi khusus, dan secara teknis bahkan bisa melewati 2FA, karena memang begitulah cara kerjanya di dunia nyata
Apakah ini bisa di Linux? Bisa, tetapi kemungkinan terkonfigurasi dengan benar berbeda-beda tergantung lingkungan kerja, dan sejauh pengalaman saya tidak tinggi
Aplikasi lama jumlahnya sangat banyak, dan di antaranya ada yang sangat penting
Jika perusahaan cukup besar untuk menjalankan intranet, kemungkinan di suatu tempat—mungkin bahkan di seluruh tempat—IIS sedang berjalan
Integrasinya dengan AD sangat baik sehingga pekerjaan yang sangat rumit menjadi sangat sederhana
Memang pemakaiannya berkurang saat dunia pindah ke AWS, tetapi itu juga sama bodohnya karena kembali terikat pada produk monopoli satu vendor lain (Amazon). Bedanya cuma kali ini Anda bahkan tidak memiliki perangkat kerasnya
IT sektor publik menyukai IIS. Jika melihat situs pajak atau properti milik pemerintah daerah, kemungkinan besar ada banyak skrip
.aspxSaya juga melihatnya di webapp sektor publik Eropa, dan sering kali aplikasi .NET kustom dengan backend SQL Server menjalankan seluruh pemerintahan daerah
Asia, terutama China dan Taiwan, tampaknya menyukai IIS dan memakainya untuk meng-host segala macam hal
Memang dunia pada umumnya sudah beralih, tetapi masih ada sangat banyak kode legacy di atas IIS yang menjalankan kota dan organisasi penting, dan itu tidak akan berubah
Kalau menurut Anda itu buruk, masih ada juga tempat yang sampai sekarang menjalankan AS/400, Lotus Notes, dan Novell GroupWise di web
Bayangkan perusahaan kecil yang membuat kode .NET Framework enterprise, semuanya Windows, pelanggan tidak menerima cloud, SOAP masih arus utama, dan satu-satunya orang IT bahkan tidak sempat peduli pada apa pun yang terjadi sejak 2010
Menulis ulang total secara realistis mustahil, mereka ingin mendapat keuntungan keamanan tetapi tidak punya kapasitas untuk mengutak-atik konfigurasi secara mendalam, dan juga tidak bisa bertaruh pada sesuatu yang serumit Kubernetes
Saya ingin melihat artikel analisis seperti ini juga untuk nginx
Untuk browser desktop secara keseluruhan, desainnya sangat bagus, dan isinya juga luar biasa
Meski begitu, saya tetap suka presentasi selain itu
Penulisnya tampaknya masih perlu belajar betapa bergantungnya peradaban pada orang-orang yang tidak saling berlaku jahat tanpa alasan
Saya tidak paham kenapa sidebar kiri menimpa teks isi