Passive Reconnaissance?
Reconnaissance adalah sebuah metode pengintaian untuk mengumpulkan informasi (Information Gathering) sedangkan Passive Reconnaissance di sini memiliki arti mengintai tanpa melakukan enumerasi secara langsung kepada target, namun kita akan memanfaatkan sebuah third-party atau data miliki aplikasi lain (contohnya: seperti Search Engine atau mesin yang menyimpan sebuah histori target), dengan kata lain kita akan memanfaatkan OSINT (Open Source Intelligent) untuk melakukan Passive Reconnaissance.
Kalau bahasa simple-nya itu seperti dukun, mencari informasi tanpa menyentuh target secara langsung.
Hal apa saja yang dapat kita lakukan?
Mencari IP address dibalik Cloudflare menggunakan Historical DNS
Pada saat mencari IP address dibalik Cloudflare, biasanya saya menggunakan mesin dari:
- https://www.virustotal.com/gui/domain/target.com/relations
- https://securitytrails.com/domain/target.com/history/a
- https://viewdns.info/iphistory/?domain=target.com
Mencari Endpoint sebuah website
Dalam Bug Hunting mencari Endpoint adalah hal terpenting untuk menemukan kerentanan pada aplikasi.
Endpoint yang saya maksud disini yaitu
- Contoh: http://target.com/api/token
1 2
Host: http://target.com Endpoint: /api/token
Pencarian endpoint website menggunakan mesin VirusTotal:
- https://www.virustotal.com/gui/domain/target.com/relations (pada bagian URLs)
Pencarian endpoint website menggunakan Google Dork:
1
2
site:target.com/*
site:target.com/*/*/*
Pencarian endpoint website menggunakan web.archive.org:
Mencari “parameter name” pada sebuah URL
Pencarian “parameter name” pada URL digunakan untuk mencari celah Injection seperti SQL Injection, Reflected XSS, dan lain-lain.
- Sample:
http://target.com/index.php?parameterName=value"%20onclick="alert('xss')">
Sebagai contoh disini kita dapat menggunakan API dari web.archive.org Untuk mempermudah lebih baik menggunakan shell command di bawah ini:
1
2
3
4
5
6
7
8
9
root@linux:~# curl -s "http://web.archive.org/cdx/search/cdx?url=target.com/*&output=text&fl=original&collapse=urlkey&limit=10000" | grep -Po '\?\K.*?(?=\=)' | sort -V | uniq
...
catalogId
clkid
empty
encp
field-keywords
...
root@linux:~#
Setelah itu kita fuzzing satu per satu.
Contoh:
1
2
3
root@linux:~# curl -s http://target.com/?catalogId=TESTXSS%22F | grep 'TESTXSS"F'
root@linux:~# curl -s http://target.com/?field-keywords=TESTXSS%22F | grep 'TESTXSS"F'
<a href="http://target.com/?field-keywords=TESTXSS"F">TEST</a>
Mencari Port yang terbuka
Untuk menemukan port yang terbuka saya lebih sering menggunakan Shodan.
192.168.10.20 adalah sample IP yang ingin saya ketahui port apa saja yang terbuka.
Untuk alternatifnya kalian dapat menggunakan mesin milik https://censys.io/.
Mencari Subdomain
Mungkin ini sudah sangat familiar untuk kalangan Bug Bounty Hunter.
Mencari Subdomain menggunakan Google Dork:
1
2
site:*.target.com
site:*.*.target.com
Kalian juga dapat menggunakan mesin di bawah ini:
- https://www.virustotal.com/gui/domain/target.com/relations
- https://securitytrails.com/list/apex_domain/target.com
- https://crt.sh/?q=target.com
- http://web.archive.org/cdx/search/cdx?url=*.target.com&output=text&fl=original&collapse=urlkey
Supaya lebih cepat saat pencarian Subdomain, kalian dapat menggunakan tools di bawah ini:
Summary
Passive Reconnaissance tentunya lebih unggul untuk hal “kecepatan” namun kurang dalam hal “ketepatan” dibandingkan dengan Active Reconnaissance karena sewaktu-waktu aplikasi dapat berubah. Pada artikel ini saya hanya menggunakan beberapa mesin saja untuk dijadikan contoh, kalian dapat mengeksplor lebih lanjut dan temukan mesin-mesin kalian.
Terima kasih untuk Edo Maland, Bayu Fedra, Suhada, dan Rio untuk sharing-sharingnya sampai pagi terkait hal ini.
Semoga artikel ini bermanfaat dan bilamana ada kesalahan jangan ragu untuk koreksi.