Allah’ın Rahmeti Ve Bereketi Üzerinize Olsun
Selamun aleyküm dostlarım. Bu makalemizde ,bir sistemin erişilebilir olup olmadığını test etmek ve TTL değerlerinden yararlanarak işletim sistemi hakkında çıkarımlarda bulunmak için ping kullanmayı. Eski sistemlerde servis bilgilerini (banner) almak için telnet kullanmak ve neden günümüzde daha modern alternatiflerin tercih edildiğini anlayacağız ve netcat (nc) kullanarak banner alma, temel port sorgulama ve basit istemci-sunucu iletişimi gerçekleştirmeyi öğreneceğiz allah’ın izniyle.
NOT:Bu Makalede kullanılan IP adresleri ile kesinlikle bir iletişime geçmeyin
WEB Browser
Web tarayıcısı, aktif keşif için kullanılabilecek en pratik ve en az şüphe çeken araçlardan biridir. Neredeyse her sistemde bulunur ve oluşturduğu trafik normal kullanıcı etkinlikleriyle aynı görünür. Bu nedenle savunma ekiplerinin, keşif amacıyla yapılan faaliyetleri meşru web gezintilerinden ayırt etmesi oldukça zor olabilir.
Birçok modern site ayrıca HTTP/3’ü de destekler; bu protokol QUIC üzerinden çalışır. QUIC, başlangıçta Google tarafından geliştirilmiş bir taşıma protokolüdür ve TCP ile TLS’in işlevlerini tek bir protokolde, UDP port 443 üzerinden birleştirir. Sonuç olarak, geleneksel TCP+TLS bağlantılarına göre daha hızlı ve güvenilir bir iletişim sağlanır. Tarayıcıda Network (Ağ) sekmesinde, protokol sütunu h3 olarak görünüyorsa bu, HTTP/3 trafiğini gösterir.
Web servislerine standart olmayan portlardan erişmek için URL’de portu açıkça belirtebilirsiniz. Örneğin:
Bu, tarayıcı üzerinden yapılabilecek en pratik keşif tekniklerinden biridir. JavaScript kaynak dosyalarında sıklıkla şunlar bulunabilir:
Bu depolama alanlarında bazen:
Özellikle SAN kayıtları, aynı kuruluşa ait ek alt alan adlarını (subdomains) veya ilişkili alan adlarını ortaya çıkarabilir ve keşif çalışmaları için değerli bilgiler sağlayabilir.
Aşağıda Firefox Geliştirici Araçları'nın bir ekran görüntüsü bulunmaktadır. Chrome ve Edge tarayıcıları da buna oldukça benzer bir arayüz sunar.
FoxyProxy, Burp Suite, ZAP ve SOCKS5 tünelleri gibi farklı proxy'ler arasında geçiş yapmanızı sağlar. Bu özellik, bir çalışma sırasında trafiği yakalamak veya farklı araçlar üzerinden yönlendirmek gerektiğinde oldukça faydalıdır.
User-Agent Switcher and Manager, User-Agent bilgisini değiştirerek farklı tarayıcıları, işletim sistemlerini veya cihazları taklit etmenize olanak tanır. Örneğin, mobil Safari ya da eski bir tarayıcı sürümü gibi davranarak mobil cihazlara özel uç noktaları (endpoints) veya belirli sürümlere özgü davranışları keşfedebilirsiniz. Ancak günümüzde birçok WAF ve CDN, şüpheli veya sık gerçekleştirilen User-Agent değişikliklerini tespit edebilmektedir.
Wappalyzer, bir web sitesinde kullanılan teknolojileri otomatik olarak tespit eder. Bunlar arasında:
Diğer faydalı alternatifler arasında, Wappalyzer'a benzer şekilde çalışan ancak bazen farklı teknolojileri tespit edebilen BuiltWith Technology Profiler, daha hafif bir alternatif olan WhatRuns ve özellikle JavaScript kütüphaneleri ile framework'lerine odaklanan Library Detector bulunmaktadır. Zamanla çoğu kişi, kendi çalışma tarzına en uygun olan üç ila beş eklentiden oluşan küçük bir araç seti oluşturur.
Her ne kadar web'de gezinmek normal bir kullanıcı etkinliği gibi görünse de, alışılmadık davranış kalıpları modern WAF'lerin veya uç nokta tespit sistemlerinin davranış tabanlı kurallarını tetikleyebilir. Çok hızlı sayfa yüklemeleri, değiştirilmiş HTTP başlıkları (headers), Geliştirici Araçları'nın (DevTools) sık kullanımı ve olağan dışı User-Agent değerleri, savunma ekiplerinin dikkat ettiği göstergeler arasındadır.
Bu nedenle temel amaç, mümkün olduğunca meşru bir kullanıcının davranışlarını taklit etmektir.
Ping
Ping ismi, sonarın çıkardığı "ping" sesinden gelir. Sonarda bir sinyal gönderilir ve geri dönen yankı dinlenir. Ağ iletişiminde de ping komutu benzer şekilde çalışır. Uzak bir sisteme küçük bir test paketi gönderir ve karşı taraftan bir yanıt bekler.
Bu basit iletişim sayesinde hedef sistemin:
Kısacası ping, bir sistemin ağ üzerindeki varlığını ve erişilebilirliğini doğrulamak için kullanılan en temel araçlardan biridir.
Bu iletişim oldukça hafif ve hızlıdır; bu yüzden ping, daha detaylı taramalara geçmeden önce yapılan ilk temel kontrol yöntemi olarak standart hâle gelmiştir.
Bu komut 10.112.131.110 adresine 5 adet ICMP Echo Request paketi gönderir ve gelen yanıtları görüntüler. Paketlerin gönderimi tamamlandıktan sonra ping işlemi otomatik olarak sonlanır
Bir ana bilgisayar adı (hostname) da ping'lenebilir. Bu durumda, ping işlemi başlamadan önce DNS çözümlemesi gerçekleştirilir.
Windows'ta ise aynı işlev için -n parametresi kullanılır.
Linux'ta paket sayısını belirtmezseniz, ping komutu süresiz olarak çalışmaya devam eder. Durdurmak için Ctrl + C yapmanız gerekmektedir.
İlk komut hedefe yalnızca IPv4 kullanarak beş ping paketi gönderir. İkinci komut ise hedefe yalnızca IPv6 üzerinden beş ping paketi gönderir. Bu sayede her iki protokolün erişilebilirliği ayrı ayrı test edilebilir.
Başarılı bir ping sonucunda genellikle şu bilgiler görüntülenir:
Hedef, gönderilen beş isteğin tamamına yanıt vermiştir; bu da sistemin çevrimiçi olduğunu ve ağ üzerinden erişilebildiğini doğrular. %0 paket kaybı (packet loss), ağ yolunun sorunsuz çalıştığını gösterir. Yaklaşık 0,5 ms olan gidiş-dönüş süresi (round-trip time) oldukça düşüktür; bu da hedefin büyük olasılıkla aynı yerel ağ üzerinde bulunduğunu gösterir.
TTL (Time To Live) alanı ise özellikle dikkat edilmesi gereken bir bilgidir. Adında "Time" (zaman) geçmesine rağmen TTL aslında bir paketin düşürülmeden önce geçebileceği maksimum yönlendirici (hop) sayısını ifade eder. Paket geçtiği her yönlendiricide TTL değeri bir azaltılır. Başlangıç TTL değeri işletim sistemi tarafından belirlenir; bu nedenle işletim sistemi tespiti (OS fingerprinting) açısından yararlı bir gösterge olabilir. Linux sistemleri genellikle 64, Windows sistemleri ise genellikle 128 başlangıç TTL değeri kullanır.
Ancak paket size ulaşana kadar aradaki yönlendiriciler bu değeri azaltır. Örneğin, bir yanıtta görülen TTL değeri 58, büyük olasılıkla altı yönlendirici uzaklıktaki bir Linux sistemine işaret eder; bu durum farklı bir işletim sistemi kullanıldığı anlamına gelmez. Sonuçları yorumlarken bu noktayı göz önünde bulundurmak önemlidir.
Çıktı Yorumlama: Yanıt yok
Yanıt alınamamasının birkaç yaygın nedeni vardır. Laboratuvar makinesi kapalı olabilir, çökmüş olabilir veya hâlâ açılış sürecinde olabilir. Ağ üzerindeki bir yönlendirici (router) ya da güvenlik duvarı (firewall), ICMP Echo Request paketlerini engelliyor olabilir. Hedef sistem, ICMP trafiğini düşüren bir NAT (Network Address Translation) arkasında bulunabilir.
Çoğu Windows sürümünde Windows Güvenlik Duvarı, varsayılan olarak ping isteklerini engeller. Kurumsal güvenlik duvarları, AWS, Azure ve GCP gibi bulut hizmet sağlayıcıları ile modern WAF ve CDN çözümleri de ICMP trafiğini sıklıkla tamamen engellemektedir.
Ayrıca sorun her zaman hedef tarafta olmayabilir; kullandığınız ağ veya kendi sisteminiz de dışarıya gönderilen ICMP paketlerini engelliyor olabilir. Bu nedenle ping'e yanıt alınamaması, hedef sistemin mutlaka kapalı veya erişilemez olduğu anlamına gelmez.
TACEROUTE
Traceroute komutu, paketlerin sizin sisteminizden hedef bir sisteme giderken izlediği yolu takip eder. Amacı, yol üzerindeki yönlendiricilerin (hop'ların) IP adreslerini keşfetmek ve hedefe ulaşana kadar arada kaç yönlendirici bulunduğunu belirlemektir. Bu bilgiler; ağ topolojisini anlamak, filtreleme veya gecikmenin hangi noktada meydana geldiğini tespit etmek ve ağ altyapısını haritalandırmak açısından faydalıdır.
Ancak paketlerin izlediği yol sabit değildir. Birçok yönlendirici, ağdaki değişikliklere uyum sağlayan BGP ve OSPF gibi dinamik yönlendirme protokollerini kullanır. Ayrıca modern ağlarda yük dengeleme (load balancing) ve anycast routing teknikleri yaygın olarak kullanıldığından, aynı komutun art arda çalıştırıldığı durumlarda bile paketler farklı yollar izleyebilir.
Linux ve macOS sistemlerinde komut şu şekilde kullanılır:
Windows sistemlerinde ise eşdeğer komut şöyledir:
IPv6 adresleri için aşağıdaki komut kullanılabilir:
Aşağıdaki diyagramda, TTL değeri 64 olan bir paketin bir sistemden ayrılışı gösterilmektedir. Paket, her biri TTL değerini bir azaltan dört yönlendiriciden geçtikten sonra hedefe TTL değeri 60 ile ulaşır.
Traceroute, TTL değeri 1'den başlayarak kademeli şekilde artırılan paketler göndererek, yol üzerindeki her yönlendiricinin sırayla IP adresini ortaya çıkarmasını sağlar.
Bazı yönlendiriciler, ICMP Time-to-Live Exceeded (TTL Süresi Aşıldı) mesajlarını göndermeyecek şekilde yapılandırılmıştır. Bu durum, keşif faaliyetlerini zorlaştırmak amacıyla tasarlanmış güvenli ortamlarda yaygın olarak görülür. Bu tür yönlendiriciler, traceroute çıktısında * (yıldız işareti) olarak görünür.
Linux'ta traceroute, varsayılan olarak UDP datagramları gönderir. UDP filtrelerini aşmak amacıyla TCP tabanlı izleme yapmak isterseniz aşağıdaki komutu kullanabilirsiniz:
ICMP tabanlı izleme gerçekleştirmek için ise şu komut kullanılır:
Bu seçenekler, ağ üzerinde farklı filtreleme ve güvenlik politikaları bulunduğunda hedefe giden yolu daha etkili şekilde analiz etmenize yardımcı olabilir.
Bu çıktı, her biri bir hop (sıçrama) temsil eden numaralandırılmış 14 satır içermektedir. Sistem, her TTL değeri için üç paket gönderir; bu nedenle her satırda en fazla üç IP adresi ve üç gidiş-dönüş süresi (round-trip time) görürsünüz. Bazı satırlarda aynı hop numarası için farklı IP adresleri görünmesinin nedeni, yük dengelemenin (load balancing) her üç paketin biraz farklı yollar izlemesine neden olmasıdır.
12. satırı ele alalım. 99.83.69.207 adresindeki yönlendirici, üç paketin tamamına yanıt vermiştir ve gidiş-dönüş süreleri sırasıyla 17.603 ms, 15.827 ms ve 17.351 ms’dir. 3. satırda ise üç paketten yalnızca biri yanıt almıştır. Diğer iki * sembolü, kalan iki ICMP Time-to-Live Exceeded mesajının yönlendirici tarafından ya düşürüldüğünü ya da engellendiğini gösterir.
Son satır (14. hop), traceroute başlığında random.com için gösterilen hedef IP adresiyle eşleşen 172.67.69.208 adresini göstermektedir. Bu, traceroute işleminin toplam 14 hop boyunca başarıyla tamamlandığı anlamına gelir. 1 ile 13 arasındaki hop’lar ara yönlendiricileri, 14. hop ise doğrudan hedefi temsil eder.
26. hop, hedef olan 104.26.11.229 adresidir ve 1 ile 25 arasındaki hop’lar ara yönlendiricilerdir. İki çalıştırma karşılaştırıldığında, ne hop sayısının ne de yol üzerindeki yönlendiricilerin aynı kaldığı görülmektedir. Bu durum, özel
likle Cloudflare ve Akamai gibi CDN’lerin kullanıldığı, anycast ve yük dengeleme mekanizmalarıyla yolları optimize ettiği dış ağ trafiğinde beklenen bir davranıştır.
Bu örneklerden üç temel gözlem çıkarılabilir. Sisteminiz ile hedef arasındaki hop sayısı, komutu çalıştırdığınız zamana bağlı olarak değişebilir. Paketlerin aynı yolu izlemesi garanti değildir; kısa zaman aralıklarında bile yük dengeleme, yedeklilik (failover) mekanizmaları ve dinamik yönlendirme güncellemeleri yolu değiştirebilir. Bazı yönlendiriciler, kapsamına bağlı olarak inceleyebileceğiniz genel IP adresleri döndürebilir; ancak bunlar üçüncü taraflara ait olabilir. Bazı yönlendiriciler ise hiç yanıt döndürmez; bu durum hız sınırlama (rate limiting), güvenlik duvarı kuralları veya ICMP yanıtlarını bastıran yapılandırmalardan kaynaklanabilir.
Telnet
TELNET (Teletype Network) protokolü, 1969 yılında uzak bir sistemle komut satırı arayüzü üzerinden iletişim kurmak amacıyla geliştirilmiştir. telnet komutu, bu protokolü uzaktan yönetim için kullanır ve varsayılan olarak 23 numaralı port üzerinden çalışır. Güvenlik açısından telnet, kullanıcı adları ve şifreler dahil olmak üzere tüm verileri düz metin (cleartext) olarak gönderir. Bu durum, iletişim kanalına erişimi olan herkesin giriş bilgilerini kolayca ele geçirebilmesini mümkün kılar. Güvenli alternatif ise tüm trafiği şifreleyen ve günümüzde uzak komut satırı erişimi için standart hâle gelen SSH (Secure Shell) protokolüdür.
Güvenlik eksikliklerine rağmen, telnet istemcisi keşif (reconnaissance) açısından faydalı bir özelliğe sahiptir. TCP üzerinden çalıştığı için herhangi bir TCP portuna bağlanmak ve sunucunun verdiği yanıtı gözlemlemek için kullanılabilir. Bu teknik banner grabbing (banner alma) olarak adlandırılır. Bir servise bağlanılır ve sunucunun gönderdiği ilk yanıt olan "banner" okunur. Bu banner’lar çoğunlukla o portta çalışan yazılımın adı ve sürümü gibi bilgileri ortaya çıkarır.
Sistemde telnet yüklü değilse, Debian ve Ubuntu sistemlerinde apt install telnet komutuyla kurulabilir. Ancak genel olarak benzer işlevleri daha esnek şekilde sunan netcat (nc) ve curl gibi alternatifler tercih edilir.
Aşağıdaki örnek, 80 numaralı portta çalışan bir web sunucusuna karşı banner grabbing işlemini göstermektedir. telnet 10.112.131.110 80 komutu ile bağlantı kurulur, ardından minimum bir HTTP isteği gönderilir. GET / HTTP/1.1 komutunun ardından host: example yazılması ve Enter tuşuna iki kez basılması, yanıt almak için yeterlidir.
Burada dikkat çeken alan Server: nginx/1.6.2 bilgisidir; bu ifade, web sunucusu yazılımının türünü ve sürümünü ortaya çıkarır. Bu da aktif keşfin (active reconnaissance) tam olarak hedeflediği türde bir bilgidir. Yazılım sürümleri, CVE ve Exploit-DB gibi veritabanlarında bilinen güvenlik açıklarıyla karşılaştırılabilir.
Aynı banner alma tekniği (banner-grabbing), TCP tabanlı tüm servislerde çalışır. Bir mail sunucusuna bağlanıldığında HTTP yerine SMTP veya POP3 komutları kullanılır. Eğer 21 numaralı portta çalışan bir FTP sunucusuna bağlanılırsa, sunucu genellikle herhangi bir komut gerektirmeden bağlantı kurulur kurulmaz banner bilgisini gönderir. Temel prensip her zaman aynıdır: porta bağlan, sunucunun gönderdiği yanıtı oku ve gerekirse protokole özel komutlarla daha fazla bilgi elde et.
Modern ortamlarda birçok servis şifreleme kullanır. Örneğin SMTPS 465 numaralı portta, HTTPS ise 443 numaralı portta çalışır. Telnet şifrelenmiş bağlantıları işleyemez. HTTPS için curl --head https://10.112.131.110 veya openssl s_client -connect 10.112.131.110:443 kullanılabilir. TLS ile sarılmış diğer servisler için ise openssl s_client veya ncat --ssl uygun araçlardır.
NetCat
Netcat (kısaca nc), hem TCP hem de UDP protokollerini destekleyen çok yönlü bir ağ aracıdır. Dinleyen (listening) bir porta bağlanan bir istemci gibi çalışabildiği gibi, istediğiniz bir portta dinleme yapan bir sunucu gibi de davranabilir. Bu çift yönlü yetenek, onu banner alma (banner grabbing), port kontrolü, basit dosya transferleri ve temel istemci-sunucu iletişimi için oldukça kullanışlı hale getirir. Nmap projesine ait ncat gibi modern sürümler ise IPv6 ve SSL şifrelemesini de destekleyerek, telnet gibi eski araçlara kıyasla daha esnek bir kullanım sunar.
Bu komutla hedef portuna bağlanırsınız, ardından sunucunun yanıtını okumak için kullanılan protokole uygun komutlar gönderirsiniz. Dikkat edilmesi gereken nokta, GET satırından sonra bazı durumlarda satır atlamak için Shift + Enter tuş kombinasyonunu kullanmanız gerekebileceğidir.
Bu örnekte nc 10.112.131.110 80, 80 numaralı porta bir TCP bağlantısı açar. Ardından gönderilen GET / HTTP/1.1 HTTP isteği ve host: netcat satırı, Server: nginx/1.6.2 bilgisini içeren bir yanıt üretir; bu da web sunucusu yazılımını ve sürümünü ortaya çıkarır.
Aynı yöntem, TCP tabanlı tüm servisler için geçerlidir. 21 numaralı portta çalışan bir FTP sunucusuna nc 10.112.131.110 21 komutu ile bağlanıldığında, genellikle herhangi bir komut gerektirmeden sunucu yazılımını ve sürümünü gösteren bir banner hemen görüntülenir. 25 numaralı portta çalışan bir SMTP sunucusuna bağlanıldığında ise posta sunucusunu tanımlayan bir banner alınır. Temel prensip tüm protokoller için aynıdır: Bağlan, banner’ı oku ve gerekirse protokole özel komutlar gönder.
Sunucu tarafında, 1234 numaralı portta dinleme başlatmak için aşağıdaki komut kullanılır:
İstemci tarafında ise bağlantı kurmak için şu komut çalıştırılır:
Bağlantı kurulduktan sonra, bir tarafta yazılan herhangi bir metin karşı tarafa iletilir.
-p bayrağı, port numarasından hemen önce yer almalıdır. -n bayrağı ise DNS sorgularını ve buna bağlı uyarıları engeller. 1024’ün altındaki port numaralarında dinleme yapabilmek için root yetkileri gereklidir. IPv6 üzerinde dinleme yapmak için nc -6 -lp 1234 komutuyla -6 bayrağı eklenir. Hassas veri aktarımı için şifreleme gerekiyorsa, ncat --ssl kullanılabilir veya nc, stunnel gibi bir araçla birlikte eşleştirilebilir.
Hepisini Bir Araya Getirmek
Bu makale, aktif keşif (active reconnaissance) için kullanılan beş temel aracı ele almıştır. Geliştirici Araçları (Developer Tools) içeren web tarayıcısı; sunucu teknolojilerini, HTTP başlıklarını (headers), JavaScript kaynaklarını ve sertifika detaylarını ortaya çıkarır. ping, bir hedefin erişilebilir olup olmadığını doğrular ve TTL üzerinden işletim sistemi hakkında ipuçları sağlar. traceroute, sizinle hedef arasındaki ağ yolunu haritalandırarak aradaki yönlendiricileri ve olası filtreleme noktalarını gösterir. telnet ve netcat, belirli portlara bağlanarak banner bilgisi almayı ve çalışan servisleri sürümleriyle birlikte tespit etmeyi sağlar.
Bu araçlar tek başlarına basit görünse de, birlikte kullanıldıklarında daha gelişmiş tarayıcılara geçmeden önce hedef hakkında yapılandırılmış bir tablo oluşturmanıza yardımcı olur. Önce ping ile bir sistemin aktif olup olmadığı doğrulanabilir, ardından traceroute ile ağ yolu anlaşılabilir ve sonrasında nc ile belirli portlar test edilerek servisler tespit edilebilir. HTTP tabanlı servislerde banner alma için telnet yerine curl -I 10.112.136.108 veya nc 10.112.136.108 PORT tercih edilmelidir; çünkü bu araçlar daha güvenli ve esnek seçenekler sunar.
Okuduğunuz için teşekkür ederim
Selamun aleyküm dostlarım. Bu makalemizde ,bir sistemin erişilebilir olup olmadığını test etmek ve TTL değerlerinden yararlanarak işletim sistemi hakkında çıkarımlarda bulunmak için ping kullanmayı. Eski sistemlerde servis bilgilerini (banner) almak için telnet kullanmak ve neden günümüzde daha modern alternatiflerin tercih edildiğini anlayacağız ve netcat (nc) kullanarak banner alma, temel port sorgulama ve basit istemci-sunucu iletişimi gerçekleştirmeyi öğreneceğiz allah’ın izniyle.
NOT:Bu Makalede kullanılan IP adresleri ile kesinlikle bir iletişime geçmeyin
WEB Browser
Web tarayıcısı, aktif keşif için kullanılabilecek en pratik ve en az şüphe çeken araçlardan biridir. Neredeyse her sistemde bulunur ve oluşturduğu trafik normal kullanıcı etkinlikleriyle aynı görünür. Bu nedenle savunma ekiplerinin, keşif amacıyla yapılan faaliyetleri meşru web gezintilerinden ayırt etmesi oldukça zor olabilir.
Taşıma Katmanı Temelleri
Tarayıcılar, düz HTTP için varsayılan olarak TCP port 80 üzerinden bağlanır; ancak günümüzde çoğu site otomatik olarak HTTPS’e yönlendirdiği için bu nadiren kullanılır. HTTPS için standart port TCP 443’tür ve günümüzde neredeyse tüm web siteleri bu portu kullanır.Birçok modern site ayrıca HTTP/3’ü de destekler; bu protokol QUIC üzerinden çalışır. QUIC, başlangıçta Google tarafından geliştirilmiş bir taşıma protokolüdür ve TCP ile TLS’in işlevlerini tek bir protokolde, UDP port 443 üzerinden birleştirir. Sonuç olarak, geleneksel TCP+TLS bağlantılarına göre daha hızlı ve güvenilir bir iletişim sağlanır. Tarayıcıda Network (Ağ) sekmesinde, protokol sütunu h3 olarak görünüyorsa bu, HTTP/3 trafiğini gösterir.
Web servislerine standart olmayan portlardan erişmek için URL’de portu açıkça belirtebilirsiniz. Örneğin:
Geliştirici Araçları (Developer Tools)
Windows ve Linux'ta Ctrl + Shift + I, macOS'ta ise Option + Command + I tuşlarına basarak Firefox, Chrome, Edge veya Chromium tabanlı çoğu tarayıcıda Geliştirici Araçları'nı açabilirsiniz. Bu araçlarda bulunan bazı sekmeler keşif çalışmaları için doğrudan faydalıdır.Network (Ağ) Sekmesi
Network sekmesi, tüm istekleri ve yanıtları gerçek zamanlı olarak gösterir. Burada:- İstek (request) ve yanıt (response) başlıkları
- Server
- X-Powered-By
- Content-Security-Policy
- Zamanlama bilgileri
- HTTP durum kodları
- Gönderilen ve alınan çerezler (cookies)
Console (Konsol) Sekmesi
Console sekmesi sayesinde:- Sayfa bağlamında doğrudan JavaScript kodları çalıştırabilir,
- Hata mesajlarını görüntüleyebilir,
- DOM (Document Object Model) ile etkileşim kurabilirsiniz.
Sources (Kaynaklar) Sekmesi
Sources sekmesi, sayfa tarafından yüklenen:- JavaScript dosyalarını,
- CSS dosyalarını,
- HTML dosyalarını
Bu, tarayıcı üzerinden yapılabilecek en pratik keşif tekniklerinden biridir. JavaScript kaynak dosyalarında sıklıkla şunlar bulunabilir:
- Sabit kodlanmış (hardcoded) API uç noktaları (endpoints),
- Dizin yapıları,
- Dahili servislere ait referanslar,
- Geliştiricilerin herkese açık olmasını istemediği yorumlar.
Application (Uygulama) Sekmesi
Application sekmesindeki Storage (Depolama) bölümünde:- Cookies (Çerezler),
- Local Storage,
- Session Storage
Bu depolama alanlarında bazen:
- Oturum belirteçleri (session tokens),
- Yanlışlıkla istemci tarafında açığa çıkarılmış API anahtarları,
- Takip kimlikleri (tracking IDs),
- Kimlik doğrulama verileri
Security (Güvenlik) Sekmesi
Security sekmesi, SSL/TLS sertifikasıyla ilgili ayrıntıları gösterir:- Sertifikayı veren kuruluş (Issuer),
- Geçerlilik süresi,
- Subject Alternative Names (SANs)
Özellikle SAN kayıtları, aynı kuruluşa ait ek alt alan adlarını (subdomains) veya ilişkili alan adlarını ortaya çıkarabilir ve keşif çalışmaları için değerli bilgiler sağlayabilir.
Aşağıda Firefox Geliştirici Araçları'nın bir ekran görüntüsü bulunmaktadır. Chrome ve Edge tarayıcıları da buna oldukça benzer bir arayüz sunar.
Tarayıcı Eklentileri
Tarayıcı eklentileri, tarayıcınızı daha yetenekli bir keşif platformuna dönüştürebilir. Aşağıdaki eklentiler günümüzde yaygın olarak kullanılmakta ve aktif olarak geliştirilmektedir.FoxyProxy, Burp Suite, ZAP ve SOCKS5 tünelleri gibi farklı proxy'ler arasında geçiş yapmanızı sağlar. Bu özellik, bir çalışma sırasında trafiği yakalamak veya farklı araçlar üzerinden yönlendirmek gerektiğinde oldukça faydalıdır.
User-Agent Switcher and Manager, User-Agent bilgisini değiştirerek farklı tarayıcıları, işletim sistemlerini veya cihazları taklit etmenize olanak tanır. Örneğin, mobil Safari ya da eski bir tarayıcı sürümü gibi davranarak mobil cihazlara özel uç noktaları (endpoints) veya belirli sürümlere özgü davranışları keşfedebilirsiniz. Ancak günümüzde birçok WAF ve CDN, şüpheli veya sık gerçekleştirilen User-Agent değişikliklerini tespit edebilmektedir.
Wappalyzer, bir web sitesinde kullanılan teknolojileri otomatik olarak tespit eder. Bunlar arasında:
- CMS platformları,
- Web sunucuları,
- JavaScript çatıları (frameworks),
- Analitik araçlar,
- CDN hizmetleri,
- Veritabanları
Diğer faydalı alternatifler arasında, Wappalyzer'a benzer şekilde çalışan ancak bazen farklı teknolojileri tespit edebilen BuiltWith Technology Profiler, daha hafif bir alternatif olan WhatRuns ve özellikle JavaScript kütüphaneleri ile framework'lerine odaklanan Library Detector bulunmaktadır. Zamanla çoğu kişi, kendi çalışma tarzına en uygun olan üç ila beş eklentiden oluşan küçük bir araç seti oluşturur.
Her ne kadar web'de gezinmek normal bir kullanıcı etkinliği gibi görünse de, alışılmadık davranış kalıpları modern WAF'lerin veya uç nokta tespit sistemlerinin davranış tabanlı kurallarını tetikleyebilir. Çok hızlı sayfa yüklemeleri, değiştirilmiş HTTP başlıkları (headers), Geliştirici Araçları'nın (DevTools) sık kullanımı ve olağan dışı User-Agent değerleri, savunma ekiplerinin dikkat ettiği göstergeler arasındadır.
Bu nedenle temel amaç, mümkün olduğunca meşru bir kullanıcının davranışlarını taklit etmektir.
Ping
Ping ismi, sonarın çıkardığı "ping" sesinden gelir. Sonarda bir sinyal gönderilir ve geri dönen yankı dinlenir. Ağ iletişiminde de ping komutu benzer şekilde çalışır. Uzak bir sisteme küçük bir test paketi gönderir ve karşı taraftan bir yanıt bekler.
Bu basit iletişim sayesinde hedef sistemin:
- Ağ üzerinden erişilebilir olup olmadığı,
- Çevrimiçi (online) olup olmadığı,
- Gönderilen isteklere yanıt verip vermediği
Kısacası ping, bir sistemin ağ üzerindeki varlığını ve erişilebilirliğini doğrulamak için kullanılan en temel araçlardan biridir.
Ping Nasıl Çalışır
Ping, ICMP (Internet Control Message Protocol) protokolünü kullanır. Bir ICMP Echo Request (Yankı İsteği) paketi (type 8) gönderir. Eğer hedef bu paketi alır ve yanıt vermesine izin verilmişse, ICMP Echo Reply (Yankı Yanıtı) (type 0) paketiyle geri döner.Bu iletişim oldukça hafif ve hızlıdır; bu yüzden ping, daha detaylı taramalara geçmeden önce yapılan ilk temel kontrol yöntemi olarak standart hâle gelmiştir.
Temel Kullanım
Linux ve macOS sistemlerinde, gönderilecek paket sayısını belirtmek için -c parametresi kullanılır.
Kod:
ping -c 5 10.112.131.110
Bir ana bilgisayar adı (hostname) da ping'lenebilir. Bu durumda, ping işlemi başlamadan önce DNS çözümlemesi gerçekleştirilir.
Kod:
ping -c 5 random.com
Kod:
ping -n 5 10.112.131.110
Kod:
ping -4 -c 5 10.112.131.110
ping -6 -c 5 MACHINE_IPV6
Çıktının Yorumlanması: Başarılı Bir Ping
Aşağıdaki örnek, çalışır durumda olan (alive) ve ICMP trafiğine izin veren bir hedef sistemi göstermektedir. Bu durumda hedef, gönderilen ICMP Echo Request paketlerine ICMP Echo Reply paketleriyle yanıt verir.Başarılı bir ping sonucunda genellikle şu bilgiler görüntülenir:
- Hedefin IP adresi
- Gönderilen ve alınan paket sayısı
- Paket kaybı yüzdesi (packet loss)
- Her yanıtın gecikme süresi (latency veya round-trip time)
- Minimum, ortalama ve maksimum yanıt süreleri
Kod:
ejder@CW-ommah:~/İndirilenler$ ping -c 5 10.112.131.110
PING 10.112.131.110 (10.112.131.110) 56(84) bytes of data.
64 bytes from 10.112.131.110: icmp_seq=1 ttl=62 time=66.3 ms
64 bytes from 10.112.131.110: icmp_seq=2 ttl=62 time=64.5 ms
64 bytes from 10.112.131.110: icmp_seq=3 ttl=62 time=63.3 ms
64 bytes from 10.112.131.110: icmp_seq=4 ttl=62 time=63.3 ms
^C
--- 10.112.131.110 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 63.258/64.330/66.294/1.237 ms
Hedef, gönderilen beş isteğin tamamına yanıt vermiştir; bu da sistemin çevrimiçi olduğunu ve ağ üzerinden erişilebildiğini doğrular. %0 paket kaybı (packet loss), ağ yolunun sorunsuz çalıştığını gösterir. Yaklaşık 0,5 ms olan gidiş-dönüş süresi (round-trip time) oldukça düşüktür; bu da hedefin büyük olasılıkla aynı yerel ağ üzerinde bulunduğunu gösterir.
TTL (Time To Live) alanı ise özellikle dikkat edilmesi gereken bir bilgidir. Adında "Time" (zaman) geçmesine rağmen TTL aslında bir paketin düşürülmeden önce geçebileceği maksimum yönlendirici (hop) sayısını ifade eder. Paket geçtiği her yönlendiricide TTL değeri bir azaltılır. Başlangıç TTL değeri işletim sistemi tarafından belirlenir; bu nedenle işletim sistemi tespiti (OS fingerprinting) açısından yararlı bir gösterge olabilir. Linux sistemleri genellikle 64, Windows sistemleri ise genellikle 128 başlangıç TTL değeri kullanır.
Ancak paket size ulaşana kadar aradaki yönlendiriciler bu değeri azaltır. Örneğin, bir yanıtta görülen TTL değeri 58, büyük olasılıkla altı yönlendirici uzaklıktaki bir Linux sistemine işaret eder; bu durum farklı bir işletim sistemi kullanıldığı anlamına gelmez. Sonuçları yorumlarken bu noktayı göz önünde bulundurmak önemlidir.
Çıktı Yorumlama: Yanıt yok
Kod:
ejder@CW-ommah:~/İndirilenler$ ping -c 5 10.112.131.110
PING 10.112.131.110 (10.112.131.110) 56(84) bytes of data.
From 10.112.131.110 icmp_seq=5 Destination Host Unreachable
From 10.112.131.110 icmp_seq=5 Destination Host Unreachable
From 10.112.131.110 icmp_seq=5 Destination Host Unreachable
From 10.112.131.110 icmp_seq=5 Destination Host Unreachable
From 10.112.131.110 icmp_seq=5 Destination Host Unreachable
--- 10.112.131.110 ping statistics ---
5 packets transmitted, 0 received, +5 errors, 100% packet loss, time 4098ms
Çoğu Windows sürümünde Windows Güvenlik Duvarı, varsayılan olarak ping isteklerini engeller. Kurumsal güvenlik duvarları, AWS, Azure ve GCP gibi bulut hizmet sağlayıcıları ile modern WAF ve CDN çözümleri de ICMP trafiğini sıklıkla tamamen engellemektedir.
Ayrıca sorun her zaman hedef tarafta olmayabilir; kullandığınız ağ veya kendi sisteminiz de dışarıya gönderilen ICMP paketlerini engelliyor olabilir. Bu nedenle ping'e yanıt alınamaması, hedef sistemin mutlaka kapalı veya erişilemez olduğu anlamına gelmez.
| Sonuç | En Olası Anlamı | Sonraki Adım |
|---|---|---|
| Hızlı yanıtlar, düşük veya hiç paket kaybı yok | Hedef çevrimiçi ve ICMP trafiğine izin veriyor | Port taramasına geçin |
| "Destination Host Unreachable" (Hedef Ana Bilgisayara Ulaşılamıyor) | Hedef kapalı veya hedefe giden bir ağ yolu bulunmuyor | Makinenin açık olup olmadığını kontrol edin |
| Hata mesajı olmadan %100 paket kaybı | ICMP trafiği filtreleniyor veya engelleniyor | Nmap ile TCP/UDP tabanlı host keşfi deneyin |
| Yüksek gecikme süresi veya yoğun paket kaybı | Ağ yoğunluğu, uzun mesafe veya filtreleme söz konusu olabilir | Ağ yolunu traceroute ile inceleyin |
TACEROUTE
Traceroute komutu, paketlerin sizin sisteminizden hedef bir sisteme giderken izlediği yolu takip eder. Amacı, yol üzerindeki yönlendiricilerin (hop'ların) IP adreslerini keşfetmek ve hedefe ulaşana kadar arada kaç yönlendirici bulunduğunu belirlemektir. Bu bilgiler; ağ topolojisini anlamak, filtreleme veya gecikmenin hangi noktada meydana geldiğini tespit etmek ve ağ altyapısını haritalandırmak açısından faydalıdır.
Ancak paketlerin izlediği yol sabit değildir. Birçok yönlendirici, ağdaki değişikliklere uyum sağlayan BGP ve OSPF gibi dinamik yönlendirme protokollerini kullanır. Ayrıca modern ağlarda yük dengeleme (load balancing) ve anycast routing teknikleri yaygın olarak kullanıldığından, aynı komutun art arda çalıştırıldığı durumlarda bile paketler farklı yollar izleyebilir.
Linux ve macOS sistemlerinde komut şu şekilde kullanılır:
Kod:
traceroute 10.112.131.110
Kod:
tracert 10.112.131.110
Kod:
traceroute -6 MACHINE_IPV6
Traceroute Nasıl Çalışır?
Bir sistemden hedefe giden tam ağ yolunu doğrudan öğrenmenin bir yöntemi yoktur. Bunun yerine traceroute, IP başlığındaki TTL (Time To Live) alanından yararlanır. Bir paketi işleyen her yönlendirici (router), paketi iletmeden önce TTL değerini bir azaltır. TTL değeri 0'a ulaştığında, yönlendirici paketi düşürür ve göndericiye bir ICMP Time-to-Live Exceeded (TTL Süresi Aşıldı) mesajı gönderir.Aşağıdaki diyagramda, TTL değeri 64 olan bir paketin bir sistemden ayrılışı gösterilmektedir. Paket, her biri TTL değerini bir azaltan dört yönlendiriciden geçtikten sonra hedefe TTL değeri 60 ile ulaşır.
Traceroute, TTL değeri 1'den başlayarak kademeli şekilde artırılan paketler göndererek, yol üzerindeki her yönlendiricinin sırayla IP adresini ortaya çıkarmasını sağlar.
- TTL = 1 olan bir paket gönderildiğinde, ilk yönlendirici paketi alır, TTL değerini 0'a düşürür, paketi atar ve bir yanıt gönderir.
- TTL = 2 olan bir paket gönderildiğinde, paket ilk yönlendiriciyi geçer ancak ikinci yönlendiricide TTL değeri 0'a ulaşır; ikinci yönlendirici paketi atarak yanıt verir.
- TTL = 3 olduğunda ise paket üçüncü yönlendiriciye kadar ulaşır ve aynı işlem tekrarlanır.
Bazı yönlendiriciler, ICMP Time-to-Live Exceeded (TTL Süresi Aşıldı) mesajlarını göndermeyecek şekilde yapılandırılmıştır. Bu durum, keşif faaliyetlerini zorlaştırmak amacıyla tasarlanmış güvenli ortamlarda yaygın olarak görülür. Bu tür yönlendiriciler, traceroute çıktısında * (yıldız işareti) olarak görünür.
Linux'ta traceroute, varsayılan olarak UDP datagramları gönderir. UDP filtrelerini aşmak amacıyla TCP tabanlı izleme yapmak isterseniz aşağıdaki komutu kullanabilirsiniz:
Kod:
traceroute -T 10.112.131.110
Kod:
traceroute -I 10.112.131.110
Çıktının Okunması
Aşağıdaki iki örnek, ev ortamından random.com adresine iki kez çalıştırılmış traceroute çıktısını göstermektedir. Bu örnekler, aynı komut art arda çalıştırıldığında ağ yollarının nasıl değişebileceğini ortaya koymaktadır.
Kod:
jder@CW-ommah$ traceroute random.com
traceroute to random.com (172.67.69.208), 30 hops max, 60 byte packets
1 ec2-3-248-240-5.eu-west-1.compute.amazonaws.com (3.248.240.5) 2.663 ms * ec2-3-248-240-13.eu-west-1.compute.amazonaws.com (3.248.240.13) 7.468 ms
2 100.66.8.86 (100.66.8.86) 43.231 ms 100.65.21.64 (100.65.21.64) 18.886 ms 100.65.22.160 (100.65.22.160) 14.556 ms
3 * 100.66.16.176 (100.66.16.176) 8.006 ms *
4 100.66.11.34 (100.66.11.34) 17.401 ms 100.66.10.14 (100.66.10.14) 23.614 ms 100.66.19.236 (100.66.19.236) 17.524 ms
5 100.66.7.35 (100.66.7.35) 12.808 ms 100.66.6.109 (100.66.6.109) 14.791 ms *
6 100.65.14.131 (100.65.14.131) 1.026 ms 100.66.5.189 (100.66.5.189) 19.246 ms 100.66.5.243 (100.66.5.243) 19.805 ms
7 100.65.13.143 (100.65.13.143) 14.254 ms 100.95.18.131 (100.95.18.131) 0.944 ms 100.95.18.129 (100.95.18.129) 0.778 ms
8 100.95.2.143 (100.95.2.143) 0.680 ms 100.100.4.46 (100.100.4.46) 1.392 ms 100.95.18.143 (100.95.18.143) 0.878 ms
9 100.100.20.76 (100.100.20.76) 7.819 ms 100.92.11.36 (100.92.11.36) 18.669 ms 100.100.20.26 (100.100.20.26) 0.842 ms
10 100.92.11.112 (100.92.11.112) 17.852 ms * 100.92.11.158 (100.92.11.158) 16.687 ms
11 100.92.211.82 (100.92.211.82) 19.713 ms 100.92.0.126 (100.92.0.126) 18.603 ms 52.93.112.182 (52.93.112.182) 17.738 ms
12 99.83.69.207 (99.83.69.207) 17.603 ms 15.827 ms 17.351 ms
13 100.92.9.83 (100.92.9.83) 17.894 ms 100.92.79.136 (100.92.79.136) 21.250 ms 100.92.9.118 (100.92.9.118) 18.166 ms
14 172.67.69.208 (172.67.69.208) 17.976 ms 16.945 ms 100.92.9.3 (100.92.9.3) 17.709 ms
12. satırı ele alalım. 99.83.69.207 adresindeki yönlendirici, üç paketin tamamına yanıt vermiştir ve gidiş-dönüş süreleri sırasıyla 17.603 ms, 15.827 ms ve 17.351 ms’dir. 3. satırda ise üç paketten yalnızca biri yanıt almıştır. Diğer iki * sembolü, kalan iki ICMP Time-to-Live Exceeded mesajının yönlendirici tarafından ya düşürüldüğünü ya da engellendiğini gösterir.
Son satır (14. hop), traceroute başlığında random.com için gösterilen hedef IP adresiyle eşleşen 172.67.69.208 adresini göstermektedir. Bu, traceroute işleminin toplam 14 hop boyunca başarıyla tamamlandığı anlamına gelir. 1 ile 13 arasındaki hop’lar ara yönlendiricileri, 14. hop ise doğrudan hedefi temsil eder.
Kod:
root@CW-ommah$ traceroute random.com
traceroute to random.com (104.26.11.229), 30 hops max, 60 byte packets
1 ec2-79-125-1-9.eu-west-1.compute.amazonaws.com (79.125.1.9) 1.475 ms * ec2-3-248-240-31.eu-west-1.compute.amazonaws.com (3.248.240.31) 9.456 ms
2 100.65.20.160 (100.65.20.160) 16.575 ms 100.66.8.226 (100.66.8.226) 23.241 ms 100.65.23.192 (100.65.23.192) 22.267 ms
3 100.66.16.50 (100.66.16.50) 2.777 ms 100.66.11.34 (100.66.11.34) 22.288 ms 100.66.16.28 (100.66.16.28) 4.421 ms
4 100.66.6.47 (100.66.6.47) 17.264 ms 100.66.7.161 (100.66.7.161) 39.562 ms 100.66.10.198 (100.66.10.198) 15.958 ms
5 100.66.5.123 (100.66.5.123) 20.099 ms 100.66.7.239 (100.66.7.239) 19.253 ms 100.66.5.59 (100.66.5.59) 15.397 ms
6 * 100.66.5.223 (100.66.5.223) 16.172 ms 100.65.15.135 (100.65.15.135) 0.424 ms
7 100.65.12.135 (100.65.12.135) 0.390 ms 100.65.12.15 (100.65.12.15) 1.045 ms 100.65.14.15 (100.65.14.15) 1.036 ms
8 100.100.4.16 (100.100.4.16) 0.482 ms 100.100.20.122 (100.100.20.122) 0.795 ms 100.95.2.143 (100.95.2.143) 0.827 ms
9 100.100.20.86 (100.100.20.86) 0.442 ms 100.100.4.78 (100.100.4.78) 0.347 ms 100.100.20.20 (100.100.20.20) 1.388 ms
10 100.92.212.20 (100.92.212.20) 11.611 ms 100.92.11.54 (100.92.11.54) 12.675 ms 100.92.11.56 (100.92.11.56) 10.835 ms
11 100.92.6.52 (100.92.6.52) 11.427 ms 100.92.6.50 (100.92.6.50) 11.033 ms 100.92.210.50 (100.92.210.50) 10.551 ms
12 100.92.210.139 (100.92.210.139) 10.026 ms 100.92.6.13 (100.92.6.13) 14.586 ms 100.92.210.69 (100.92.210.69) 12.032 ms
13 100.92.79.12 (100.92.79.12) 12.011 ms 100.92.79.68 (100.92.79.68) 11.318 ms 100.92.80.84 (100.92.80.84) 10.496 ms
14 100.92.9.27 (100.92.9.27) 11.354 ms 100.92.80.31 (100.92.80.31) 13.000 ms 52.93.135.125 (52.93.135.125) 11.412 ms
15 150.222.241.85 (150.222.241.85) 9.660 ms 52.93.135.81 (52.93.135.81) 10.941 ms 150.222.241.87 (150.222.241.87) 16.543 ms
16 100.92.228.102 (100.92.228.102) 15.168 ms 100.92.227.41 (100.92.227.41) 10.134 ms 100.92.227.52 (100.92.227.52) 11.756 ms
17 100.92.232.111 (100.92.232.111) 10.589 ms 100.92.231.69 (100.92.231.69) 16.664 ms 100.92.232.37 (100.92.232.37) 13.089 ms
18 100.91.205.140 (100.91.205.140) 11.551 ms 100.91.201.62 (100.91.201.62) 10.246 ms 100.91.201.36 (100.91.201.36) 11.368 ms
19 100.91.205.79 (100.91.205.79) 11.112 ms 100.91.205.83 (100.91.205.83) 11.040 ms 100.91.205.33 (100.91.205.33) 10.114 ms
20 100.91.211.45 (100.91.211.45) 9.486 ms 100.91.211.79 (100.91.211.79) 13.693 ms 100.91.211.47 (100.91.211.47) 13.619 ms
21 100.100.6.81 (100.100.6.81) 11.522 ms 100.100.68.70 (100.100.68.70) 10.181 ms 100.100.6.21 (100.100.6.21) 11.687 ms
22 100.100.65.131 (100.100.65.131) 10.371 ms 100.100.92.6 (100.100.92.6) 10.939 ms 100.100.65.70 (100.100.65.70) 23.703 ms
23 100.100.2.74 (100.100.2.74) 15.317 ms 100.100.66.17 (100.100.66.17) 11.492 ms 100.100.88.67 (100.100.88.67) 35.312 ms
24 100.100.16.16 (100.100.16.16) 19.155 ms 100.100.16.28 (100.100.16.28) 19.147 ms 100.100.2.68 (100.100.2.68) 13.718 ms
25 99.83.89.19 (99.83.89.19) 28.929 ms * 21.790 ms
26 104.26.11.229 (104.26.11.229) 11.070 ms 11.058 ms 11.982 ms
likle Cloudflare ve Akamai gibi CDN’lerin kullanıldığı, anycast ve yük dengeleme mekanizmalarıyla yolları optimize ettiği dış ağ trafiğinde beklenen bir davranıştır.
Bu örneklerden üç temel gözlem çıkarılabilir. Sisteminiz ile hedef arasındaki hop sayısı, komutu çalıştırdığınız zamana bağlı olarak değişebilir. Paketlerin aynı yolu izlemesi garanti değildir; kısa zaman aralıklarında bile yük dengeleme, yedeklilik (failover) mekanizmaları ve dinamik yönlendirme güncellemeleri yolu değiştirebilir. Bazı yönlendiriciler, kapsamına bağlı olarak inceleyebileceğiniz genel IP adresleri döndürebilir; ancak bunlar üçüncü taraflara ait olabilir. Bazı yönlendiriciler ise hiç yanıt döndürmez; bu durum hız sınırlama (rate limiting), güvenlik duvarı kuralları veya ICMP yanıtlarını bastıran yapılandırmalardan kaynaklanabilir.
Ek Teknikler
Gerçek zamanlı ve sürekli bir görünüm için mtr 10.112.131.110 (My Traceroute) komutunu kullanabilirsiniz. Bu araç, traceroute ile ping benzeri istatistikleri birleştirerek her hop için paket kaybı ve gecikme bilgisi sunar. Filtreleri aşmak için TCP modu ile traceroute -T 10.112.131.110 veya ICMP modu ile traceroute -I 10.112.131.110 kullanılabilir. IPv6 için ise bağımsız traceroute6 komutu, çift yığınlı (dual-stack) ağlarla uyumluluk sağlar.Telnet
TELNET (Teletype Network) protokolü, 1969 yılında uzak bir sistemle komut satırı arayüzü üzerinden iletişim kurmak amacıyla geliştirilmiştir. telnet komutu, bu protokolü uzaktan yönetim için kullanır ve varsayılan olarak 23 numaralı port üzerinden çalışır. Güvenlik açısından telnet, kullanıcı adları ve şifreler dahil olmak üzere tüm verileri düz metin (cleartext) olarak gönderir. Bu durum, iletişim kanalına erişimi olan herkesin giriş bilgilerini kolayca ele geçirebilmesini mümkün kılar. Güvenli alternatif ise tüm trafiği şifreleyen ve günümüzde uzak komut satırı erişimi için standart hâle gelen SSH (Secure Shell) protokolüdür.
Güvenlik eksikliklerine rağmen, telnet istemcisi keşif (reconnaissance) açısından faydalı bir özelliğe sahiptir. TCP üzerinden çalıştığı için herhangi bir TCP portuna bağlanmak ve sunucunun verdiği yanıtı gözlemlemek için kullanılabilir. Bu teknik banner grabbing (banner alma) olarak adlandırılır. Bir servise bağlanılır ve sunucunun gönderdiği ilk yanıt olan "banner" okunur. Bu banner’lar çoğunlukla o portta çalışan yazılımın adı ve sürümü gibi bilgileri ortaya çıkarır.
Sistemde telnet yüklü değilse, Debian ve Ubuntu sistemlerinde apt install telnet komutuyla kurulabilir. Ancak genel olarak benzer işlevleri daha esnek şekilde sunan netcat (nc) ve curl gibi alternatifler tercih edilir.
Aşağıdaki örnek, 80 numaralı portta çalışan bir web sunucusuna karşı banner grabbing işlemini göstermektedir. telnet 10.112.131.110 80 komutu ile bağlantı kurulur, ardından minimum bir HTTP isteği gönderilir. GET / HTTP/1.1 komutunun ardından host: example yazılması ve Enter tuşuna iki kez basılması, yanıt almak için yeterlidir.
Kod:
ejder@CW-ommah:~$ telnet 10.112.131.110 80
Trying 10.112.131.110...
Connected to 10.112.131.110.
Escape character is '^]'.
HTTP/1.1 200 OK
Server: nginx/1.6.2
Date: Tue, 17 Aug 2021 11:13:25 GMT
Content-Type: text/html
Content-Length: 867
Last-Modified: Tue, 17 Aug 2021 11:12:16 GMT
Connection: keep-alive
ETag: "611b9990-363"
Accept-Ranges: bytes
Aynı banner alma tekniği (banner-grabbing), TCP tabanlı tüm servislerde çalışır. Bir mail sunucusuna bağlanıldığında HTTP yerine SMTP veya POP3 komutları kullanılır. Eğer 21 numaralı portta çalışan bir FTP sunucusuna bağlanılırsa, sunucu genellikle herhangi bir komut gerektirmeden bağlantı kurulur kurulmaz banner bilgisini gönderir. Temel prensip her zaman aynıdır: porta bağlan, sunucunun gönderdiği yanıtı oku ve gerekirse protokole özel komutlarla daha fazla bilgi elde et.
Modern ortamlarda birçok servis şifreleme kullanır. Örneğin SMTPS 465 numaralı portta, HTTPS ise 443 numaralı portta çalışır. Telnet şifrelenmiş bağlantıları işleyemez. HTTPS için curl --head https://10.112.131.110 veya openssl s_client -connect 10.112.131.110:443 kullanılabilir. TLS ile sarılmış diğer servisler için ise openssl s_client veya ncat --ssl uygun araçlardır.
NetCat
Netcat (kısaca nc), hem TCP hem de UDP protokollerini destekleyen çok yönlü bir ağ aracıdır. Dinleyen (listening) bir porta bağlanan bir istemci gibi çalışabildiği gibi, istediğiniz bir portta dinleme yapan bir sunucu gibi de davranabilir. Bu çift yönlü yetenek, onu banner alma (banner grabbing), port kontrolü, basit dosya transferleri ve temel istemci-sunucu iletişimi için oldukça kullanışlı hale getirir. Nmap projesine ait ncat gibi modern sürümler ise IPv6 ve SSL şifrelemesini de destekleyerek, telnet gibi eski araçlara kıyasla daha esnek bir kullanım sunar.
Netcat ile Banner Alma
açıklanan banner alma (banner-grabbing) tekniği, nc ile de aynı şekilde çalışır. Kullanım sözdizimi şu şekildedir:
Kod:
nc 10.112.131.110 PORT
Kod:
root@CW-ommah$ nc 10.112.131.110 80
GET / HTTP/1.1
host: netcat
HTTP/1.1 200 OK
Server: nginx/1.6.2
Date: Tue, 17 Aug 2021 11:39:49 GMT
Content-Type: text/html
Content-Length: 867
Last-Modified: Tue, 17 Aug 2021 11:12:16 GMT
Connection: keep-alive
ETag: "611b9990-363"
Accept-Ranges: bytes
...
Aynı yöntem, TCP tabanlı tüm servisler için geçerlidir. 21 numaralı portta çalışan bir FTP sunucusuna nc 10.112.131.110 21 komutu ile bağlanıldığında, genellikle herhangi bir komut gerektirmeden sunucu yazılımını ve sürümünü gösteren bir banner hemen görüntülenir. 25 numaralı portta çalışan bir SMTP sunucusuna bağlanıldığında ise posta sunucusunu tanımlayan bir banner alınır. Temel prensip tüm protokoller için aynıdır: Bağlan, banner’ı oku ve gerekirse protokole özel komutlar gönder.
Netcat ile Dinleme (Listening)
Netcat, belirli bir port üzerinde dinleme yapan bir sunucu gibi de çalışabilir. Bu özellik; bağlantı testi yapmak, basit veri aktarımı gerçekleştirmek veya bir çalışma sırasında temel iletişim kanalları kurmak için kullanışlıdır.Sunucu tarafında, 1234 numaralı portta dinleme başlatmak için aşağıdaki komut kullanılır:
Kod:
nc -vnlp 1234
Kod:
nc 10.112.136.108 1234
| Seçenek | Anlamı |
|---|---|
| -l | Dinleme modu |
| -p | Port numarasını belirtir |
| -n | Yalnızca sayısal kullanım; hostname (alan adı) DNS çözümlemesi yapmaz |
| -v | Ayrıntılı çıktı (verbose), hata ayıklama için kullanışlıdır |
| -vv | Çok ayrıntılı çıktı |
| -k | İstemci bağlantısı kesildikten sonra dinlemeye devam eder |
Hepisini Bir Araya Getirmek
Bu makale, aktif keşif (active reconnaissance) için kullanılan beş temel aracı ele almıştır. Geliştirici Araçları (Developer Tools) içeren web tarayıcısı; sunucu teknolojilerini, HTTP başlıklarını (headers), JavaScript kaynaklarını ve sertifika detaylarını ortaya çıkarır. ping, bir hedefin erişilebilir olup olmadığını doğrular ve TTL üzerinden işletim sistemi hakkında ipuçları sağlar. traceroute, sizinle hedef arasındaki ağ yolunu haritalandırarak aradaki yönlendiricileri ve olası filtreleme noktalarını gösterir. telnet ve netcat, belirli portlara bağlanarak banner bilgisi almayı ve çalışan servisleri sürümleriyle birlikte tespit etmeyi sağlar.
Bu araçlar tek başlarına basit görünse de, birlikte kullanıldıklarında daha gelişmiş tarayıcılara geçmeden önce hedef hakkında yapılandırılmış bir tablo oluşturmanıza yardımcı olur. Önce ping ile bir sistemin aktif olup olmadığı doğrulanabilir, ardından traceroute ile ağ yolu anlaşılabilir ve sonrasında nc ile belirli portlar test edilerek servisler tespit edilebilir. HTTP tabanlı servislerde banner alma için telnet yerine curl -I 10.112.136.108 veya nc 10.112.136.108 PORT tercih edilmelidir; çünkü bu araçlar daha güvenli ve esnek seçenekler sunar.
| Komut | Örnek |
|---|---|
| ping | Linux veya macOS için: ping -c 10 10.112.136.108 |
| ping | Windows için: ping -n 10 10.112.136.108 |
| ping (IPv6) | ping -6 MACHINE_IPV6 veya ping6 MACHINE_IPV6 |
| traceroute | Linux veya macOS için: traceroute 10.112.136.108 |
| tracert | Windows için: tracert 10.112.136.108 |
| traceroute (IPv6) | traceroute -6 MACHINE_IPV6 veya traceroute6 MACHINE_IPV6 |
| mtr | Gerçek zamanlı yol izleme için: mtr 10.112.136.108 |
| telnet (eski) | telnet 10.112.136.108 PORT_NUMBER |
| netcat istemci olarak | nc 10.112.136.108 PORT_NUMBER |
| netcat sunucu olarak | nc -lvnp PORT_NUMBER |
| netcat (IPv6) | nc -6 MACHINE_IPV6 PORT_NUMBER |
| curl ile HTTP banner | curl -I http://10.112.136.108 veya curl -I https://10.112.136.108 |
| İşletim Sistemi | Geliştirici Araçları Kısayolu |
|---|---|
| Linux veya Windows | Ctrl + Shift + I |
| macOS | Option + Command + I |
Okuduğunuz için teşekkür ederim








