Kali Linux Üzerinde Sherlock Kullanımı: OSINT ve Kullanıcı Adı Analizi
Açık Kaynak İstihbaratı (OSINT) süreçlerinde bir kullanıcı adının dijital ayak izini haritalandırmak için kullanılan Python tabanlı Sherlock aracının teknik incelemesi, ağ mekaniği ve kullanımı.
Yavuz Soylu

Sızma testlerinin (Penetration Testing) ve siber güvenlik araştırmalarının ilk adımı olan bilgi toplama (Reconnaissance) evresinde, Açık Kaynak İstihbaratı (OSINT) kritik bir yer tutar. Hedefin internet üzerindeki dijital ayak izini haritalandırmak için kullanılan standart araçlardan biri de Sherlock'tur.
Sherlock, belirli bir kullanıcı adının (username) yüzlerce farklı sosyal medya, forum ve web platformunda var olup olmadığını tarayan Python tabanlı açık kaynaklı bir araçtır. Bu yazıda Sherlock'un çalışma mekaniğini, Kali Linux üzerindeki kurulumunu ve kullanım parametrelerini inceleyeceğiz.
1. Sherlock Arka Planda Nasıl Çalışır?
Sherlock'un temel mimarisi oldukça basittir ancak ağ (network) seviyesinde verimli çalışacak şekilde optimize edilmiştir.
Araç, tarama yapacağı sitelerin yapılarını bir JSON dosyasında (data.json) tutar. Kullanıcıdan aldığı hedef kullanıcı adını, bu dosyadaki URL şablonlarına (örneğin: https://github.com/{username}) yerleştirir ve bu adreslere eşzamanlı HTTP GET istekleri gönderir.
Doğrulama Mekanizması: Hedef profilin var olup olmadığını anlamak için yalnızca HTTP 200 (OK) veya HTTP 404 (Not Found) durum kodlarına (Status Codes) bakmak her zaman yeterli olmaz. Bazı web sunucuları, sayfa bulunamasa bile özel bir hata sayfası render edip HTTP 200 döndürebilir (Soft 404). Sherlock, bu False-Positive (yanlış pozitif) sonuçları önlemek için JSON konfigürasyonundaki kurallara göre sayfa içerisindeki belirli metinleri (string matching) veya yönlendirmeleri (HTTP 301/302 Redirect) de analiz eder. Yüksek sayıda platformu kısa sürede taramak için Python'un asenkron programlama yeteneklerini kullanır.
2. Kali Linux Üzerinde Kurulum
Güncel Kali Linux sürümlerinde Sherlock, resmi APT depolarında yer alır. Bu nedenle doğrudan paket yöneticisi ile kurulabilir:
Bash
# APT depolarını güncelleyip Sherlock'u kurmak
sudo apt-get update
sudo apt-get install sherlock
Eğer aracın en güncel geliştirici sürümünü GitHub üzerinden çekmek (clone) isterseniz, modern Debian/Kali sistemlerindeki PEP 668 kısıtlamasından dolayı Python sanal ortamı (virtual environment) kullanmanız gerekir:
Bash
# Repoyu klonlama ve dizine geçiş
git clone https://github.com/sherlock-project/sherlock.git
cd sherlock
# Sanal ortam oluşturma ve aktif etme
python3 -m venv sherlock-env
source sherlock-env/bin/activate
# Bağımlılıkları izole ortama kurma
python3 -m pip install -r requirements.txt
3. Temel Kullanım ve Parametreler
Kurulum tamamlandıktan sonra aracın kullanımı doğrudan terminal üzerinden gerçekleştirilir.
Temel Tarama: Aşağıdaki komut, johndoe kullanıcı adını veritabanındaki tüm sitelerde tarar ve bulduğu eşleşmeleri terminale basar. Varsayılan davranış olarak, sonuçları johndoe.txt adında bir dosyaya otomatik olarak kaydeder.
Bash
sherlock johndoe
Sadece Başarılı Sonuçları Filtreleme: Terminal kirliliğini önlemek ve sadece hesabın bulunduğu siteleri görmek için --print-found parametresi kullanılır.
Bash
sherlock johndoe --print-found
4. Ağ Kısıtlamaları (Rate Limiting) ve Tor Kullanımı
Yüzlerce farklı web sunucusuna aynı IP adresi üzerinden kısa sürede çok sayıda asenkron HTTP isteği göndermek, hedef sunuculardaki Web Application Firewall (WAF) veya Rate Limiting (istek sınırlama) mekanizmalarını tetikleyebilir. Bu durumda IP adresiniz geçici olarak engellenebilir ve tarama sonuçları hatalı dönebilir (Timeout veya HTTP 429 Too Many Requests).
Bu durumu aşmak için Sherlock, istekleri Tor ağı üzerinden yönlendirme (routing) yeteneğine sahiptir. Bu komutu kullanabilmek için sisteminizde tor servisinin çalışıyor olması gerekir.
Bash
# Öncelikle Tor servisini başlatın
sudo systemctl start tor
# Taramayı Tor ağı üzerinden asenkron olarak gerçekleştirin
sherlock johndoe --tor
Eğer spesifik bir proxy sunucusu kullanmak isterseniz --proxy parametresi ile yönlendirme yapabilirsiniz: sherlock johndoe --proxy socks5://127.0.0.1:9050