SlideShare a Scribd company logo
Sudomy: Semi-automated Information Gathering Tools
for Subdomain Enumeration and Analysis
Redho Maland
Yogyakarta, Indonesia
screetsec [at] gmail.com
ABSTRAK
Penilaian keamanan informasi merupakan salah satu bentuk kesadaran terkait serangan dunia
maya yang selalu meningkat dari tahun ke tahun. Proses penilaian bisa dilakukan oleh tim internal dan /
atau eksternal misalnya tenaga ahli dibidang kemanan informasi (pentester). Tahapan penilaian oleh Tim
internal tentu berbeda dengan tim eksternal. Tim eksternal dalam melakukan asesmen perlu mempelajari
atau mendapatkan informasi sebanyak mungkin terkait sasaran. Tahap ini biasanya disebut sebagai
information gathering/reconnaissance. Oleh karena itu kami membutuhkan aplikasi yang mendukung
Pengumpulan Informasi yang efektif dan efisien untuk membantu analisis dan pelaporan. Masih banyak
aplikasi information gathering/reconnaissance yang belum melakukan pengintaian secara otomatis serta
menyertakan sistem pelaporan dan validasi data. Jadi dalam penelitian ini diusulkan untuk membuat
aplikasi untuk mendukung tahapan information gathering/reconnaissance yang mana memudahkan
peneliti / analis keamanan siber, penetration tester dan bug hunter.
1. Pendahuluan
Sebagai seseorang yang ahli dibidang kemanan informasi (pentester) atau bug hunter, sebagian
besar waktu yang mereka gunakan adalah melakukan pengumpulan informasi sebanyak mungkin
mengenai target (information gathering/reconnaissance). Pentester dan bug hunter harus melakukan
pengintaian ekstensif untuk menemukan aset menarik seperti server, teknologi dan aplikasi web dari
sebuah domain atau subdomain. Mencari dan mengumpulkan subdomain dari domain utama
merupakan bagian terpenting dari fase reconnaissance dalam kegiatan penilaian keamanan informasi,
terutama pada kegiatan black-box penetration testing dan bug hunting. Pengumpulaan informasi
tersebut dapat dijadikan sebagai target dalam pengujian untuk mencari kemungkinan bahwa salah
satu subdomain memiliki kaitan dengan domain utama dan menemukan aplikasi tersembunyi yang
berjalan di subdomain, sehingga dapat meningkatkan peluang dalam menemukan kerentanan.
Dalam melakukan pengumpulan informasi dapat dibagi menjadi dua, yaitu active reconnaissance
dan passive reconnaissance. Active Reconnaissance adalah pengumpulan data dengan cara bertatap
muka langsung atau berhubungan langsung dengan target/sasaran, sedangkan passive
reconnaissance adalah menggunakan media informasi yang sudah tersedia seperti berita, internet,
dan sebagainya [1]. Pada proses ini dapat dilakukan secara manual dan otomatis, penulis
menggabungkan proses tersebut menjadi semi-otomatis, sehingga kegiatan yang dilakukan secara
berulang saat proses pengumpulan informasi menjadi lebih efektif dan efisien.
2. Tujuan Penulisan
Memperkenalkan Sudomy sebagai salah satu tools yang bisa digunakan dalam pengumpulan
subdomain dan analisa secara otomatis. Sudomy dibangun untuk mempermudah kegiatan dalam
pengumpulan informasi dan melengkapi tools yang diperlukan pentester yang mengikuti kaidah The
National Institute of Standards and Technology (NIST) dan/atau Information Systems Security
Assessment Framework (ISSAF).
3. Landasan Teori
3.1. Information Gathering/Reconnaissance
Information Gathering merupakan tahapan pertama dalam penilaian keamanan informasi
terutama dibidang kemanan informasi (pentester) dan bug hunter, yang berguna untuk
mendapatkan informasi sebanyak mungkin mengenai sasaran target baik perseorangan maupun
perusahaan. Dalam melakukan pengumpulan informasi dapat dibagi menjadi dua:
1) Active Reconnaissance adalah pengumpulan data dengan cara berhubungan langsung dengan
target atau sasaran.
2) Passive Reconnaissance adalah pengumpulan data dengan cara tidak berhubungan langsung
dengan target, melalui sumber-sumber publik seperti yang tersedia di Internet berita, internet,
dan media lainnya.
3.2 Subdomain
Subdomain adalah bagian dari sebuah nama domain yang biasanya digunakan sebagai nama website
dan subdomain ini tidak dapat berdiri sendiri. Dengan adanya subdomain, pemilik situs dapat membuat
halaman atau website tertentu yang terpisah dari domain utama. Sebagai contoh website dengan domain
“example.id” memiliki subdomain “blog.example.id” yang berisi informasi khusus yang berhubungan
dengan blog, mail.example.com berisi informasi khusus email dan subdomain “news.example.id” yang
berisi informasi khusus yang berhubungan dengan berita saja. Manfaat mencari subdomain sangat
bermanfaat dalam kegiatan OSINT, Pentester, Bug hunter dan Red Teamer yang mungkin bisa saja ada
informasi yang saling berkaitan antara satu domain dengan subdomain lainnya.
3.3 Domain Name System
Domain Name System Domain Name System (DNS) merupakan sistem yang berfungsi
mengkoversi nama domain yang mudah diingat ke dalam bentuk IP Address dengan melakukan
permintaan informasi ke sistem yang memiliki hierarki dan tersebar. Adanya DNS maka memudahkan
menghubungkan sumber daya komputasi baik melalui internet maupun jaringan internal [2].
Implementasinya secara global sistem DNS implementasi tiga peran, yaitu Domain Name Registry
Operator, Domain Name Registrar, dan Service Providers dan Customers. Adapun overview of the
Domain Name Registry dapat dilihat pada Figure 1 [3].
Figure 1. Overview of the Domain Name Registry
3.4 National Institute of Standards and Technology SP 800-42
US Department of Commerce menerbitkan rekomendasi tentang Network Security Testing yang
tertuang pada National Institute of Standards and Technology Special Publication 800-42 (NIST SP 800-
42). Metodologi dasar pentration testing menurut NIST SP 800-42 terdapat empat fase, yaitu Planning,
Discovery, Attack, dan Reporting, Figure 2 [4]. Pada fase awal Discovery pentester dapat melakukan
identifikasi dan pengumpulan informasi yang potensial terkait target. Information gathering dapat
dilakukan berbagai teknik diantaranya: Domain Name System interrogation, InterNIC queries, Search
of the target organization’s web server(s) for information, Search of the organization’s Lightweight
Directory Access Protocol server(s) (LDAP) for information, Packet capture, NetBIOS enumeration,
Network Information System, and Banner grabbing.
Figure 2. NIST: Penetration Testing Methodology
3.5 Information Systems Security Assessment Framework (ISSAF)
Information Systems Security Assessment Framework (ISSAF) memiliki tiga fase metodology, yaitu
Planing and Preparation, Assessment, dan Reporting, Clean-up, Destroy Artefacts. Sedangkan pada
fase Assessment terdapat sembilan langkah yaitu: Information Gathering, Network Mapping,
Vulnerability Identification, Penetration, Gaining Access & Privilege Escalation, Enumerating Further,
Compromise Remote Users/Sites, Maintaining Access, and Covering Tracks, Figure 3 [5].
Figure 3. ISSAF: Penetration Testing Methodology
Pada langkah Information Gathering pencarian informasi dari target dapat dilakukan secara
teknis, non-teknis atau gabungan keduanya. Hal ini bertujuan untuk mendapatkan informasi yang
potensial terkait dengan celah dari target. Information Gathering dapat dibagi menjadi dua bagian,
yaitu passive dan active. Pada bagian Passive Information Gathering teknik yang digunakan untuk
mendapatkan informasi tidak secara langsung berhubungan dengan target. Bisa juga pada bagian
Passive Information Gathering memanfaatkan pihak ketiga untuk mendapatkan informasi.
Sedangkan pada bagian Active Information Gathering dalam proses mendapatkan informasi
berhubungan langsung dengan target. Maka hal ini di beberapa negara dinyatakan illegal [5].
3.6 Web Application Programming Interfaces
Kelebihan pengembangan menggunakan Web Application Programming Interfaces (Web APIs)
adalah mempercepat dalam pengembangan sebuah aplikasi. Oleh sebab itu implementasi Web APIs
dalam rentang waktu 2005 – 2013 selalu meningkat, Figure 4 [6]. Web APIs menggunakan protokol
HTTP/HTTPs dalam berkomunikasi dengan aplikasi utama dengan penyedia Web APIs [7].
Pengembangan aplikasi Information Gathering yang bersifat Passive memanfaatkan Web APIs untuk
mempercepat mendapatkan informasi dari pihak ketiga, seperti SecurityTrails, BinaryEdge
,VirusTotal, Censys , dan Shodan.
Figure 4. Programmable Web API Growth 2005-2013
4. Pembahasan
4.1 Perkenalan Sudomy
Sudomy adalah alat bantu subdomain enumeration untuk mengumpulkan subdomain dan
menganalisis domain dengan melakukan automated reconnaissance. Alat ini juga dapat digunakan untuk
aktivitas OSINT. Pengembangan aplikasi Information Gathering mengikuti kaidah ISSAF[5] dengan
menerapakan dua teknik, yaitu passive dan active. Teknik passive mendapatkan informasi melalui
beberapa cara dengan memanfaatkan sumber daya pihak ketiga seperti menggunakan Web API, pustaka
Information Gathering atau melalui OSINT Source dengan proses scraping [8]. Sedangkan teknik active
menggunakan aplikasi yang terinstall dengan fitur serupa yaitu fungsi Information Gathering baik
dengan cara brute force, wordlists ataupun metode baru lainnya.
Dengan menyeleksi situs pihak ketiga yang digunakan, proses enumerasi dns dapat dilakukan secara
efektif dan efisien, sehingga hasil yang didapatkan lebih banyak tetapi waktu yang dibutuhkan lebih
sedikit. Sebagai contoh sudomy tidak menggunakan resource mesin pencari seperti Google, Baidu, Ask
Yahoo dan Bing, dikarenkan hasil yang didapat kurang maksimal dan adanya faktor lainya seperti
terhambat oleh captcha,
Figure 5. Proses pengumpulan data hasil Scanning
Selain itu hasil yang didapatkan dari mesin pencari Yahoo dan Bing, sudah terhimpuan disalah satu
resource seperti SecurityTrails .
Resource Totals Subdomain
Yahoo & Bing 6
assetinventory.bugcrowd.com
docs.bugcrowd.com
events.bugcrowd.com
forum.bugcrowd.com
levelup.bugcrowd.com
researcherdocs.bugcrowd.com
SecurityTrails 35
a.bugcrowd.com
api.bugcrowd.com
assetinventory.bugcrowd.com
blog.bugcrowd.com
bounce.bugcrowd.com
collateral.bugcrowd.com
concourse.bugcrowd.com
crowdcontrol.bugcrowd.com
docs.bugcrowd.com
documentation.bugcrowd.com
email.assetinventory.bugcrowd.com
email.bugcrowd.com
email.bugs.bugcrowd.com
email.crowdcontrol.bugcrowd.com
0 0 0
5
8
0
1
2
3
4
5
6
7
8
9
Google Baidu Ask Yahoo Bing
BUGCROWD.COM
Subdomain
email.forum.bugcrowd.com
email.submit.bugcrowd.com
events.bugcrowd.com
forum.bugcrowd.com
forum-new.bugcrowd.com
gemstash-mattress.a.bugcrowd.com
go.bugcrowd.com
gslink.bugcrowd.com
hello.bugcrowd.com
hooks.bugcrowd.com
itmoah.bugcrowd.com
levelup.bugcrowd.com
omnidb.a.bugcrowd.com
otter.bugcrowd.com
pages.bugcrowd.com
p.bugcrowd.com
portal.bugcrowd.com
production-sandbox.a.bugcrowd.com
proxilate.a.bugcrowd.com
proxilate.bugcrowd.com
researcherdocs.bugcrowd.com
sandbox-crowdcontrol.a.bugcrowd.com
stargate.a.bugcrowd.com
submissions.bugcrowd.com
tableau.a.bugcrowd.com
tracker.bugcrowd.com
tracker.production-sandbox.a.bugcrowd.com
Oleh karena itu penulis tidak memasukan search engine sebagai resource dalam pengumpulan data
subdomain, berikut tampilan data dalam bentuk diagram venn, lihat pada Figure 6.
Figure 6. Data dalam bentuk himpunan
4.2 System Design
Pengembangan aplikasi Information Gathering menggunakan kombinasi dari Bash (Bourne-Again
Shell) Script [9] dan bahasa pemrograman Python karena sudah mendukung object-oriented
programming [8] dan dukungan pustaka yang mempermudah pengembangan. Penggunaan Bash
Script memiliki tiga komponen utama: lexical analysis and parsing, text expansion, and command
execution, Figure 7 [10]. Input dapat bermula dari antarmuka interaktif melalui console atau Bash
Script file. Komponen pertama merupakan analisis lexical dan mem-parsing masing perintah ke dalam
struktur data. Selanjutnya komponen kedua melakukan serangkaian ekspansi dan mengganti variabel
Figure 7. Architecture of Bash
dari masing-masing parsing perintah dengan mengikuti sophisticated rules. Setiap eksekusi perintah
kemudian diinterpretasikan.
4.3 Tujuan Pembuatan Sudomy
Sudomy dibangun untuk mempermudah kegiatan dalam pengumpulan informasi dan melengkapi
tools yang diperlukan pentester/bug hunter dengan membuat proses menjadi lebih efektif dan
efisien.
4.4 Fitur Sudomy
Saat ini sudomy memiliki 19 fitur, yaitu:
1. Mudah, cepat, ringan dan powerfull. Bash script tersedia secara default di semua distro linux.
Dengan memanfaatkan fitur multipengolahan (multiprocessing) yang dimiliki oleh bash script,
maka semua prosesor akan terpakai secara optimal.
2. Pengujian enumerasi dns menggunakan metode aktif atau pasif
- Metode aktif
Sudomy memanfaatkan tools Gobuster, karena Gobuster sangat cepat dalam melakukan
serangan DNS Subdomain Bruteforce (wildcard support). Wordlist yang dipakai berasal
dari SecList (Discover/DNS). Beberapa file wordlist pada SecList kemudian disatukan
menjadi sebuah file dengan total wordlist mencapai 3 juta entri.
- Metode Pasif
Dengan menyeleksi situs pihak ketiga yang digunakan, proses enumerasi dns dapat
dilakukan secara efektif dan efisien, hasil yang didapatkan lebih banyak tapi waktu yang
dibutuhkan lebih sedikit. Sudomy dapat mengumpulkan data dari ke-20 situs pihak ketiga
yang telah melalui proses seleksi sebagai berikut:
By selecting the good third-party sites (resources)
Shodan http://developer.shodan.io
VirusTotal https://www.virustotal.com
Censys http://censys.io
Certspotter https://api.certspotter.com
BinaryEdge https://docs.binaryedge.io/
Hackertarget https://api.hackertarget.com
Threatminer https://api.threatminer.org
CrtSH https://crt.sh
DnsDB https://www.dnsdb.info
BufferOver http://dns.bufferover.run
Sypse https://spyse.com
Threatcrowd http://threatcrowd.org
Dnsdumpster https://dnsdumpster.com
Riddler http://riddler.io
Webarchive http://web.archive.org
SecurityTrails http://securitytrails.com
RapidDNS https://rapiddns.io
AlienVault https://otx.alienvault.com
CommonCrawl http://index.commoncrawl.org
FBcert https://graph.facebook.com
URLScan https://urlscan.io
RiskIQ https://community.riskiq.com
3. Pengujian terhadap daftar subdomain yang ditemukan untuk memastikan http atau https server
berfungsi dengan baik atau tidak. Fitur ini menggunakan tools pihak ketiga yaitu, httprobe.
4. Pengecekan subdomain berdasarkan Ping Sweep dan/atau mendapatkan HTTP status code
5. Mampu mendeteksi virtualhost (beberapa subdomain yang berbagi satu alamat IP). Dari daftar
subdomain yang ditemukan, sudomy akan menerjemahkannya menjadi alamat IP, mengurutkan
serta menggolongkannya apabila beberapa subdomain ternyata resolve ke alamat IP yang sama.
Fitur ini akan sangat bermanfaat dalam proses pentest/bug bounty berikutnya, misal dalam
melakukan port scanning, satu alamat ip tidak akan discan berulang-ulang.
6. Melakukan port scanning dari alamat IP subdomain/virtualhost yang telah ditemukan
7. Melakukan pengujian serangan Subdomain TakeOver (CNAME Resolver, DNSLookup, Detect
NXDomain, Check Vuln)
8. Mengambil Tangkapan Layar dari subdomain default menggunakan gowitness atau Anda dapat
memilih alat tangkapan layar lain, seperti (-ss webscreeenshot)
9. Mengidentifikasi teknologi di situs web (kategori, aplikasi, versi)
10. Mendeteksi urls, ports, title, content-length, status-code, response-body probbing.
11. Sebagai default menggunakan auto fallback dari https ke https
12. Pengumpulan Data & Scraping terhadap port terbuka dari pihak ke-3 defaultnya adalah Shodan.
Untuk saat ini hanya menggunakan Shodan [Future: Censys, Zoomeye]. Lebih efisien dan efektif
untuk mengumpulkan port dari daftar ip pada target [[Subdomain> IP Resolver> Crawling> ASN
& Open Port]]
13. Mengumpulkan dan Mengekstrak URL & Parameter yang menarik, resource yang digunakan
WebArchive, CommonCrawl dan UrlScanIO
14. Mengumpulkan path, url dan file yang menarik seperti api, git, admin, file javascript (js|node)
dan dokumen (doc|pdf)
15. Menentukan output saat file scanning telah selesai berjalan
16. Memeriksa apakah IP dimiliki/dilndungii oleh Cloudflare
17. Mengumpulkan dan membuat wordlist berdasarkan pengumpulan sumber daya url (wayback,
urlscan, commoncrawl. Untuk membuatnya, kami Ekstrak Semua parameter dan jalur dari
pengintaian domain kami
18. Output laporan dalam format HTML atau CSV
19. Mengirim pemberitahuan ke Channel Slacks apabila automated recon telah selesai
4.5 Cara kerja Sudomy
Disini penulis akan menjelaskan cara kerja/proces recon disaat sudomy dijalankan menggunakan
perintah argumen terbaik dalam mengumpulkan subdomain dan menganalisis dengan melakukan
automatic recon. Perintah
root@maland: Sudomy -d bugcrowd.com -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe -aI webanalyze -sS -
-slack
Recon Workflow Sudomy v1.1.8#dev, lihat Figure 8.
Figure 8. Recon Worfklow Sudomy
https://raw.githubusercontent.com/Screetsec/Sudomy/master/doc/Sudomy%20-
%20Recon%20Workflow%20v1.1.8%23dev.png
Hal pertama, sudomy akan melakukan pengumpulan subdomain dari domain utama menggunakan
metode pasif melalui resource yang telah di seleksi seperti dnsdumpster, webarchive, shodan, virustotal,
crt.sh, binaryedge, securitytrails, certspotter, censys, threatminer, bufferover, hackeertarget, entrust,
threatcrowd, riddler, findsubdomains, rapiddns, alienvault, commoncrawl, dan urlscan.io. Untuk
meningkatkan hasil enumerasi, aplikasi sudomy perlu menambahkan API Key untuk Shodan, Censys, Virus
Total, BinaryEdge, dan SecurityTrails pada bagian sudomy.api.
Disaat proses pengumpulan subdomain, sudomy juga mengambil raw data (tanpa penyaringan)
dari resource tertentu seperti CommonCrawl, UrlScan, Webarchive dan Shodan. Dikarenkan raw data dari
resource tersebut dapat diolah dan dimanfaatkan sekaligus dalam mendapatkan informasi lainnya.
Contohnya informasi port, asn number, path, url, paremeter dan file menarik lainnya seperti api, git,
admin, javascript (js, node_module) dan dokumen (doc, pdf, pub, xlsx) yang bisa digunakan untuk
pembuatan wordlist.
Dari daftar subdomain yang didapatkan, sudomy akan melakukan validasi terhadap subdomain
yang aktif dengan memeriksa protokol http / https secara otomatis. Fitur ini menggunakan alat pihak
ketiga, httprobe. Tidak hanya disitu, sudomy juga akan melakukan pengecekan terhadap title, content-
length, status-code dan response-body pada masing-masing subdomain yang aktif. Kemudian/Dari daftar
subdomain yang aktif, sudomy akan melanjutkan proses enumerasi dengan mengidentifikasi teknologi
web yang digunakan seperti Content Management System (CMS), Bootstrap, Web Server, Operating
System dan Database yang digunakan oleh website tersebut.
Kumpulan subdomain yang telah berhasil dikumpulkan, sudomy akan mendeteksi beberapa
subdomain yang terbagi dalam satu alamat IP (virtualhost) dan menggolongkannya serta menyeleksi
apabila beberapa subdomain resolve ke alamat IP yang sama, Figure 9.
Figure 9. Subdomain yang telah di kelompokan bersadarkan IP dan Subdomain
Setelah daftar IP terkumpul, sudomy akan melakukan pengecekan terhadap host berdasarkan
ping sweep dan juga memeriksa apakah IP dimiliki/dilndungii oleh Cloudflare. Kemudian sudomy
melakukan port scanning melalaui daftar alamat original ip yang telah di filter, disini sudomy
menggunakan dua metode dalam melakukan port scanning. Dalam pemindain aktif sudomy
menggunakan nmap dan untuk pemindain secara pasif, untuk sekarang sumber utamanya adalah
shodan, kedepanya akan ditambahkan resource lainnya seperti censys dan zoomeye. Figure 10
Figure 10. Hasil Scraping & Collecting Port menggunakan Shodan
Tak hanya disitu, sudomy juga melakukan pengecekan subdomain takeover dan pembuatan
wordlist kustom secara otomatis berdasarkan informasi yang telah dikumpulkan. Dalam pembuatan
wordlist, sudomy memanfaatkan resource seperti CommonCrawl, UrlScan, Webarchive dan Shodan
untuk mendapatkan informasi Path, Url dan Paremeter mengenai target. Sehingga wordlist yang
digunakan lebih spesifik, menghemat waktu dan tepat sasaran.
Jika tahapan pengumpulan informasi sudah selesai, sudomy akan merekam tangkapan layar
(screenshot) dari daftar subdomain dan membuat laporan dengan output berfromat HTML dan CSV
yang dapat memudahkan peniliti dan/atau analisis cyber security dalam menganalisa. Pada laporan
berformat HTML tersebut ditampilkan grafik hasil enumerasi subdomain diantaranya: Ping Sweep, HTTP
status, IP Address, sepuluh teratas protokol yang terbuka, pemeriksaan Subdomain TakeOver, dan grafik
hasil enumerasi, Figure 11
Figure 11. Dashboard Report sudomy
Apabila tahapan screenshot dan pembuatan laporan selesai, maka selanjutnya akan masuk ketahapan
akhir yaitu pemberitahuan bahwa scanning telah selesai menggunakan slack alert, lihat pada Figure 12.
Figure 12. Slack Notifications
4.6 Pemasangan Sudomy
Dalam melakukan pemasangan, sudomy membutuhkan beberapa dependensi agar tools dapat
berjalan dengan baik. Petunjuk tentang cara menginstal sebagai berikut:
Untuk Mengunduh Sudomy Dari Github:
git clone --recursive https://github.com/screetsec/Sudomy.git
Untuk Menginstall depedensi
pip install -r requirements.txt
Sudomy membutuhkan jq dan beberapa tools lainya untuk menjalankan dan melakukan parse data.
# Pengguna Linux
apt-get update
apt-get install jq nmap phantomjs npm chromium parallel
npm i -g wappalyzer wscat
# Pengguna Mac
brew cask install phantomjs
brew install jq nmap npm parallel
npm i -g wappalyzer wscat
# Note
Yang Anda perlukan hanyalah pemasangan Google Chrome atau Chromium
terbaru
4.7 Berjalan di Docker Container
Sudomy juga support dan berjalan di Docker Container, sehingga tidak perlu melakukan
melakukan instalasi dan dependensi. Petunjuk tentang cara penggunaan
# Pull an image from DockerHub
docker pull screetsec/sudomy:v1.1.8
# Run an image, you can run the image on custom directory but you must
copy/download config sudomy.api on current directory
docker run -v "${PWD}/output:/usr/lib/sudomy/output" -v
"${PWD}/sudomy.api:/usr/lib/sudomy/sudomy.api" -it --rm
screetsec/sudomy:v1.1.8 [argument]
or define API variable when executed an image.
docker run -v "${PWD}/output:/usr/lib/sudomy/output" -e
"SHODAN_API=xxxx" -e "VIRUSTOTAL=xxxx" -it --rm screetsec/sudomy:v1.1.8
[argument]
4.8 Konfigurasi tambahan
API Key diperlukan untuk melakukan query pada situs pihak ketiga seperti Shodan, Censys,
SecurityTrails, Virustotal, dan BinaryEdge yang bertujuan untuk meningkatkan hasil enumerasi.
Pengaturan API key dapat dilakukan melalui file sudomy.api
# Shodan
# URL : http://developer.shodan.io
# Example :
# - SHODAN_API="VGhpc1M0bXBsZWwKVGhmcGxlbAo"
SHODAN_API=""
# Censys
# URL : https://censys.io/register
CENSYS_API=""
CENSYS_SECRET=""
# Virustotal
# URL : https://www.virustotal.com/gui/
VIRUSTOTAL=""
# Binaryedge
# URL : https://app.binaryedge.io/login
BINARYEDGE=""
# SecurityTrails
# URL : https://securitytrails.com/
SECURITY_TRAILS=""
YOUR_WEBHOOK_URL diperlukan juga sebelum menggunakan pengiriman notifikasi ke slack.
Pengaturan URL dapat dilakukan melalui file slack.conf
# Configuration Slack Alert
# For configuration/tutorial to get webhook url following to this site
# - https://api.slack.com/messaging/webhooks
# Example:
# -
YOUR_WEBHOOK_URL="https://hooks.slack.com/services/T01CGNA9743/B02D3BQNJM
6/MRSpVUxgvO2v6jtCM6lEejme"
YOUR_WEBHOOK_URL=""
4.9 Petunjuk Pemakaian
___ _ _ _
/ __|_ _ __| (_)(_)_ __ _ _
__  || / _ / __  '  || |
|___/_,___,_____/_|_|__, |
|__/ v{1.1.0#dev} by @screetsec
Sud⍥my - Fast Subdmain Enumeration and Analyzer
http://github.com/screetsec/sudomy
Usage: sud⍥my.sh [-h [--help]] [-s[--source]][-d[--domain=]]
Example: sud⍥my.sh -d example.com
sud⍥my.sh -s Shodan,VirusTotal -d example.com
sud⍥my.sh -pS -rS -sC -nT -sS -d example.com
Optional Arguments:
-a, --all Running all Enumeration, no nmap & gobuster
-b, --bruteforce Bruteforce Subdomain Using Gobuster (Wordlist:
ALL Top SecList DNS)
-d, --domain domain of the website to scan
-h, --help show this help message
-o, --html Make report output into HTML
-s, --source Use source for Enumerate Subdomain
-tO, --takeover Subdomain TakeOver Vulnerabilty Scanner
-pS, --ping-sweep Check live host using methode Ping Sweep
-rS, --resolver Convert domain lists to resolved IP lists without
duplicates
-sC, --status-code Get status codes, response from domain list
-nT, --nmap-top Port scanning with top-ports using nmap from
domain list
-sS, --screenshot Screenshots a list of website
-nP, --no-passive Do not perform passive subdomain enumeration
--no-probe Do not perform httprobe
Menggunakan seluruh situs pihak ketiga, kemudian melakukan pengujian apakah http/https server
berfungsi dengan baik:
$ sudomy -d bugcrowd.com
Menggunakan salah satu situs pihak ketiga atau lebih:
sudomy -s shodan,dnsdumpster,webarchive -d bugcrowd.com
Figure 13. Menggunakan salah satu resources/situs pihak ketiga atau Lebih
Menggunakan satu atau lebih Plugin:
$ sudomy -d bugcrowd.com -pS -rS -tO
Figure 14. Menggunakan satu plugin atau Lebih
Menggunakan seluruh Plugin , seperti pengecekan status host, status code, subdomain takeover,
screenshots
sudomy -d bugcrowd.com --all
Dalam hal ini, plugin untuk Nmap, Gobuster dan wappalyzer tidak disertakan. Jadi Anda bisa
menambahkan lebih banyak argumen untuk plugin itu, misalnya
sudomy -d bugcrowd.com --all -aI webanalyze
Membuat output laporan dalam format html
sudomy -d bugcrowd.com --all --html
Jika program sudah selesai dijalankan maka output dan report akan berada di folder output /
Figure 15. Hasil scanning
Kita juga dapat menentukan jalur untuk file keluaran (tentukan file keluaran setelah selesai) dengan
argumen
sudomy -d bugcrowd.com --all –outfile /root
Figure 16. Hasil scanning dengan output yang telah ditentukan
Struktur Folder Output berdasarkan nama domain dan tanggal disaat melakukan scanning, seperti
gambar berikut
Figure 17. Stuktur folder hasil scanning sudomy
Mengirim Notifiasi ke Slack Channels
sudomy -d bugcrow.com --slack
Untuk menggunakan argumen terbaik untuk mengumpulkan subdomain & menganalisis dengan
melakukan pengintaian otomatis dan mengirimkan pemberitahuan ke slack
./sudomy -d bugcrowd.com -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe
-aI webanalyze --slack -sS
4.10 Kesimpulan
Berdasarkan pengujian dengan tools yang serupa, sudomy masih lebih cepat dalam proses
enumerasi pencarian subdomain. Selain itu sudomy juga dilengkapi fitur-fitur otomatisasi yang
sangat membantu peneliti dan/atau analis Cyber Security dalam mempermudah kegiatan
pengumpulan informasi serta melengkapi tools yang diperlukan pentester/bug hunter dengan
membuat proses menjadi lebih efektif dan efisien. Aplikasi sudomy juga dapat diunduh secara
bebas di https://github.com/Screetsec. Pengembangan selanjutnya diharapkan sudomy dapat
terintegrasi dengan aplikasi information security assessment lainnya.
References
[1] Kalsum, T. U., & Kurniawan, A. (2016). Analisa Implementasi Teknik Reconnaissance Pada
Webserver (Studi Kasus: Upt Puskom Universitas Dehasen). Jurnal Media Infotama, 12(1)
[2] Mockapetris P V. 1987 RFC 1035: Domain Names - Implementation and Specification
[3] Sinaci A A, Sehitoglu O T, Yondem M T, Fidan G and Tatli I 2010 SEMbySEM in Action:
Domain Name Registry Service Through a Semantic Middleware eChallenges, 2010 1–8
[4] Scarfone K, Souppaya M, Cody A and Orebaugh A 2015 NIST SP 800-42: Guideline on
Network Security Testing vol 115 (Gaithersburg, MD)
[5] Open Information Systems Security Group 2006 Information Systems Security Assessment
Framework (ISSAF)
[6] Rudrakshi C, Varshney A, Yadla B, Kanneganti R and Somalwar K 2014 API-fication
[7] Mendoza A and Gu G 2018 Mobile Application Web API Reconnaissance: Web-to-Mobile
Inconsistencies & Vulnerabilities Proc. - IEEE Symp. Secur. Priv. 2018-May 756–69
[8] Hariyadi D and Fazlurrahman 2019 Membangun Telegram untuk Crawling Malware OSINT
Menggunakan Raspberry Pi Indones. J. Bus. Intell. 2 18–24
[9] Ramey C and Fox B 2019 Bash Reference Manual (Free Software Foundation, Inc.)
[10] Davis I J, Wexler M, Zhang C, Holt R C and Weber T 2015 Bash2py: A bash to Python
translator 2015 IEEE 22nd Int. Conf. Softw. Anal. Evol. Reengineering, SANER 2015 - Proc
508–11
Paper - semi-automated information gathering tools for subdomain enumeration and analysis

More Related Content

PDF
(paper) Belati: The Traditional Swiss Army Knife for OSINT
PDF
Strategy considerations for building a security operations center
PPTX
Microsoft Cloud Application Security Overview
PDF
BATbern48_How Zero Trust can help your organisation keep safe.pdf
PPTX
Beginner's Guide to SIEM
PDF
Introduction to Web Application Penetration Testing
PDF
Cyber Threat Intelligence
PDF
Web Application Penetration Tests - Information Gathering Stage
(paper) Belati: The Traditional Swiss Army Knife for OSINT
Strategy considerations for building a security operations center
Microsoft Cloud Application Security Overview
BATbern48_How Zero Trust can help your organisation keep safe.pdf
Beginner's Guide to SIEM
Introduction to Web Application Penetration Testing
Cyber Threat Intelligence
Web Application Penetration Tests - Information Gathering Stage

What's hot (20)

PPT
Siebel Product Menu
PPTX
Cyber Security PPT.pptx
PPTX
Introduction to SOC
PPTX
Security operation center
PDF
IPS (intrusion prevention system)
PPTX
Introduction to penetration testing
PPT
Security patterns and model driven architecture
PDF
Insecure direct object reference (null delhi meet)
PDF
5 BEST PRACTICES FOR A SECURITY OPERATION CENTER (SOC)
PDF
Building Security Operation Center
PDF
Extended Detection and Response (XDR) An Overhyped Product Category With Ulti...
PDF
IBM QRadar Security Intelligence Overview
PPTX
Analysis of web application penetration testing
PDF
DTS Solution - Building a SOC (Security Operations Center)
PPTX
Penetration testing reporting and methodology
PPTX
Security Policies and Standards
PDF
Cyber Security Awareness
PPTX
NIST Critical Security Framework (CSF)
PPTX
Domain 6 - Security Assessment and Testing
Siebel Product Menu
Cyber Security PPT.pptx
Introduction to SOC
Security operation center
IPS (intrusion prevention system)
Introduction to penetration testing
Security patterns and model driven architecture
Insecure direct object reference (null delhi meet)
5 BEST PRACTICES FOR A SECURITY OPERATION CENTER (SOC)
Building Security Operation Center
Extended Detection and Response (XDR) An Overhyped Product Category With Ulti...
IBM QRadar Security Intelligence Overview
Analysis of web application penetration testing
DTS Solution - Building a SOC (Security Operations Center)
Penetration testing reporting and methodology
Security Policies and Standards
Cyber Security Awareness
NIST Critical Security Framework (CSF)
Domain 6 - Security Assessment and Testing
Ad

More from idsecconf (20)

PDF
IDSECCONF2024 Capture The FLag Write up - 3 MAS MAS
PDF
IDSECCONF2024 - Rifqi Hilmy Zhafrant - Hunting and Exploiting GraphQL Vulnera...
PDF
IDSECCONF2024 - Arief Karfianto - AI-Enhanced Security Analysis in Requiremen...
PDF
IDSECCONF2024 - Ryan Fabella, Daniel Dhaniswara - Keamanan Siber Pada Kendara...
PDF
IDSECCONF2024 - Angela Oryza - ITS Nabu-Platform Pelatihan Keamanan Siber den...
PDF
IDSECCONF2024 - Rama Tri Nanda - MQTT hacking, RCE in Smart Router.pdf
PDF
IDSECCONF2024 - Muhammad Dwison - The Implementation Of One Pixel Attack To S...
PDF
IDSECCONF2024 - Kang Ali - Local LLM can Simulate Apt Malware With Jailbreak ...
PDF
IDSECCONF2024 - Brian Nasywa - Comparison of Quantum Key Distribution Protoco...
PDF
idsecconf2023 - Mochammad Riyan Firmansyah - Takeover Cloud Managed Router vi...
PDF
idsecconf2023 - Neil Armstrong - Leveraging IaC for Stealthy Infrastructure A...
PDF
idsecconf2023 - Mangatas Tondang, Wahyu Nuryanto - Penerapan Model Detection ...
PDF
idsecconf2023 - Rama Tri Nanda - Hacking Smart Doorbell.pdf
PDF
idsecconf2023 - Akshantula Neha, Mohammad Febri Ramadlan - Cyber Harmony Auto...
PDF
idsecconf2023 - Aan Wahyu - Hide n seek with android app protections and beat...
PDF
idsecconf2023 - Satria Ady Pradana - Launch into the Stratus-phere Adversary ...
PDF
Ali - The Journey-Hack Electron App Desktop (MacOS).pdf
PDF
Muh. Fani Akbar - Infiltrate Into Your AWS Cloud Environment Through Public E...
PDF
Rama Tri Nanda - NFC Hacking Hacking NFC Reverse Power Supply Padlock.pdf
PDF
Arief Karfianto - Proposed Security Model for Protecting Patients Data in Ele...
IDSECCONF2024 Capture The FLag Write up - 3 MAS MAS
IDSECCONF2024 - Rifqi Hilmy Zhafrant - Hunting and Exploiting GraphQL Vulnera...
IDSECCONF2024 - Arief Karfianto - AI-Enhanced Security Analysis in Requiremen...
IDSECCONF2024 - Ryan Fabella, Daniel Dhaniswara - Keamanan Siber Pada Kendara...
IDSECCONF2024 - Angela Oryza - ITS Nabu-Platform Pelatihan Keamanan Siber den...
IDSECCONF2024 - Rama Tri Nanda - MQTT hacking, RCE in Smart Router.pdf
IDSECCONF2024 - Muhammad Dwison - The Implementation Of One Pixel Attack To S...
IDSECCONF2024 - Kang Ali - Local LLM can Simulate Apt Malware With Jailbreak ...
IDSECCONF2024 - Brian Nasywa - Comparison of Quantum Key Distribution Protoco...
idsecconf2023 - Mochammad Riyan Firmansyah - Takeover Cloud Managed Router vi...
idsecconf2023 - Neil Armstrong - Leveraging IaC for Stealthy Infrastructure A...
idsecconf2023 - Mangatas Tondang, Wahyu Nuryanto - Penerapan Model Detection ...
idsecconf2023 - Rama Tri Nanda - Hacking Smart Doorbell.pdf
idsecconf2023 - Akshantula Neha, Mohammad Febri Ramadlan - Cyber Harmony Auto...
idsecconf2023 - Aan Wahyu - Hide n seek with android app protections and beat...
idsecconf2023 - Satria Ady Pradana - Launch into the Stratus-phere Adversary ...
Ali - The Journey-Hack Electron App Desktop (MacOS).pdf
Muh. Fani Akbar - Infiltrate Into Your AWS Cloud Environment Through Public E...
Rama Tri Nanda - NFC Hacking Hacking NFC Reverse Power Supply Padlock.pdf
Arief Karfianto - Proposed Security Model for Protecting Patients Data in Ele...
Ad

Recently uploaded (7)

PDF
Aksara nglagena_20250726_094730_0000.pdf
PPTX
saya adalah seorang penulis awalann.pptx
PDF
Labuan4D situs Exclusive Game S 1 0 t & T O 9 E 1 dari server NO 01 Gaming Asia.
PPTX
Modul 2. Pengoperasian Pengaplikasian dan Kolaborasi Perangkat Kecerdasan Art...
DOCX
623175210-PROSEM-KELAS-X-SEM-GANJIL.docx
PPTX
materi mata pelajaran koding dan kecerdasan artifisial
PPTX
Modul 1. Pengenalan Koding-KA di Dikdasmen.pptx
Aksara nglagena_20250726_094730_0000.pdf
saya adalah seorang penulis awalann.pptx
Labuan4D situs Exclusive Game S 1 0 t & T O 9 E 1 dari server NO 01 Gaming Asia.
Modul 2. Pengoperasian Pengaplikasian dan Kolaborasi Perangkat Kecerdasan Art...
623175210-PROSEM-KELAS-X-SEM-GANJIL.docx
materi mata pelajaran koding dan kecerdasan artifisial
Modul 1. Pengenalan Koding-KA di Dikdasmen.pptx

Paper - semi-automated information gathering tools for subdomain enumeration and analysis

  • 1. Sudomy: Semi-automated Information Gathering Tools for Subdomain Enumeration and Analysis Redho Maland Yogyakarta, Indonesia screetsec [at] gmail.com ABSTRAK Penilaian keamanan informasi merupakan salah satu bentuk kesadaran terkait serangan dunia maya yang selalu meningkat dari tahun ke tahun. Proses penilaian bisa dilakukan oleh tim internal dan / atau eksternal misalnya tenaga ahli dibidang kemanan informasi (pentester). Tahapan penilaian oleh Tim internal tentu berbeda dengan tim eksternal. Tim eksternal dalam melakukan asesmen perlu mempelajari atau mendapatkan informasi sebanyak mungkin terkait sasaran. Tahap ini biasanya disebut sebagai information gathering/reconnaissance. Oleh karena itu kami membutuhkan aplikasi yang mendukung Pengumpulan Informasi yang efektif dan efisien untuk membantu analisis dan pelaporan. Masih banyak aplikasi information gathering/reconnaissance yang belum melakukan pengintaian secara otomatis serta menyertakan sistem pelaporan dan validasi data. Jadi dalam penelitian ini diusulkan untuk membuat aplikasi untuk mendukung tahapan information gathering/reconnaissance yang mana memudahkan peneliti / analis keamanan siber, penetration tester dan bug hunter. 1. Pendahuluan Sebagai seseorang yang ahli dibidang kemanan informasi (pentester) atau bug hunter, sebagian besar waktu yang mereka gunakan adalah melakukan pengumpulan informasi sebanyak mungkin mengenai target (information gathering/reconnaissance). Pentester dan bug hunter harus melakukan pengintaian ekstensif untuk menemukan aset menarik seperti server, teknologi dan aplikasi web dari sebuah domain atau subdomain. Mencari dan mengumpulkan subdomain dari domain utama merupakan bagian terpenting dari fase reconnaissance dalam kegiatan penilaian keamanan informasi, terutama pada kegiatan black-box penetration testing dan bug hunting. Pengumpulaan informasi tersebut dapat dijadikan sebagai target dalam pengujian untuk mencari kemungkinan bahwa salah satu subdomain memiliki kaitan dengan domain utama dan menemukan aplikasi tersembunyi yang berjalan di subdomain, sehingga dapat meningkatkan peluang dalam menemukan kerentanan. Dalam melakukan pengumpulan informasi dapat dibagi menjadi dua, yaitu active reconnaissance dan passive reconnaissance. Active Reconnaissance adalah pengumpulan data dengan cara bertatap muka langsung atau berhubungan langsung dengan target/sasaran, sedangkan passive
  • 2. reconnaissance adalah menggunakan media informasi yang sudah tersedia seperti berita, internet, dan sebagainya [1]. Pada proses ini dapat dilakukan secara manual dan otomatis, penulis menggabungkan proses tersebut menjadi semi-otomatis, sehingga kegiatan yang dilakukan secara berulang saat proses pengumpulan informasi menjadi lebih efektif dan efisien. 2. Tujuan Penulisan Memperkenalkan Sudomy sebagai salah satu tools yang bisa digunakan dalam pengumpulan subdomain dan analisa secara otomatis. Sudomy dibangun untuk mempermudah kegiatan dalam pengumpulan informasi dan melengkapi tools yang diperlukan pentester yang mengikuti kaidah The National Institute of Standards and Technology (NIST) dan/atau Information Systems Security Assessment Framework (ISSAF). 3. Landasan Teori 3.1. Information Gathering/Reconnaissance Information Gathering merupakan tahapan pertama dalam penilaian keamanan informasi terutama dibidang kemanan informasi (pentester) dan bug hunter, yang berguna untuk mendapatkan informasi sebanyak mungkin mengenai sasaran target baik perseorangan maupun perusahaan. Dalam melakukan pengumpulan informasi dapat dibagi menjadi dua: 1) Active Reconnaissance adalah pengumpulan data dengan cara berhubungan langsung dengan target atau sasaran. 2) Passive Reconnaissance adalah pengumpulan data dengan cara tidak berhubungan langsung dengan target, melalui sumber-sumber publik seperti yang tersedia di Internet berita, internet, dan media lainnya. 3.2 Subdomain Subdomain adalah bagian dari sebuah nama domain yang biasanya digunakan sebagai nama website dan subdomain ini tidak dapat berdiri sendiri. Dengan adanya subdomain, pemilik situs dapat membuat halaman atau website tertentu yang terpisah dari domain utama. Sebagai contoh website dengan domain “example.id” memiliki subdomain “blog.example.id” yang berisi informasi khusus yang berhubungan
  • 3. dengan blog, mail.example.com berisi informasi khusus email dan subdomain “news.example.id” yang berisi informasi khusus yang berhubungan dengan berita saja. Manfaat mencari subdomain sangat bermanfaat dalam kegiatan OSINT, Pentester, Bug hunter dan Red Teamer yang mungkin bisa saja ada informasi yang saling berkaitan antara satu domain dengan subdomain lainnya. 3.3 Domain Name System Domain Name System Domain Name System (DNS) merupakan sistem yang berfungsi mengkoversi nama domain yang mudah diingat ke dalam bentuk IP Address dengan melakukan permintaan informasi ke sistem yang memiliki hierarki dan tersebar. Adanya DNS maka memudahkan menghubungkan sumber daya komputasi baik melalui internet maupun jaringan internal [2]. Implementasinya secara global sistem DNS implementasi tiga peran, yaitu Domain Name Registry Operator, Domain Name Registrar, dan Service Providers dan Customers. Adapun overview of the Domain Name Registry dapat dilihat pada Figure 1 [3]. Figure 1. Overview of the Domain Name Registry 3.4 National Institute of Standards and Technology SP 800-42 US Department of Commerce menerbitkan rekomendasi tentang Network Security Testing yang tertuang pada National Institute of Standards and Technology Special Publication 800-42 (NIST SP 800- 42). Metodologi dasar pentration testing menurut NIST SP 800-42 terdapat empat fase, yaitu Planning, Discovery, Attack, dan Reporting, Figure 2 [4]. Pada fase awal Discovery pentester dapat melakukan
  • 4. identifikasi dan pengumpulan informasi yang potensial terkait target. Information gathering dapat dilakukan berbagai teknik diantaranya: Domain Name System interrogation, InterNIC queries, Search of the target organization’s web server(s) for information, Search of the organization’s Lightweight Directory Access Protocol server(s) (LDAP) for information, Packet capture, NetBIOS enumeration, Network Information System, and Banner grabbing. Figure 2. NIST: Penetration Testing Methodology 3.5 Information Systems Security Assessment Framework (ISSAF) Information Systems Security Assessment Framework (ISSAF) memiliki tiga fase metodology, yaitu Planing and Preparation, Assessment, dan Reporting, Clean-up, Destroy Artefacts. Sedangkan pada fase Assessment terdapat sembilan langkah yaitu: Information Gathering, Network Mapping, Vulnerability Identification, Penetration, Gaining Access & Privilege Escalation, Enumerating Further, Compromise Remote Users/Sites, Maintaining Access, and Covering Tracks, Figure 3 [5].
  • 5. Figure 3. ISSAF: Penetration Testing Methodology Pada langkah Information Gathering pencarian informasi dari target dapat dilakukan secara teknis, non-teknis atau gabungan keduanya. Hal ini bertujuan untuk mendapatkan informasi yang potensial terkait dengan celah dari target. Information Gathering dapat dibagi menjadi dua bagian, yaitu passive dan active. Pada bagian Passive Information Gathering teknik yang digunakan untuk mendapatkan informasi tidak secara langsung berhubungan dengan target. Bisa juga pada bagian Passive Information Gathering memanfaatkan pihak ketiga untuk mendapatkan informasi. Sedangkan pada bagian Active Information Gathering dalam proses mendapatkan informasi berhubungan langsung dengan target. Maka hal ini di beberapa negara dinyatakan illegal [5]. 3.6 Web Application Programming Interfaces Kelebihan pengembangan menggunakan Web Application Programming Interfaces (Web APIs) adalah mempercepat dalam pengembangan sebuah aplikasi. Oleh sebab itu implementasi Web APIs dalam rentang waktu 2005 – 2013 selalu meningkat, Figure 4 [6]. Web APIs menggunakan protokol HTTP/HTTPs dalam berkomunikasi dengan aplikasi utama dengan penyedia Web APIs [7]. Pengembangan aplikasi Information Gathering yang bersifat Passive memanfaatkan Web APIs untuk mempercepat mendapatkan informasi dari pihak ketiga, seperti SecurityTrails, BinaryEdge ,VirusTotal, Censys , dan Shodan.
  • 6. Figure 4. Programmable Web API Growth 2005-2013 4. Pembahasan 4.1 Perkenalan Sudomy Sudomy adalah alat bantu subdomain enumeration untuk mengumpulkan subdomain dan menganalisis domain dengan melakukan automated reconnaissance. Alat ini juga dapat digunakan untuk aktivitas OSINT. Pengembangan aplikasi Information Gathering mengikuti kaidah ISSAF[5] dengan menerapakan dua teknik, yaitu passive dan active. Teknik passive mendapatkan informasi melalui beberapa cara dengan memanfaatkan sumber daya pihak ketiga seperti menggunakan Web API, pustaka Information Gathering atau melalui OSINT Source dengan proses scraping [8]. Sedangkan teknik active menggunakan aplikasi yang terinstall dengan fitur serupa yaitu fungsi Information Gathering baik dengan cara brute force, wordlists ataupun metode baru lainnya. Dengan menyeleksi situs pihak ketiga yang digunakan, proses enumerasi dns dapat dilakukan secara efektif dan efisien, sehingga hasil yang didapatkan lebih banyak tetapi waktu yang dibutuhkan lebih sedikit. Sebagai contoh sudomy tidak menggunakan resource mesin pencari seperti Google, Baidu, Ask Yahoo dan Bing, dikarenkan hasil yang didapat kurang maksimal dan adanya faktor lainya seperti terhambat oleh captcha,
  • 7. Figure 5. Proses pengumpulan data hasil Scanning Selain itu hasil yang didapatkan dari mesin pencari Yahoo dan Bing, sudah terhimpuan disalah satu resource seperti SecurityTrails . Resource Totals Subdomain Yahoo & Bing 6 assetinventory.bugcrowd.com docs.bugcrowd.com events.bugcrowd.com forum.bugcrowd.com levelup.bugcrowd.com researcherdocs.bugcrowd.com SecurityTrails 35 a.bugcrowd.com api.bugcrowd.com assetinventory.bugcrowd.com blog.bugcrowd.com bounce.bugcrowd.com collateral.bugcrowd.com concourse.bugcrowd.com crowdcontrol.bugcrowd.com docs.bugcrowd.com documentation.bugcrowd.com email.assetinventory.bugcrowd.com email.bugcrowd.com email.bugs.bugcrowd.com email.crowdcontrol.bugcrowd.com 0 0 0 5 8 0 1 2 3 4 5 6 7 8 9 Google Baidu Ask Yahoo Bing BUGCROWD.COM Subdomain
  • 8. email.forum.bugcrowd.com email.submit.bugcrowd.com events.bugcrowd.com forum.bugcrowd.com forum-new.bugcrowd.com gemstash-mattress.a.bugcrowd.com go.bugcrowd.com gslink.bugcrowd.com hello.bugcrowd.com hooks.bugcrowd.com itmoah.bugcrowd.com levelup.bugcrowd.com omnidb.a.bugcrowd.com otter.bugcrowd.com pages.bugcrowd.com p.bugcrowd.com portal.bugcrowd.com production-sandbox.a.bugcrowd.com proxilate.a.bugcrowd.com proxilate.bugcrowd.com researcherdocs.bugcrowd.com sandbox-crowdcontrol.a.bugcrowd.com stargate.a.bugcrowd.com submissions.bugcrowd.com tableau.a.bugcrowd.com tracker.bugcrowd.com tracker.production-sandbox.a.bugcrowd.com Oleh karena itu penulis tidak memasukan search engine sebagai resource dalam pengumpulan data subdomain, berikut tampilan data dalam bentuk diagram venn, lihat pada Figure 6.
  • 9. Figure 6. Data dalam bentuk himpunan 4.2 System Design Pengembangan aplikasi Information Gathering menggunakan kombinasi dari Bash (Bourne-Again Shell) Script [9] dan bahasa pemrograman Python karena sudah mendukung object-oriented programming [8] dan dukungan pustaka yang mempermudah pengembangan. Penggunaan Bash Script memiliki tiga komponen utama: lexical analysis and parsing, text expansion, and command execution, Figure 7 [10]. Input dapat bermula dari antarmuka interaktif melalui console atau Bash Script file. Komponen pertama merupakan analisis lexical dan mem-parsing masing perintah ke dalam struktur data. Selanjutnya komponen kedua melakukan serangkaian ekspansi dan mengganti variabel Figure 7. Architecture of Bash dari masing-masing parsing perintah dengan mengikuti sophisticated rules. Setiap eksekusi perintah kemudian diinterpretasikan. 4.3 Tujuan Pembuatan Sudomy Sudomy dibangun untuk mempermudah kegiatan dalam pengumpulan informasi dan melengkapi tools yang diperlukan pentester/bug hunter dengan membuat proses menjadi lebih efektif dan efisien. 4.4 Fitur Sudomy Saat ini sudomy memiliki 19 fitur, yaitu: 1. Mudah, cepat, ringan dan powerfull. Bash script tersedia secara default di semua distro linux. Dengan memanfaatkan fitur multipengolahan (multiprocessing) yang dimiliki oleh bash script, maka semua prosesor akan terpakai secara optimal. 2. Pengujian enumerasi dns menggunakan metode aktif atau pasif - Metode aktif
  • 10. Sudomy memanfaatkan tools Gobuster, karena Gobuster sangat cepat dalam melakukan serangan DNS Subdomain Bruteforce (wildcard support). Wordlist yang dipakai berasal dari SecList (Discover/DNS). Beberapa file wordlist pada SecList kemudian disatukan menjadi sebuah file dengan total wordlist mencapai 3 juta entri. - Metode Pasif Dengan menyeleksi situs pihak ketiga yang digunakan, proses enumerasi dns dapat dilakukan secara efektif dan efisien, hasil yang didapatkan lebih banyak tapi waktu yang dibutuhkan lebih sedikit. Sudomy dapat mengumpulkan data dari ke-20 situs pihak ketiga yang telah melalui proses seleksi sebagai berikut: By selecting the good third-party sites (resources) Shodan http://developer.shodan.io VirusTotal https://www.virustotal.com Censys http://censys.io Certspotter https://api.certspotter.com BinaryEdge https://docs.binaryedge.io/ Hackertarget https://api.hackertarget.com Threatminer https://api.threatminer.org CrtSH https://crt.sh DnsDB https://www.dnsdb.info BufferOver http://dns.bufferover.run Sypse https://spyse.com Threatcrowd http://threatcrowd.org Dnsdumpster https://dnsdumpster.com Riddler http://riddler.io Webarchive http://web.archive.org SecurityTrails http://securitytrails.com RapidDNS https://rapiddns.io AlienVault https://otx.alienvault.com CommonCrawl http://index.commoncrawl.org FBcert https://graph.facebook.com URLScan https://urlscan.io RiskIQ https://community.riskiq.com 3. Pengujian terhadap daftar subdomain yang ditemukan untuk memastikan http atau https server berfungsi dengan baik atau tidak. Fitur ini menggunakan tools pihak ketiga yaitu, httprobe. 4. Pengecekan subdomain berdasarkan Ping Sweep dan/atau mendapatkan HTTP status code 5. Mampu mendeteksi virtualhost (beberapa subdomain yang berbagi satu alamat IP). Dari daftar subdomain yang ditemukan, sudomy akan menerjemahkannya menjadi alamat IP, mengurutkan serta menggolongkannya apabila beberapa subdomain ternyata resolve ke alamat IP yang sama.
  • 11. Fitur ini akan sangat bermanfaat dalam proses pentest/bug bounty berikutnya, misal dalam melakukan port scanning, satu alamat ip tidak akan discan berulang-ulang. 6. Melakukan port scanning dari alamat IP subdomain/virtualhost yang telah ditemukan 7. Melakukan pengujian serangan Subdomain TakeOver (CNAME Resolver, DNSLookup, Detect NXDomain, Check Vuln) 8. Mengambil Tangkapan Layar dari subdomain default menggunakan gowitness atau Anda dapat memilih alat tangkapan layar lain, seperti (-ss webscreeenshot) 9. Mengidentifikasi teknologi di situs web (kategori, aplikasi, versi) 10. Mendeteksi urls, ports, title, content-length, status-code, response-body probbing. 11. Sebagai default menggunakan auto fallback dari https ke https 12. Pengumpulan Data & Scraping terhadap port terbuka dari pihak ke-3 defaultnya adalah Shodan. Untuk saat ini hanya menggunakan Shodan [Future: Censys, Zoomeye]. Lebih efisien dan efektif untuk mengumpulkan port dari daftar ip pada target [[Subdomain> IP Resolver> Crawling> ASN & Open Port]] 13. Mengumpulkan dan Mengekstrak URL & Parameter yang menarik, resource yang digunakan WebArchive, CommonCrawl dan UrlScanIO 14. Mengumpulkan path, url dan file yang menarik seperti api, git, admin, file javascript (js|node) dan dokumen (doc|pdf) 15. Menentukan output saat file scanning telah selesai berjalan 16. Memeriksa apakah IP dimiliki/dilndungii oleh Cloudflare 17. Mengumpulkan dan membuat wordlist berdasarkan pengumpulan sumber daya url (wayback, urlscan, commoncrawl. Untuk membuatnya, kami Ekstrak Semua parameter dan jalur dari pengintaian domain kami 18. Output laporan dalam format HTML atau CSV 19. Mengirim pemberitahuan ke Channel Slacks apabila automated recon telah selesai 4.5 Cara kerja Sudomy Disini penulis akan menjelaskan cara kerja/proces recon disaat sudomy dijalankan menggunakan perintah argumen terbaik dalam mengumpulkan subdomain dan menganalisis dengan melakukan automatic recon. Perintah
  • 12. root@maland: Sudomy -d bugcrowd.com -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe -aI webanalyze -sS - -slack Recon Workflow Sudomy v1.1.8#dev, lihat Figure 8. Figure 8. Recon Worfklow Sudomy https://raw.githubusercontent.com/Screetsec/Sudomy/master/doc/Sudomy%20- %20Recon%20Workflow%20v1.1.8%23dev.png Hal pertama, sudomy akan melakukan pengumpulan subdomain dari domain utama menggunakan metode pasif melalui resource yang telah di seleksi seperti dnsdumpster, webarchive, shodan, virustotal, crt.sh, binaryedge, securitytrails, certspotter, censys, threatminer, bufferover, hackeertarget, entrust, threatcrowd, riddler, findsubdomains, rapiddns, alienvault, commoncrawl, dan urlscan.io. Untuk meningkatkan hasil enumerasi, aplikasi sudomy perlu menambahkan API Key untuk Shodan, Censys, Virus Total, BinaryEdge, dan SecurityTrails pada bagian sudomy.api. Disaat proses pengumpulan subdomain, sudomy juga mengambil raw data (tanpa penyaringan) dari resource tertentu seperti CommonCrawl, UrlScan, Webarchive dan Shodan. Dikarenkan raw data dari resource tersebut dapat diolah dan dimanfaatkan sekaligus dalam mendapatkan informasi lainnya. Contohnya informasi port, asn number, path, url, paremeter dan file menarik lainnya seperti api, git,
  • 13. admin, javascript (js, node_module) dan dokumen (doc, pdf, pub, xlsx) yang bisa digunakan untuk pembuatan wordlist. Dari daftar subdomain yang didapatkan, sudomy akan melakukan validasi terhadap subdomain yang aktif dengan memeriksa protokol http / https secara otomatis. Fitur ini menggunakan alat pihak ketiga, httprobe. Tidak hanya disitu, sudomy juga akan melakukan pengecekan terhadap title, content- length, status-code dan response-body pada masing-masing subdomain yang aktif. Kemudian/Dari daftar subdomain yang aktif, sudomy akan melanjutkan proses enumerasi dengan mengidentifikasi teknologi web yang digunakan seperti Content Management System (CMS), Bootstrap, Web Server, Operating System dan Database yang digunakan oleh website tersebut. Kumpulan subdomain yang telah berhasil dikumpulkan, sudomy akan mendeteksi beberapa subdomain yang terbagi dalam satu alamat IP (virtualhost) dan menggolongkannya serta menyeleksi apabila beberapa subdomain resolve ke alamat IP yang sama, Figure 9. Figure 9. Subdomain yang telah di kelompokan bersadarkan IP dan Subdomain
  • 14. Setelah daftar IP terkumpul, sudomy akan melakukan pengecekan terhadap host berdasarkan ping sweep dan juga memeriksa apakah IP dimiliki/dilndungii oleh Cloudflare. Kemudian sudomy melakukan port scanning melalaui daftar alamat original ip yang telah di filter, disini sudomy menggunakan dua metode dalam melakukan port scanning. Dalam pemindain aktif sudomy menggunakan nmap dan untuk pemindain secara pasif, untuk sekarang sumber utamanya adalah shodan, kedepanya akan ditambahkan resource lainnya seperti censys dan zoomeye. Figure 10 Figure 10. Hasil Scraping & Collecting Port menggunakan Shodan Tak hanya disitu, sudomy juga melakukan pengecekan subdomain takeover dan pembuatan wordlist kustom secara otomatis berdasarkan informasi yang telah dikumpulkan. Dalam pembuatan wordlist, sudomy memanfaatkan resource seperti CommonCrawl, UrlScan, Webarchive dan Shodan untuk mendapatkan informasi Path, Url dan Paremeter mengenai target. Sehingga wordlist yang digunakan lebih spesifik, menghemat waktu dan tepat sasaran. Jika tahapan pengumpulan informasi sudah selesai, sudomy akan merekam tangkapan layar (screenshot) dari daftar subdomain dan membuat laporan dengan output berfromat HTML dan CSV yang dapat memudahkan peniliti dan/atau analisis cyber security dalam menganalisa. Pada laporan berformat HTML tersebut ditampilkan grafik hasil enumerasi subdomain diantaranya: Ping Sweep, HTTP status, IP Address, sepuluh teratas protokol yang terbuka, pemeriksaan Subdomain TakeOver, dan grafik hasil enumerasi, Figure 11
  • 15. Figure 11. Dashboard Report sudomy Apabila tahapan screenshot dan pembuatan laporan selesai, maka selanjutnya akan masuk ketahapan akhir yaitu pemberitahuan bahwa scanning telah selesai menggunakan slack alert, lihat pada Figure 12.
  • 16. Figure 12. Slack Notifications 4.6 Pemasangan Sudomy Dalam melakukan pemasangan, sudomy membutuhkan beberapa dependensi agar tools dapat berjalan dengan baik. Petunjuk tentang cara menginstal sebagai berikut: Untuk Mengunduh Sudomy Dari Github: git clone --recursive https://github.com/screetsec/Sudomy.git Untuk Menginstall depedensi pip install -r requirements.txt Sudomy membutuhkan jq dan beberapa tools lainya untuk menjalankan dan melakukan parse data. # Pengguna Linux apt-get update apt-get install jq nmap phantomjs npm chromium parallel npm i -g wappalyzer wscat # Pengguna Mac brew cask install phantomjs brew install jq nmap npm parallel npm i -g wappalyzer wscat # Note Yang Anda perlukan hanyalah pemasangan Google Chrome atau Chromium terbaru 4.7 Berjalan di Docker Container Sudomy juga support dan berjalan di Docker Container, sehingga tidak perlu melakukan melakukan instalasi dan dependensi. Petunjuk tentang cara penggunaan # Pull an image from DockerHub docker pull screetsec/sudomy:v1.1.8
  • 17. # Run an image, you can run the image on custom directory but you must copy/download config sudomy.api on current directory docker run -v "${PWD}/output:/usr/lib/sudomy/output" -v "${PWD}/sudomy.api:/usr/lib/sudomy/sudomy.api" -it --rm screetsec/sudomy:v1.1.8 [argument] or define API variable when executed an image. docker run -v "${PWD}/output:/usr/lib/sudomy/output" -e "SHODAN_API=xxxx" -e "VIRUSTOTAL=xxxx" -it --rm screetsec/sudomy:v1.1.8 [argument] 4.8 Konfigurasi tambahan API Key diperlukan untuk melakukan query pada situs pihak ketiga seperti Shodan, Censys, SecurityTrails, Virustotal, dan BinaryEdge yang bertujuan untuk meningkatkan hasil enumerasi. Pengaturan API key dapat dilakukan melalui file sudomy.api # Shodan # URL : http://developer.shodan.io # Example : # - SHODAN_API="VGhpc1M0bXBsZWwKVGhmcGxlbAo" SHODAN_API="" # Censys # URL : https://censys.io/register CENSYS_API="" CENSYS_SECRET="" # Virustotal # URL : https://www.virustotal.com/gui/ VIRUSTOTAL="" # Binaryedge # URL : https://app.binaryedge.io/login BINARYEDGE="" # SecurityTrails # URL : https://securitytrails.com/ SECURITY_TRAILS="" YOUR_WEBHOOK_URL diperlukan juga sebelum menggunakan pengiriman notifikasi ke slack. Pengaturan URL dapat dilakukan melalui file slack.conf
  • 18. # Configuration Slack Alert # For configuration/tutorial to get webhook url following to this site # - https://api.slack.com/messaging/webhooks # Example: # - YOUR_WEBHOOK_URL="https://hooks.slack.com/services/T01CGNA9743/B02D3BQNJM 6/MRSpVUxgvO2v6jtCM6lEejme" YOUR_WEBHOOK_URL="" 4.9 Petunjuk Pemakaian ___ _ _ _ / __|_ _ __| (_)(_)_ __ _ _ __ || / _ / __ ' || | |___/_,___,_____/_|_|__, | |__/ v{1.1.0#dev} by @screetsec Sud⍥my - Fast Subdmain Enumeration and Analyzer http://github.com/screetsec/sudomy Usage: sud⍥my.sh [-h [--help]] [-s[--source]][-d[--domain=]] Example: sud⍥my.sh -d example.com sud⍥my.sh -s Shodan,VirusTotal -d example.com sud⍥my.sh -pS -rS -sC -nT -sS -d example.com Optional Arguments: -a, --all Running all Enumeration, no nmap & gobuster -b, --bruteforce Bruteforce Subdomain Using Gobuster (Wordlist: ALL Top SecList DNS) -d, --domain domain of the website to scan -h, --help show this help message -o, --html Make report output into HTML -s, --source Use source for Enumerate Subdomain -tO, --takeover Subdomain TakeOver Vulnerabilty Scanner -pS, --ping-sweep Check live host using methode Ping Sweep -rS, --resolver Convert domain lists to resolved IP lists without duplicates -sC, --status-code Get status codes, response from domain list -nT, --nmap-top Port scanning with top-ports using nmap from domain list -sS, --screenshot Screenshots a list of website -nP, --no-passive Do not perform passive subdomain enumeration --no-probe Do not perform httprobe Menggunakan seluruh situs pihak ketiga, kemudian melakukan pengujian apakah http/https server berfungsi dengan baik:
  • 19. $ sudomy -d bugcrowd.com Menggunakan salah satu situs pihak ketiga atau lebih: sudomy -s shodan,dnsdumpster,webarchive -d bugcrowd.com Figure 13. Menggunakan salah satu resources/situs pihak ketiga atau Lebih Menggunakan satu atau lebih Plugin: $ sudomy -d bugcrowd.com -pS -rS -tO Figure 14. Menggunakan satu plugin atau Lebih
  • 20. Menggunakan seluruh Plugin , seperti pengecekan status host, status code, subdomain takeover, screenshots sudomy -d bugcrowd.com --all Dalam hal ini, plugin untuk Nmap, Gobuster dan wappalyzer tidak disertakan. Jadi Anda bisa menambahkan lebih banyak argumen untuk plugin itu, misalnya sudomy -d bugcrowd.com --all -aI webanalyze Membuat output laporan dalam format html sudomy -d bugcrowd.com --all --html Jika program sudah selesai dijalankan maka output dan report akan berada di folder output / Figure 15. Hasil scanning Kita juga dapat menentukan jalur untuk file keluaran (tentukan file keluaran setelah selesai) dengan argumen sudomy -d bugcrowd.com --all –outfile /root
  • 21. Figure 16. Hasil scanning dengan output yang telah ditentukan Struktur Folder Output berdasarkan nama domain dan tanggal disaat melakukan scanning, seperti gambar berikut Figure 17. Stuktur folder hasil scanning sudomy Mengirim Notifiasi ke Slack Channels sudomy -d bugcrow.com --slack Untuk menggunakan argumen terbaik untuk mengumpulkan subdomain & menganalisis dengan melakukan pengintaian otomatis dan mengirimkan pemberitahuan ke slack
  • 22. ./sudomy -d bugcrowd.com -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe -aI webanalyze --slack -sS 4.10 Kesimpulan Berdasarkan pengujian dengan tools yang serupa, sudomy masih lebih cepat dalam proses enumerasi pencarian subdomain. Selain itu sudomy juga dilengkapi fitur-fitur otomatisasi yang sangat membantu peneliti dan/atau analis Cyber Security dalam mempermudah kegiatan pengumpulan informasi serta melengkapi tools yang diperlukan pentester/bug hunter dengan membuat proses menjadi lebih efektif dan efisien. Aplikasi sudomy juga dapat diunduh secara bebas di https://github.com/Screetsec. Pengembangan selanjutnya diharapkan sudomy dapat terintegrasi dengan aplikasi information security assessment lainnya. References [1] Kalsum, T. U., & Kurniawan, A. (2016). Analisa Implementasi Teknik Reconnaissance Pada Webserver (Studi Kasus: Upt Puskom Universitas Dehasen). Jurnal Media Infotama, 12(1) [2] Mockapetris P V. 1987 RFC 1035: Domain Names - Implementation and Specification [3] Sinaci A A, Sehitoglu O T, Yondem M T, Fidan G and Tatli I 2010 SEMbySEM in Action: Domain Name Registry Service Through a Semantic Middleware eChallenges, 2010 1–8 [4] Scarfone K, Souppaya M, Cody A and Orebaugh A 2015 NIST SP 800-42: Guideline on Network Security Testing vol 115 (Gaithersburg, MD) [5] Open Information Systems Security Group 2006 Information Systems Security Assessment Framework (ISSAF) [6] Rudrakshi C, Varshney A, Yadla B, Kanneganti R and Somalwar K 2014 API-fication [7] Mendoza A and Gu G 2018 Mobile Application Web API Reconnaissance: Web-to-Mobile Inconsistencies & Vulnerabilities Proc. - IEEE Symp. Secur. Priv. 2018-May 756–69 [8] Hariyadi D and Fazlurrahman 2019 Membangun Telegram untuk Crawling Malware OSINT Menggunakan Raspberry Pi Indones. J. Bus. Intell. 2 18–24 [9] Ramey C and Fox B 2019 Bash Reference Manual (Free Software Foundation, Inc.) [10] Davis I J, Wexler M, Zhang C, Holt R C and Weber T 2015 Bash2py: A bash to Python translator 2015 IEEE 22nd Int. Conf. Softw. Anal. Evol. Reengineering, SANER 2015 - Proc 508–11