Herkese merhaba. Bugün siber güvenlik dünyasının en kritik, ancak yeni başlayanlar tarafından en çok ihmal edilen aşaması olan Recon sürecinin ne olduğunu, neden bu kadar önemli olduğunu ve sıfırdan nasıl yapıldığını anlatacağım.
Recon Nedir?

Recon, bir hedef sistemin internete bakan tüm yüzlerini, kullandığı teknolojileri, aktif hizmetlerini ve potansiyel zayıflıklarını keşfetme sürecidir. Bir saldırı veya sızma testi senaryosunda, hedef hakkında ne kadar çok "anlamlı" veriye sahipsek, başarı şansımız o kadar yükselir.
Pentesterlar ve Bug Bounty dünyasına yeni adım atanların en sık düştüğü hata, keşif aşamasını aceleye getirip doğrudan zafiyet tarama araçlarına sarılmalarıdır. Ancak bu, birçok önemli açığın gözden kaçmasına neden olur.
Recon sürecinin en önemli özelliği hedefin saldırı yüzeyini genişleterek bize, üzerinde test yapabileceğimiz daha fazla alan sağlamasıdır. Keşif sürecini verimli bir şekilde planlayan ve uygulayan bir saldırgan veya test uzmanı, herkesin baktığı göz önündeki yerlerin ötesine geçerek kimsenin bulamadığı gizli sayfaları, portları veya servisleri bulur, bu alanlar üzerinde testlerini gerçekleştirir ve tespit ettiği açıklar daha nadir ve değerli olur.
Tam tersine keşif aşamasını ihmal eden birisi, yalnızca herkesin ilk bakışta görebileceği ve muhtemelen çoktan raporlanmış olan bilindik açıklara takılıp kalır. Bu durum, zaman kaybına yol açar. çünkü gerçek fark, herkesin baktığı yerlerde değil, gizli noktalarda ortaya çıkar.
Recon Nasıl yapılır?
Recon aşamasının neden önemli olduğunu anladığımıza göre şimdi gelelim Recon'un nasıl yapıldığına... Burada recon iki farklı türe ayrılıyor. Pasif ve Aktif recon.
Pasif Recon
Bu recon türü, hedef sisteme en ufak bir istek bile göndermeden, onun hakkında yalnızca internette public olarak var olan bilgileri açığa çıkarma sürecidir. Bunu, bir insan hakkında bilgi edinmek için direkt ona kim olduğunu sormak yerine onu tanıyan başka kişilere sorular sormak veya onun hakkında araştırma yapmak gibi düşünebilirsiniz.
Aktif Recon
Bu recon çeşidi, hedef sisteme doğrudan istek göndererek, bir başka deyişle sisteme kendisi hakkında sorular sorarak bilgi toplama yöntemidir. Biraz uğraştırıcı bir süreç olsa da açık portları, gizli dosya yollarını veya farklı subdomainleri ortaya çıkarmak için oldukça faydalı ve etkili bir yoldur.
Tabii, bu iki farklı türün kendine göre avantajları ve dezavantajları vardır. Örneğin pasif recon, hedefe çaktırmadan bilgi almak için idealdir fakat bazen aktif recon ile kolaylıkla bulabileceğiniz şeyleri pasif recon teknikleriyle bulamayabilirsiniz.
Aktif recon ise kullanılan araçlara bağlı olarak çok iyi bir yöntem de olabilir, çok kötü bir yöntem de. Bu tamamen sizin kullanımınıza bağlıdır. Ayrıca unutmayın ki aktif recon yaparken hedef, bu araştırmanızdan haberdar olur.
Bu yazıda hem aktif hem de pasif recon araçlarına ve taktiklerine odaklanacağız sonrasında ise bu araçları nasıl birlikte çalışır hale getirip otomatize edebileceğimize bakacağız.
Pasif recon araçlarları
Bu türde bulunan araçlar ve taktikler çok fazladır. Burada popüler olan ve daha az popüler ama gerçekten işe yarayan araçlara odaklanacağız.
Google Dorking
Google, halen recon denince ilk akla gelen ve en çok kaynağa erişebileceğiniz araçlardan biridir. Google dork'a, çeşitli sorgulama dil ve teknikleriyle google'da istediğinizi bulma sanatı diyebiliriz.
İyi yazılmış bir sorgu ile bir web uygulaması hakkında birçok bilgiye erişebiliriz. Hatta hedefin bile bilmediği, hassas bilgileri içeren ve default username ve password'e sahip giriş ekranlarını veya yönetim panellerini bulabiliriz. Google dorkların nasıl yazıldığını bilmiyorsanız sıfırdan öğrenmek için çokça yararlı olan bu sayfaya bakmanızı öneriyorum. Eğer nasıl yazıldıklarını ve mantığını biliyor fakat yazmaya üşeniyorsanız, hazır dorkların bulunduğu ve sadece hedefi girmenizin gerektiği bu sayfaya göz atabilirsiniz.
Örnek olarak böyle bir sorgu ile;
site:facebook.com inurl:api | site:*/rest | site:*/v1 | site:*/v2 | site:*/v3
Facebook'un API hakkındaki tüm sayfalarını görebiliriz.
Subfinder
Subfinder, pasif keşif aşamasında bir domain'e ait subdomainleri bulmak için kullanılan, en hızlı ve en başarılı araçlardan biridir. Bunu, internetteki 80'den fazla kaynağı kullanarak yapar.
Bu kaynaklar içerisinde sertifika logları, arama motorları, ve çeşitli OSINT veritabanları bulunmaktadır.
Subfinder'i kurduktan sonra şöyle bir kod ile ilk taramanızı başlatabilirsiniz:
subfinder -h google.comBu klasik subdomain taramasını yapacaktır.
Daha detaylı ve spesifik sorgular için:
subfinder -h komutunu girerek detaylıca okuyabilirsiniz.
Assetfinder
Assetfinder'da internet üzerindeki birçok kaynağı kullanarak hedefin subdomainlerini bulmaya çalışır. Ayrıca, subfinder'a göre daha agresif bir arama yapar ve bunun sayesinde çoğu zaman daha fazla subdomain bulur. Bunu, internette Facebook gibi sosyal medya platformlarındaki kayıtları veya HackerOne gibi sitelerde yer alan herkese açık raporlardan veri toplayarak yapar. Ancak, bazen getirdiği veriler artık çalışmayan veya alakasız subdomainleri içerebilir.
Assetfinder'i kurduktan sonra böyle bir komut ile taramayı başlatabilirsiniz.
assetfinder google.com --subs-onlyburadaki — subs-only flag'i assetfinder'in yanlış veya gereksiz bilgileri getirmemesi içindir.
Sublist3r
Bublist3r, tıpkı diğerleri gibi subdomain keşfi odaklı popüler bir araçtır. Ancak sektördeki eski araçlardan biri olması nedeniyle güncel alternatiflerine kıyasla daha yavaş çalışır ve Subfinder gibi modern araçların atası olarak kabul edilir. Çalışma mantığı Subfinder ile aynıdır; ancak ek olarak aktif keşif kategorisine giren brute force işlemini de gerçekleştirebilir. Genel kullanımında olmadığı ve bunu yapan çok daha iyi araçlar olduğu için bu özelliğinden bahsetmeyeceğim.
İndirip kurduktan sonra böyle bir komut ile çalıştırabiliriz:
sublist3r -d google.com -o cikti.txtDaha sonra subdomainleri cikti.txt dosyasında bulabiliriz.
Findomain
Findomain'de subdomain keşfi yapmak amacıyla kullanılır. Ancak onu diğer araçlardan ayıran en temel özellik, çok hızlı olmasıdır. Geliştirilme sürecinde performans ve hız merkeze alınarak tasarlandığı için tarama işlemlerini çok kısa sürede tamamlar. Ayrıca, sadece subdomain isimlerini listelemekle kalmaz; aynı zamanda bu alan adlarına karşılık gelen IP adreslerini de çözümleyerek görüntülemenize olanak tanır.
İndirip kurduktan sonra diğer araçlar gibi bu komut aracılığıyla kullanabilirsiniz.
findomain -t google.com -u cikti.txtCrtsh
Crtsh'de web sayfalaranın subdomainlerini bulmak için kullanılır. Yukarıda Subfinder, Assetfinder gibi araçların internette buldukları kaynakları kullanarak bilgi topladıklarını görmüştük. Ctrsh ise kaynağın ta kendisidir. Crtsh aslında crt.sh sitesinden erişilebilen devasa bir veri tabanıdır. Sahip oldukları bu bilgileri nasıl elde ettiğinden bahsetmeden önce internetten bir sertifika aldığınız zaman neler olduğuna bakalım.
Bir şirket yeni bir subdomain oluşturduğunda (örneğin test123.sausiber.com) ve bunun için bir SSL/TLS sertifikası aldığında, bu sertifika halka açık bir "log" defterine kaydedilir. Bunun nedeni, sahte veya yetkisiz sertifika üretimini engellemektir.
crt.sh, sertifika otoritelerinin halka açık kayıtları üzerinden, hem geçmişte kullanılmış hem de rastgele isimlendirilmiş gizli subdomainleri tespit etmemizi sağlar.
Örneğin. Web sayfasına şöyle bir değer girerek.

Veya direkt olarak curl ile şu şekilde bir script yazıp:
crtsh() {
curl -s "https://crt.sh/?Identity=%.$1" | \
grep -oP "(?<=>)[a-zA-Z0-9.-]+\.${1}(?=<)" | \
grep -v "@" | \
sort -u
}ardından terminal üzerinden aşağıdaki komutu yardımı ile subdomainlere erişebilirsiniz.
crtsh google.com Chaos
Chaos, ProjectDiscovery tarafından geliştirilen bir subdomain bulma aracıdır. Diğer araçların aksine çalıştırıldığında o an tarama yapmak yerine zaten daha önce sahip olduğu verileri "Big Data" denilen veritabanından milyarlarca subdomain arasından istediğininiz domainle ilişkili subdomainleri getirerek yapar.
Bu sayede tarama yapmaya başladığında saniyeler içerisinde yanıt gelir. Çünkü aktif bir araştırma yapmaz. Fakat çok yeni subdomainleri bulmakta zorlanabilir. Çünkü yeni oluşturulan bir subdomain, daha ProjectDiscovery database'ine girmemiş olabilir.
Aracı indirip kurduktan ve web sayfasından ücretsiz olan API anahtarını aldıktan sonra bu komut ile kullanabilirsiniz.
chaos-client -key 'API-ANAHTARI' -d google.com -o cikti.txtGithub-Subdomains
Github-subdomains, pasif keşif sürecinde "gizli kalmış" subdomainleri bulmak için kullanılan bir araçtır. Diğer araçların aksine, sertifika logları veya arama motorlarına bakmaz. Adında da anlaşılacağı üzere, bu araç doğrudan GitHub'a yüklü olan repolar içerisinde ilgili domaine ilişkin subdomainleri arar. Kaynak olarak yalnızca github ve github repolarını kullandığı için, genellikle diğer araçlardan daha az subdomain bulur. Fakat yine de gizli kalmış ve diğer araçların bulamadığı verileri bulabilir.
Aracı indirdikten sonra github hesabımızın devoloper sayfasında bu araç için bir API anahtarı oluşturmamız gerekir. Sonrasında aracı bu API anahtarı ile çalıştırabilirsiniz.
github-subdomains -d google.com -t "API-ANAHTARI" -o cikti.txtGetallurls (GAU)
Eski adı gau olan getallurls, hedef üzerinde yalnızca subdomain bulmak yerine daha önce ziyaret edilmiş ve Wayback Machine, Common Crawl ve URLScan.io gibi kaynaklar tarafından indekslenmiş tüm endpointleri, başka bir deyişle tüm geçmiş URL'leri bulmamızı sağlayan çok güçlü bir araçtır. Bu yöntem çoğu zaman gizli bilgileri veya dosyaları, normal kullanıcıların erişememesi gereken sayfaları ve subdomainleri bulabilmemizi sağlar.
getallurls --threads 50 --subs google.com >> cikti.txtBuradaki — threads 50 flag'i aracın çalışma hızını aynı anda 50 istek gönderecek şeklinde ayarlar.
Gau, genellikle çokça URL bulur bu yüzden bunları bir dosyaya atıp ilerde bahsedeceğimiz httpx gibi araçlarla test etmek yararlı olacaktır.
Cisco-Umbrella (investigate API)
Geldik benim en sevdiğim servis olan Cisco-umbrella API servisine. Bu, muhtemelen diğer araçların hepsinin toplamından bile daha fazla subdomain'e erişebileceğiniz çok güçlü bir veri tabanıdır. Diğer araçlar arama motorlarını veya sertifika kayıtlarını tararken. Cisco Umbrella, doğrudan dünya genelindeki DNS trafik verilerini analiz eder.
İnternet trafiğinin %5'inden fazlasının bu servis üzerinden geçtiği düşünüldüğünde, elimizdeki veritabanı bir recon aşaması için çok daha önemli bir hale gelir.
Cisco Umbrella Investigate API, ücretli bir servistir. Fakat mail adresinizle 14 gün boyunca bedava bir şekilde kullanabilirsiniz. Herhangi bir kredi kartı bilgisi girmenize de gerek yoktur. Buradaki web sayfasını ziyaret ederek hesap oluşturdukdan sonra API anahtarını alarak kullanmaya başlayabilirsiniz.

Web sayfasından binlerce subdomaini düzgün bir şekilde kaydedemeyeceğimiz için bu API anahtarı ile subdomainleri çeken ve kaydeden basit bir python scripti yazabiliriz.
Script'i yazdıktan sonra böyle bir komut ile subdomainlere erişebilirsiniz.
python3 subs_from_umbrella.py -u google.comShodan
Shodan, "Hackerların Google'ı" olarak bilinen, internete bağlı neredeyse her şeyi (sunucular, IoT cihazları, web kameraları vb.) tarayan ve indeksleyen bir arama motorudur. Normal bir arama motoru web sayfalarının içeriğini indekslerken, Shodan portların arkasındaki servislerden gelen bilgileri indeksler. Bu, onu pasif reconun en güçlü araçlarından biri yapar.
Shodan üzerinden hedefimiz ile ilgili port, subdomain, açık sayfalar, default-login bilgilerine sahip kullanıcı girişleri gibi bir sürü bilgiye ulaşabilir veya spesifik bir hedef olmadan "Bana default login bilgilerine sahip tüm web sayfalarını getir" gibi bir sorgu girerek shodanın indekslediği tüm login sayfalarını bulabiliriz.
Shodan, ücretsiz abonelik alarak limitli erişime sahip olabileceğiniz ücretli bir platformdur fakat eğer öğrenciyseniz, okul mail hesabınızla kayıt olup akademik-üyeliği bedava alabilirsiniz. Hesabınızı oluşturmak için bu web sitezini ziyaret edebilirsiniz.

Ayrıca Shodan bir API servisine sahiptir. Bunu da önceki scriptinize ekleyebilirsiniz.
Bu sayfaya giderek API anahtarınızı öğrenebilirsiniz.
Censys
Censys, Shodan'ın en büyük rakibi ve pek çok siber güvenlik uzmanına göre "daha modern ve detaylı" olan klonu gibidir. Shodan daha çok IoT ve cihaz odaklıyken, Censys bulut altyapıları, SSL/TLS sertifikaları ve internetin bütününe dair derinlemesine bilgiye erişmek için iyidir.
Censys üzerinden shodandan erişilen çokça bilgiye erişilebilir. Ayrıca Censys, Shodan'dan daha farklı sorgulama dili kullanır. Daha çok SQL benzeri ve daha modern bir yapıya sahiptir.
Censys hem web arayüzünden hem de komut satırından kullanılabilen ücretsiz abonelik ile sınırlı bir şekilde kullanılabilen bir araçtır. Shodan'ın aksine Censys öğrencilere bedava üyelik vermiyor. Ücretsiz olarak sınırlı bir şekilde kullanabilirsiniz. Bu web sitesi üzerinden kullanabilir veya bu linkten direkt olarak bilgisayarınıza indirip API anahtarı aracılığıyla kullanmaya başlayabilirsiniz.

Bu resimde örnek olarak google'a ait TLS sertifikalarını ve dolayısıyla subdomainlere erişebileceğimiz bir sorgu yazdım.
Recon-ng
Recon-ng, pasif keşif dünyasının en popüler framework araçlarından biridir. Yapısı ve kullanım mantığı itibarıyla Metasploit'e çok benzer. ancak amacı exploit kullanmak değil, onlarca farklı kaynaktan otomatik olarak bilgi toplamaktır.
Modüler bir yapıya sahiptir. Bu sayede her bir bilgi kaynağı (Shodan, Google, LinkedIn vb.) için ayrı bir modül yükleyip çalıştırabiliriz. Subdomain, port, IP blokları ve vhost'lar gibi birçok bileşeni bu modülleri indirip kullanarak tespit edebiliriz.
Bu sayfa üzerinden indirebilirsiniz.
İndirdiken sonra örnek olarak hackertarget modülü ile subdomain araması yapalım.
recon-ng
workspaces create sausiber_test
marketplace install hackertarget
modules load recon/domains-hosts/hackertarget
options set SOURCE hedefsite.com
run
"run" komutunu girdikten sonra recon-ng, hackertarget modülünü kullanacak ve çeşitli kaynaklardan subdomainleri bulmaya başlayacaktır.
Wayback Machine
Wayback Machine, pasif keşif sürecinde "zaman yolculuğu" yapmamızı sağlayan en iyi çalışan araçlardan biridir. İnternetin hafızası olarak bilinir ve milyarlarca web sayfasının geçmişteki hallerini saklar. Bir recon süreci için Wayback Machine, bir sitenin bugünkü halinde olmayan ama geçmişinde saklı kalmış zafiyetleri ve bilgileri bulmak için kullanılan en iyi araçtır.
Wayback Machine, bir web sitesini kaydederken sadece bir ekran görüntüsü almaz. Sitenin o anki tüm kod yapısını, dosyalarını ve kaynaklarını da saklar. Böylelikle o sitenin eski versiyonunu canlı olarak kullanabiliriz. İnsanlar istedikleri siteleri wayback machine de aratarak eski versiyonlarına bakabilirler veya o sitenin şu anki halini "snapshot" alarak kaydedebilirler. Yıllar sonra o kayıta geri dönüp o siteyi eski zamanlardaymış gibi kullanabilirler. Adı Webarchive olarak da geçer ve ücretsiz bir platformdur fakat nadir de olsa bazı içeriklere erişmek için belirli şartları yerine getirmenizi veya ücret ödemenizi gerektirebilir.
Bu site üzerinden gidip kullanmaya başlayabilirsiniz.

Örneğin burada facebook login page'inin 2006 yılındaki halini görüyoruz.
Trickest
Trickest, üzerinde hedef ile ilgili subdomain, IP adresleri, vhost ve teknolojileri araştırıp bulabileceğimiz, web tabanlı çalışma ortamları oluşturulabilen bir platformdur.
Şimdiye kadar konuştuğumuz çoğu aracı (Nmap, Subfinder, Nuclei, Gobuster, httpx vb.) tek tek terminalde çalıştırmak yerine, Trickest üzerinde bu araçları sürükle bırak yöntemiyle birbirine bağlayarak devasa bir "çalışma ortamı" kurabiliriz. Trickest çoğu özelliğini ücretsiz kullanılabilen ve çok profesyonel aramalar dışında pro sürümün pek de gerekli olmadığı platformlardan biridir o yüzden bu site üzerinden hesabınızı oluşturup kullanmaya başlayabilirsiniz. Trickest, kullanması biraz karışık bir platformdur başlarda zor gelebilir fakat kullandıkça daha da kolaylaşacaktır.
Ayrıca limitli bir şekilde API servisini kullanarak kendi otomasyon scriptinizi de yazabilirsiniz. Örnek olarak;

Böylelikle en iyi ve verimli pasif araçları gördük şimdi aktif olarak arama yapan araçlara geçebiliriz.
AKTİF RECON ARAÇLARI
Başlamadan önce izniniz olmadan herhangi bir aktif recon aracını hedefler üzerinde denemenin yasak olduğunu ve yalnızca izin alınan durumlarda kullanılması gerektiğini hatırlatmak isterim.
Nmap
Nmap, aktif recon araçları konusunda akla gelen ilk araç olabilir. Nmap yalnızca keşif için kullanılmaz otomatik güvenlik testi gibi çok fazla şeyi de yapabilir. Hepsine burda deyinemeyiz bunun için ayrı bir yazı yazmak gerekir ama basit olarak hedef site hakkında detaylı bir ön bilgiye şu şekilde ulaşabilirsiniz.
nmap -A -T4 -p- -v google.comBuradaki -A parametresi agresif modu temsil eder ve tek başına işletim sistemi tespiti, versiyon tespiti, temel güvenlik açığı tespiti ve paketlerin izledikleri yolun tespiti gibi bilgileri bulmaya çalışır.
-T4 parametresi aracın hızını ayarlar 0 ile 5 arasındadır ve 5 en hızlısıdır. Genel olarak 4 hem en etkili hemde çok uzun sürmeyen verimli bir değerdir.
-p- parametresi hedef sistemin olası tüm portlarını tarayarak açık veya filtreli olanları bulmamızı sağlar. Bu işlem uzun sürer çünkü hedefin tüm portlarını kontrol eder.
-v parametresi ise nmap çalışırken kullanıcıya ne kadar bilgi vermesi gerektiğini belirtir -vvv diyerek maksimum detay görebiliriz.
Metasploit
Metasploit genellikle güvenlik açıklıkların sömürmek için kullanılan bir araç olarak bilinse de aktif recon için de kullanılabilen çok güçlü ve aynı zamanda çok büyük bir araçtır. Bu araca da maalesef tam anlamıyla bakamayacağız bunun için de apayrı bir yazı gerekir ama bununla da bir aktif recon örneğini şu şekilde yapabiliriz.
İçerisinde bir sürü fonksiyon var ancak örnek olarak bir web uygulamasının directory'lerini arayan dir_scanner adlı fonksiyonu şu şekilde kullanabiliriz.
use auxiliary/scanner/http/dir_scanner
set RHOSTS hedef_ip_adresi
set PATH /
runBu kodlarla hedef hakkında birçok endpoiti öğrenmiş oluruz.
Nikto
Nikto, diğer recon araçlarından biraz farklı çalışarak hedefin portlarını, endpointlerini, veya subdomainlerini bulmaz. Onun yerine yanlış yapılandırmaları bunlardan doğabilecek güvenlik açıklıklarını bulur. Çoğu zaman zorlu bir açığı bulamaz ama yine de o açığı bulmanızı sağlayacak bilgiler vererek işinizi hızlandırır.
Nikto yu indirip kurduktan sonra, şöyle bir kod ile çalıştırabilirsiniz.
nikto -h http://hedefsite.comBu komut hedef siteyi popüler portları üzerinden tarar ve yanlış yapılandırma veya basit açıkları bulur. Ayrıca potansiyel açık bulunan yerleri de gösterir.
Nikto'nun kendi içerisinde çeşitli güvenlik açıklıklarını seçebileceğini ve sadece onlara odaklan diyebileceğimiz kişiselleştirme parametreleri de mevcuttur. Onların hepsini buradaki linkten detaylıca okuyabilirsiniz.
Gobuster
Gobuster, web sunucularındaki gizli dizinleri, dosyaları, subdomainleri ve vhost'ları bulmak için kullanılan, inanılmaz hızlı bir brute force aracıdır. Dolayısıyla bu aracı kullanırken tarama yapılacak kelimeleri içeren bir wordlist belirtmeniz gerekir. Yazı boyunca ihtiyacınız olacak wordlistleri nasıl bulabileceğinizi en son kısımda anlatacağım.
Gobuster'ın 3 Ana Modu vardır
1-) Dir modu, Bu mod, bir web sitesindeki /admin, /backup gibi gizli endpointleri ve sayfaları aramak için kullanılır.
gobuster dir -u http://hedefsite.com -w /wordlistin/adresi/wordlist.txt2. DNS Modu, Bu mod, hedef domaine ait subdomainleri, DNS sorguları üzerinden keşfetmek için kullanılır.
gobuster dns -d hedefsite.com -w /wordlistin/adresi/wordlist.txt3-) vhost modu, Bu mod, aynı IP adresi üzerinde barındırılan ancak farklı alan adlarına yanıt veren sanal hostları tespit etmek için kullanılır.
gobuster vhost -u http://hedefsite.com -w kelimeler.txt –append-domainBuradaki komutta diğerlerinden farklı olarak — append-domain parametresini görüyoruz. Eğer kullandığınız wordlist, tam domainler yerine sadece admin, api, test gibi eklerden oluşuyorsa bu parametre kullanılır. Bu parametre, listedeki kelimeleri hedef sitenin başına ekleyerek otomatik olarak subdomain formatına (örneğin: admin.hedefsite.com, api.hedefsite.com) getirir ve taramayı öyle gerçekleştirir.
Burp Suite (aktif scanner modu)
Web uygulama güvenliği testlerinde ana araç haline gelen Burp Suite, sadece bir proxy değil, içerisinde onlarca farklı modülü barındıran çok kapsamlı bir araçtır.
BurpSuite halihazırda bir pasif web tarama aracını arka planda siz kullanırken çalıştırır. Fakat içerisinde aktif olarak tarama yapabilen bir araç daha vardır. Buraya şüphelendiğiniz istekleri ve web sayfalarını girebilir ve kolayca tarama başlatabilirsiniz. Bu araç, temel olarak web güvenlik açıklarını tespit etmeye odaklansa da, bir sızma testinin olmazsa olmazı olan recon sürecinde de etkilidir. Örneğin, gizli admin panelleri veya kaynak kodlar içerisine unutulmuş notlar gibi kritik bilgileri tespit edebilir.

Bu şekilde isteğe sağ tık yaparak "Do active scan" seçeneği sayesinde tarama başlatabilir. Ve çıktıyı dashboard kısmında görebiliriz.
Nuclei
Nuclei'da tam olarak bir recon aracı değildir. Nuclei, hazır şablonlar kullanarak web uygulamalarında çeşitli işlem taramalarını otomatikleştirebileceğimiz çok kapsamlı bir araçtır. Kendiniz'de bir nuclei template'i yazabileceğiniz için kullanım sınırı tamamen hayal gücünüze bağlıdır.
Nuclei, genellikle elinizde çokça domain olduğu zaman (bu farklı domainler veya aynı domainin farklı subdomainleri olabilir) işleri hızlandırmak için kullanılır. Örneğin, elinizde 5000 adet subdomain var ve bir subdomain'de /gizlibilgi gibi bir endpoit'e normal şartlarda kullanıcıların bilmemesi gereken bir bilgi (örneğin şifre veya kullanıcı adları) içerdiğini tespit ettiniz ve bu açığın diğer subdomainlerde de olup olmadığını test etmek istiyorsunuz. Tek tek elle her subdomaine gidebilir veya bunları otomatikleştirecek bir script yazabilirsiniz ama bu yöntemler hem daha az kişiselleştirilebilir ve daha az yönetilebilir yöntemlerdir. Onun yerine bu 5000 sitenin ilgili web sayfasına giden ve o sayfaları kontrol edip varsa, o sayfanın linkini getiren bir nuclei template'i yazabilir veya zaten halihazırda internette binlerce bulunan hazır templateleri kullanabilirsiniz.
Nuclei'i bu web sitesi üzerinden indirebilirsiniz.
Kullanmak için;
nuclei -l subs.txt | tee nuclei_cikti.txtKomutu gibi bir komut çalıştırabilirsiniz. Bu otomatik olarak nuclei'in içerisindeki tüm templateleri deneyecektir. spesifik bir template'i kullanmak için:
nuclei -l subs.txt | tee nuclei_cikti.txt -t cves/2023/CVE-2023-XXXX.yamlgibi bir komut girebilirsiniz.
HTTPX
Httpx, elimizdeki binlerce domain veya subdomain listesi üzerinde canlılık testi (yani sitelerin çalışır durumda olup olmadığınının testini) yapmak ve detaylı bilgi toplamak için kullanılan gelişmiş bir araçtır. Özellikle recon aşamasında elde edilen ham verileri işlemek için en iyi seçeneklerden biridir.
Httpx ile, hedef domain hakkında title bilgilerini, ekran görüntülerini, http response'larını, kullanılan teknolojileri gibi birçok veriye ulaşabiliriz.
Örnek bir kullanım olarak;
cat subdomains.txt | httpx -title -tech-detect -status-code 
gördüğünüz üzere bu komut, listedeki her bir subdomain için site başlığını, kullanılan teknolojileri ve HTTP durum kodlarını buldu.
Şimdi geldik özellikle aktif recon araçlarını etkili kullanmak için doğru wordlistleri nasıl ve nereden bulabileceğimize…
WORDLİST NEREDEN BULUNUR?
Recon sürecinin aktif tarama aşamasında ve sonraki süreçlerde iyi bir wordliste sahip olmak bazen işleri çok kolaylaştırır. Bu yüzden iyi wordlist bulmak önemlidir. Wordlistin "iyi" liği yalnızca çokça veri içermesine bağlı değil, hedefe odaklı olması ve tutarlı olması da önemlidir.
En iyi wordlist kaynakları:
- seclist : https://github.com/danielmiessler/SecLists
Seclist içerisinde birçok wordlisti içeren farklı amaçlar için farklı wordlistleri seçebileceğiniz farklı türdeki wordlistlerin bir araya getrilmesiyle oluşturulmuş bir github repo'sudur verdiğim linkten ulaşıp amacınıza uygun wordlisti indirebilirsiniz.
- Assetnote wordlists: https://wordlists.assetnote.io/
Assetnode'da seclist gibi farklı amaçlar için farklı wordlistleri bir arada bulabileceğiniz bir internet sitesidir. Linkten gidip uygun wordlistleri indirebilirsiniz.
- jhaddix all.txt: https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056
Bu aslında tek bir wordlisttir. Jason Haddix tarafından farklı kaynakların birleştirilmesiyle oluşturulmuştur. Farklı amaçlar için kullanılsa da genellikle subdomain keşfi için kullanılan en popüler ve en etkili wordlistlerden biridir.
- onelistforall: https://github.com/six2dez/OneListForAll
Bu da tıpkı all.txt gibi tek bir wordlisttir. Isminden de anlaşılacağı üzere pek çok amaç için kullanılabilir. All.txt kadar popüler olmasa da etkili wordlistlerden biridir.
Rockyou.txt: https://weakpass.com/wordlists/rockyou.txt
Burada rockyou'dan bahsetmesem olmazdı neredeyse herkesin bildiği ve yıllar önce sızdırılan milyonlarca gerçek şifreden oluşan, büyük boyutlu bir wordlisttir. Wordlistlerle uğraşan herkesin kesinlikle kullandığı en popüler kelime listesidir.
Kendi wordlistimizi oluşturma
Hazır wordlistler ne kadar güçlü olsa da hedefe uygun bir wordlist oluşturmak çoğu durumda daha etkili bir wordliste sahip olmanızı sağlar.
Burada örnek olarak kali'de hazır olarak gelen ve hedefe uygun wordlistler oluşturabilmenizi sağlayan en popüler araç olan cewl ile bir örnek yapacağız.
Cewl, verilen hedef site içerisinde gezinerek ve linkleri takip ederek sitedeki önemli sayılan verileri crawl ederek bir kelime listesi oluşturur.
Cewl'li yükledikten sonra aşağıdaki gibi basit bir kod ile özel wordlistimizi oluşturabiliriz.
cewl -d 2 -m 5 http://testphp.vulnweb.com -w ozel_wordlist.txtBurada hedef olarak acunetix'in test sayfasını yazdım. Sizde denemelerinizi bu sayfa üzerinden yapabilirsiniz.

Buradaki "-d" parametresi site içerisinde bulunan linkleri 2 seviyeye kadar takip etmesi içindir. Yani bir link başka bir linke bağlanıyorsa oraya da gider fakat sonra durur. Bunu arttırmak bazen gereksiz verileri eklenmesine neden olabilir ama farklı seneryolarda bu durum değişir.
"-m" parametresi ile, yalnızca 5 harf ve üzeri değerleri kelime listesine alması gerektiğini söyleriz. Bunu isterseniz değiştirebilirsiniz.
"-w" parametresi ile de wordlistin nereye kaydedileceğini belirtiriz.
Böylelikle hedefe özel wordlist oluşturmuş olduk. Cewl'in daha birçok detaylı ayarları vardır "cewl -h" diyerek detaylıca okuyabilirsiniz.
Şimdi sırada tüm bu gördüğümüz araçları birleştirip efektif bir şekilde kullanmak var.
OTOMASYON NASIL YAPILIR?
Bu yazıda buraya kadar birçok araç gördük bunlardan bazıları aktif tarama bazıları ise pasif tarama araçlarıydı.
Her ne olursa olsun bunları her seferinde tek tek elle kullanmak ve verileri düzgün bir şekilde birleştirmek uğraştırıcı ve zaman alıcı bir işlem olabilir. Recon sürecini hızlandıran ve kolaylaştıran otomasyon scriptleri yazmak çok önemlidir.

Fikir oluştumak adına örnek bir script yazdım çok uzamaması için her aracı script e eklemedim siz kendiniz devamını getirebilirsiniz.
Burada crtsh, subfinder,assetfinder ve chaos araçlarından dönen verileri unique bir şekilde subs.txt dosyasına kaydettik ve onrasında httpx ile bu subdomainler üzerinde canlılık testi ve çeşitli bilgilere eriştik. Tüm bunları bu script sayesinde bir tıklama ile yaptık.
İşte böyle recon sürecinin ne olduğunu, bu süreç hakkında neler yapmanız ve hangi araçları kullanmanız gerektiğini anlatmaya çalıştım.
Fakat bu yöntemler yeterli olmayacaktır sürekli araştıma yapmalı ve kendinize uygun yeni yöntemler keşfetmelisiniz. Ayrıca kendinizi aktif tutmak istiyorsanız recon-royale gibi recon yarışmalarına katılmanızı öneririm. Hergün farklı target verilen ve o target üzerinde bulabildiğiniz kadar subdomain bulumanızı isteyen bir yarışmadır. Bir bakabilirsiniz.
Buraya kadar okuduğunuz için teşekkür ederim.
Kaynakça
https://youtu.be/9mdLNRD0IEI?si=F957VED_vNvk42Y-
https://youtu.be/IWIchfPJUGo?si=eriEu5sHyTNdw-kw
https://youtu.be/Wpm2C1LD9ns?si=xpyB58tKs6BMBYbd
https://www.yeswehack.com/learn-bug-bounty/recon-series-recap-reconnaissance-footprinting