Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Sizma testi bilgi toplama

3,464 views

Published on

Sızma testi projeleri için bilgi toplama safhasının detaylı olarak aktarıldığı makaledir.

Published in: Internet

Sizma testi bilgi toplama

  1. 1. SIZMA TESTİ BİLGİ TOPLAMA
  2. 2. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 1 İçindekiler 1 Hedef IP aralığı tespiti ..............................2 1.1 Tespiti Zor IP Aralıkları.................................4 1.2 IP Aralıkları Tespit Yöntemleri......................4 2 Canlı sunucu tespiti ................................ 22 2.1 Temel TCP / IP bilgisi..................................22 2.2 Canlı sunucu tespit metodları.....................39 2.3 Full Port Tarama ........................................64 3 Enumeration.......................................... 93 3.1 Servis enumeration....................................93 3.2 İşletim sistemi enumeration.....................100 4 Kullanıcı tespiti .................................... 106 4.1 Null session..............................................106 4.2 SNMP Enumeration..................................108 4.3 Elde edilene-postaadresleri (eposta uygulamaları ve vpn kapıları)...........................115 4.4 Ofis dokümanlarının metadata’ları...........117 4.5 Diğer Kullanıcı Tespit Yöntemleri .............119 5 BTRİSK Hakkında.................................. 121
  3. 3. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 2 1 Hedef IP aralığı tespiti İnternette yerinizi alabilmekiçinyapmanızgerekenilkşeybirIPadresi almaktır. Bu IP adresinininternetüzerinde routablebirIPadresi olmasıve sunucunuzunbarınacağıcoğrafi bölge içinayrılmış birIP aralığında olmasıgereklidir. IP başlığıiçinde 4 byte’lıkbiralandaifade edilenIPadresininalabileceğideğerler0(dahil) ile (2üzeri 24) -1, yani 16.777.216 – 1 = 16.777.215 (dahil) arasıdeğerlerdir.Tabi bizbuadresleri dahahatırda kalabilecekbiçimde kullanmakiçin4byte’abölerekherbir byte’ınondalıkdeğerini de noktaişareti ile ayırıp ifade etmeyiseviyoruz.Bununlabirlikte buolası16.777.216 adetadresinbirkısmı internet’te route edilebilirkenbirkısmıise farklıamaçlar içinrezerve edilmişve internetrouter’larıtarafından iletilemezolarakayrılmıştır.BunlardanLAN networklerindesıklıklakullanılanve çoğumuzundasıklıkla karşılaştığı aralıklar10.0.0.0/8 (yani 10.0.0.0 – 10.255.255.255 aralığı), 172.16.0.0/12 (yani 172.16.0.0 – 172.31.255.255 aralığı) 192.168.0.0/16 (yani 192.168.0.0 – 192.168.255.255 aralığı) aralıklarıdır. Coğrafi olarakIP adresaralıklarını ise IANA (InternetAssignedNumbersAuthority) kurumufarklı coğrafyalariçinalt otoritelere atamıştır.
  4. 4. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 3 Ülkemizinde içindebulunduğucoğrafya(Europe,the Middle Eastandparts of Central Asia) ile ilgili IP dağıtım otoritesi RIPE(Réseaux InternetProtocol Européens) organizasyonudur. InternetüzerindeiletişimkurmakiçinihtiyacınızolacakIPadresini iki şekilde alabilirsiniz:  Birinci yol olarakbirbarındırma hizmeti firmasınınveyaabonesi olduğunuzbirISP(İnternet ServisSağlayıcı- İSS) firmasınınsize sabitolarakveyadinamikolarakatayacağıbir IPadresini kullanmaktır.DinamikolarakIPadresininatanmasındankasıtcihazveyasunucunuzuher yenidenbaşlatışınızdamüsaitolanbirIPadresininsizeatanması,statikolarakatanmasından kasıt ise cihazveyasunucunuzutekrarbaşlatsanızdaaynı IP adresini kullanmayadevam etmenizdir.  İkinci yol ise sizinbölgesel internetadresotoritesindenkendi adınızaayırtmış olduğunuzIP
  5. 5. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 4 adresleri veyaIPadresaralığındanbiradresi sunucunuzaatamanızdır. Bu bilgilerhemsaldırıyauğradığınızda yapacağınız analiziçinhemde sızma testi sürecinde hedef belirlemekiçinihtiyaçduyacağınıztemel bilgilerdir. Sızma testi projelerinde internettenyapacağınızçalışmalardahedef IPadresleri sizinle paylaşılmış olabilir.Budurumdahedef IPadreslerini araştırmanızagerekkalmaz.Ancakyine de birdenetçi hassasiyetiylepaylaşılanIPadresleriningerçektenmüşterinizeaitolupolmadığınıkontrol etmenizde faydavardır. PaylaşılanadreslerinmüşterinizinhizmetaldığıbirISP’ye aitolması,ilgili ISP’ninbu adreslerde farklımüşterilerine de hizmetveriyorolmasıgibi durumlardatümtaraflarınrızasını almak izlenmesi gerekenyol olmalıdır. Genelliklepekgörülmese de müşterinizyapacağınızinternetsızmatesti içintümhedefleri sizintespit etmenizi isteyebilir.BudurumdaIPadresaralığı tespiti ile ilgiliizlemenizgerekenadımlarageçmeden önce hedef kurumaaitancak bulmaihtimalinizinçokdüşükolduğudurumlaraörnekvermekistiyorum. 1.1Tespiti Zor IP Aralıkları Eğer kurumbir ISPkurumaait birIP aralığını kullanıyor,ancakhali hazırda bu aralıkta bulunan sunuculardanherhangi birHTTPservisi vermiyorveya buIPadresleri ile ilgili herhangi birDNSkaydı tanımlamamışsabu aralığı bulmakpekmümkündeğildir.Çünküaşağıdadadetaylıolarak açıklayacağımız IP aralığı tespityöntemlerimizkurumunadınıninternetotoritelerininveritabanlarında geçiyorolmasına(ki ISPIParalığının kullanılmasıdurumundabumümkünolmayacaktır),verdiği HTTP servislerive buservisleri verdiğisunucularınalanadlarıiçinde kurumadınıngeçiyorolmasına,veya yapacağımız forward,zone transferve bruteforce DNSsorgularındabu IPadresleriningörünmesi üzerine kuruludur.Buaçılardan hiçbirizbırakılmamışsabizimbuIP aralığını tespitetmemizzordur.Butürbir durumaörnekolarakkurumunfelaketkurtarmamerkezi içinkullandığıIParalığının bir ISP’ye aitolması ve operasyonel olarakkullanılmadığıiçinde herhangi birHTTP servisininveyaDNSkaydınınaktif olmamasını(ya da aktif olsabile bizimbruteforce yöntemi ile tespitedemememizi) verebiliriz. 1.2IP Aralıkları Tespit Yöntemleri Eğer hedef kurumunIPadreslerinitespit etmekdurumundaysakizleyebileceğimizyöntemleraşağıdaki gibidir(buyöntemlersıraylakullanılmakdurumundadeğildir,biradımdaelde edilenbilgilerdiğerbir adımda tekrarsorgulamayapmakiçinkullanılabilir): 1.2.1 1.Adım: Internet adres otoritelerinin sorgulama imkanlarınıkullanmak: İnternetadreslerinincoğrafi olarakayrıldığınıve 5 adetcoğrafi otorite tarafındanbu adreslerin paylaşımınınyönetildiğini yukarıdabelirtmiştik.Bizimde içinde bulunduğumuzcoğrafyaileilgili otoriteninRIPEolduğundan dasözetmiştik.RIPE’ıninternetsitesindensağladığıveritabanısorgulama fonksiyonalitesinikullanarakhedef kurumayöneliksorgulamalaryapabiliriz.Aşağıdagördüğünüz örneklerbufonksiyonaliteninenbasitşekildekullanımınaörneklerdir.
  6. 6. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 5 BTRiskadının geçtiği herhangi birkaydaRIPE’ınveritabanındarastlamıyoruz.Bununnedeni kendimize ait birIP adresine veyabloğunasahipolmamamız.Sağladığımıztüminternetservislerihosting firmalarınınIParalıklarındanhizmetveriyor. Google’ısorguladığımızdada haddindenfazlayanıtlakarşılaşıyoruz.EğerGoogle’esızmatesti yapıyor olsaydıkişimizoldukçauzunsürerdi.
  7. 7. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 6 Bunlardansadece birisinebaktığımızdabirIPbloğunugörebiliyoruz.RIPE’ınçoksayıda kayıt türüvar. Buradaki kayıt türü birDNS PTR (reverse IP) adreskaydınabenziyor.DNSkayıtlarıkonusunadahasonra değineceğiz,amaburadakısaca bu kayıt formatınınIP octet’lerinin(yani her1byte’lıkalanının) tersten yazılaraksonunada “in-addr.arpa”ekinineklendiğinibelirtebiliriz.Buna göre 193.186.4.0/24 IP aralığının Google’aaitolduğunutahminediyoruz. Aşağıda buaralıktan herhangi birIPadresi için(örneğin193.186.4.2 gibi) yapılanIPWhoissorgusunun sonucunugörebilirsiniz.BöylecebuaralığınGoogle’aaitolduğundandahanet eminolabiliriz.
  8. 8. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 7 Yukarıdaki sorguyuinternette bolcabulunanIPWhoissorgulamauygulamalarındanbirisinikullanarak yaptık. Bu sorgulamaservisininkimtarafındanve nasıl sağlandığınımerakedecekolursanızKali üzerinde gelen araçlardan Dmitry uygulamasınınkaynakkodlarınıinceleyebiliriz: “iwhois.h” “iwhois.c” Yukarıda görüldüğügibi TCP43 portundanservisverenbirwhoisservisininvarlığısözkonusu.Dmitry4 bölge içinwhoissunucualanadlarınıda içeriyor.Dikkatli okuyucuburacaAfriNIC’inbulunmadığını farkedecektir.Dmitryaracınınyazarının neden“whois.afrinic.net”sunucusunuyazılımınadahil etmediğini bilemiyorum.
  9. 9. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 8 Yukarıdaki kaynakkod parçalarını doğrudanDmitryaracının websitesindebulunanlinktenindirdiğim kaynakkodlardanaldım.BirKali aracının kaynakkodlarınıKali üzerinde incelemekistersenizşuyolu izleyebilirsiniz:
  10. 10. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 9
  11. 11. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 10 1.2.2 2. Adım: Hedef kuruma ait olabilecek sunucu alan adları ve IP adresleriniçeşitli yöntemlerle tespit etmek ve (bu bilgileri kullanarak)IP Whois sorgulamaları: Hedef tespitininiteratifbirsüreçolduğundanbahsetmiştik.Bunedenle aşağıdaki adımlardiğerleri için daha detaylıaraştırma yapabilmekamacıylabilgisağlayabilecektir: Hedef alınankurumunkökalanadlarını kullanarakarama motorlarındabukök alanadına sahip sunucularıntespitedilmesi. 1.2.2.1 Bing Bing’in“domain”aramaoperatörübu ana domainaltındaki alanadlarınasahipsunucularılistelemekiçin oldukçakullanışlıdır.Google’anazarançokdahaaz kayıt ürettiğindenamacımızınsunucutespiti olması durumundaGoogle’dandahafaydalıolduğunudasöyleyebiliriz.
  12. 12. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 11 1.2.2.2 Google Google’dabenzerişlevi“site”operatörüilesağlayabiliriz.Eğerbellibirwebsitesiçokkayıtüretiyorsa bunusonuçlardançıkarabilmekiçin“-“operatörüile busunucununsonuçlardagörülmemesini sağlayabiliriz. 1.2.2.3 Web sunucu linkleri Bulduğunuzwebsunucularınınspideredilmesi ve websayfalarındandışarıyaverilenreferanslararasında kurumaait olduğundanşüphelenebilecekdiğerwebsitelerininbulunması.
  13. 13. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 12 Burp bizimwebuygulamadenetimlerinde sıklıklakullandığımızaraçlardanbirtanesi.Kali üzerindefree sürümüde geliyor.Buproxy’ninüzerindenhedef websitesininherhangi birsayfasınıgeçirdiktenhemen sonra “target”bölümünde busiteninüzerinde sağ klikleyerek“Spiderthishost”seçeneğiniseçtiğimizde
  14. 14. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 13 Burp bize diğersitelere verilenlinklerdolayısıylabulduğualanadlarınıdaTarget bölümünde gösterecektir. 1.2.2.4 DNS sorguları ile
  15. 15. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 14 Belli biralanadı içinyapılacak“ANY” tipi DNSsorgusunayanıt olarako alan adı ile ilgili olarak tanımlanmışMX (yani e-postasunucuları) ve NS(yani authoritative isimsunucuları) kayıtlarılistelenir. Ayrıca isimsunucularınınherbirisi de zone transfersorgularıiçinhedef olarakkullanılmalıdır.
  16. 16. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 15 1.2.2.5 Zone transfer
  17. 17. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 16 Zone transferfonksiyonalitesi aslındaisimsunucularıarasındakayıtlarınbirbirlerine aktarılmasıve yedeklenmesiiçinkullanılmaktadır.Ancakgenişerişimyetkitanımlarıistenmeyenkişilerinde tümDNS kayıtlarını elde etmelerine imkantanıyabilir.Zone transfer’e imkanverenDNSsorgutipi AXFRadlısorgu tipidir.
  18. 18. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 17 1.2.2.6 DNS bruteforce ile
  19. 19. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 18 ForwardDNS sorgularıolarakadlandırılansorgulardaalan adındanIP adresine gidilmeyeçalışılır.Bualan adlarının bazıları kolaytahminedilebilir(www gibi) veyavarlıklarıkolayortayaçıkarılabilir(arama motorlarıv.d.yöntemlerle) olsadabazıalan adları bukadar kolayelde edilemeyebilir.Bukayıtlariçin DNS kabakuvvettestyönteminikullanabiliriz.Tabi hedefitutturmamıztamamenkullandığımızlisteye bağlıdır. 1.2.2.7 Reverse DNS sorguları Sunucuve olası daha başkaalan adlarını tespitetmekiçinReverse DNSsorgularıile
  20. 20. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 19 Hedef tespitininiteratifdoğasındanbahsetmiştik.Buyöntemde de tespitedilenIParalıklarıiçinreverse (PTRtipi) DNSsorguları ile farklıalanadları tespitetmeyeçalışıyoruz.Eğersistemyöneticisi bazıIP adresleri içinreverseDNSkaydıgirmişise bubilgi araştırmamızıgenişletmekiçinimkanverebilir.
  21. 21. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 20 1.2.2.8 Daha çok amaçlı araçlara örnekler: theHarvester
  22. 22. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 21 theHarvesteraracı yukarıdasaydıklarımızve dahafazlasını (ör:e-postaadreslerini)otomatikbiçimde yapmakiçinkullanabileceğimizaraçlardanbirtanesidir.Ancakbiraracın nasıl çalıştığını anlamaksizi her zaman birkaç adım ileride tutacaktır.
  23. 23. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 22 2 Canlı sunucu tespiti Hedef aralığıntespitindensonracanlısunucularıtespitetme adımımızgeliyor.Bunoktayakadar yaptığımız incelemelerinpekçoğudoğrudanhedefle temasetmediğimizçalışmalardanoluşuyordu. Ancakbu noktadansonra sunucularadoğrudanpaketgöndermeye başlayacağız. Bu noktadayavaş yavaştespitettiğimizsunucubilgilerini kaydedecekbirsistemikullanmayabaşlamamız lazım.Bununiçinbasitbir MS Excel dosyasıda işimizi görebileceği gibiKali ilegelenaraçlardanKeepNote uygulamasıda kullanılabilir. 2.1Temel TCP / IP bilgisi TCP / IPpaketine baktığımızdakabaca 5 katman vardır (OSImodeli ve bunlarınTCP/IPile ilişkilendirilmesine girmeyeceğiz):  Fiziksel katman:Paketintamamınıifade eder,incelememizaçısındanbirönemi bulunmamaktadır.  Veri bağlantıkatmanı (datalinklayer):Paketinyerel ağdailetimiiçinönemli başlıkalanıdır.MAC adreslerininesasalındığıbirkatmandır.Yerel alansaldırıları açısından bilinmesiönemlidir,ancak bu noktadaderinlemesinedeğinmeyeceğiz.  Ağ katmanı(networklayer):İncelememizaçısındanönemli olupIPadreslerininpaketiletiminde önemkazandığı katmandır.Bu adreslerözellikle paketleryerelağdançıktığı durumlarda önemlidir,ziraveri bağlantıkatmanıyerel ağdançıkıldığında pakettensıyrılırve sonraki LAN veyaWAN protokollerine uygunolarakfarklıceketlere sahipolarakhedefinedoğruyoluna devameder.  Taşıma katmanı (transportlayer):Bukatmankabaca iletilenpaketlerinüzerinde seyahatettiği hattın ihtiyaçlarınabağlıolarakveyafarklıpaketlerinfarklısıralardahedefeulaşabileceği gerçeği
  24. 24. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 23 nedeniyle paketlerindoğrusıradave tam olarakkarşı tarafa iletilmesindensorumluağprotokol katmanıdır. AncakTCP ve UDP içinanlamlıolanbutanım ICMP içinpekbir anlamifade etmeyecektir.Bunedenle herağprotokolününtümbukatmanlarakarşılıkgelmesini beklememekgereklidir.BugerçekOSIteorikmodeli içindahadadoğrudur,çünküTCP/IP paketlerini 7katmandanoluşanbumodelle eşleştirmekdahadazordur.  Uygulamakatmanı (applicationlayer):Bukatmandadaha çok TCP ve UDP protokolleri iledaha iyi anlambulanbirkatmandır. İletilenpaketiniçinde uygulamaseviyesindeanlamkazanan verilerinbulunduğubölümdür.Taşımave Uygulamakatmanlarınaörnekleri birHTTPpaketi ve bir DNSpaketi içinde inceleyeceğiz. Gerçekşu ki farklı protokollerinOSIgibi veyayukarıdasaydığımızkatmanlargibi aynışablona oturtulmayaçalışılmasısözkonusudur.AncakörneğinTCPve UDP içinanlamlıolanuygulamakatmanı ICMP paketleri içinanlamlıdeğildir.Buyüzdenhemkafakarışıklığınınönlenmesi hemde ihtiyaç duyacağımız kadar bilgi edinebilmekiçintemelTCP/IPprotokollerini anlamakyeterli ve önemlidir. TCP, UDP ve ICMP protokollerini ençokkullanılandurumlarıiçininceleyelim. 2.1.1 HTTP paket örneği Bilindiğiüzere websunucularınaerişimiçinHTTP(veyaSSLüzerindenHTTP,yani HTTPS) protokolü kullanılır.
  25. 25. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 24 İlgilendiğimizpakettürlerini birpaketsnifferüzerinde filtreleyebilirve araştırmamızıkolaylaştırabiliriz. Wiresharkbirsnifferolmanınyanısıra aynı zamandabir protokol analizaracı. Yani gözlemlediğipaketleri analizederekve bazıöntanımlıkabulleri kullanarak(ör:bilinenportlarayönelikiletilenpaketleriniçinde bulunanverileri belirli uygulamakatmanıprotokollere göre yorumlamakgibi) birinsan içindahaanlaşılır biçimde anlamlandırıyorve sunuyor.Özelliklebinaryolaraktabiredebileceğimizpaketbölümlerinde, örneğinbirbyte’ınfarklıanlamagelenherbirbit’ininyorumlanmasıgibi,bubölümleri dahaanlaşılır kılıyor. Yukarıdaki örnekte belli birIPadresiniiçerenve hedef TCPportuolarak80 portunuiçerenpaketleri listeledik.
  26. 26. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 25 Fiziksel katmandediğimizşeyaslındapaketintamamıve paketiniletimşekliile ilgili.Yani bakırkabloda, fiberkablodave havadafarklıfizikselimkanlarkullanılarakiletişimpaketlerininiletimi.Protokol anlamındabizimilgi alanımızdandahaaltseviyedekalıyor,bualandahaçok elektronikmühendislerinin alanı. Bu katmanözellikle iletişimengelleme (jamming) alanındaönemli birkatman,amabizimiçin sadece paketintümüanlamınageliyor. Veri bağlantıkatmanı yerel ağlardaki iletimi destekliyorve biralttaki katmanınhangi protokol olduğu bilgisinibize veriyor.İnceleyeceğimizherüçpakettüründe de veri bağlantıkatmanıprotokolüEthernet ve altındaki katmanda IPv4 protokolü(Type:0x0800) Bu katmandaki adreslerinöneminişuşekilde açıklayayım;yerelağdakullanılanyönlendirme araçları switch’lerve bucihazlarbirpaketinhangi fiziksel portayönlendirileceğine kararverirkenIPadresine
  27. 27. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 26 değil,Ethernetbaşlığıiçindeki MACadresine göre kararverirler.DolayısıylasizbirpaketinMACadresini yerel ağınızdaki birbilgisayarınMACadresi olarakbelirlerancakbununbirüstkatmanındaki IPbaşlığı içindeki hedef IPadresini farklıbirbilgisayarınIPadresi olarakbelirlersenizpaketigörecekolanbilgisayar paketteki hedef MACadresine sahipolanbilgisayardır.EğerbubilgisayarınIProutingfonksiyonalitesi bulunuyorsapakethedef IPadresinesahipbilgisayara(ancakdoğruhedef MACadresi ile) yönlendirilir, bulunmuyorsapaketyanlışbilgisayaraulaşırve sonrasındapaketiniçerdiği protokolegöre farklıtepkiler oluşur. Bilgisayarteknolojisindeilkdayanaknoktasıherzaman“0” noktasıdır.Yani birpaketiniçinde bulunan protokoller,birdiskiniçindebulunanpartition’lar,birpartition’ıniçinde bulunandosyasistemleri hep “0” noktasındabulunanreferansveri alanlarıyorumlanarakbelirlenir.Buveri yapılarıişletimsistemini oluşturankodlarınheaderdosyalarında“struct”veri yapılarıolarakgözlenebilir.Özellikleforensic uzmanlarınınbu veri yapılarıhakkında uzmanolmalarıgerekir. Bir önceki görüntüde EthernetbaşlığınınaltındaIPbaşlığının bulunduğunugörmüştük.Bunedenle Wiresharkbirsonraki alanıIP (v4) protokolüne uygunolarakanalizediyor.IPbaşlığındaki enönemli alanlarhiç kuşkusuzIPkaynakve hedef adresleri.Buadreslerroutergörevi yapancihazve sunuculariçin önemli (evetbilgisayarlardaroutingyapabilirler). IP başlığınınaltındaki protokolünne olduğunuiseyine buprotokolünbiralanından(Protocol alanı) anlıyoruz.Bunagöre biraltta TCP başlığıvar (TCP’ninprotokol numarası6). Güvenlikadınaönemli diğerIPbaşlıkalanlarışunlar:  Time to live:Herbirhop’tadüşenbudeğerfarklıişletimsistemleri tarafındanfarklıilkdeğerler atanarak kullanılabilir.Bufarklılıkhedef işletimsistemi analizlerinde kullanılabilecekçoksayıda donedenbirisidir.Amacıyapılanyönlendirme hatalarıneticesinde internetinkullanılamazhale gelmesini önlemektir.TTLdeğerinin“0”adüştüğübirnoktada“TTL exceededintransit”ICMP paketi (Type 11 – Code 0) kaynakIPadresine gönderilir.Buimkan(eğeraradaICMPpaketlerinin kaynakIP adresine doğruiletilmesini engelleyenbirfirewall yoksa) traceroute ve firewalkgibi
  28. 28. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 27 aradaki atlama noktalarınıve firewall kurallarınıbelirlemearaçlarıtarafındanda kullanılmaktadır.Firewalkkonusunadoğrudandeğinmeyeceğim,ancaktraceroute (ki bu uygulamaWindows’da“tracert”,linux/unixsistemlerde“traceroute”olarakgeçerve herikisinin de kullandığıyöntemtemeldeaynıolsadakullanılanprotokollerfarklıdır) 1’denbaşlayarakher defasında(aslındaher3 pakette bir) TTL değerini 1artırarak hedef IPadresine ulaşıncayakadar TTL exceededpaketlerinibeklerve rotaüzerindeki routerIPadreslerinibelirler.Eğergeri dönüş süresi yerinde “*”karakterini görüyorsanızbugönderilenpakete ilişkinICMPpaketi alamadığınızı anlayabilirsiniz.  Flags,FragmentOffsetve Identificationalanları:Paketlerbazıağ bölümlerindengeçerkenbuağ bölümünmaksimumpaketbüyüklüksınırlarınauymakiçinIPpaketleri parçalanabilir.Buna fragmentationdiyoruz.Parçalanmışpaketlerinhedef sunucuveyacihazdatekrar birleştirilebilmesi içinFlagsbölümündeki 2.bayrakişaretlidir,parçalanmışpaketinparçaları üzerinde uygunFragmentOffsetdeğerleri bulunurve IPpaketID’leri (Identification) de aynıdır. Flagsbölümüayrıca DF (Don’tFragment) olarakda işaretlenebilir,budurumdaeğerpaket büyüklüğügeçeceğiağınkabul edebileceği büyüklüğüaşıyorsapaketdropedilir.  Source Routingoptionalanları: Yukarıdaki paketörneğinde IPpaketbaşlıkboyutu20byte’dır. AncakIP başlığı opsiyonelolarakOptionsalanlarınadasahipolabilir.Bualanlarınbulunduğunu boyutunun20 byte’danfazlaolmasındanve opsiyonnumarasındananlayabiliriz.Pratikte çok çok seyrekkullanılmaklabirlikte paketlerkendi üzerlerinde ağüzerindeiletilmekiçinkendi rotalarını da barındırabilirler.BualanlarSource Routingopsiyonalanlarıdır.Teorikolarakbu özellikkullanılarakbirfirewall’dangeçmesi beklenenpaketlerbununetrafındandolaşabilirler. Ağ güvenliğiiçingüvenlikkonfigürasyonstandartlarındanbirisi de routercihazlarında(çoknet bir işihtiyacıyoksa) source routingfonksiyonalitesininkapatılmasıdır. WiresharkIPbaşlığının biraltındaki başlığınTCP başlığı olduğunuIPbaşlığındayeralanprotokol numarası olan6 değerindenyolaçıkarakanlamıştır.TCP muhtemeleninternetinenyoğuntrafiğini oluşturanHTTP ve HTTPS paketlerininde kullandığıbirprotokoldür.UDPbaşlığıile karşılaştırıldığında daha uzunve nispetendahakarmaşıkolduğugörülecektir.Bununnedeni TCPbaşlığınınpaketiletimini
  29. 29. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 28 güvence altınaalanbir algoritmayahizmetetmesidir.Bualgoritmaişletimsistemininağsürücüyazılımı katmanındauygulanır.Yani bir sunucuyapaketiletmekisteyenbiruygulamayazılımıTCP protokolüile çalışan herhangi birprotokolütercihettiğinde,hemgönderici hemde alıcıuygulamanınyazılımcıları (bağlantıhataları dışında) paketleriniletilipiletilmediği,karşıtaraftadoğru sırada işlenip işlenmediklerine dairherhangibirkontrol yapmakdurumundadeğildir.Çünkübukontrol işletimsistemi tarafındanTCP başlıkdeğerleri kullanılarakyapılır.BubaşlıkalanlarıSequence Numberve AcknowledgementNumberalanlarıdır. TCP başlığındabir güvenlikçi olarakbilmemizgerekentemel alanlarşunlardır: Kaynakve hedef portnumaraları:(İstemci açısındanbaktığımızda) kaynakportnumaraları genellikle bilinensunucuservisleritarafındankullanılmayanve ephemeral (geçici)olarakifade edilen numaralardır.Ephemeral portnumaraları1024’ün üzerindeki portnumaralarıolarakgeçer,ancak elbette budeğerinüzerindeki portlardabazı sunucuservisleri ileözdeşleşmiştir(ör:MSSQL – 1433, Radius– 1812 ve daha nicesi).Portnumaraları0-65535 arasındaki herhangi birdeğeri alabilir,çünkübu alaniçinayrılmış alan 2 byte’lıkbiralandır.Hedef portnumarasının arkasındaise bir uygulama bulunmalıdır,dahateknikbirifadeyle buportnumarasınabindetmişolmalıve gelenpaketleri işlemek, gerekli işlemlerigerçekleştirmekve uygunyanıtlarıüretmeküzerebekliyorolmalıdır.Aksi taktirdeport kapalıolacak ve hedef sunucuüzerindeherhangi birişlemgerçekleşmeyecektir.Bunedenle dahasonra detaylıolarakdeğineceğimizgibi açık(yani arkasındabiruygulamaçalışan) ve kapalı portlargüvenlik açısından çok önemlidir.Birfonksiyonalitevarsagüvenlikaçıklıkihtimalivardır,yoksa hackleyebileceğimizbirşeyde yoktur. Flagsalanı TCP protokolününişleyişi açısındançokönemlidir,buprotokolünçalışmaalgoritmasıiçindeki yeri kritiktir.Bualanındetayınadaha sonragireceğim, ancakbualandaki bayraklarınbazılarını güvenlikçi olarakçok iyi anlamalıyız. Bir TCP paketi içinoturumyönetimigüvenliği TCPsequence ve acknowledgementsıranumaralarının tahminedilebilirliğine bağlıdır(tabi paketintaşıdığıverilerkriptolanmışsaveri ve işlembütünlüğü açılarından ekbir güvenliktenbahsedilebilir).Bunedenle işletimsistemlerioturumbaşlangıçlarında kullanımabaşlanacaksıra numaralarınınrassallaştırılmasıkonusundadikkatli olmakdurumunda kalmışlardır.
  30. 30. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 29 Paketineniçbölümünde uygulamakatmanındabulunanverimizvar.WiresharkbubölümünHTTP protokolüolduğunuönceliklehedef TCPportunabakarak(TCP80), eğertanımadığı birport ise veri bölümünde yaptığıincelemeyletahminediyorve bunagöre analizediyor.EğerbirHTTPtrafiği farklıbir bilinenportayönelikolsaidi ozamanbudeğerlendirmeyiyapamayacaktı: Bir HTTP sunucusuolarakKali üzerinde hazırgelenSimpleHTTPServerPythonscript’ini kullanalımve HTTP servisini TCP500 portu üzerinde çalıştıralım.
  31. 31. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 30 Browser’ımızile sanal makinemizüzerinde TCP500 portu üzerinde çalışmaktaolanwebsunucumuza bağlanırkenWiresharkile trafiği izleyelim.
  32. 32. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 31 TCP 500 portunormalde ISAKMPprotokolüileilişkilendirildiğiiçinWiresharkpaketleri buprotokole göre anlamlandırmayaçalıştı.Ancakgörüneno ki bu protokolünbelli alanlarıiçinbeklenmeyenverileri gözlemlediği içinpaketinhatalıolduğunaişaretetti. Wireshark’ınbugibi durumlardabirpaketinüzerinesağklikleyerek“Decode As”seçeneğininseçilmesi ve yönlendirilmesi suretiyle doğruprotokol analizi yapmaimkanıvar.
  33. 33. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 32 Görüldüğügibi TCP500 portuile ilgili trafikHTTPolarakyorumlandığında WiresharkHTTPveri kısmında herhangi bir hata üretmedi. Networkcihazlarınınuygulamakatmanındaki verilerle ilgili vereceğiherhangi birkararyok.Bu katman istemci ve sunucuuygulamalartarafındananlamlandırılmasıgerekli verileri içeriyor.HTTPprotokolü browseryazılımı ve websunucuyazılımı içinanlamifade ediyor.Birnetworkpaketiaçısındansadece TCP başlığı altındailetilenbirveridenibaret.
  34. 34. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 33 2.1.2 DNS paket örneği Çok kullanılanUDPprotokollerindenbirisiolarakDNSprotokolünüinceleyelim. DNSbilindiği gibi isim çözümleme içinkullanılanbirprotokol.Buradaki örneğimizde Windowsişletimsistemleri üzerindegelen “nslookup”aracını kullanarak www.btrisk.com alanadınıçözümlüyoruz.
  35. 35. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 34 Ethernetve IPbaşlıklarınınaltında budefaUDP protokolününvarolduğunuWiresharküzerinde gözlemliyoruz.Wireshark’ınIPbaşlığınınaltındaki başlığıProtocol alanındaki bilgidenfaydalanarak belirlediğinidahaönce belirtmiştik,UDP’ninIPprotokol numarası“17”.UDP ile TCParasındaki en belirginfarkbaşlıkalanlarınınbüyüklükleri arasındaki fark.Protokollerinkarmaşıklığıprotokol başlıklarınınbüyüklüğüile kendisini belliediyor.UDP,TCP’ye nazarançokdaha basitbir protokol, herhangi biroturumkontrolü,paket ulaşmakontrolüveyapaketlerinhedefte doğrusıradaişlenmesigibi hizmetleri sağlamıyor.Bununlabirlikte protokolünbasitliğikendisini hıztarafındaavantajlıkılıyor. Eğer paketlerleilgilibelirli kontrollereğerişletimsistemlerinde bulunanağsürücüyazılımlarında yapılmıyorsabu kontrollerinhangi seviyedeyapılmasılazım;tabi ki uygulamakatmanında. UDP’ninözellikleri düşünüldüğünde buprotokolündahaçokhız ihtiyacıyüksek,DNSgibi dahabasitveri alışverişleri gerektirenveyaVideo/VoiceStreaminguygulamalarıgibi paketgeçulaştığıtakdirde işlenmesine de gerekolmayandurumlardatercihedildiğinisöyleyebiliriz. Yukarıdaki başlıktada görüldüğüüzere UDPbaşlığında kaynakve hedef portbilgilerinindışındasadece paketbütünlüğüile ilgili iki alandahavar.
  36. 36. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 35 WiresharkHTTP örneğinde olduğugibi uygulamakatmanındaki verininbirDNSverisi olduğunusunucu UDP port numarasına dayanarakbelirliyorve paketi bunagöre analizediyor.DNSpaketininbelirli alanlarıbinary(yani bit’lerseviyesinde protokol alanlarınasahip),belirli alanlarıise metinolarak anlaşılabiliyor.
  37. 37. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 36 2.1.3 ICMP paket örneği ICMP TCP/IPprotokolleri arasındapekçokfarklı amaçlakullanılanbiryardımcı protokol.Örneğindaha önce de belirttiğimizgibi birpaketinTTLalanı 0’a indiğinde paketi gönderenkaynaksunucununpaketin expire ettiği hakkındabilgilendirilmesigibi.ICMPprotokolününkullanıcılartarafındanençokkullanıldığı durumlarabirörnekise “ping”komutu.Bu komutugenelliklebirsunucuyaulaşılabilipulaşılamadığının testi veyaağ bağlantıhızı hakkındabirfikirsahibi olabilmekiçinkullanırız.
  38. 38. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 37 ICMP’ninIPprotokol numarasının“1” olduğunugörüyoruz. ICMP’de portkavramı yok.ICMP’ninenönemli alanlarıType ve Code alanları.Bualanlarpaketinamacını ifade ediyor.Pingkomutununürettiği paketlerbirerICMPEcho Requestpaketleri,bupaketlerintipve kodu’da8 ve 0. ICMP paketininveri bölümüne baktığımızdaise 32 byte’lıkbirveri görüyoruz.Bualanınbir kısmı alfabetikkarakterlerle doldurulmuş.Aslındaprotokolaçısındanburadahangi verininbulunduğunun hiçbirönemi yok. Sizce kötüniyetli birkişi ICMPpaketlerininfiltrelenmemesihalinde bualanıhangi amaçlakullanabilir? Doğru bildiniz,bualanveri sızdırmakveyakurumağına bir arka kapı açmak içinkullanılabilir.
  39. 39. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 38 Bu defaKali Linux üzerindeki pingkomutunudeneyelimve üretilenpaketi inceleyelim. Windows’unpingkomutundanfarklıolarakveri bölümünündahabüyükolduğunu(56byte) ve içerdiği verilerinde Windows’unürettiği paket’tenfarklıolduğunugörebiliyoruz.Herne kadarburadaki örneklerimizsunuculartarafındanüretilmişpaketlerolmasada budurum farklıişletimsistemlerininve hatta bazı durumlardaaynı işletimsistemlerininfarklıversiyonlarınınprotokolüuyarlarken farklılaşabileceğine güzelbirörnek.Bugibi donelersayesinde iletişimkurduğumuzbirsunucununişletim sistemineilişkinbirtahminyapmamızmümkünolabiliyor.Tabi sunucununçalıştırdığıservislerve diğer
  40. 40. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 39 pekçok bilgi de busonuçlaraulaşmamızayardımcı olabiliyor.Bubilgininnedenönemli olduğuna birazdandeğineceğiz. 2.2Canlı sunucu tespit metodları Canlı sunucununbizimiçinanlamıüzerinde bizimdoğrudanveyadolaylıolarakerişebileceğimizbirservis çalışan birsunucuolmasıdır. Teorikolarakbirsunucununherhangi birağpaketine tepki üretmesiveya bu paketi işlemeside bizimiçinhedef olmasınıgerektirir.ÖrneğintarihselaçıklıklardanTeardropaçıklığı IP başlığıkatmanında fragmentoffset’lerininpaketleri birbiri üzerinebindirmesi sonucuhedef bilgisayarınhizmetkesintisineuğraması,buaçıklığın TCP veyaUDP başlıklarıile ilgili değil herhangi birIP paketi ile kötüye kullanılabilmesianlamınagelir.Yadayine birbaşka tarihsel açıklıkolanPingof Death açıklığı hedefe ulaşmadanönce fragmenteedilmişancakbirleştirildiğindebirIPpaketininolabileceğien büyükboyutolan65535 byte’ıaşan bir paketoluşturmayıhedefleyerekhedefbilgisayardabirhafıza taşma açıklığı ve sonucundahizmetkesintisini oluşturmayısağlamıştır.DolayısıylaIPkatmanıveyadaha üst katmanlardameydanagelebilecekaçıklıklarnedeniylehiçbirTCPveyaUDP servisi sağlamasada bir bilgisayarhedefalınabilir.Bununlabirlikte networkstack’leriile ilgili buaçıklıklardanuzunsüre önce dersalınmıştır ve güvenli yazılımgeliştirme metodlarınıuygulayanişletimsistemi geliştiricileri bu açıklıkları bertaraf etmişgörünmektedir. TeorikolarakICMPpaketleri ile birsaldırıyapmakmümkün olabilse de bizimaçıklıklarıarayacağımızyerdaha çok TCP ve UDP servisleridir. 2.2.1 ICMP tarama Madem amacımız TCP ve UDP servisleri bulunanbirsunucuyutespitetmekozamannedenICMP taraması yapalımdiyebilirsiniz.Problemşuki hemTCPhemde UDP içinolası portsayısı herbiri için 65535. Halbuki ICMPtaramasında çok daha az istekte bulunarakdahaazgürültüçıkarabiliriz. ICMP’ye kısaca değindik,bubiryardımcıprotokol ve çok sayıda amaçlakullanılıyor.BizimICMP’den beklentimizise bize yanıtdöndürecekbazıkullanımdurumlarınınolması.
  41. 41. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 40 Bu durumlaraaşağıdakilerörnekverilebilir:  Echo Request(Type –8, Code – 0), Echo Reply(Type – 0, Code - 0) yanıtını doğurur  Timestamp(Type –13, Code – 0),TimestampReply(Type –14, Code - 0) yanıtını doğurur  AddressMaskRequest(Type 17 – Code 0), AddressMaskReply(Type 18 – Code 0) yanıtını doğurur Ping,yani Echo Requestdışındaki diğeristekleri göndermekistememizinnedenihedef ile aramızda bulunabilecekbirfirewall’dabuisteklerinfiltrelenmişolmasıancakdiğerlerininbirihtimalunutulmuş olmasıdır.Elbette DefaultDenypolitikasınasahipbirfirewall’daancakbilinerekaçılanpaketler geçecektir. Tarama işlemleriiçingeliştirilmişpekçokaraç vardır, hatta bizde kendi araçlarımızı yazabiliriz.Paket üretmekiçingeliştirilmişkütüphaneleri kullanarak(ör:libpcap,winpcapgibi) kendipaketlerimizi üretebilir,paketlerinistediğimizalanlarındaistediğimizverilerinyeralmasınısağlayabiliriz.ICMPtarama işleminienönde gelentaramaaraçlarından“nmap” ile nasıl gerçekleştirebileceğimizi görelim: “nmap”i çalıştırırken kullandığımızopsiyonlarşuanlamageliyor:  -PE (EchoRequest)
  42. 42. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 41  -PP(Timestamp)  -PM(AddressMaskRequest) “nmap” yanıt alamadığı herICMP isteğini 2defagöndermiş. “nmap” tümtarama bitmedenekranaherhangi birçıktıiletmiyor.BudurumçokgenişIParalıklarında sonuçlarınızı geçelde etmenize yol açacaktır.Bu nedenlebirscriptyazarak“nmap” veyafarklıbir aracı herbir IP adresi içintektekve paralel olarakçalıştırarak dahahızlı sonuca ulaşabilirsiniz.Buörnekiçin “hping3”aracını kullanalım.“hping3”sadece ICMPpaketleri değil TCP,UDPve diğerpekçokpaket türünüistediğinizbiçimde oluşturmakiçin kullanabileceğimizbiraraç.Ayrıca çok sayıda paketüreterek DDOS testlerinde de kullanılabilenbiraraç.“hping3”ile ICMPpaketleriniaşağıdaki gibi üretebiliriz:
  43. 43. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 42 -c 1 (küçükC) parametresi tekbirpaketüretilmesi gerektiği, -1parametresi aynızamandaICMP’ninIP protokol numarasıolupüretilecekpaketinICMPpaketi olmasıgerektiği, -C8,13 ve 17 parametreleri ICMP paketinin“code”değerlerinibelirtiyor.
  44. 44. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 43 2.2.2 Aynı subnet içinde canlı sunucu tespiti ICMP protokolüile canlısunucutespiti ve daha sonradeğineceğimizTCPve UDPprotokolleri ileyapılan taramalar heminternethemde yerel ağiçingeçerli metodlar.Ancakiçindebulunduğumuzsubnet’te, yani Layer 2 terminolojisi ile aynıcollusiondomain’de,bulunandiğercanlısunucularıtespitetmek için farklıbir imkanımızdaha var. Aslında“nmap”siz birpingscan veyadiğerICMP taramalarını yapmakistediğinizde ilkolarakbuyöntemi uyguluyor. “192.168.163.154” IP adresli sunucuüzerinde aynısubnetiçindebulunduğumuz“192.168.163.129” IP adresli birsunucuya“-sP”parametresi ile pingtaramasıyapmakistiyoruz.
  45. 45. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 44 Hedef sunucuylailişkilitrafiği izlediğimizdeise aslındaherhangibirICMPpaketi iletilmediğini,sadece bir ARPisteği gönderildiğinigörüyoruz.“nmap”amacımızınherhangi birservisi enumerate etmek olmadığını dikkate alarakeğerbircihazARPisteğine cevapveriyorsazatencanlıdıryaklaşımıile ICMP paketini göndermeyegerekgörmüyor.
  46. 46. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 45 -PRparametresi ile ARPpingtaramasıyaptığımızda taramamız sadece 2.01 saniye sürdü. Tarama yaptığımız sunucuüzerindeki trafiğiincelediğimizdesadece ARPisteklerini gördük.
  47. 47. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 46 Aynı taramayı ARPping’i engelleyerekyaptığımızdaise taramasüresi 19.91 saniyeye çıktı. 2.2.3 Çok kullanılanTCP ve UDP servislerine yapılan istekler Eğer karşımızda birIPS varsaveyagerçektenkötüniyetliolsaydıkmümkünolduğuncaazgürültü çıkarmak isterdik.Bunaekolarakeğerçok genişbirhedef IParalığıile karşı karşıyaysakda tespitlerimizi mümkünolduğuncaazeforlayapabilmekisterdik.Bu gözle baktığımızdaICMPile canlısunucu tespitindenhemensonraçokkullanılanservislerinvarlığınailişkinbirtaramayapmakmakul görünüyor. Bu aşamada TCPve UDP servislerinindavranışlarınıve bunagöre bizimtaramametodlarımızıanlatmaya başlamamızgerekiyor.Ancakbenbunufull TCPve UDPtaramayı anlatacağım aşağıdaki kısma bırakmak istiyorum.Buradasadece çokkullanılanTCPve UDP portlarınave bunlarıntaranması içinpratik örneklere değineceğim. Öncelikleşunubelirtelim,herhangibirservisin(yaniuygulamanın) herhangibirportukullanmasına(yani bindolmasına) engel olabilecekbirkural yok.Sadece geçici portlarolarakanılan(ephemeral ports) 1024 üzeri portlarındışında kalan0-1023 portlarınabağlanmakiçinilgili prosesinyüksekhaklarasahipolması gibi birdurumdansöz edebiliriz.Ancaksistemsel olarakTCP80 portunabir HTTP servisi dışındakimse bağlanamazgibi birkural söz konusudeğil,olsadabunusağlamakpekkolayolmazdı.Ancak konvansiyonel olarakbelliservislergenelliklebelli portlarıkullanırlar.Bugelenekinternetinicadındanbu yana oluşmuşbirgelenekve herkesbugeleneğe uyuyor.Bununlabirlikte bizbirHTTPservisini TCP9999 portundansağlayabiliriz.BudurumdaTCP80 portunuyokladığımızdabusunucuüzerinde birHTTP servisi yoktursonucunakesinolarakulaşamayız.İşte buyüzdenfull TCPve UDPtaramaları son derece önemli.Buadımdasadece heuristicbirmetodlacanlısunucutespitihtimalimizi artırmayaçalışıyoruz.
  48. 48. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 47 Önceliklenedirbuçok kullanılan(wellknown) servisler: Bu servislerinternetnumaralarınındağıtımındansorumluolanIANA tarafındanbakımıyapılan birlistede bulunmaktadır.Herhangi birUnix /Linux dağıtımında/etc/servicesdosyasındadagörülebilirler. Tabi taramayı yaptığınız perspektife göre kullanmakisteyeceğinizservislerdeğişebilir.Intranetağlarında internete genellikle açılmayanancakWindowsbilgisayaryoğunluğundandolayıTCP445 gibi dosya paylaşımservislerinisıklıklagözlemleyebilirsiniz.Buyüzdeninternetve intranetiçinfarklıservisleri taramakta faydabulunmaktadır.Aşağıdadeneyimlerimize dayalıolaraklistelediğimizsıkgözlenebilecek servisleribulabilirsiniz(buliste elbette genişletilebilir,ancakbudurumdaamacımızdan sapmaya başlarız): Internetiçinçokkullanılanservisler:  HTTP (TCP 80)  HTTPS (TCP443)  DNS (UDP53, TCP 53)  IPSEC(UDP 500 - IKEprotokülü)  SMTP (TCP 25)  SSH (TCP22)  SIP(TCP/UDP5060, 5061)  FTP (TCP21)  TELNET (TCP23)  CHECKPOINT(TCP264 - Topoloji servisi) Intranetiçinçok kullanılan servisler:
  49. 49. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 48  NETBIOSoverTCP – NBT ( (UDP137 - Name servisi)  SMB (TCP139 – Dosya ve yazıcı paylaşımıiçinkullanılır)  CIFS(TCP 445 – SMB’ninyerini alanWindowsdosyapaylaşımprotokolü)  RDP (TCP3389)  HTTP (TCP 80)  HTTPS (TCP443)  HTTP PROXY (TCP8080, TCP 3128 - Squidproxyservisi)  SNMP (UDP161)  LDAP (TCP389)  FTP (TCP21)  TELNET (TCP23)  RPC (UDP111)  NFS(TCP 2049)  MSSQL (TCP 1433)  MySQL (TCP 3306)  ORACLE (TCP1521) Dediğimizgibi bulisteuzatılabilir,ancakhızlıbir tarama içinbelirli bir uzunluğuaşmamasındadafayda var. Peki buservislerihangi komutlarlatarayabiliriz.Bunlarailişkinkullanımörneklerini buradavereceğiz, ancak port tarama ve uygulamaharitalama(applicationmapping,yani birservisinarkasındahangi uygulamanınçalıştığı) konularınıaşağıda daha detaylıinceleyeceğiz. 2.2.3.1 UDP (çok kullanılan port) tarama UDP tarama ile ilgili öncelikleUDPprotokolününişleyişini konuşmamızgerekir.Ancakteori yerine doğrudangözlemile işe başlayacağız.Teori kısmınıise full taramabölümündeaçıklayaraktamolarak pekiştireceğiz. Nmapile UDP tarama içinaşağıdaki komutukullanabiliriz. # nmap–sU –p53,111,121,137,161,500,5060 192.168.163.129
  50. 50. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 49 Sizlere arkasındamevcutbirservisbulunanve bulunmayanUDPportlarıhakkındafikirverebilmekiçin bir Debiantürevi olanKali Linux üzerindekurulmuşbirSNMPsunucusuvarmı arayalım. “snmpd”isimli paketişimize yararsanırım.
  51. 51. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 50 “snmpd”ile ilgili dokümantasyonuokuduğumuzda“/etc/snmp/snmpd.conf”konfigürasyondosyasını yukarıdaki gibi düzenlememizgerektiğini görüyoruz.Öntanımlıolarak“agentAddress udp:127.0.0.1:161” satırı aktif idi,busatırı comment’liyoruz.Hemenaltındaki “agentAddress udp:161,udp6:[::1]:161” satırının önündeki comment’i kaldıraraksatırıaktif hale getiriyoruz.Bu değişiklikleri yapmazsakSNMPservisine sadece“localhost”üzerindenerişilebiliyor,bizise uzaktan erişilebilmesini istiyoruz. Servisimizi başlattıktansonraaktif olduğunugörebiliyoruz.
  52. 52. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 51 Bununüzerine ekolarakiptables’ıkullanmakistiyorum.İlkbaştaherhangi birkural tanımlıolmadığını görebiliriz.Dahasonraaşağıdaki satırlarlaUDP 161 (yani SNMP) ve UDP 111 (yani normalde genellikle RPC protokolününkullandığıport) portlarınauzaktanerişimi açıyoruz. # iptables –A INPUT–p udp –m udp–dport 161 –j ACCEPT # iptables –A INPUT–p udp –m udp–dport 111 –j ACCEPT Son olarakda geri kalantüm paketlerinDROPedilmesiiçinşusatırı çalıştırıyoruz: # iptables –A INPUT–j DROP DROP ve REJECT etmekarasındaki farkşu: Paketi gönderensunucuyaDROPedilenpaketle ilgili herhangi bir geri bildirimyapılmaz,sessizce paketgözardı edili.REJECTedildiğindeise gönderensunucuya“ICMP type 3 - code 13 : CommunicationAdministrativelyProhibited”paketi ile bilgi verilir.Bufarktarama çalışmamız açısından çok önemli birfark.Bunudahasonra açıklayacağız.
  53. 53. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 52 Çok kullanılanportlarımızınmapile taradığımızdayukarıdaki sonuçlakarşılaşıyoruz.Bunagöre UDP 111 portununkapalıolduğunukesinolarakbelirlemiş.Buportaerişimi iptablesüzerindenaçtığımızı hatırlayın.UDP 161 portundabir servisçalıştığını da kesinolarakbelirlemiş.Diğerleri hakkındaise kesin bir yargıya varamamış,yani açık da olabilirfiltrelenmiş(yani DROPedilmiş) de olabilir.
  54. 54. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 53 Taramayı yaparkenilgili sunucuyagidenve bu sunucudangelenpaketleri gözlemlemekiçinWiresharkile izledik.Sadece ilgi alanımızagirenpaketleri listelemekiçinsegönderici veyaalıcıolarak “192.168.163.129” IP adresine sahippaketlerve IPprotokolü17 olan(yani UDP protokolündenolan) paketleri filtreledik. Bu paketlerarasındaUDP 137 portunailetilenpaketiincelediğimizdenmap’inkarşıdaki protokolün beklediği formattabirveriyi de pakete eklediğinigörüyoruz.BudurumSIPportuolanUDP 5060 portu dışındaki tüm portlariçingeçerli. Aynı veriyi “/usr/share/nmap”dizini altındabulunannmap-payloadsdosyasıiçinde de görüyoruz.
  55. 55. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 54 Nmap’inhangi portlariçinpayload’larınınbulunduğunuise nmap-payloadsdosyasıiçinde “udp”geçen satırları listeleyerekgörebiliriz. UDP 111 portunayaptığımız isteksonrasındaise hedef bilgisayardanbirICMPtype 3 – code 3 (DestinationPortUnreachable) yanıtıdönmüş.İşte busebeptennmapkesinolarakbuportunkapalı olduğusonucunavarabildi.FiltrelenmişolandiğerportlaragönderilenpaketlerDROPedildiği ve herhangi biryanıt verilmediği içinise bunlarınaçıkmı yoksafiltrelenmişmi olduğunakararveremedi.
  56. 56. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 55 Bununnedeni (TCPveyaUDPolmasıfarketmez) açıkolanağ servislerininbekledikleri gibi birgirdi verisi ile karşılaşmadıklarındaherhangi birtepki vermeme ihtimalidir.İşte buyüzdennmaptepki üretme ihtimaliniartırmakiçinkarşıdaki ilgili portiçinanlamlıbirveriyide pakete eklemektedir. UDP 5060 portuna yapılanisteğe baktığımızdaise bupaketiniçinde herhangibirveri göremiyoruz. Demekki nmapbu konudabiriçeriğe sahipdeğil.Budafirewall’lubirortamdaportungerçektenaçıkmı yoksafiltreli mi olduğunuayırtetmemizizorlaştıracakbirdurum.
  57. 57. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 56 Sırf bu port içinSIPtarama amacıyla geliştirilmişbiraracıkullanıyoruz. Bu aracın ürettiği paketi incelediğimizde içinde veri olduğunugörebiliyoruz.Bunagöre butür özel portları aradığımızda eğernmap’infonksiyonalitesi yetersizgeliyorsamutlakaalternatif biraraç kullanmalıveyakendimizbirtaramaaracı geliştirmeliyiz.
  58. 58. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 57 2.2.3.2 TCP (çok kullanılan) port tarama TCP protokolününporttaramaaçısından UDP’ye nazaran çok önemli biravantajıvar(tabi tarayan açısından),o da protokolünbaşlatılmasınınenbaşındabirel sıkışma (handshake) seramonisi gerektirmesidir.DolayısıylaeğerbirTCPportunafirewall üzerindenerişilebiliyorsabununel sıkışma sürecindeki davranışımutlakagözlenebilecektir.Pekiştirmeamacıylabukonufull TCPtarama bölümünde tekrarincelenecektir. TCP portlarını nmapile aşağıdaki gibi birkomutlatarayabiliriz.“-sS”parametresigönderilenTCP paketlerininSYN bayrağınınişaretli olmasıanlamınagelmektedir.Bukonuyudahasonradetaylıbiçimde inceleyeceğiz. # nmap–sS –p21,22,23,25,53,80,139,264,389,443,445,1433,1521,2049,3128,3306,3389,5060,8080 192.168.163.129 UDP taramada olduğugibi budefada iptables’tabellikurallarekleyeceğiz.Budefa“-A”yani append parametresini değil “-I”yani insertparametresini kullanacağız.Firewall kurallarıyukarıdanaşağıya işletildikleri ve bizACCEPTkurallarımızın ensondabulunanDROPkuralınınarkasındakalmasını istemediğimiziçinkurallarımızıenüstsıraya insertedeceğiz(hangi sırayainsertetmekistediğimizi de seçebilirdik). Aşağıdaki iki komutlaTCP80 (HTTP) ve TCP 23 (Telnet) portlarınaerişimi serbest bırakacağız: # iptables –IINPUT–p tcp –dport80 –j ACCEPT
  59. 59. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 58 # iptables –IINPUT–p tcp –dport23 –j ACCEPT Erişimizni verdiğimizportlardanTCP80 portuarkasında aktif birservisçalışmasıiçinyine Kali Linux ile öntanımlıolarak kuruluolarakgelen apache2servisini başlatıyoruzve aktif olupolmadığınıkontrol ediyoruz(budefasystemctl komutuile).
  60. 60. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 59 Nmaptaramasını yaptığımızdabu defahiç kafasınınkarışmadığını, açık ve filtreli portlarınetbiçimde ayırt edebildiğini görüyoruz.
  61. 61. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 60 TCP 21 portunagönderilenörnekbirpaketi incelediğimizdepaketiniçindeherhangi birveri bulunmadığınıgörüyoruz.Zatenel sıkışmasürecininilkpaketi olanSYN paketinde böyle birverinin bulunmasınagerekyok,bukonuyudetaylıolarakaşağıdainceleyeceğiz. Firewall’danizinverdiğimizancakkapalıolanTCP 23 portunayapılanisteğe yanıtolarak RST ve ACK bayraklarıişaretli birpaketinyanıtolarakgönderildiğini görüyoruz.İşte buyanıtsayesinde nmapkesin olarakportunkapalı olduğundaneminolabilmiştir.
  62. 62. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 61 Açık olanve arkasında apache2 servisininçalıştığıTCP 80 portunayapılanisteğe ise yanıtolarakSYN ve ACKbayrakları işaretli biryanıtalıyoruz. 2.2.4 Netbios Name Service Tarama Unique isimlerinden<00>– Workstationadı,Group isimlerinden<00> – Workgroup,domainadı anlamınagelir. Ayrıca bazı Netbiossuffix’leri sunucuüzeirnde çalışanservislerve diğerbilgileri ifade eder(örneğin Unique isimlerinden20- dosyasunucusuolduğunu,Groupisimlerinden1Cdomaincontrollerolduğunu belirtir).
  63. 63. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 62 Netbiostaramasıherzaman Windowssunucularailişkinveri döndürmez.SeyrekolsadaüzerindeSamba yüklüolanUnix / Linux sunuculardabu taramalardagörünür. Kali üzerinde zatengerekliSambapaketleri yüklü.
  64. 64. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 63
  65. 65. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 64 2.3Full Port Tarama Eğer tarayacağımız IP sayısı çok fazladeğilse veyayaptığımıztaramaçok kritikise hedef IParalığında canlı sunucutespiti aşamasınıgeçipdoğrudanfull porttarama yapabiliriz.AncakeğerçokgenişbirIP aralığını hedefliyorsakfullporttaramasüresi çokuzun olacaktır.Bu nedenle full porttaramasadece canlı olduğundaneminolduğumuzdahadarbirkitleye yönelikolarakyapılabilir. 2.3.1 Bir UDP servis örneği Bir ağ servisininhemTCPhemde UDP servisi olaraknasıl davrandığınıanlayabilmek,dolayısıylaaktif bir servisintespitedilmesininkolaylıkve zorluklarınıkavrayabilmekiçinbirUDPve bir TCP serviskodunu inceleyeceğizve buservislerebağlanarakoluşantrafiğigözleyeceğiz. Aşağıdaki UDP servisi UDP5000 portundandinliyor.Ancaksadece gelenistek“selam”kelimesi (vesatır sonukarakteri)’ni içeriyorsayanıtüretiyor: #!/usr/bin/perl use IO::Socket::INET; # flush $| = 1; my ($socket,$received_data); $socket = new IO::Socket::INET ( LocalPort => '5000', Proto => 'udp', ) or die "Soket olusturulamadi : $!n"; print "UDP sunucu dinliyor ...n"; while(1) { $socket->recv($received_data,1024); print "Istemciden alinan veri : $received_datan"; if ($received_data eq "selamn") { $socket->send("Sana da selam...n"); } } $socket->close();
  66. 66. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 65 Şimdi “netcat”ile buUDP servisine bağlanacağızve yapacağımıziletişimi wiresharkile izleyeceğiz. Netcataracı basitbir TCP/IPistemci ve sunucuolarakçalışabilenbiraraç.Bu aracı güvenlikleilgili literatürde sıklıkladuyabilirsiniz.Buaraç özelliklehackingihtiyaçlarınayönelikolarakgeliştirildiğiiçin
  67. 67. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 66 basitistemci ve sunucurolününyanısıra uzaktan shell sunma,dosyatransferive porttarama amaçlarına da hizmetedebiliyor.Ancakbirnetcat’i sadece basitUDPve TCPclientaracı olarakkullanacağız.
  68. 68. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 67 Netcatile hedef sunucuüzerindeki UDP5000 portunabağlanmakistediğimizde aslındabağlanmakgibi bir kavramınUDP içingeçerli olmadığınıgörüyoruz.Çünkübukomutuçalıştırdıktan sonraherhangi bir paketgönderilmemiş. Hemenardından“hello”kelimesini hedefsunucuyagönderelim.
  69. 69. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 68 Sunucuya“hello”kelimesini gönderdiğimizdeyukarıdaki durumve aşağıdaki trafikoluştu. Yukarıdaki tekpaketUDP servisimizinsessizliğinikoruduğunugösteriyor.BudurumdaisteğimizbirUDP servisine ulaşmışve servisbuisteğe yanıtvermemekistemişolabilir.Veyaservisilearamızdaki bir firewall isteğimizi sessizce DROPetmişve gönderdiğimizpakethedefine hiçulaşamamışdaolabilir.
  70. 70. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 69 Kaynakkodumuzdanbiliyoruzki servisimiz“selam”kelimesini görmediğisürece biryanıtüretmeyecek. Bu yüzdenbirde “selam”içeriği ile istekgönderelim.
  71. 71. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 70 Görülüyorki servisimizİngilizce bilmiyor,ancakTürkçe selamdendiğinde yanıtüretiyor.Buyanıtı gördüğümüzde kesinolarakeminolabilirizki karşımızdaaktif biruygulamaservisivar. Bu yanıtı aldığımızda kesinolarakUDP 5000 portununaçık olduğunusöyleyebiliriz.Ancakeğer karşımızdaki servisin“selam”içeriğinde biristekbeklediğini bilmiyorolsaydıkbundanemin olamayacaktık.İşte buyüzdenUDP servisleri içingeçerli birpayloadkullanaraktaramayapmakdaha sağlıklı. 2.3.2 Bir TCP servis örneği Şimdi benzerbirişlemi birTCPservisi kullanarakyapalım: #!/usr/bin/perl use IO::Socket::INET; # flush $| = 1; my ($socket,$client_socket); my ($peeraddress,$peerport); $socket = new IO::Socket::INET ( LocalHost => '0.0.0.0', LocalPort => '5000', Proto => 'tcp', Listen => 5, Reuse => 1
  72. 72. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 71 ) or die "Soket olusturulamadi : $!n"; print "TCP sunucu dinliyor ...n"; while(1) { $client_socket = $socket->accept(); $peer_address = $client_socket->peerhost(); $peer_port = $client_socket->peerport(); print "Yeni baglanti : $peeraddress, $peerportn "; while(1) { $client_socket->recv($data,1024); print "Istemciden alinan veri : $datan"; if ($data eq "selamn") { $data = "Sana da selam...n"; $client_socket->send($data); } } } $socket->close(); Önce servisimizi başlatalım:
  73. 73. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 72 Netcatile servisimizebağlanıyoruz.
  74. 74. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 73 UDP servisimize bağlandığımızdaherhangibirağ aktivitesi gerçekleşmemişti.TCPprotokolündeise sadece bağlandığımızdave herhangi birveri iletmediğimizde dahi 3adetpakettrafiği oluştu.  1. Paket:İlkpaketistemcimiztarafındansunucuyadoğruiletildi.İletilenpaketlerinhiçbirisinde herhangi birveri taşınmadı.Birinci paketiçin önemli bilgilerşunlar: o İşaretli TCPbayrakları:SYN o Sequence number:Belirlenmiş(2byte’lıkrastgele birdeğer) o Acknowledgementnumber:Belirlenmemiş  2. Paket:İkinci paketsunucudanistemciye doğruiletildi.Bupaket içinönemli bilgilerşunlar: o İşaretli TCPbayrakları:SYN,ACK (buradaki mantıkistemci tarafındangönderilenbirinci paketinalındığınıngeri bildirimi–acknowledge edilmesi,ayrıcasunucunungönderdiği ilkpaketolarakbu paketinişaretlenmesi –sychronize bayrağınınişaretli olması) o Sequence number:Belirlenmiş(2byte’lıkrastgele birdeğer) o Acknowledgementnumber:İstemci tarafındangönderilenpakette belirtilensequence rakamına “1” eklenerekhesaplanmışnumaraolarakiletilir.Burakamlaistemciye daha önce iletmişolduğupaketinteslimalındığıve karşıtaraflasenkronize olunduğu belirtilmişolunur.  3. Paket:Üçüncü paketistemcidensunucuyadoğruiletildi.Bupaketiçinönemli bilgilerşunlar: o İşaretli TCPbayrakları:ACK o Sequence number:2.pakette sunucutarafındanACKnumarası olarakiletilmişve “1” artırılmış olan bunumara ayneniletiliyor. o Acknowledgementnumber:Sunucununbelirlediği sıranumarası“1” artırılarak ACK numarası olaraksunucuyailetiliyor.
  75. 75. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 74 Yukarıda görmüşolduğunuzpaket alışverişleri TCPHandshake (el sıkışma) sürecininparçaları.İşte TCP protokolününbuözelliğiTCPporttaramalarının hızını ve etkinliğini UDPtaramalarınagöre çok daha artırıyor. TCP portları içinayrıca TCP state (durum) kavramındandabahsedebiliriz. Bunagöre birservis ilkdinlemeyebaşladığındaLISTENINGolarakdurumbilgisigörüntülenirkenel sıkışmasonrasıbağlantı gerçekleştiğinde ESTABLISHEDolarakgörüntüleniyor.
  76. 76. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 75 İlkpaketimizdeSYN bayrağıişaretli,sequence number0xedd3a4ec,acknowledgementnumberbu aşamada belirlenmemiş(0).
  77. 77. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 76 İkinci paketsunucudanistemciye iletiliyor,SYN ve ACKbayraklarıişaretli,acknowledgementnumarası1 artırılmış ve 0xedd3a4ed(dahaönceki pakette ecile bitiyordubunumara),sequence numarasıile sunucuiçinyeni belirlenmişve 0xe92bb11b.
  78. 78. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 77
  79. 79. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 78 Üçüncü ve sonel sıkışma paketinde ACKbayrağıişaretli.Acknowledgementnumberdeğeri istemcinin sequence numarasına1 eklenerek0xe92bb11chaline gelmiş.
  80. 80. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 79 İstemci uygulamaile sunucuya“hello”kelimesini gönderiyoruz. Bu iletişimi incelediğimizde “hello”kelimesine ekolarakEnter(0x0a) karakterininde sunucuyailetildiğini görüyoruz. Wiresharkaçısından ilginçbirbaşkadurumda TCP 5000 portununormalde kullananIPA protokolü şeklindepaketverisiniyorumlamayaçalışıyor.Ancakverimizbuprotokolle uyumluolmadığındandoğal olarakiçeriğinhatalıolduğunuiddiaediyor.
  81. 81. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 80 Sunucubu paketi aldığınıbelirtmeküzere birACKpaketi geri döndürüyor,ancakiçinde herhangi birveri bulunmuyor.BuanlamdaUDP’de de gördüğümüzgibi sunucubiryanıtvermiyor,ancakTCPprotokolü gereği geriye boşdaolsabirpaketdönüyor. İstemci uygulamabudefa“selam”kelimesinigönderiyor.
  82. 82. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 81 Yine aynı şekilde “selam”kelimesindensonra“0x0a” byte’ıveriye eklenmiş. Bu defasunucuiçinde veri olanbiryanıtdöndürüyor.Dönenverininboyutu17byte.
  83. 83. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 82 İstemci bupakete yanıtolarakveri barındırmayan ancak AcknowledgementNumber’ı17 artırılmış biçimde (18değeri ile) birpaketi sunucuyailetiyor. Bir önceki pakete tekrargözatarsakSequence numberdeğerinin(göreli olarak)1olduğunugörebiliriz.
  84. 84. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 83 2.3.3 Kapalı port davranışı (UDP) Açık portlarınnasıl davrandığını UDPServerve TCPServerscript’lerimizilegözlemledik.Şimdi birde kapalıUDP ve TCP portlarınındavranışlarını gözlemleyelim. İlkolarakkapalı birUDP portuna(UDP 5001) içinde herhangi birveri içermeyenbirUDPpaketi “hping3” paketüretme aracı ile gönderelim. Bu komutta“-c” opsiyonukaçpaketgönderileceğini,“-V”opsiyonuisehpingaracınınverbose (detaylı) çıktı üretecekbiçimdeçalışmasıgerektiğini söylüyoruz.“--udp”opsiyonuise göndereceğimizpaketin UDP paketi olmasıgerektiğini belirtiyor.
  85. 85. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 84 Bu isteğimize yanıtolaraksunucubirUDP paketi üretmiyor,ancakbize bupaketle ilişkili birICMPyanıtı gönderiyor.Wiresharkherne kadarICMPpaketi ile ilgili kayıttaportbilgilerini görüntülese de aslında ICMP paketi içinde birportkavramıyok. Ancakwiresharkbununbirportunreachable paketi olduğunu anladığı içinbu alanlarıda ilgili paketinportnumaralarıile doldurmuş.ICMPprotokolübuörnektende görüldüğügibi çokçeşitli amaçlarlakullanılanyardımcıbirprotokol. Port tarama işlemi sırasındaeğersunucuile aramızdaherhangi birfirewall yoksave hedefUDPportu kapalıise bu tür bir ICMPpaketi ile karşılaşmamızlazım.Bupaketi alabildiğimizdenetolarakportun kapalıolduğukanaatine varabiliriz.
  86. 86. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 85 2.3.4 Kapalı Port Davranışı (TCP) Bu defaSYN bayrağı işaretli birTCPpaketini yinekapalıbirTCPportunagönderiyoruz.
  87. 87. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 86 Ancak bu durumdaTCP protokolününkendi el sıkışmaaşamasıdevreye girdiğindenICMPgibi yardımcı bir protokole ihtiyacıyok.Bunagöre sunucukapalı birport içinistemciningönderdiği SYN paketini acknowledge ediyorfakatbirreset(RST) paketi ileyanıtveriyor. Budurumdaistemci iletişimkurmak istediği portunkapalıolduğunuanlamışoluyor. 2.3.5 Full Tarama (TCP) Sunucumuzüzerinde açıkolanportları“netstat –an” komutuile listeleyebiliriz.
  88. 88. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 87 Gerçekbir taramayı simüle etmekiçinfirewallkurallarınıdaaktif edelim.BununiçinLinux üzerindehazır gelenIptablespaketini kullanacağız.Öncelikle “iptables –L”komutuile tanımlıherhangi birkural olmadığındaneminoluyoruz.DahasonraINPUTchain’ine TCP80 ve TCP 5000 portları içinACCEPT kuralını tanımlıyoruz.Sonolarakkural listemizinsonunadefaultdenykuralınıekliyoruz.Şuhaliyle sunucumuzüzerindeki TCP80 ve 5000 portlarınaherhangi birkaynakIP adresindenerişilebilir,diğertüm isteklerise DROPedilirdurumda.Buaradaeğerfirewall kuralınıdropdeğil de rejectşeklindetanımlamış olsaydıkistemciyebirICMPpaketi gidecekti(ICMPType 3 – Code 13 DestinationUnreachable – CommunicationAdministrativelyProhibited).Böyle birdurumUDPtaramalarımız içinçok işe yarayabilirdi.Ne varki zamanımızdaki firewallkurallarındagenellikle DROPkuralıkullanılıyor.
  89. 89. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 88 Nmapile full TCPtaraması yapmakiçin“-sS” opsiyonuile SYN bayrağıişaretli paketleri kullanacağız.Bu taramada “nmap” herhangi birpayloadverisi kullanmıyor.Sadece TCPel sıkışmasürecininilkaşamasını uyguluyor.“nmap”inbirde “-sT”şeklinde birTCPtaramaopsiyonuvar.Bu TCP tarama opsiyonunun“- sS” opsiyonundanfarkıSYN taramasındael sıkışmanın tamamlanmaması,yani istemcininsonaşamada bir RST paketi göndererekoturumudahabaşlamadansonlandırması.“-sT”opsiyonununadıisTCP CONNECTscan yani oturumtam olarakkuruluyor,dahasonra oturumkapatılıyor.Oturumunkapatılması içinise FIN bayrağı işaretli paketlerkullanılıyor. İnternet’inilkzamanlarındaağcihazlarınınbazıları oturumkurulmadığızaman logkaydı üretmemekteymiş.Bunedenletarihsel olarak“-sS”yani SYN taraması aynı zamandaStealthtarama olarakda anılıyor. Ancakgünümüzde bununhiçbiranlamıyok,çünkügüncel firewall ve ağcihazlarıağ tarama işlemlerinianlayabilecekkadargelişmişdurumdalar. Full tarama ile kastımıztam olarakolabilecektümportnumaralarınıntaranması.Port numaralarıiçin ayrılan alan2 byte’lıkbiralan.Bualanda ifade edilebilecekmaksimumnumaraise 65535 rakamı. Bu nedenle 1-65535 arasındaki tüm portları tarıyoruz.“nmap” eğerherhangi birportaralığı parametre olarakkendisineverilmezise 1000 adetçok kullanılanportutarıyor ve diğerlerini taramıyor,bunu unutmamaktafaydavar.Eğer nmap’i öntanımlıolarakkullanırsanızçok kritikbirzafiyeti tespit edememenizmümkündür. Firewall kurallarıaktif ike full taramaTCP80 ve 5000 portlarını tespitetti ve toplamtaramasüresi 115,68 sn. oldu.
  90. 90. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 89 Bir de firewall kurallarıaktif değilken(dahadoğrusutümpaketleringeçişineizinverilirken) aynıtaramayı yapalım.Bununiçinkuralları“-F“ yani flushopsiyonuylatemizliyoruz.Amacımızaradaki zamanfarkını belirleyebilmek.
  91. 91. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 90 Bu defataramamız çok daha kısa birsürede,11,88 sn.de sonaerdi.Nmapgönderdiği paketlere yanıt alamadığındatekrar paketgönderiyorve beklemesüresi artıyor. 2.3.6 Full Tarama (UDP) Firewall kurallarıaktif değilken(yani kapalıUDPportlarınailetilenpaketlereyanıtolarakICMP yanıtları alınabilirken) yaptığımızöntanımlı(yani 1000 bilinenportiçinyapılan) taramadatoplamsüre 1085,58 sn.TCP taramalarına nazaran çok daha uzunbirsüre.ÜstelikUDP 34841 portu da tespitedilememiş.
  92. 92. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 91 Şimdi de açık olanUDP portlarımızıntümüne erişime izinverenve geri kalantümportlaraerişimiçin gelenpaketleri DROPedenfirewall kurallarımızıtanımlayalım. İlginç birbiçimde bukoşullaraltındataramasüresi çok daha kısa sürdü(17,66 sn.) ancak malesef tespit hassasiyetimizçokdüştü.KapalıUDPportları ile açık ancak beklediği girdiyi almadığındayanıt
  93. 93. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 92 üretmeyen UDPpaketleriaynıbiçimde davrandığındantümbuportlarınkapalı olduğunakanaatgetirdi. UDP 161, yani SNMPprotokolüiçinhazır payload’ubulunduğundannmapbuportunetolarak açık şeklindebelirledi.Ancakdiğerlergözdenkaçtı. Yine firewall kurallarıaktif ancakbudefatüm UDP portlarını taradığımız durumdaise süre oldukçaarttı (1100,45 sn.).Tespithassasiyeti ise malesef değişmedi.Budurumeğerkritikbirservisgeliştirdiysenizbu servisininterneteaçılmasıiçinUDP protokolününtercihedilebilirolduğuanlamınagelebilir.Tabi oturum yönetimi ve pakettakibi gibikonulardagüvenebileceğinizbirkatmanolmayacağını,buihtiyaçlarıkendi kodlarınızlakarşılamanızgerektiğini unutmamakkaydıyla. Sonuçlarbu şekildeolmaklabirlikte internet taramalarındadafull porttaramayı tercihetmemizde faydavar, özellikle kritiksunuculariçin.
  94. 94. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 93 3 Enumeration Enumerationkavramınıkeşif olarakçevirebiliriz,ancaktamolarakanlamını aslındaneyin enumeration’ınındanbahsettiğimizi netleştirerekanlayabiliriz.3tür enumeration’danbahsedebiliriz aslında,servis,işletimsistemive kullanıcı.Kullanıcıtespitiniayrıbirbaşlıkaltında ele alacağızçünkü kullanıcıadlarını birbirlerindenoldukçafarklıbiçimlerde tespitedebiliyoruz. 3.1Servis enumeration #!/usr/bin/perl use IO::Socket::INET; # flush $| = 1; my ($socket,$client_socket); my ($peeraddress,$peerport); $socket = new IO::Socket::INET ( LocalHost => '0.0.0.0', LocalPort => '5000', Proto => 'tcp', Listen => 5, Reuse => 1 ) or die "Soket olusturulamadi : $!n"; print "TCP sunucu dinliyor ...n"; while(1) { $client_socket = $socket->accept(); my $data = "220 BTRisk FTP Sunucusuna Hoşgeldinizrn220 ProFTPD 1.3.5 Server (ProFTPD)"; $client_socket->send($data); } $socket->close();
  95. 95. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 94 Servistespiti konusunasondanbaşadoğruyaklaşacağım.Öncelikle servistespitiiçinkullanılanaraçlarve bu araçların kullandığıyöntemleri netleştirelim. Örnekolarakyukarıda gördüğünüzTCPservisscript’ini kullanacağız.Buscriptport tarama için kullandığımızörneğe benziyor,ancakşöyle birfarkıvar; buservisherhangi birgirdi beklemeden kendisinebağlantıkuranherhangi biristemciye hemen“220BTRisk FTPSunucusunaHoşgeldiniz”ile başlayanbirveriyi gönderiyor.Bunubir nevi servicebanner’ıolarakdüşünebilirsiniz.BuservisTCP5000 portundaçalışacak.
  96. 96. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 95 Yine netcatile servisimizebağlandığımızdabannerdavranışınıgözlemleyebiliriz.Bağlantıkurulur kurulmazbannerbilgisiistemciyegönderildi. Servistespitaracı olarak“nmap”i kullanacağız.Örneklerimizinhemenhepsinde nmap’i kullandık,ancak nmaptek porttarama veyaenumerationaracı diyemeyiz.Ticari çözümlerde kendi porttaramave enumerationmotorlarınıiçeriyor.Buaçıdan Nessus,Qualysgibi zayıflıktaramaaraçları da benzer işlevlere sahipler. Nmap’i çalıştırırkenkullandığımızopsiyonlarıaçıklayalım:  “-Pn”:Nmap normalde birsunucuyayönelikporttaramasıyapmadanönce bir pingpaketi,buna yanıt alamazsaTCP 80 ve 443 portlarınabirerpaketgönderir.Böylece sunucununayaktaolup olmadığını anlamayaçalışır, eğerherhangi biryanıtalamaz ise de taramayı gerçekleştirmez.“- Pn” opsiyonuözellikle firewall arkasındabulunanve mevcutolduğunudüşündüğümüzveyaçok kritikolabileceksunuculariçinmutlaka kullanılmasıgerekenbiropsiyon,aksi takdirde port taramamız gerçekleşmeyecektir.  “-sV”:Bu opsiyonnmap’e sadece porttaramayapmamasını,aynı zamanda tespitettiği servislerinne olduğunayönelikincelemede yapmasıgerektiğinibelirtir.Buseçenekneticesinde nmaptespitedilenservislere UDPtaramasındauyguladığıstratejiye benzerşekildebazı payload’largönderir.Bupayload’larservisintamolarakne olduğunuanlamakonusundabizi çok daha iyi aydınlatır.  “--version-all”:nmap’innormalde kendine göre uyguladığıbiroptimizasyonvar,bunagöre belirli payload’larıbelirli portlarayönelikolarakgönderiyor.Buopsiyonlanmap’e tespitettiğin portlariçinelindekitümpayload’larıkullanemriniveriyoruz.Elbette buyöntemçokdahafazla
  97. 97. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 96 paketüretilmesinenedenolacak,özellikle servissayısıarttığında budurum katlanacak.  “-p1-65535”: Bu opsiyonbildiğinizgibifull porttaramasıiçinkullandığımızopsiyon. Taramanın sonundanmapbize TCP 5000 portundaçalışanservisinProFTPD1.3.5 olduğunusöyledi. Muhtemelenbusonucaneredenvardığınıtahminedebiliyorsunuzdur.Busonucundoğruolduğunu varsayarakdaha sonraki aşamalardaneleryapabilirdikbirazilerleyelim. Metasploitiçindeki exploitmodülleri içinde adındaProFTPgeçenmodülleri aradığımızdatam da bu versiyoniçinhazırbirexploitolduğunugörüyoruz. Benzerbiraramayı CVEDETAILSwebsitesinde aradığımızdauzaktanherhangi birdosyayıokumamızave yazmamızaimkanverenbiraçıklığın bulunduğunugörebiliyoruz. Keşke elde ettiğimizsonuçdoğruolsaydı,ancakbizbusonucundoğru olmadığınıbiliyoruz.Pekinmap TCP 5000 servisini nedenProFTPDsunucusuolarakbelirledi?
  98. 98. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 97 Nmapservistespiti içindahaönce de bahsettiğimizgibi bazıpayload’largönderiyor.Bupayload’ların nelerolduğunuve bunlarakarşılıkhangi yanıtlarıbeklediğini nmap-service-probesdosyasında görebiliriz. Bu dosyadayukarıda Exclude T:9100-9107 direktifi TCP9100 ve 9107 portlarınınaşağıdaki probe işlemlerindenmuaf olduğuanlamınageliyor.Özetle buportlaryazıcılar tarafındankullanıldığından taramalar sırasında kağıt israfınave hizmetkesintisine yol açmamakiçinbuportlarıkapsamdışında bırakıyoruz.Bir başka deyişlebuportlararasındakritikbirservisçalıştırsanız bile enumerate edilemez. “Probe TCP NULL” direktifi ise sadecesunucuyabağlanve herhangi birprobe payload’ugönderme anlamınageliyor.Bizimservizimizde herhangibirveri beklemedenbiryanıtgönderiyorzaten.
  99. 99. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 98 Bu dosyaiçindeki birsatırbizimsunucuservisimizinürettiği veriye benziyor.“match”direktifi dönen yanıtları bu direktifteki veri ilekarşılaştırıyorve eğertutarlıise raporluyor.Karşılaştırmayapılaniçerikbir REGEXP cümlesi.Buradaki regularexpression’ıokursak:  İlksatır satır başında 220 ile başlamakkaydıile herhangi bir metin  İkinci satır başındada yine “220 ProFTPD“ ile başlayan,devamındaherhangi birwordkarakteri (yani küçükharf,büyükharf,rakam ve alt çizgi) veyaaltçizgi veyatire karakterlerindenenazbir adettenoluşanbirkelime,devamındada“ Server(ProFTPD)”ifadesiniarıyor. İkinci satırsa parantezişaretleriarasındabulunankısımise nmaptarafından servisinversiyonu raporlanırkenkullanılıyor($1bueşleşmeninyerine geçiyor). İşte bu nedenlenmapTCP5000 portundaçalışan servisinProFTPD1.3.5 versiyonuolduğunuzannetti.
  100. 100. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 99 Nmap-service-probesdosyasındaiçinde matchgeçensatırsayısını saydırdığımızda toplam10408 satır olduğunugörüyoruz.Yani eleştirmedenönce yapılanişinboyutunudagörmemizlazım. Null probe dışındabir örnekvermekgerekirse HTTPservislerinitespitetmeyeyönelikbirprobe örneği olarakda yukarıdaki verilebilir,birgetisteğindensonraiki enter’ıifadeedenbirprobe sonrasında aşağıda gelenmatchifadeleri bekleniyor.Port’larolarakdabelirtilenportlarayönelik gönderilmesi öngörülüyorbuprobe’un.
  101. 101. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 100 3.2İşletim sistemi enumeration Servistespitininaçıklıkbarındırabilecekservislerinnetolarakbelirlenebilmesi ve bunayönelikolarak saldırı araç ve yöntemlerininbelirlenebilmesi içinönemli biraşamaolduğunakısacadeğindik.Peki işletimsistemi tespitinedenönemli olabilir. İşletimsistemi tahmininingerekçeleri:  Hedef sunucunun açıklıkbarındırıp barındırmadığının tahmini (örneğinrwhoservisiSolaris7-9 arasında exploitedilebilirkenSolaris10’dabu açıklık giderilmiştir).  Exploitkodlarınınçalışabilmesi içindüzenlenmesi (açıklıkbarındıranbirservistespitetsenizbile exploitkodunuzuniçindeki adreslerinhedef işletimsistemininversiyonunauygunhale getirilmesi gerekebilir.Çünküexploit’unatlama adresi olarakkullandığıbölümdeki kodlarişletim sistemi güncellemesi ileortadankalkmışveyakaymışolabilir)  Envantertakibi (güvenlikyöneticisiolarakağınızabağlı cihazlarıtakipetmekiçinbuyöntemi kullanabilirsiniz)  İzinsizve tehlikeli cihazlarıntespiti  Sosyal mühendislik(hedeflediğinizbirkullanıcıhakkındasize destekleyici bilgi sağlayabilir) İşletimsistemi tespiti yöntemleri hedef sunucuTCP/IPstack’inindavranışlarınıesasalır. Bu davranışlar arasındaki farklılıklaraörnekolarakLinux ve Windowspinguygulamalarınınürettiği ICMPpaketlerinin arasındaki farkı görmüştük. Nmapsağlıklıbirtespitiçinenaz 1 açık ve en az 1 kapalıport olmasıgerekir demektedir.
  102. 102. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 101 “nmap”inişletimsistemitespiti özelliğini kullanabilmekiçin “-O”opsiyonunukullanıyoruz.
  103. 103. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 102 “nmap” tekbiraçık port ile etkileşime ve muhtemelenbazıICMPpaketlerininiletilmesinedayanarak hedef bilgisayarınVistave üzeri olabileceği kanaatine vardı.Hedef bilgisayarımızise yukarıda gördüğünüzgibi Windows764 bitişletimsistemi. Nmap’inkapalıportlarada erişilebilmesive budurumdaişletimsistemini ne kadariyi belirleyebildiğini gözlemleyebilmekiçinWindowsFirewall’udevre dışıbırakıyoruz.
  104. 104. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 103 Nmap’intespitini birazdahaiyileştirdiğini söyleyebiliriz.
  105. 105. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 104
  106. 106. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 105 “nmap”in-A (AggressiveScan) opsiyonuile servisversiyonu,işletimsistemi tespiti,scriptscanningve traceroute birlikte yapılıyor.
  107. 107. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 106 4 Kullanıcı tespiti Servisversiyonuve işletimsistemitespitininamacıhedef sistemüzerinde bulunabilecekbilinen açıklıkların doğrutahminedilebilme ihtimalini artırmaktı.Kullanıcıtespiti adımınınamacı ise öntanımlı parolalaraveyakolaytahminedilebilirparolalarasahipkullanıcıadlarınıbulmayıhedefliyor.Tabi zaman kısıtı az ise tespitedilenkullanıcıhesaplarınayönelikdahauzunkabakuvvetsaldırılarıda düzenlenebilir. 4.1Null session WindowsNTve Windows2000 bilgisayarlardahaönceki Microsoftişletimsistemleri olanWindows95 ve 98 işletimsistemleri ileuyumamacıylaöntanımlıolarakIPC$admin dosyapaylaşımınaanonimerişimi (yani null session’ı) mümkünkılıyordu.Ancakbubağlantısonrasındahedef sistemüzerindekikullanıcı listesi ve uygulananparolapolitikasıdadahil olmaküzere pekçokbilgi belli komutlarlaelde edilebiliyordu.Windows XPile öntanımlıolarakkapalıgelenbuözellikyine bazıayarlarıgevşeterek açılabiliyor. Windows2000 işletimsistemi modernişletmelerdeartıkkarşılaşmaihtimalimizindüşükolduğubir işletimsistemi.Karşılaşmamızhalinde de muhtemelenkullanıcılistesiçekmeninçokötesinde açıklıklara da sahiptir.Ancakenmeşhurkullanıcıtespityöntemlerindenbirisi olduğundanve belli biryaşıaşkın işletmelerde kıyıdaköşede kalmışböyle birsunucuyarastlamaihtimalinizolduğundannull session enumeration’dan bahsetmedengeçemeyiz.
  108. 108. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 107 Kali Linux üzerinde gelenenum4linuxaracıile null sessionüzerindenhedef sistemhakkındapekçokbilgi elde edebilirsiniz.Pekçokkonudaolduğugibi bukonudadafarklıpekçok araç kullanılabilir.
  109. 109. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 108 Hedef işletimsisteminin birWindows2000 sunucuolduğunugörebiliriz. Null session’ıengellemekiçingerekliolanrestrictanonymousregistrydeğerinin“0”olmasısayesinde bu bilgilere erişebiliyoruz.Güvenlibirkonfigürasyondabudeğerin“2”olmasıbeklenirdi. 4.2SNMP Enumeration SNMP özellikleağüzerinde uzaktanizlemeve yönetimamacıylakullanılanbirprotokoldür.Protokolün fonksiyonalitesigereğieğerbuservise erişebiliyorsanızhedef sistemhakkındaoldukçazenginbilgilere de erişebilirsiniz.Tabi eriştiğinizbilgilersistemdensisteme farklılıkgösterecektir.SNMPdesteği özellikle ağ bileşenlerinde çokyaygındır.Bununlabirlikte genel amaçlıişletimsistemlerininde SNMPdesteği bulunmaktave bilgi toplamaileilgilibize yardımcıolabilmektedir. SNMP v1 ve v2 versiyonlarıkullanıcıtanılamaiçinsadece birtekdeğeri (communitystring) kullanırve bu değerde kriptolanmadaniletilir.DolayısıylaARPPoisoningyapılabilenbiriçağda bu bilgilerinçalınması kaçınılmazdır.Pekçok durumdada bu değergenelde kullanılan değerolan“public”(sadece okuma) ve/veya“private”(okumave yazma) olarakbelirlenir.
  110. 110. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 109 4.2.1 Windows için Windows’daSNMPservisini aktif halegetirebilmekiçinöncelikle buözelliğinkurulumugerekmektedir (örnekWindows7bilgisayardandır).
  111. 111. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 110 Daha sonra ServicesbölümündeSNMPservisine çifttıklayarakaşağıdaki ekranıaçmanızve community stringtanımını yapmanızgerekir.
  112. 112. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 111 Güvenlikayarlarınınyapıldığıbu ekrandaayrıca SNMP erişimi yapabilecekistemcilerde kısıtlanabilir.Biz erişimi herkese açıkolaraktanımlıyoruz.
  113. 113. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 112 SNMP protokolüMIB(ManagementInformationBase) adıverilenağaçlarve buağaçların dallarından (OID– ObjectIdentifier) oluşur(ör: 1.3.6.1.4.868.2.4.1.2.1.1.1.3.3562.3). Dolayısıylaveri çektiğiniz aracın bu dallarınne anlamageldiklerini de anlamasıgerekir.SNMPbilgilerininçekilebilmesi içinçeşitli araçlar kullanabilirsiniz,ancakMetasploit’insnmp_enummodülüWindowsve Linux işletim sistemlerindenelde ettiğinizbilgileri siziniçinanlamlandırarakraporlar.
  114. 114. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 113 Yukarıda hedef WindowssistemdenSNMPile çekilenkullanıcıadlarınıgörebilirsiniz. 4.2.2 Linux için Linux işletimsistemiörneğimizKali,yani Debiantabanlıbirişletimsistemi.Unix /Linux işletim sistemlerinde genellikle kullanıcılistesininSNMPile alınabildiğini görmedim,ancakbukarşılaşılmayacağı anlamınagelmez.
  115. 115. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 114 Debianile gelenSNMPservisi içinkonfigürasyondosyası/etc/snmp/snmpd.conf dosyası.SNMP servisine tümistemcilerdenerişilebilmesi içinbircommunitystringtanımıve kaynaksunucuayarı yapıyoruz(“rocommunitypubliclocalhost”).
  116. 116. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 115 Debiansnmpdpaketi öntanımlıolarakkullanıcıadlarınısızdırmıyor, ancak diğersistembilgilerini sızdırıyor: 4.3Elde edilen e-posta adresleri (eposta uygulamaları ve vpn kapıları) E-postahesaplarınagenellikle HTTPSüzerindeninterneterişimi de mümkünolmaktadır.Buaçıdan e- postahesaplarıgerekbilgi sızdırmagerekse sosyal mühendisliksaldırılarıiçinhedefe oturmaktadır. PekçokkurumMS Exchange e-postasunucusukullanmaktave busunuculardaki e-postahesaplarına erişimlerde aktif dizinsunucularındandoğrulanmaktadır.VPN erişimlerinde de aktif dizinhesaplarının kullanımınınyaygınolmasıyine e-postahesapbilgisini değerlihale getirmektedir. Burada bahsedilecekörneklersistemlerüzerindenbubilgilerindoğrudanveyadolaylıolarak toplanmasınayöneliktir.Bununlabirliktehedef kurumdaçalışanpersonel isimlerini ve kurumun kullandığıe-postahesapformatınıtespitetmekhiçde zordeğildir.Bunagöre personel ismindenyola çıkarak da e-postahesapbilgilerini tahminedebiliriz. Harvesteraracı e-postahesapbilgilerini kolaycatoplayabilmekiçinkullanabileceğimizaraçlardanbirisi. Harvester’ınbilgi topladığıkaynaklarlailgili güncelbilgiyearacınwebsitesindenulaşabilirsiniz.Mevcut imkanlararasındaGoogle,Bing,Pgpsunucuları,Linkedin,Exaleadgibi kaynaklarmevcut.
  117. 117. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 116 Bir diğerkaynakise hedef kurumunsahipolduğuwebsiteleri.Busitelerdeki içeriğinaramamotorları tarafındanda kaydedilmişolmasıbeklenebilir,ancakaramamotorları kötüye kullanımıengelleyebildiği içinistediğimizverilere harvestergibi araçlarlaulaşamadığımızdurumlardakendi yöntemlerimizi kullanabiliriz.Buyöntemlerdenbirisi hedef kurumwebsitesini spideredereksiteiçeriğinde e-posta hesabıformatındaki verileri arayabiliriz.BurpSuite aracıticari lisanslısürümündegelenscannermodülü ile tespitettiği e-postaadreslerinilisteleyebilmektedir. Bununiçinmanuel veyaotomatikolaraksite içeriğini görmemizgerekmektedir.Önceliklesitemizi otomatikolarakspideredelim:
  118. 118. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 117 Burp suite websitemiziniçeriğini spiderettiği sırada2 adete-postaadresini tespitetmiş. 4.4Ofis dokümanlarının metadata’ları
  119. 119. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 118 Hedeflediğinizkurumaaitwebsitelerindeyayınlananofisdokümanlarını yukarıdaki örnekte gördüğünüz gibi filtrelerle tespitedebilirsiniz,yadaspiderederektespitedilenofisdokümanlarınıdalisteleyebiliriz.
  120. 120. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 119 Ofisdokümanlarıgenellikle metadata’larıtemizlenmedenyayınlanmaktadır.Bunedenle bu metadata’nıniçinde Windowskullanıcıadı olabilecekbilgileri bulabilirsiniz.Bubilgilerterminal servisi, VPN,e-postawebuygulamasıgibi diğerağservislerine girişamaçlıolarakkullanılabilir. 4.5Diğer Kullanıcı Tespit Yöntemleri Kullanıcıtespiti veyakullanıcılarınvarolupolmadığını tespitetmekiçinbazıdurumlardafarklı imkanlarımızda olabilir: 4.5.1 Öntanımlı kullanıcı tespiti Hedef işletimsistemi ileherhangibiretkileşimimkanımızvarsa(örneğinsshveyatelnetgibi bir protokolle bağlanabiliyorsak)buetkileşimarayüzündeeldeettiğimizbazıbilgilersistemle ilgili bizedaha detaylıbilgi verebilir.Örneğinkarşımızdaki birLinux sunucusunabuşekilde eriştiğimizdebununbelli bir üreticininürettiği birsantral sunucusuolduğunutespitedebiliriz.Budurumdaöntanımlıparolalisteleri bize girişkapısını açabilirler. 4.5.2 Web uygulamaları aracılığı ile kullanıcı sızdırma Hedef kurumaaitbazı webuygulamalarınındoğruve hatalı kullanıcıkodlarıile yapılanerişim denemelerindeayırtedici hatayanıtları döndürecek birşekilde kodgeliştirilmeleri halinde (kimi durumlardaşans,kimi durumlardatahminedilebilirkullanıcıkodlarınınkullanıcılaraatanmasısayesinde) netolarak belli birkullanıcıkodunungeçerli olupolmadığınıtespitedebiliriz.Butespityapıldıktan sonra da parolapolitikasınabağlıolarakkabakuvvetsaldırısı ile webuygulamasınaerişimgerçekleştirmemiz söz konusuolabilir.
  121. 121. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 120 4.5.3 SMTP enumeration Açıkçası pekkarşılaşılmasada EXPN ve VRFY SMTP komutlarıile ismini bizimverdiğimizkullanıcıların hedef sistemüzerindetanımlıolupolmadıklarınıtespitedebiliriz.Ancakbutür birtestte hedefi doğru belirleyebilmeniziçinzatenşüpheliöntanımlıkullanıcılarıhedef almanızlazım.BudurumdaSMTP enumerationyöntemi sadece basitbirdoğrulamaimkanısunabilir.
  122. 122. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 121 5 BTRİSK Hakkında 2009 yılında kurulmuşve sadece bilgi güvenliği hizmetlerineodaklanmış olan BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri bilgi güvenliği problemine yönetim kurulu seviyesinden sistem odası uygulamasına kadar uzanan alanda çözüm üretmektedir. BTRiskbilgi güvenliği problemini görünür hale getirerek algılanmasını, anlaşılmasını ve dolayısıyla ele alınmasını mümkün hale getirmektedir. BTRiskbilgi güvenliği probleminekarşıgeliştirdiği yaklaşımları gerçek hayat koşullarında test etmiş ve uygulanabilir hale getirmiştir. Bilgi güvenliği ve BT yönetişim hizmet alanlarımız aşağıdaki gibidir:  Pentest Hizmetleri  Bilgi Güvenliği ve BT Yönetişim Hizmetleri  Bilgi Güvenliği Operasyon Hizmetleri  Bilgi Güvenliği Eğitimleri Özgün ürünlerimiz aşağıdaki gibidir:  BTRWATCH Bilgi Güvenliği Risk Analizi ve Denetim Uygulaması  BTRMON 5651 Uyumlu Wi-Fi ve Kablolu Ağ Hotspot Çözümü  BTROTP Tek Kullanımlık Parola Çözümü Pentest & BT Denetimi ISO27001 Danışmanlık Hizmetleri BG Operasyon Hizmetleri

×