PYTHON

Cara Mudah Buat Scanner Subdomain Dengan Python

Menemukan subdomain dari situs web tertentu memungkinkan Anda menjelajahi infrastruktur domain lengkapnya. Membangun alat seperti itu sangat berguna dalam hal fase pengumpulan informasi dalam pengujian penetrasi untuk peretas etis.

Mencari subdomain secara manual akan memakan waktu lama. Untungnya, kita tidak perlu melakukan itu, dalam tutorial ini, kita akan membangun pemindai subdomain dengan Python menggunakan pustaka permintaan. Mari kita mulai!

Mari kita menginstalnya:

pip3 install requests

Metode yang akan kami gunakan di sini adalah brute-forcing , dengan kata lain, kami akan menguji semua nama subdomain umum dari domain tertentu, setiap kali kami menerima respons dari server, itu merupakan indikator bagi kami bahwa subdomain itu hidup.

Buka file Python baru dan ikuti, mari gunakan google.com untuk tujuan demonstrasi, saya menggunakannya karena google memiliki banyak subdomain:

import requests

# the domain to scan for subdomains
domain = "google.com"

Sekarang kita akan membutuhkan daftar besar subdomain untuk dipindai, saya telah menggunakan daftar 100 subdomain hanya untuk demonstrasi, tetapi di dunia nyata, jika Anda benar-benar ingin menemukan semua subdomain, Anda harus menggunakan daftar yang lebih besar, periksa github ini repositori yang berisi hingga 10 ribu subdomain.

Saya memiliki file "subdomains.txt" di direktori saat ini, pastikan Anda juga melakukannya (ambil daftar pilihan Anda di repositori ini):

# read all subdomains
file = open("subdomains.txt")
# read all content
content = file.read()
# split by new lines
subdomains = content.splitlines()

Sekarang subdomains daftar berisi subdomain yang ingin kita uji, mari kita paksa:

# a list of discovered subdomains
discovered_subdomains = []
for subdomain in subdomains:
    # construct the url
    url = f"http://{subdomain}.{domain}"
    try:
        # if this raises an ERROR, that means the subdomain does not exist
        requests.get(url)
    except requests.ConnectionError:
        # if the subdomain does not exist, just pass, print nothing
        pass
    else:
        print("[+] Discovered subdomain:", url)
        # append the discovered subdomain to our list
        discovered_subdomains.append(url)

Pertama, kita membangun URL agar sesuai untuk mengirim permintaan, kemudian kita menggunakan fungsi request.get() untuk mendapatkan respons HTTP dari server, ini akan memunculkan pengecualian ConnectionError setiap kali server tidak merespons, itulah sebabnya kami membungkus dalam blok coba/kecuali .

Ketika pengecualian tidak dimunculkan, maka subdomain ada. Mari kita tulis semua subdomain yang ditemukan ke sebuah file:

# save the discovered subdomains into a file
with open("discovered_subdomains.txt", "w") as f:
    for subdomain in discovered_subdomains:
        print(subdomain, file=f)

Berikut adalah bagian dari hasil ketika saya menjalankan skrip:

Setelah selesai, Anda akan melihat file baru discovered_subdomains.txt muncul, yang mencakup semua subdomain yang ditemukan!

Anda akan melihat saat menjalankan skrip yang cukup lambat, terutama saat Anda menggunakan daftar yang lebih panjang, karena menggunakan satu utas untuk memindai. Baiklah, kita selesai, sekarang Anda tahu cara menemukan subdomain dari situs web apa pun yang Anda inginkan!

Sumber asli : thepythoncode