Conrado Sol
- 29 Nis 2026
- 72 Mesaj
Aktiflik
Seviye
Deneyim
Selam arkadaşlar, bugün sizlere siber güvenliğin en kritik ama en az konuşulan konularından birinden bahsedeceğim. Hepimiz hacker'ların siteleri nasıl değiştirdiğini, veritabanlarını nasıl indirdiğini duyuyoruz, hatta belki bazılarımız merak edip araştırmıştır. Gerçek hayatta bir saldırganı düşünelim. Sabah kahvesini almış, terminalini açmış, karşısına aldığı hedefi inceliyor. Elinde bir aracı var, belki bunu aylarca geliştirmiş, günlerce test etmiş. Düğmeye basıyor ve araç çalışıyor, her şeyi otomatik yapıyor gibi görünüyor. Ama kimse bu adamın o aracı yapmak için harcadığı onca zamanı, geceler boyu yaptığı araştırmaları, okuduğu dokümanları, taradığı logları görmüyor.
Ben size bugün, deface ve dump saldırılarının perde arkasındaki en önemli kahramanı olan OSINT'ten bahsedeceğim. Ama klasik OSINT'ten değil, ileri seviye OSINT'ten. Sadece Google'da aratıp bulduklarınla yetinmeyeceğiz, yerin altını üstüne getireceğiz. Bir hedef hakkında o kadar derinlemesine bilgi toplayacağız ki, deface ve dump işlemleri neredeyse otomatikleşecek.
Peki OSINT'in deface ve dump'taki önemi ne? Şöyle düşün, elinde bir kilit var ve bu kilit için yüzlerce anahtarın var. OSINT yapmazsan, bu anahtarları tek tek denemek zorundasın, günler sürer. Ama OSINT yaparsan, hangi anahtarın o kilidi açacağını önceden bilirsin, hatta bazen anahtara bile gerek kalmaz, kilit zaten açıktır. İşte OSINT, sana bu "hangi anahtar" bilgisini verir. Deface için hangi zafiyetin kullanılacağı, dump için hangi veritabanının hedef alınacağı, tamamen OSINT ile toplanan verilere bağlıdır.
Hadi gelin, bu yolculuğa birlikte çıkalım. Ama önce bir kahve alın, çünkü bu iş sabır ve kahve işidir. Başlıyoruz!
Tamam şimdi, diyelim ki bir hedef belirledik. Büyük bir e-ticaret sitesi olur, devlet kurumunun web sayfası olur, ya da bir banka. Ne olduğu çok da mühim değil. Bizim işimiz, bu hedef hakkında olabildiğince fazla bilgi toplamak.
Peki nereden başlıyoruz? Hemen siteye saldırmak mı? Yok abi, önce bir etrafı kolaçan edeceğiz. Hani hırsızlar girmeden önce binanın önünde birkaç gün dolanır ya, kim gelir kim gider, kapıcı ne zaman uyur, arka kapı açık mı. İşte biz de aynısını yapacağız ama dijital dünyada.
Saldırgan gözüyle baktığımızda ilk dikkatimizi çeken şey, hedefin dijital varlığının ne kadar geniş olduğu oluyor.
Yani bu kurum internette ne bırakmış, hangi bilgiler kazara sızmış, hangi alt sistemleri var?
Çünkü bir kurumun sadece ana web sitesi yoktur. Bir düşün: mail sunucusu vardır, FTP sunucusu vardır, VPN girişi vardır, çalışanların evden bağlandığı uzak masaüstü sistemleri vardır, bazen unutulmuş bir blog vardır, bazen eski bir kampanya sitesi hala ayaktadır.
İşte tüm bunlar potansiyel birer kapıdır. Ana kapı kilitli olabilir ama arka bahçedeki kapı çoğu zaman ardına kadar açıktır.
Şimdi gelelim ilk somut adıma. İlk yapacağım şey, sitenin IP adresini ve host bilgilerini öğrenmek.
whois sorgusu ile domain sahibini, kayıt tarihini, son güncelleme tarihini, kullanılan name server'ları öğreniyorum. Bu bana kurumun hangi hosting sağlayıcısını kullandığını, ne kadar süredir bu domainin aktif olduğunu gösteriyor.
Bazen eski whois kayıtlarına bakarak, domainin daha önce hangi IP'lerde hostlandığını bile görebiliyorum. Bu ne işe yarar? Eğer domain daha önce başka bir sunucudaydı ve o sunucu hala ayaktaysa, orada unutulmuş bir kopya site olabilir. Bu tarz eski kopyalar, güncel olmadığı için zafiyetlerle doludur.
whois orneksirket.com
dig orneksirket.com ANY
nslookup -type=mx orneksirket.com
Sonra DNS kayıtlarına dalıyorum. dig veya nslookup ile A kaydı, MX kaydı, TXT kaydı, NS kaydı gibi bilgileri topluyorum. MX kaydı bana mail sunucusunun IP'sini veriyor, o IP üzerinde başka servisler var mı diye bakıyorum. TXT kaydı bazen öyle enteresan şeyler içeriyor ki... Mesela bazı kurumlar TXT kaydına "bu domain şu tarihte şu amaçla alındı" gibi notlar düşüyor. Ya da SPF kaydına baktığımda, kurumun hangi üçüncü parti mail servislerini kullandığını görüyorum. Bunlar hep bilgi, hep ipucu.
dig txt orneksirket.com
dig mx orneksirket.com
Bir de hedefin SSL sertifikasını inceliyorum. Bu kısım çok kritik, çünkü sertifikalar bir kurum hakkında inanılmaz bilgi veriyor. crt.sh sitesine girip hedef domaini aratıyorum.
Bu site tüm sertifika kayıtlarını tutuyor, yıllar boyunca alınmış her sertifika orada. Karşıma onlarca sertifika çıkıyor, her birinde hangi alt alan adları kullanılmış,
hepsi dökülüyor.
Mesela hedef orneksirket.com ise, crt.sh bana admin.orneksirket.com, mail.orneksirket.com, dev.orneksirket.com, test.orneksirket.com, hatta eski.orneksirket.com gibi onlarca subdomain veriyor. İşte bu subdomain'ler, deface ve dump için altın değerinde.
Çünkü bu alt alan adlarından biri mutlaka unutulmuş, güncellenmemiş, ya da yanlış yapılandırılmış oluyor.
curl -s "https://crt.sh/?q=%.orneksirket.com&output=json" | jq -r '.[].name_value' | sort -u
Bu komut, crt.sh'den tüm subdomain'leri çekip sana temiz bir liste veriyor. Benzer şekilde amass veya subfinder gibi araçlarla da toplayabilirsin ama crt.sh her zaman ilk adresimdir, çünkü tamamen pasiftir, hedefe hiç dokunmazsın.
Peki bu subdomain'leri neden topluyorum? Çünkü ana site ne kadar güvenli olursa olsun, unutulmuş bir test ortamı, eski bir yönetim paneli, ya da çalışanların kullandığı bir alt sistem genelde zafiyetlerle doludur. Oraya odaklanıyorum.
Şimdi buraya bir gerçek hayat örneği sıkıştırayım. Bir keresinde bir kurumun ana sitesi Cloudflare arkasındaydı, yani doğrudan saldırmak neredeyse imkansızdı.
Ama crt.sh'de staging.orneksirket.com diye bir subdomain buldum.
Bu staging ortamı, ana site gibi Cloudflare arkasında değildi, doğrudan sunucunun IP'sine bağlanıyordu. Üstelik ana sitedeki güncellemeler burada uygulanmamıştı. İşte böyle durumlarda OSINT, sana ana kapıyı değil, arka kapıyı gösterir.
Şimdi gelelim çoğu kişinin atladığı ama aslında en değerli bilgilerin saklı olduğu yere, kaynak kodu. Bir siteye girdiğinde sağ tıkla "Sayfa Kaynağını Gör" dediğinde karşına bir sürü HTML çıkar. Çoğu insan "ee ne var ki burada, sadece kod işte" der geçer. Ama bir saldırgan gözüyle baktığında orası bir hazine sandığıdır.
Mesela kaynak kodda
Yorum satırları Geliştiriciler bazen
<!-- burayı sonra düzelteceğiz, şifre şu -->
gibi notlar bırakır. İnan bana, bunu çok gördüm. Bir keresinde kaynak kodda
<!-- admin paneli /panel123 dizininde -->
diye bir yorum bulmuştum. Direkt panele gittim, giriş sayfası karşımdaydı.
JavaScript dosyaları Siteye ait .js dosyalarını ayrı ayrı indirip incelerim. İçinde API endpoint'leri, gizli anahtarlar (API keys), hatta bazen veritabanı bağlantı bilgileri olabilir. Özellikle app.js, main.js, bundle.js gibi dosyalar genelde tüm uygulama mantığını içerir.
Meta etiketleri
<meta name="generator" content="WordPress 5.2.3">
gibi etiketler, sitenin hangi CMS'i hangi versiyonla kullandığını açıkça söyler. Bu da hangi zafiyetlerin olabileceği konusunda ipucu verir.
Gizli input alanları Formlarda
type="hidden"
olan input'lar bazen admin yetkisi, kullanıcı ID'si, ya da başka kritik bilgiler içerir. Bunları görmek için "Inspect Element" yapman yeterli.
Robots.txt ve sitemap.xml orneksirket.com/robots.txt
adresine gittiğimde, site sahibinin arama motorlarından gizlemek istediği dizinleri görürüm. Mesela Disallow: /admin/ yazıyorsa, bu bana "burada bir admin paneli var, ama gizlemeye çalışıyorlar" der. Sitemap.xml ise sitenin tüm sayfalarını listeler, bazen orada da ilginç şeyler çıkar.
curl -s http://orneksirket.com/robots.txt
curl -s http://orneksirket.com/sitemap.xml
curl -s http://orneksirket.com/.git/config
curl -s http://orneksirket.com/.env
Bu son iki komut çok önemli. Bazen geliştiriciler .git klasörünü veya .env dosyasını yanlışlıkla sunucuda bırakır. .env dosyası veritabanı şifrelerini, API anahtarlarını, SMTP bilgilerini içerir .git klasörü ise tüm kaynak kod geçmişini, hatta bazen silinmiş şifreleri bile içerir. Bunları görmek için tek yapman gereken tarayıcıya yazmak. Eğer açıksa, dump ve deface için gereken her şey elinde demektir.
Bir de hedefin sosyal medya varlığını inceliyorum. Kurumun resmi Twitter, LinkedIn, Facebook hesaplarına bakıyorum. Ama asıl önemlisi çalışanların kişisel hesapları. Çünkü insanlar iş yerlerinde olup biteni farkında olmadan paylaşırlar.
Mesela bir çalışan
"Bugün şirketteki MongoDB'yi güncelledik, artık daha hızlı"
diye bir tweet atarsa, bu benim için altın değerinde bir bilgidir.
Hemen MongoDB'nin hangi versiyona güncellendiğini araştırırım. Belki o versiyonda bilinen bir zafiyet vardır, belki de güncelleme sırasında bir yapılandırma hatası yapılmıştır. Ya da bir LinkedIn paylaşımında
"Yeni projemizde Kubernetes kullanıyoruz"
yazıyorsa, hemen Kubernetes dashboard'larının internete açık olup olmadığını kontrol ederim.
Bazen de iş ilanlarına bakarım. Kurum
"SIEM yöneticisi arıyoruz, Splunk deneyimi olan"
diye ilan veriyorsa, demek ki Splunk kullanıyorlar. "AWS sertifikalı DevOps mühendisi arıyoruz" diyorsa, altyapıları AWS'de demektir. Bu bilgiler, hangi platformlara odaklanacağım konusunda bana yol gösterir.
Tüm bu topladığım bilgiler, bana bir hedef haritası çiziyor. Hangi sistemler var, hangileri canlı, hangi versiyonlar kullanılıyor, kimler bu sistemleri yönetiyor, daha önce sızıntı olmuş mu, kaynak kodda ne var ne yok Tüm bu veriler, ileri OSINT aşaması için temel oluşturuyor.
Bu aşamada henüz hedefe tek bir zararlı istek bile göndermedik.
Ne bir exploit denedik, ne bir port taraması yaptık, ne de bir login denemesi. Tamamen pasif kaldık. Sadece herkesin görebileceği ama kimsenin bakmadığı yerlere baktık. İşte OSINT'in güzelliği burada. Sen sadece izliyorsun, o ise tüm kapılarını açık ediyor.
Evet, şimdi gelelim işin en keyifli kısmına. Klasik OSINT dediğimiz şey, Google'da bir şeyler aratmak, Shodan'da gezinmek, sosyal medyada biraz dedektiflik oynamaktır.
Ama ileri OSINT bunun çok ötesinde. İleri OSINT, otomatik araçların çıkardığı ham veriyi alıp, onu manuel analizle işlemek, her bir parçayı tek tek incelemek ve aralarındaki bağlantıları kurmaktır.
Yani bir nevi istihbarat analistliği. Kimse sana "şu aracı çalıştır, şu veri gelsin" demiyor. Sen kendin kazıyorsun, kendin buluyorsun, kendin birleştiriyorsun.
Her şey alt alan adlarıyla başlıyor. Çünkü bir kurumun ana sitesi ne kadar sağlam olursa olsun, unuttuğu bir subdomain mutlaka vardır. O subdomain de genelde en zayıf halkadır.
Ben genelde tek bir araçla yetinmem. Farklı kaynaklardan toplarım ki hiçbir şey kaçmasın. Amass ile pasif toplama yaparım, Subfinder ile ek kaynaklardan çekerim, Assetfinder ile de başka bir açıdan bakarım. Hepsini bir dosyada birleştirir, tekrar edenleri temizlerim. Sonunda elimde binlerce subdomain olur.
amass enum -passive -d orneksirket.com -o subdomainler.txt
subfinder -d orneksirket.com -o subdomainler2.txt
assetfinder --subs-only orneksirket.com >> subdomainler3.txt
sort -u subdomainler*.txt -o hepsi.txt
Ama iş burada bitmiyor. Binlerce subdomain'in hepsi canlı değil. Kimisi yıllar önce silinmiş, kimisi sadece DNS kaydı kalmış, kimisi de hala ayakta ama kimsenin haberi yok. İşte bu yüzden hepsini tek tek kontrol etmem lazım.
httpx aracını kullanarak hangi subdomain'lerin gerçekten HTTP veya HTTPS servisi verdiğini bulurum. Bu bana canlı olanları, hangi portlarda çalıştıklarını, hangi durum kodunu döndüklerini gösterir.
httpx -l hepsi.txt -o canli_subdomainler.txt
Bu işlemden sonra elimde sadece canlı, gerçekten çalışan subdomain'ler kalır. İşte asıl iş bundan sonra başlar. Çünkü her bir canlı subdomain, ayrı bir dünyadır. Kimisi bir blogdur, kimisi bir test ortamıdır, kimisi de doğrudan veritabanına bağlanan bir panel.
Canlı subdomain'leri bulduktan sonra sıra, her birinin neyle kurulduğunu anlamaya gelir. Burada amaç zafiyet bulmak değil, sadece veri toplamak. Çünkü topladığın her bilgi, ileride deface ve dump için kritik bir ipucu olacak.
Ben genelde Wappalyzer'ın CLI versiyonunu kullanırım. Siteye attığımda bana hangi CMS, hangi framework, hangi JavaScript kütüphanesi, hangi web sunucusu, hatta hangi işletim sistemi kullanıldığını söyler.
wappalyzer http://subdomain.orneksirket.com
Ama bu bazen yeterli olmaz. Daha derine inmek için WhatWeb kullanırım. Bu araç, HTTP header'ları, cookie'leri, meta etiketleri, hatta bazen kullanılan eklentileri bile çıkarır. Yani Wappalyzer'ın görmediği şeyleri WhatWeb görür.
whatweb -a 3 http://subdomain.orneksirket.com
Bir de BuiltWith sitesi var. Buraya hedef domaini yazdığımda, sadece web teknolojilerini değil, aynı zamanda kullanılan analitik araçlarını, reklam ağlarını, hatta çalışanların kullandığı email servislerini bile gösterir. Yani bir bakıyorsun, site WordPress kullanıyor, ama aynı zamanda HubSpot, Google Analytics, Cloudflare, AWS gibi onlarca servis var. Her biri ayrı bir giriş noktası.
Şimdi gelelim sitelerin açıkta bıraktığı, indekslenmemiş dizinlere ve dosyalara. Burası OSINT için biçilmiş kaftan. Çünkü bu dosyaların içinde deface ve dump için kullanılabilecek kritik bilgiler bulunabilir.
Dirsearch aracıyla sitenin açık dizinlerini ve dosyalarını tararım. Mesela
/backup/, /old/, /tmp/ gibi dizinler, /wp-config.php.bak, /config.old, /database.sql
gibi dosyalar. Bu dosyalar bazen tüm şifreleri içerir.
dirsearch -u http://orneksirket.com -e php,html,txt,log,bak,old,sql
Gobuster da benzer bir iş yapar. Farklı wordlist'lerle farklı sonuçlar alabilirsin. Bazen birinin bulamadığını diğeri bulur.
gobuster dir -u http://orneksirket.com -w /usr/share/wordlists/dirb/common.txt -x php,txt,sql,log
Bir de Google Dorking var ki, bu bambaşka bir dünya. Google'a öyle sorgular yazarsın ki, arama motoru senin için adeta bir istihbarat aracına dönüşür. İşte benim sık kullandığım dork'lardan bazıları:
site
site
site
site
site
site
Bu dork'lar bazen inanılmaz sonuçlar verir. Bir keresinde bir kurumun yedekleme script'i yanlışlıkla web dizinine backup.sql dosyasını koymuştu ve Google onu indekslemişti. O dosyayı indirdim, içinde tüm veritabanı vardı. Yani dump işlemi zaten otomatik olarak gerçekleşmiş oldu. Sen sadece indirdin.
Deface ve dump için, özellikle admin kullanıcılarının email adreslerini bilmek çok önemli. Çünkü birçok insan aynı şifreyi birden çok yerde kullanır. Eğer bir admin'in şifresi daha önce sızmışsa, onu dump edilen verilerde bulabilir ve deneyebilirsin.
theHarvester
aracıyla domain ile ilişkili tüm email adreslerini toplarım. LinkedIn parametresiyle çalıştırdığımda, çalışan profillerinden bile email çeker.
theHarvester -d orneksirket.com -b google,linkedin,twitter -l 500
Hunter.io
sitesi de çok işe yarar. Bir domain yazarsın, sana tüm email adreslerini bulur, hatta hangilerinin doğrulandığını gösterir. Yani hangi email gerçekten aktif, hangisi değil, hepsini görürsün.
Bir de
Phonebook.cz
var ki, bu site sadece email değil, aynı zamanda subdomain ve URL'leri de bulur. Tek seferde üç farklı veri türü toplarsın. Ben genelde bu siteyi ilk adres olarak kullanırım.
Sızdırılmış Veritabanlarında Arama
Topladığım email adreslerini, daha önce sızmış veritabanlarında aratırım. Eğer bir email daha önce sızmışsa, o sızıntıdaki şifre muhtemelen hala kullanılıyordur.
Dehashed
sitesi bu iş için birebir. Topladığın email'i girdiğinde, hangi sızıntılarda yer aldığını ve şifrelerini görürsün. Bazen o kadar eski sızıntılar çıkar ki, adamın 2012'de kullandığı şifre hala aynıdır.
LeakCheck
de benzer bir hizmettir, hatta daha güncel veritabanlarını içerir.
Have I Been Pwned
ise herkesin bildiği, ücretsiz bir kontrol aracıdır. Ama şifreyi vermez, sadece sızıntı bilgisini verir. Yine de hangi email'in sızdığını bilmek, hangi email'e odaklanacağını gösterir.
Deface ve dump faaliyetleri genelde dark web'de duyurulur. Saldırganlar, başarılı oldukları saldırıları dark web forumlarında paylaşır. Bu forumlarda hem saldırganların yöntemlerini öğrenebilir, hem de hedef hakkında daha önce sızıntı olup olmadığını görebilirsin.
Ahmia
ile dark web'de temel arama yapabilirsin. Hedef domaini aratırsın, hangi forumlarda konuşulduğunu görürsün. Darksearch.io ise daha kapsamlı bir arama motorudur. Buradan hedefle ilgili leak'leri, dump'ları, deface kayıtlarını bulabilirsin.
Recon aracı ise hedef domainin dark web'deki varlığını otomatik olarak tarar. Hangi forumlarda geçtiğini, hangi leak'lerde bulunduğunu gösterir. Yani sen uğraşmadan, o senin için tarar.
Ahmia
ile dark web'de temel arama yapabilirsin. Hedef domaini aratırsın, hangi forumlarda konuşulduğunu görürsün. Darksearch.io ise daha kapsamlı bir arama motorudur. Buradan hedefle ilgili leak'leri, dump'ları, deface kayıtlarını bulabilirsin.
Recon aracı ise hedef domainin dark web'deki varlığını otomatik olarak tarar. Hangi forumlarda geçtiğini, hangi leak'lerde bulunduğunu gösterir. Yani sen uğraşmadan, o senin için tarar.
Hedefin bir
WAF (Web Application Firewall)
kullanıp kullanmadığını tespit etmek, deface ve dump sürecinde çok önemlidir. Çünkü WAF, saldırıları engeller. Ama WAF varsa bile, OSINT ile WAF'ın zafiyetlerini veya yanlış yapılandırmalarını bulabilirsin.
WafW00f
aracıyla sitenin hangi WAF'ı kullandığını tespit ederim. Cloudflare mi, AWS WAF mı, Sucuri mi, yoksa hiçbiri mi? Bu bilgi, nasıl bir yol izleyeceğimi gösterir.
wafw00f http://orneksirket.com
Bir de
Nmap
ile altyapı analizi yaparım. Açık portları ve çalışan servisleri gösterir. Mesela 22 portu açıksa SSH var, 3306 açıksa MySQL çalışıyordur. Bu servislerin versiyonlarını öğrenir, o versiyonlarda bilinen zafiyetler var mı diye bakarım.
nmap -sV -p- -T4 orneksirket.com
Ama burada dikkat etmem gereken bir şey var Nmap agresif bir araçtır, hedefin loglarına düşebilirsin. O yüzden pasif kalmak istediğimde -T2 gibi daha yavaş taramalar yaparım, ya da hiç Nmap kullanmam, Shodan gibi pasif kaynaklardan bilgi toplarım.
İşte ileri OSINT dediğimiz şey tam olarak bu. Bir sürü araç, bir sürü kaynak, bir sürü manuel analiz. Ama hepsinin amacı tek: Hedef hakkında mümkün olduğunca fazla bilgi toplamak ve bu bilgileri deface ve dump için kullanılabilir hale getirmek.
Bu aşamada hala hedefe zarar vermiş değiliz. Sadece izliyoruz, topluyoruz, birleştiriyoruz. Ama topladığımız her veri, bir sonraki adımda bize kapı açacak. İşte OSINT'in gücü de burada: Sen sadece bakıyorsun, o ise tüm sırlarını döküyor.
Evet, geldik işin en can alıcı noktasına. Şu ana kadar yaptığımız tüm o OSINT taramaları, subdomain keşifleri, email toplamalar, dizin taramaları, kaynak kodu analizleri.
Hepsi bir yere varmak içindi. Peki elimizde ne var şimdi? Devasa bir veri yığını. Ama bu yığının içinden hangileri gerçekten işimize yarayacak Hangi bilgiler bizi deface ve dump için bir adım daha yaklaştırır
Şimdi bu verileri sınıflandıralım. Ama öyle madde madde değil, gerçekten ne işe yaradıklarını, nasıl kullanıldıklarını konuşarak ilerleyelim.
Admin Panelinin URL'i ve Giriş Bilgileri
Deface saldırısı için ihtiyacımız olan ilk şey, siteye sızıp dosyaları değiştirebileceğimiz bir yol bulmak. Bunun için de en klasik yöntem admin panelini bulmak ve oraya giriş yapmak.
Peki admin panelini nasıl buluruz.
Aslında bunu OSINT aşamasında zaten yapmıştık. Topladığımız subdomain'ler arasında
admin.orneksirket.com, login.orneksirket.com, panel.orneksirket.com
gibi adresler var mı diye bakmıştık. Google Dorking ile
/wp-admin, /administrator, /admin
gibi dizinleri aramıştık. robots.txt dosyasında Disallow: /admin/ gibi bir satır gördüysek, oradan da ipucu almıştık.
Ama admin panelini bulmak yetmez. Oraya giriş yapmak için kullanıcı adı ve şifre lazım. İşte burada topladığımız email adresleri devreye giriyor.
theHarvester ile topladığımız email'ler arasında
[email protected], yö[email protected], [email protected]
gibi adresler genelde admin yetkisine sahiptir. Bu email'leri bir kenara yazmıştık.
Peki şifre? İşte burada sızdırılmış veritabanları devreye giriyor. Dehashed veya LeakCheck'te bu email'leri arattığımızda, eğer daha önce bir sızıntıda yer almışlarsa, şifreleri karşımıza çıkıyor. Çoğu insan aynı şifreyi birden çok yerde kullandığı için, o eski şifre hala geçerli olabiliyor. Bir keresinde bir kurumun info@ adresinin şifresi 2015'te sızmış bir forum veritabanından çıkmıştı ve adam hala aynı şifreyi kullanıyordu. İşte OSINT'in gücü bu.
Diyelim ki admin panelini bulduk ama şifreyi kıramadık. Sorun değil, başka yollar da var. İşte burada CMS ve eklenti bilgileri devreye giriyor.
OSINT aşamasında Wappalyzer veya WhatWeb ile sitenin hangi CMS'i kullandığını öğrenmiştik. WordPress mi, Joomla mı, Drupal mı, Magento mu? Hangi versiyon? Mesela WordPress 5.2.3 ise, bu versiyonda bilinen bir zafiyet var mı diye araştırırız. Varsa, o zafiyeti kullanarak siteye sızabiliriz.
Ama sadece CMS değil, eklentiler ve temalar da önemli. Çünkü çoğu zaman asıl zafiyet, ana CMS'te değil, yüklenen bir eklentide olur. WPScan gibi araçlarla sitenin hangi eklentileri kullandığını ve versiyonlarını öğrenebiliriz. Eğer o eklentinin bilinen bir zafiyeti varsa, Exploit-DB'de veya GitHub'ta hazır bir exploit bulabiliriz.
Bir keresinde bir kurumun sitesinde wp-file-manager eklentisinin eski bir versiyonu yüklüydü. Bu eklentide uzaktan kod çalıştırma zafiyeti vardı. Hazır exploit'i indirip çalıştırdım, siteye sızdım ve dosyaları değiştirdim. Yani OSINT ile bulduğumuz bir eklenti bilgisi, doğrudan deface'e giden yolu açtı.
Bazen admin paneliyle veya CMS zafiyetiyle uğraşmaya gerek kalmaz. Çünkü site sahipleri bazen öyle hatalar yapar ki, senin hiçbir şey yapmana gerek kalmaz.
Mesela açıkta kalmış yedek dosyaları. backup.zip, site.old, config.php.bak gibi dosyalar.
Bunları Dirsearch veya Gobuster ile bulmuştuk. Eğer bu dosyalardan biri config.php.bak ise, içinde veritabanı şifreleri olabilir. Ya da backup.zip ise, içinde tüm site dosyaları ve veritabanı yedeği olabilir. İndirirsin, açarsın, tüm veriler elindedir.
Bir de dizin listeleme (index of) açık mı diye bakmıştık. Eğer açıksa, sunucudaki tüm dosyaları listeleyebilirsin. Hangi dosyalar var, hangi dizinler var, hepsini görürsün. Bazen orada database.sql gibi bir dosya görürsün, indirirsin, tüm veritabanı elindedir.
.git, .svn, .env gibi hassas dosyalar da çok kritik. .env dosyası genelde veritabanı şifrelerini, API anahtarlarını, SMTP bilgilerini içerir.
.git klasörü ise tüm kaynak kod geçmişini, hatta bazen silinmiş şifreleri bile içerir. Bunları görmek için tek yapman gereken tarayıcıya orneksirket.com/.env veya orneksirket.com/.git/config yazmak. Eğer açıksa, dump ve deface için gereken her şey elinde demektir.
Gelelim en kritik olanına. Eğer wp-config.php, config.php, database.php gibi dosyaları okuyabiliyorsan, işin bitti demektir. Çünkü bu dosyalar veritabanı kullanıcı adı ve şifresini içerir.
Peki bu dosyaları nasıl okuruz? Eğer LFI (Local File Inclusion) zafiyeti varsa, ../../../wp-config.php gibi bir payload ile bu dosyayı okuyabiliriz. Ya da .git klasörü açıksa, oradan bu dosyanın eski versiyonlarını çekebiliriz. Ya da config.php.bak gibi bir yedek dosya varsa, doğrudan indirebiliriz.
Bu bilgileri elde ettikten sonra, doğrudan veritabanına bağlanıp admin şifresini değiştirebiliriz. wp_users tablosundaki admin kullanıcısının şifre hash'ini alır, kendi belirlediğimiz bir şifrenin hash'ini oluşturup değiştiririz. Sonra admin paneline girer, sitenin dosyalarını değiştiririz. İşte deface bu kadar basit olabilir bazen.
mysql -u kullanici -p -h orneksirket.com veritabani_adi
UPDATE wp_users SET user_pass = MD5('yeni_sifre') WHERE user_login = 'admin';
Tabii bu sadece bir örnek. Her CMS'in kendi tablo yapısı vardır, ona göre hareket etmek gerekir.
İşte deface için kritik veriler bunlar. Admin paneli bilgileri, CMS ve eklenti versiyonları, açıkta kalmış dosyalar, veritabanı bağlantı bilgileri. Hepsi OSINT aşamasında topladığımız verilerden geliyor. Ve hepsi bir zincirin halkası gibi birbirine bağlı. Birini bulunca diğeri geliyor, onu bulunca bir sonraki kapı açılıyor.
Şimdi gelelim dump için kritik verilere. Orada da benzer bir mantık var ama hedef farklı veritabanındaki tüm verileri indirmek.
Dump saldırısı için ihtiyacımız olan şey, veritabanına erişip tüm verileri indirebilmektir. Bunun için hangi bilgilere ihtiyacım var
Dump için en kestirme yol, veritabanına doğrudan bağlanmaktır. Bunun için de veritabanı kullanıcı adı, şifresi, veritabanı adı ve sunucu IP'si lazım. Peki bu bilgileri nereden buluruz
İşte burada config.php, wp-config.php, database.php gibi dosyalar devreye giriyor. Eğer OSINT aşamasında bu dosyaları okuyabildiysek, içinde tüm bu bilgiler yazılıdır. WordPress kullanılıyorsa wp-config.php dosyasında DB_NAME, DB_USER, DB_PASSWORD, DB_HOST gibi sabitler vardır. Bunları aldığımız anda veritabanına bağlanabiliriz.
mysql -u db_kullanici -p -h db_host veritabani_adi
Bağlandıktan sonra tek yapmamız gereken mysqldump komutunu çalıştırmak
mysqldump -u db_kullanici -p veritabani_adi > dump.sql
Bu komut tüm veritabanını SQL formatında indirir. İçinde ne varsa hepsi. Kullanıcılar, siparişler, mesajlar, admin bilgileri... Hepsi.
Ama diyelim ki bu dosyaları okuyamadık. O zaman başka yollar denememiz lazım. Mesela SSH veya FTP servisleri açık mı? Eğer açıksa ve zayıf bir şifre varsa, doğrudan sunucuya bağlanıp veritabanı dosyalarını indirebiliriz. FTP'de backup.sql gibi bir dosya varsa, onu çekmek yeterli.
Veritabanı bilgilerine ulaşamadıysak, bir diğer yol SQL Injection. Yani sitenin URL'lerindeki parametreleri manipüle ederek veritabanına sorgu göndermek.
OSINT aşamasında URL'leri incelemiştik. id=, page=, product=, category= gibi parametreler var mı diye bakmıştık. Eğer varsa, bu parametreleri test ederek SQL Injection zafiyeti olup olmadığını kontrol ederiz.
Mesela orneksirket.com/product.php?id=1 gibi bir URL'de id parametresine 1' yazdığımızda hata alıyorsak, burada bir SQL Injection olabilir. Sonra sqlmap gibi bir araçla bu zafiyeti otomatik olarak sömürebiliriz:
sqlmap -u "http://orneksirket.com/product.php?id=1" --dbs
Bu komut bize veritabanındaki tüm veritabanlarını listeler. Sonra hangi veritabanını istiyorsak onu seçip tabloları listeleriz:
sqlmap -u "http://orneksirket.com/product.php?id=1" -D veritabani_adi --tables
Ve son olarak da istediğimiz tabloyu dump'larız
sqlmap -u "http://orneksirket.com/product.php?id=1" -D veritabani_adi -T kullanicilar --dump
Bu komut kullanicilar tablosundaki tüm verileri indirir. İçinde email'ler, şifre hash'leri, isimler, adresler ne varsa hepsi.
Ama burada dikkat etmemiz gereken bir şey var SQL Injection her sitede olmaz. Bazen WAF engeller, bazen parametreler filtrelenmiştir. O yüzden sabırlı olmak ve farklı payload'lar denemek gerekir.
Bazen hiç uğraşmamıza gerek kalmaz. Çünkü admin panelinde "Veritabanını Yedekle" veya "Export Database" gibi bir özellik vardır. Eğer admin paneline giriş yapabildiysek, bu özelliği kullanarak tüm veritabanını tek tıkla indirebiliriz.
Bu özellik genelde WordPress'te WP Migrate DB gibi eklentilerle, Joomla'da Akeeba Backup ile, Magento'da ise Backup sekmesiyle gelir. Admin paneline girdiğimizde bu seçenekleri ararız. Varsa, tüm veritabanını SQL veya ZIP formatında indiririz. İşte dump bu kadar basit olabilir bazen.
Bazen dump yapmamıza bile gerek kalmaz. Çünkü hedef zaten daha önce sızdırılmıştır. Dark web'de veya sızdırılmış veritabanlarında hedefle ilgili bir leak veya dump paylaşılmış mı diye bakarız.
OSINT aşamasında Dehashed, LeakCheck, Have I Been Pwned gibi sitelerde email'leri aratmıştık. Eğer bir email daha önce sızmışsa, o sızıntıdaki veriler zaten elimizdedir. Belki o veriler eski tarihlidir ama yine de işe yarar. Çünkü çoğu kurum verilerini güncellemez, eski veriler hala geçerlidir.
Bir de dark web forumlarına bakarız. Ahmia, Darksearch.io gibi arama motorlarıyla hedef domaini aratırız. Eğer daha önce bir dump paylaşılmışsa, o forumda linkini buluruz. Belki ücretsiz, belki ücretli ama en azından hangi verilerin sızdığını biliriz. Bu da bize hangi verilere odaklanacağımızı gösterir.
FTP veya Dosya Yönetim Sistemi Erişimi
Bir diğer yol da FTP veya dosya yönetim sistemi. Eğer OSINT aşamasında açıkta kalmış FTP giriş bilgileri bulduysak, doğrudan FTP'ye bağlanıp veritabanı yedeklerini indirebiliriz.
ftp orneksirket.com
# kullanici adi ve sifre gir
get backup.sql
Ya da admin panelinde bir dosya yöneticisi (File Manager) varsa, oradan da veritabanı dosyalarını indirebiliriz. wp-content/backup gibi bir dizin varsa, içinde database.sql olabilir.
Bazen de sunucuda phpMyAdmin gibi bir araç açıktadır. Eğer giriş bilgilerini bulduysak, doğrudan oradan tüm veritabanını export edebiliriz.
Toplanan Verilerin Listesi
Tüm bu bilgileri topladıktan sonra, bir Excel tablosu veya not dosyası oluştururum. İçinde şunları tutarım
Canlı subdomain'ler Her birinin IP'si, açık portları, çalışan servisleri
Admin panelleri URL'leri, giriş sayfaları, denenecek kullanıcı adları
CMS ve eklenti bilgileri Versiyonlar, bilinen zafiyetler
Açık dizinler ve dosyalar Konumları, içerikleri
Email adresleri ve şifreleri Sızdırılmış veritabanlarından elde edilenler
Veritabanı bilgileri Kullanıcı adları, şifreler, veritabanı adları (config dosyalarından)
Portlar ve servisler Hangi servisler çalışıyor, hangi versiyonlar
Dark web bilgileri Hedefle ilgili daha önce sızıntı olmuş mu?
İşte bu veriler, deface ve dump saldırısı için gereken tüm kritik bilgileri içerir. Artık hangi yoldan gideceğimi, hangi zafiyeti kullanacağımı, hangi aracı tercih edeceğimi bu verilere göre belirlerim.
2025 yılında yaşanan Büyük E-ticaret Veri Sızıntısı
2025 yılının başlarında, Avrupa'nın en büyük e-ticaret platformlarından biri büyük bir veri ihlali yaşadı. Milyonlarca kullanıcının adı, soyadı, adresi, telefon numarası, email adresi ve şifreleri sızdırıldı. Peki bu nasıl oldu? Saldırganlar, klasik yöntemlerle değil, OSINT ile hedefi tarayarak bir zafiyet buldular.
Saldırganlar, OSINT sürecinde hedefin alt alan adlarını tararken staging.orneksirket.com adresini buldular. Bu staging ortamı (test ortamı), ana siteden daha eski bir versiyonla çalışıyordu ve güvenlik güncellemeleri yapılmamıştı. Saldırganlar bu ortamda bir LFI (Local File Inclusion) zafiyeti tespit ettiler. Bu zafiyetle ../../../wp-config.php dosyasını okuyarak veritabanı kullanıcı adı ve şifresini elde ettiler. Daha sonra bu bilgilerle ana sitenin veritabanına bağlanıp tüm kullanıcı verilerini dump'ladılar.
Olayın en ilginç tarafı, saldırganların hiçbir özel araç kullanmamasıydı. Sadece dirsearch ile dizin taraması, crt.sh ile subdomain bulma ve manual LFI testi yaparak tüm bu verilere ulaştılar. Haftalarca süren bir OSINT çalışması sonucunda, tek bir zafiyetle büyük bir veri ihlali gerçekleştirdiler.
Geçen sene, dünya çapında kullanılan bir SaaS (Software as a Service) firmasının admin paneli ele geçirildi ve tüm müşteri hesapları erişime açıldı. Bu olay, sadece OSINT kullanılarak gerçekleştirildi.
Saldırganlar, OSINT sürecinde hedefin Google Dorking ile açıkta kalmış bir backup.sql dosyasını buldular. Bu dosya, sitenin kök dizininde unutulmuştu ve Google tarafından indekslenmişti. Dosyayı indirdiklerinde, içinde tüm admin kullanıcılarının şifre hash'leri ve admin panelinin URL'i bulunuyordu.
Hash'leri kırmak için hashcat kullandılar ve admin şifrelerinden birini buldular. Bu şifreyle admin paneline girdiler. Admin panelinde, tüm kullanıcıların hesaplarını yönetme yetkisi vardı. Saldırganlar, tüm kullanıcıların email adreslerini ve şifre hash'lerini dump'ladılar. Ayrıca ana sayfaya deface mesajı bırakarak olayı duyurdular.
Bu olayın özeti şu: OSINT ile unutulmuş bir yedek dosyası bulmak, saldırgan için tüm kapıları açtı. Şirket, daha sonra yaptığı açıklamada "Dosyanın web dizininde bırakılması bir insan hatasıydı" dedi. Ama işte OSINT, bu insan hatalarını bulan ve sömüren yöntemdir.
Baştan beri anlattıklarımı bir toparlayalım OSINT'in deface ve dump faaliyetlerindeki önemini gördük, hangi araçlarla nasıl veri toplandığını konuştuk, toplanan verilerin nasıl kritik hale geldiğini ve hangi bilgilerin hangi saldırı türü için kullanıldığını inceledik. Peki bu işin olmazsa olmazları neler? Nelere dikkat etmek lazım? Hadi bunları konuşalım.
Hatırlanması Gerekenler
Pasif kal. OSINT'in en önemli kuralı bu. Hedefi rahatsız etmeden bilgi toplayacaksın. Ne ping at, ne nmap ile agresif tarama yap. Sadece kamuya açık kaynakları kullan. Çünkü sen hedefe ne kadar az dokunursan, o kadar az iz bırakırsın. İleri OSINT sessizdir, görünmezdir.
verileri doğru sınıflandır. Topladığın her veriyi düzenli tut. Bir not defteri veya Excel tablosu oluştur. Hangi bilginin hangi saldırı türü için kullanılacağını belirle. Deface için admin paneli bilgisi kritikken, dump için veritabanı bilgisi kritiktir. Birbirine karıştırma.
otomasyonu manuel ile birleştir. Araçlar veri toplar ama o verilerin yorumunu sen yaparsın. Amass ile subdomain topla, httpx ile canlıları bul, ama her bir subdomain'i manuel olarak incele. Bir siteyi ziyaret ettiğinde gözünün önünden kaçan detayları araçlar görmez. İnsan gözü, aracın göremediğini görür.
güncel kal ve sürekli öğren. OSINT araçları ve kaynakları sürekli değişir. Yeni siteler çıkar, eski araçlar kullanılmaz olur. Haftada bir gününü sadece yeni OSINT kaynakları keşfetmeye ayır. Belki yeni bir arama motoru çıkmıştır, belki yeni bir sızdırılmış veritabanı vardır. Kaçırma.
etik kuralları asla unutma. OSINT, kamuya açık verileri kullanmaktır ve yasaldır. Ama bu verileri izinsiz bir şekilde sömürmek yasa dışıdır. Bu bilgileri sadece eğitim ve savunma amaçlı kullan, yetkili olduğun sistemlerde test et. Unutma, gerçek hacker bilgiyi yıkmak için değil, korumak için kullanır.
Günümüz teknolojisinde OSINT artık sadece web sitelerine bakmaktan ibaret değil. Yeni alanlar var, yeni yöntemler var. İşte sana birkaç tüyo
Mobil Uygulama OSINT'i Hedefin bir mobil uygulaması varsa, APK dosyasını indir, decompile et. İçindeki API endpoint'lerini, sertifika bilgilerini, string'leri incele. Çoğu zaman mobil uygulama, web sitesinden daha fazla veri sızdırır. Çünkü geliştiriciler mobil tarafta güvenliği bazen es geçer.
Cloud OSINT Hedef bulut servisleri (AWS, Azure, GCP) kullanıyorsa, bu hizmetlerin kamuya açık s3 bucket'larını, storage'larını ara. Bazen s3://orneksirket.com gibi açık bir bucket bulursun, içinde tonla veri olabilir. Şirket sırları, müşteri bilgileri, yedekler... Ne ararsan.
AI Destekli OSINT Yapay zeka araçları, toplanan verileri analiz etmek için kullanılabilir. ChatGPT gibi modellerle topladığın verileri analiz ettir, hangi zafiyetlerin olabileceğini tahmin ettir. Ama unutma, AI bir araçtır, senin yerini almaz. Son kararı sen verirsin.
Blockchain OSINT Hedef kripto para veya blockchain kullanıyorsa, işlem geçmişini analiz et. Hangi cüzdanları kullanıyor, hangi borsalarda işlem yapıyor, bunlar bilgi verebilir. Belki bir çalışanın cüzdan adresi, şirketin ödeme sistemine bağlıdır.
IoT OSINT Hedefin internete açık IoT cihazları var mı? Shodan'da org
Sevgili dostlar, OSINT bir sabır işidir. Kimse size "şu siteyi kullan, şu aracı çalıştır, beş dakikada tüm veriler gelsin" demesin. OSINT; araştırmak, okumak, not almak, bağlantıları kurmak ve en önemlisi düşünmek ile yapılır. Bir araç size veriyi sunar ama o verinin kıymetini bilen ve onu doğru yerde kullanan sizsiniz.
