Penetrasyon Testi 2 - Bilgi Toplama (Reconnaissance)
                    Bilgi toplama, siber güvenlik uzmanlarının veya sızma testi yapan kişilerin (pentesterların), bir sistem veya ağ hakkında bilgi edinmek için kullandığı ilk ve en önemli adımdır. Bu süreçte, hedefin zayıf noktalarını, kullandığı teknolojileri, çalışanlarını ve diğer kritik bilgileri anlamak amaçlanır. Bu süreç, hedefe doğrudan saldırmadan önce yapılan bir keşif gibidir.
Pasif Bilgi Toplama (Passive Reconnaissance)
Pasif bilgi toplamada, hedef sistemle doğrudan bir etkileşime girilmez. Bu yöntem, hedefin sizi fark etme olasılığını en aza indirir. Tıpkı bir casusun uzaktan gözlem yapması gibi, hedef hakkında kamuya açık kaynaklardan bilgi edinilir. Bu süreçte kullanılan araçlar ve yöntemler, hedefin loglarında (kayıtlarında) iz bırakmaz.
Ana Özellikleri:
- Gizli ve Düşük Riskli: Hedefin sizi fark etmesi neredeyse imkansızdır. Bu, yasal sınırlar içinde kalmak ve hedefi rahatsız etmemek için idealdir.
 - Doğrudan Etkileşim Yok: Hedefin sunucularına, ağlarına veya sistemlerine herhangi bir paket gönderilmez.
 - Açık Kaynak İstihbaratı (OSINT): Bu sürecin ana motoru, Açık Kaynak İstihbaratıdır. Google, Shodan, WHOIS, sosyal medya platformları, arama motorları ve hedefle ilgili kamuya açık belgeler bu kapsamda kullanılır.
 - Toplanan Bilgi Türleri: Alan adı kayıt bilgileri, çalışanların isimleri, e-posta adresleri, kullanılan teknolojiler (örneğin, web sunucusu tipi), IP adresi blokları ve hedefle ilgili haberler gibi bilgiler toplanır.
 
Örnekler:
- Bir web sitesinin alan adı sahiplik bilgilerini WHOIS sorgusuyla öğrenmek.
 - Google Hacking yöntemleriyle (örneğin, site:hedef.com filetype:pdf) hedef web sitesindeki PDF dosyalarını aramak.
 - LinkedIn üzerinden hedef şirkette çalışanların profil bilgilerini incelemek.
 - Shodan gibi IoT arama motorlarıyla hedefin internete açık cihazlarını tespit etmek.
 
Aktif Bilgi Toplama (Active Reconnaissance)
Aktif bilgi toplama, hedef sistemle doğrudan ve kasıtlı bir etkileşime girmeyi içerir. Bu süreçte, hedef sistemin ağına veya sunucularına paketler gönderilir. Bu, pasif bilgi toplamaya göre daha hızlı ve daha kesin sonuçlar verir, ancak hedefin sizi fark etme olasılığı da artar. Gönderdiğiniz paketler hedefin güvenlik duvarları (firewall), izinsiz girişi önleme sistemleri (IDS) veya izinsiz girişi tespit sistemleri (IPS) tarafından kaydedilebilir.
Ana Özellikleri:
- Tespit Edilebilir: Hedef, gönderilen paketleri loglayabilir ve bir saldırı girişimini fark edebilir. Bu durum, yasal sınırlar dışına çıkıldığında risklidir.
 - Doğrudan Etkileşim Var: Hedefin sunucularına port taraması, ping sorguları gibi doğrudan talepler gönderilir.
 - Detaylı Bilgi Sağlar: Hedefin ağ topolojisi, açık portları, çalışan servisleri, güvenlik duvarı kuralları ve işletim sistemi versiyonları gibi daha spesifik bilgiler elde edilir.
 - Ön Hazırlık: Aktif bilgi toplama genellikle pasif bilgi toplamanın ardından yapılır. Pasif olarak elde edilen bilgiler, aktif taramalar için hedefi daraltmaya yardımcı olur.
 
Örnekler:
- Nmap gibi araçlarla bir IP adresindeki açık portları taramak.
 - Ping komutuyla bir sunucunun aktif olup olmadığını kontrol etmek.
 - DNS sunucularına sorgu göndererek subdomainleri (alt alan adlarını) keşfetmek.
 - Bir web sunucusuna HTTP istekleri göndererek web uygulaması zafiyetlerini (örneğin, SQL Injection) kontrol etmek.
 
Bu iki yöntem, sızma testlerinin ve siber güvenlik araştırmalarının temelini oluşturur ve genellikle bir arada kullanılır. Önce pasif yöntemlerle geniş bir bilgi havuzu oluşturulur, ardından bu bilgilerle hedef daraltılarak aktif taramalar yapılır.
Bilgi Toplamada Kullanılan Yaygın Araçlar
Pasif Bilgi Toplama Teknikleri
Bu başlık altındaki tüm yöntemler, hedef sistemle doğrudan bir etkileşime girmeden, halka açık verileri toplar. Böylece herhangi bir log kaydı bırakmazsın.
- WHOIS: Bu sorgu, bir alan adının (örneğin: sadikcantuluk.com) kime ait olduğunu, ne zaman kaydedildiğini, hangi kişi ve kurumun iletişim bilgilerini içerdiğini öğrenmeni sağlar. Bu, şirket adı, adres ve telefon numarası gibi değerli bilgileri edinmek için ilk adımlardan biridir.
 
Kullanım Örneği


- DNS Sorgulama (DNS Lookup): Bir alan adının internet üzerindeki adres kartı gibidir. DNS sorgulaması yaparak, bir alan adının hangi IP adresine yönlendirildiğini, hangi e-posta sunucularını (MX kaydı) ve hangi isim sunucularını (NS kaydı) kullandığını öğrenirsin. dig veya nslookup gibi komutlar bu işi yapar.
 
dig
Alan adlarının DNS kayıtlarını sorgulamak için en temel ve yaygın kullanılan araçlardan biridir. Basit ve tekil sorgular için idealdir.
Kullanım Örneği:
dig sadikcantuluk.com MX
Bu komut, sadikcantuluk.com alan adının e-posta sunucusu (Mail eXchange - MX) kayıtlarını listeler. Bu, hangi sunucuların sadikcantuluk.com için e-posta aldığını gösterir.

Diğer Kullanımlar:
dig sadikcantuluk.com A: Alan adının IPv4 adresini (A kaydı) bulur.

dig sadikcantuluk.com NS: Alan adının isim sunucularını (Name Server - NS) bulur.

dnsenum
DNS bilgilerini toplama sürecini otomatikleştiren, daha kapsamlı bir araçtır. Birçok farklı DNS sorgusunu ve alt alan adı (subdomain) tespiti gibi işlemleri tek bir komutla gerçekleştirir.
Kullanım Örneği:
dnsenum sadikcantuluk.com
Bu komut, sadikcantuluk.com için aşağıdakileri otomatik olarak yapar:
- Alan adının ana sunucusunu (NS) bulur.
 - Mail sunucularını (MX) bulur.
 - Bölge transferi (zone transfer) denemesi yapar.
 - Google arama motoru sonuçlarından alt alan adlarını toplar.
 - Varsayılan bir kelime listesiyle alt alan adı kaba kuvvet (brute-force) denemesi yapar.
 
dnsenum, daha derinlemesine bir DNS keşfi için idealdir.

dnswalk
Bir alan adının DNS kayıtlarındaki tutarsızlıkları ve hataları kontrol eder. DNS bölge dosyasını (zone file) adım adım gezerek (walk) potansiyel sorunları tespit eder.
Kullanım Örneği:
dnswalk sadikcantuluk.com
Bu komut, sadikcantuluk.com alan adının DNS kayıtlarını kontrol eder ve bulduğu hataları (örneğin, yanlış biçimlendirilmiş kayıtlar, var olmayan host'lara işaret eden kayıtlar) listeler. Bir ağ yöneticisinin kendi DNS yapılandırmasını doğrulaması veya bir hedefteki potansiyel zayıflıkları bulması için yararlıdır.
- Google Dorks: Bu, Google arama motorunun gelişmiş arama özelliklerini kullanarak hassas bilgilere ulaşma sanatıdır. site:zenarge.com filetype:pdf gibi özel sorgularla sadece o site içinde PDF dosyalarını arayabilir veya intitle:”Index of” database.sql gibi sorgularla yanlış yapılandırılmış sunucu dizinlerini bulabilirsin. Bu yöntem, web sitelerinin gözden kaçırdığı güvenlik zafiyetlerini ortaya çıkarmak için çok etkilidir.
 
Kullanım Örneği:
site:eba.gov.tr filetype:pdf "fizik"
site:eba.gov.tr: Aramanın sadeceeba.gov.trsitesi içinde yapılmasını sağlar.filetype:pdf: Sadece PDF dosyalarını arar."fizik": İçinde "fizik" kelimesi geçen dosyaları bulur.
Bu sorgu, eba.gov.tr sitesinde bulunan ve içinde "fizik" geçen tüm PDF dosyalarını listeler. Bu, şirket politikaları, iş başvuru formları veya gizli belgeler gibi bilgilere ulaşmak için etkili bir yoldur.

- index of başlığına sahip web sitelerini listeleyiniz
 

- passwd parola dosyalarına sahip web sitelerini listeleyiniz
 

Otomatik Bilgi Toplama Araçları
Bu araçlar, manuel olarak yapılması zor veya zaman alan bilgi toplama işlemlerini otomatikleştirmek için kullanılır.
- theHarvester: Bu araç, hedefe ait e-posta adreslerini ve alt alan adlarını (subdomain) çeşitli halka açık kaynaklardan (arama motorları, PGP sunucuları gibi) toplar. Bu sayede, şirketin e-posta formatını çözebilir ve çalışanların isimlerine ulaşabilirsin.
 
Kullanım Örneği:
theharvester -d harvard.edu -l 500 -b google,bing
-d harvard.edu: Bilgi toplanacak hedef alan adını belirtir.-l 500: Toplanacak en fazla sonuç sayısını 500 olarak sınırlar. Bu, çok fazla sonuçla uğraşmamak için kullanışlıdır.-b google,bing: Bilgi toplama için kullanılacak kaynakları belirtir. Bu örnekte Google ve Bing arama motorları kullanılacaktır. Diğer kaynakları da (LinkedIn, Twitter, vb.) ekleyebilirsin.
Bu komut, harvard.com alan adına ait e-posta adreslerini ve alt alan adlarını Google ve Bing'de arayarak sana bir liste sunar.

- sublist3r: Adından da anlaşılacağı gibi, bu araç alt alan adlarını listelemek için tasarlanmıştır. Çeşitli arama motorlarını ve pasif DNS kaynaklarını kullanarak bir alan adına ait olabilecek tüm alt alan adlarını (örneğin: blog.sadikcantuluk.com, kariyer.sadikcantuluk.com) bulmanı sağlar.
 
Kurulumu:
sudo apt-get install sublist3r

Kullanım Örneği:
sublist3r -d example.com
-d example.com: Alt alan adları bulunacak hedefi belirtir.
Bu basit komut, example.com'a ait alt alan adlarını (örneğin: blog.example.com, mail.example.com, ftp.example.com) arama motorlarından ve diğer pasif kaynaklardan toplayarak bir liste halinde gösterir.

Veri Görselleştirme ve İlişkilendirme Aracı
- Maltego: Bu araç, diğer yöntemlerle topladığın dağınık bilgileri bir araya getirerek aralarındaki ilişkileri grafiksel olarak görmeni sağlar. Bir alan adından yola çıkarak ona ait e-posta adreslerini, o e-posta adreslerinin hangi sosyal medya hesaplarıyla ilişkili olduğunu, bu sosyal medya hesaplarının hangi kişilere ait olduğunu bir harita üzerinde gösterir. Böylece karmaşık veriler arasındaki bağlantıları daha kolay analiz edebilirsin.
 
Kullanım Örneği:
Maltego’nun komut satırı arayüzü yoktur, grafiksel bir arayüze sahiptir. Kullanımı şu adımları içerir:
- Kali Linux Uygulamalar menüsünden 01 — Information Gathering seçilir. Maltego yazılımı çalıştırılır.
 

Eğer Maltego yazılımı gözükmüyorsa 01- Reconnaissance sekmesi altında bulunan Maltego installer çalıştırılır.Kurulumu otomatik olarak yapılır.Daha sonra yine aynı sekme altına uygulama eklenecektir.



- Sol tarafta bulunan Entity Palette penceresinin Infrastructure bölümündeki Domain nesnesi sayfaya sürüklenir
 

- Domain nesnesi üzerindeki alan adına çift tıklanır. Bilgi toplanmak istenen hedef domain yazılır
 

- Domain nesnesi üzerinde sağ tuş yapılır. DNS from Domain seçeneğinin yanındaki ok tuşuna tıklanarak bilgi toplama çalıştırılır
 

- Gelen pencerede Run butonuna tıklanır. Bilgi toplama işlemi tamamlandıktan sonra bilgiler ile görsel şekilde karşılaşılır
 

Özetle, önce pasif tekniklerle temel bilgileri (WHOIS, DNS) ve hassas dosyaları (Google Dorks) toplarsın. Sonra, bu bilgileri theHarvester ve sublist3r gibi araçlarla genişleterek daha fazla e-posta ve alt alan adı bulursun. En sonunda da Maltego ile tüm bu bilgileri görselleştirip aralarındaki ilişkileri ortaya çıkarırsın. Bu süreç, bir yapbozun parçalarını birleştirerek büyük resmi görmeye benzer.
Uygulama 1: Harvard.edu’nun Alt Alan Adlarını Bulma ve Görselleştirme
Adım 1: Alt Alan Adlarını Toplama (sublist3r ile)
sublist3r aracını kullanarak harvard.edu'ya ait alt alan adlarını bulalım.
- Komut Satırını Açın.
 - Komutu Çalıştırın:
 
sublist3r -d harvard.edu -o harvard_subdomains.txt
- -o parametresinide kulanarak edindiğimiz bilgileri .txt dosyamıza kaydedelim.
 



Adım 2: Alt Alan Adlarını Haritalama (Maltego ile)
- Maltego’yu Başlatın: Maltego’yu açın ve yeni bir grafik oluşturun.
 

- Ana Alan Adını Ekleyin: Varlık paletinden bir 
Domainvarlığını sürükleyip adınıharvard.eduolarak değiştirin. 

- Dönüşüm ile Haritalama: 
harvard.eduvarlığına sağ tıklayın, "Run Transforms" menüsüne gidin ve[Utilities] To Website mentioning domain [Bing]dönüşümünü çalıştırın. Maltego bu dönüşüm ile Bing arama motorundaharvard.edualan adından bahseden web sitelerini arayacak ve grafiksel bir haritada gösterecektir. 

Bu adımla, Harvard Üniversitesi’nin internet üzerinde bulunan alt birimlerini, farklı web sitelerini ve bloglarını (varsa) görsel olarak haritalamış olacaksınız. Bu dönüşüm, doğrudan DNS kaydına bakmak yerine arama motoru sonuçlarını kullandığı için daha geniş bir yelpazede ilgili varlıkları bulabilir.
Uygulama 2: Harvard.edu’nun E-posta Adreslerini Toplama ve Sosyal Medya Eşleşmesi Bulma
Adım 1: E-posta Adreslerini Toplama (theHarvester ile)
theHarvester ile harvard.edu'ya ait e-posta adreslerini bulalım.
- Komut Satırını Açın.
 - Komutu Çalıştırın:
 
theharvester -d harvard.edu -l 500 -b bing,duckduckgo,linkedin_links,crtsh -f harvard_results
-f harvard_results→ Sonuçlarıharvard_results.xmlveharvard_results.htmldosyaları olarak kaydeder.

- Sonuçları Analiz Edin: Komut, 
harvard.eduile ilişkili e-posta adreslerini, kullanıcı adlarını ve hatta çalışanların isimlerini listeleyecektir. Bu verileri, harvard.edu'nun e-posta formatını (örneğin:kullanici_adi@harvard.edu) anlamak için kullanabilirsiniz. Toplanan veriyi bir .xml dosyasına kaydedin. 

Adım 2: E-posta Adreslerini Sosyal Medya ile Eşleştirme (Maltego ile)
- Maltego’yu Açın: Yeni bir grafik oluşturun.
 - E-posta Adreslerini Ekleyin: 
theHarvesterile bulduğunuz bir e-posta adresini (örneğin:janedoe@harvard.edu)Email Addressvarlığı olarak çalışma alanına ekleyin. 

- Sosyal Medya Arama Dönüşümünü Çalıştırın: Eklediğiniz e-posta adresine sağ tıklayın, “Run Transforms” menüsüne gidin.
 - Önce “To Person” dönüşümünü çalıştırın. Bu, e-posta adresinden bir kişi varlığı oluşturacaktır.
 - Ardından, bu yeni oluşturulan kişi varlığına sağ tıklayın ve “To Social Accounts” gibi dönüşümleri çalıştırın.
 
Bu işlemler, bu e-posta adresinin olası sosyal medya hesaplarını (Twitter, LinkedIn vb.) bulmanıza yardımcı olur. Bu sayede, kurum çalışanlarının profillerini ve bu profillerdeki potansiyel bilgi sızıntılarını görsel olarak haritalayabilirsiniz.
Sosyal Medya Hesaplarını Bulma (Manuel Yöntem)
Maltego’nun farklı sürümlerinde ve lisans seviyelerinde (özellikle ücretsiz Community Edition’da), bazı dönüşümlerin adları değişebilir, farklı kategorilerde gruplanabilir veya tamamen eksik olabilir. Bu durum, “To Social Accounts”, “To LinkedIn” gibi sosyal medya aramaları yapan dönüşümler için de geçerlidir. Eğer bu dönüşümleri “Run Transforms” menüsünde bulamıyorsanız, endişelenmenize gerek yok; bilgi toplama sürecini manuel olarak devam ettirebilirsiniz.
Bu durumda izlenecek yol, Maltego’yu bir görselleştirme aracı olarak kullanmak ve veri toplama işlemini dışarıdan gerçekleştirmektir:
- Kişi Varlığını Oluşturun: Eldeki e-posta adresinden (
weitz@seas.harvard.edugibi) bir kişi varlığı oluşturun. Eğer "To Person" gibi otomatik dönüşümler çalışmıyorsa, varlık paletinden birPersonvarlığı sürükleyip adını manuel olarak girin (örneğin: "David A. Weitz"). 

- Dış Kaynakları Kullanarak Arama Yapın: Web tarayıcınızda Google veya Bing gibi bir arama motoru açın. Elde ettiğiniz kişi adı ve kurum bilgisi (
"David A. Weitz" harvard.edu) ile ilgili sosyal medya profillerini arayın. Bu arama,LinkedIn,TwitterveyaFacebookgibi platformlarda o kişiye ait profilleri bulmanızı sağlayacaktır. 

- Bulduğunuz Verileri Görselleştirin: Arama sonuçlarında bir LinkedIn veya Twitter profili bulduğunuzda, Maltego’ya dönün. Varlık paletinden ilgili sosyal medya varlığını (
LinkedIn Profile,Twitter Accountgibi) sürükleyip haritanıza ekleyin. Bu yeni varlığı, daha önce oluşturduğunuz kişi varlığına bağlayarak aralarındaki ilişkiyi manuel olarak çizin. 

Bu yöntem, araçların sınırlı olduğu durumlarda bile bir siber güvenlik araştırmacısının veriye nasıl ulaşabileceğini ve bu veriyi nasıl anlamlı bir şekilde ilişkilendirebileceğini gösterir.