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
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.
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
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.
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.
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.
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.
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:
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.
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ı.
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
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.
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
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.
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.
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
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.
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.
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
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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
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ı.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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
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).
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).
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ü.
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();
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
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.
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.
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.
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.
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
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:
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.
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.
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.
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.
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.
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.
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.
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.
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ş.
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
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.
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();
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
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?
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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