← Back to list

Bir Domain’in Arkasında Neler Var? Bash ile Otomatik OSINT

Açık kaynak istihbaratı (OSINT), bir hedef hakkında yalnızca herkese açık kaynakları kullanarak bilgi toplama sürecidir. Güvenlik…

Znurkiraz · 2026-06-13 13:42 · 50 claps · 2.6 min read
#cybersecurity #osint #bash #linux #ethical-hacking
Open on Medium ↗
Wiki topics: 🔒 · Cybersecurity 🔓 · Open Source

Bir Domain’in Arkasında Neler Var? Bash ile Otomatik OSINT

Açık kaynak istihbaratı (OSINT), bir hedef hakkında yalnızca herkese açık kaynakları kullanarak bilgi toplama sürecidir. Güvenlik araştırmalarında alan adı analizleri genellikle WHOIS kayıtları, DNS bilgileri, HTTP başlıkları ve alt alan adlarının (subdomain) incelenmesiyle başlar.

Bu projede Kali Linux üzerinde Bash scripting kullanarak belirli bir domain hakkında otomatik veri toplayan ve sonuçları okunabilir bir rapora dönüştüren “Gölge Avcısı” isimli bir araç geliştirdim.

Proje Neler Yapıyor?

  • WHOIS kayıtlarını toplar.
  • DNS kayıtlarını analiz eder.
  • Ters DNS (PTR) sorgusu gerçekleştirir.
  • HTTP başlıklarını inceler.
  • Temel subdomain keşfi yapar.
  • crt.sh üzerinden sertifika tabanlı subdomain keşfi gerçekleştirir.
  • Tarih damgalı rapor üretir.
  • Sonuçları TXT formatında saklar.

Gerekli Araçları Kur

Terminali aç ve şu komutu çalıştır:

sudo apt update && sudo apt install -y whois dnsutils curl nmap

Her aracın çalıştığını tek satırda kontrol et:

whois --version && dig -v && 
nslookup -version && curl --version

Çalışma Klasörü Oluştur

mkdir -p ~/osint-tool && cd ~/osint-tool
touch golge_avci.sh && chmod +x osınt-test.sh

Bash Scriptinin Oluşturulması

nano veya vim ile dosyayı aç:

nano ~/osint-tool/ osınt-test.sh

İlk bölümü yaz:

#!/bin/bash
# ================================================
#  Otomatik OSINT Aracı
#  Kullanim: ./ osınt-test.sh <domain>
# ================================================
DOMAIN=$1
TARIH=$(date +%Y-%m-%d_%H-%M)
RAPOR="osint_${DOMAIN}_${TARIH}.txt"
if [ -z "$DOMAIN" ]; then
  echo "[!] Kullanim: $0 <domain>"
  exit 1
fi

Banner Fonksiyonu

banner() {
  echo "========================================" >> $RAPOR
  echo "  $1" >> $RAPOR
  echo "========================================" >> $RAPOR
}

WHOIS Taraması

banner '[ 1 ] WHOIS KAYITLARI'
whois $DOMAIN 2>/dev/null | grep -E \
  "Registrar|Creation|Expiry|Name Server|DNSSEC" >> $RAPOR

DNS Kayıtları (dig)

banner '[ 2 ] DNS KAYITLARI'
for TIP in A AAAA MX NS TXT SOA CNAME; do
  echo "--- $TIP ---" >> $RAPOR
  dig $DOMAIN $TIP +short 2>/dev/null >> $RAPOR
done

Ters DNS Sorgusu (nslookup)

banner '[ 3 ] TERS DNS (PTR)'
IP=$(dig $DOMAIN A +short | head -1)
if [ -n "$IP" ]; then
  nslookup $IP 2>/dev/null >> $RAPOR
fi

HTTP Başlık Bilgisi (curl)

banner '[ 4 ] HTTP BASLIKLARI'
curl -sI --max-time 10 https://$DOMAIN 2>/dev/null \
  | grep -iE 'server|x-powered|content-type|strict' >> $RAPOR

Subdomain Keşfi (DNS Bruteforce)

banner '[ 5 ] SUBDOMAIN KESFI'
SUBLAR="www mail ftp ssh admin api dev test vpn staging"
for SUB in $SUBLAR; do
  SONUC=$(dig ${SUB}.${DOMAIN} A +short 2>/dev/null)
  if [ -n "$SONUC" ]; then
    echo "[+] ${SUB}.${DOMAIN} -> $SONUC" >> $RAPOR
  fi
done

Özet ve Bitiş Mesajı

banner '[ TARAMA TAMAMLANDI ]'
echo "Alan Adi : $DOMAIN" >> $RAPOR
echo "Tarih    : $(date)" >> $RAPOR
echo "Rapor    : $RAPOR" >> $RAPOR
echo ""
echo "[✓] Tarama bitti! Rapor: $RAPOR"

crt.sh — Sertifika Tabanlı Subdomain Keşfi

Mevcut brute-force subdomain taramaının yanına aşağıdaki bloğu ekle. Bu yöntem, sertifika şeffaflık loglarını sorgulayarak tahmine dayalı listeden çok daha fazla subdomain bulur.

banner '[ 6 ] CRT.SH - SERTIFIKA TABANLI SUBDOMAIN KESFI'
echo "[*] crt.sh sorgulanıyor: $DOMAIN" >> $RAPOR
CRTSH=$(curl -s "https://crt.sh/?q=%25.$DOMAIN&output=json" 2>/dev/null)
if [ -n "$CRTSH" ]; then
    echo "$CRTSH" \
    | grep -oP '"name_value":"\K[^"]+' \
    | sed 's/\\n/\n/g' | sort -u | grep -v "^\*\." >> $RAPOR
    COUNT=$(echo "$CRTSH" | grep -oP '"name_value":"\K[^"]+' \
    | sort -u | grep -v "^\*\." | wc -l)
    echo "[+] $COUNT adet subdomain bulundu (crt.sh)" >> $RAPOR
else
    echo "[-] crt.sh'e ulaşılamadı." >> $RAPOR
fi

Renk Kodlu Terminal Çıktısı

Aşağıdaki renk tanımlarını scriptin en başına (DOMAIN= satırından önce) ekle:

# === RENK TANIMLARI ===
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
CYAN='\033[0;36m'
BOLD='\033[1m'
NC='\033[0m'  # Rengi sıfırla

Scripti Çalıştırma

Çalıştırma İzni Ver

chmod +x ~/osint-tool/osınt-test.sh

Bir Domain Tara

cd ~/osint-tool
./ osınt-test.sh example.com

Raporu Oku

cat osint_example.com_*.txt
# veya sayfalı okuma için:
less osint_example.com_*.txt

⚠ ÖNEMLİ:

  • Bu aracı yalnızca kendi sahip olduğunuz veya yazılı izin aldığınız sistemlerde kullanın.
  • OSINT araçları legal olmakla birlikte, izinsiz sistemlere yönelik kullanım yasadışıdır.
  • Öğrenme amacıyla: example.com, testphp.vulnweb.com gibi test hedeflerini kullanın.

메타데이터
post_id
8be70bcfadf6
slug
bir-domainin-arkasında-neler-var-bash-ile-otomatik-osint-8be70bcfadf6
url
https://medium.com/@znurkiraz/bir-domainin-arkas%C4%B1nda-neler-var-bash-ile-otomatik-osint-8be70bcfadf6
canonical_url
https://medium.com/@znurkiraz/bir-domainin-arkas%C4%B1nda-neler-var-bash-ile-otomatik-osint-8be70bcfadf6
author_url
https://medium.com/@znurkiraz
status
ok
fetched_at
2026-06-14 11:28:49