SlideShare uma empresa Scribd logo
1 de 122
SIZMA TESTİ
BİLGİ TOPLAMA
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
9
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
13
Burp bize diğersitelere verilenlinklerdolayısıylabulduğualanadlarınıdaTarget bölümünde
gösterecektir.
1.2.2.4 DNS sorguları ile
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
15
1.2.2.5 Zone transfer
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.
BTRiskBilgi Güvenliğive BTYönetişimHizmetleri
SIZMA TESTİ BİLGİ TOPLAMA
17
1.2.2.6 DNS bruteforce ile
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
20
1.2.2.8 Daha çok amaçlı araçlara örnekler:
theHarvester
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
30
Browser’ımızile sanal makinemizüzerinde TCP500 portu üzerinde çalışmaktaolanwebsunucumuza
bağlanırkenWiresharkile trafiği izleyelim.
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
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.
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
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)
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:
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.
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
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:
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
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.
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.
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
63
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
72
Netcatile servisimizebağlanıyoruz.
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.
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.
BTRiskBilgi Güvenliğive BTYönetişimHizmetleri
SIZMA TESTİ BİLGİ TOPLAMA
75
İlkpaketimizdeSYN bayrağıişaretli,sequence number0xedd3a4ec,acknowledgementnumberbu
aşamada belirlenmemiş(0).
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.
BTRiskBilgi Güvenliğive BTYönetişimHizmetleri
SIZMA TESTİ BİLGİ TOPLAMA
77
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ş.
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.
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
85
2.3.4 Kapalı Port Davranışı (TCP)
Bu defaSYN bayrağı işaretli birTCPpaketini yinekapalıbirTCPportunagönderiyoruz.
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
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.
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
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.
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
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.
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
101
“nmap”inişletimsistemitespiti özelliğini kullanabilmekiçin “-O”opsiyonunukullanıyoruz.
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.
BTRiskBilgi Güvenliğive BTYönetişimHizmetleri
SIZMA TESTİ BİLGİ TOPLAMA
103
Nmap’intespitini birazdahaiyileştirdiğini söyleyebiliriz.
BTRiskBilgi Güvenliğive BTYönetişimHizmetleri
SIZMA TESTİ BİLGİ TOPLAMA
104
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.
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
110
Daha sonra ServicesbölümündeSNMPservisine çifttıklayarakaşağıdaki ekranıaçmanızve community
stringtanımını yapmanızgerekir.
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.
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
114
Debianile gelenSNMPservisi içinkonfigürasyondosyası/etc/snmp/snmpd.conf dosyası.SNMP
servisine tümistemcilerdenerişilebilmesi içinbircommunitystringtanımıve kaynaksunucuayarı
yapıyoruz(“rocommunitypubliclocalhost”).
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.
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:
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ı
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

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

WEB ve MOBİL SIZMA TESTLERİ
WEB ve MOBİL SIZMA TESTLERİ WEB ve MOBİL SIZMA TESTLERİ
WEB ve MOBİL SIZMA TESTLERİ
 
Web Servislerine Yönelik Sızma Testleri
Web Servislerine Yönelik Sızma TestleriWeb Servislerine Yönelik Sızma Testleri
Web Servislerine Yönelik Sızma Testleri
 
Metasploit El Kitabı
Metasploit El KitabıMetasploit El Kitabı
Metasploit El Kitabı
 
Uygulamalı Ağ Güvenliği Eğitim Notları
Uygulamalı Ağ Güvenliği Eğitim NotlarıUygulamalı Ağ Güvenliği Eğitim Notları
Uygulamalı Ağ Güvenliği Eğitim Notları
 
Kesif ve Zafiyet Tarama
Kesif ve Zafiyet TaramaKesif ve Zafiyet Tarama
Kesif ve Zafiyet Tarama
 
Ağ Protokollerine Yönelik Adli Bilişim Analizi
Ağ Protokollerine Yönelik Adli Bilişim AnaliziAğ Protokollerine Yönelik Adli Bilişim Analizi
Ağ Protokollerine Yönelik Adli Bilişim Analizi
 
Kablosuz Ağ Saldırı Araçları
Kablosuz Ağ Saldırı AraçlarıKablosuz Ağ Saldırı Araçları
Kablosuz Ağ Saldırı Araçları
 
Nmap101 Eğitim Sunumu - Nmap Kullanım Kılavuzu
Nmap101 Eğitim Sunumu - Nmap Kullanım KılavuzuNmap101 Eğitim Sunumu - Nmap Kullanım Kılavuzu
Nmap101 Eğitim Sunumu - Nmap Kullanım Kılavuzu
 
Kaynak Kod Analiz Süreci
Kaynak Kod Analiz SüreciKaynak Kod Analiz Süreci
Kaynak Kod Analiz Süreci
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
 
Siber Güvenlik ve Etik Hacking Sunu - 10
Siber Güvenlik ve Etik Hacking Sunu - 10Siber Güvenlik ve Etik Hacking Sunu - 10
Siber Güvenlik ve Etik Hacking Sunu - 10
 
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 1
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 1Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 1
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 1
 
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme ÇalışmalarıWindows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
 
10 Adımda Sızma Testleri
10 Adımda Sızma Testleri10 Adımda Sızma Testleri
10 Adımda Sızma Testleri
 
Hacking'in Mavi Tarafı -2
Hacking'in Mavi Tarafı -2Hacking'in Mavi Tarafı -2
Hacking'in Mavi Tarafı -2
 
Temel ağ bilgisi
Temel ağ bilgisiTemel ağ bilgisi
Temel ağ bilgisi
 
Web Uygulama Pentest Eğitimi
Web Uygulama Pentest EğitimiWeb Uygulama Pentest Eğitimi
Web Uygulama Pentest Eğitimi
 
Güvenlik Testlerinde Bilgi Toplama
Güvenlik Testlerinde Bilgi ToplamaGüvenlik Testlerinde Bilgi Toplama
Güvenlik Testlerinde Bilgi Toplama
 

Destaque

Destaque (6)

Web uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirmeWeb uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
 
Yazıcı Güvenliği
Yazıcı GüvenliğiYazıcı Güvenliği
Yazıcı Güvenliği
 
Android Uygulamaların Tersine Mühendislik Yöntemi ile İncelenmesi
Android Uygulamaların Tersine Mühendislik Yöntemi ile İncelenmesiAndroid Uygulamaların Tersine Mühendislik Yöntemi ile İncelenmesi
Android Uygulamaların Tersine Mühendislik Yöntemi ile İncelenmesi
 
Kali Linux Hakkında Herşey
Kali Linux Hakkında HerşeyKali Linux Hakkında Herşey
Kali Linux Hakkında Herşey
 
Bilişim Teknolojilerinde Yönetişim
Bilişim Teknolojilerinde YönetişimBilişim Teknolojilerinde Yönetişim
Bilişim Teknolojilerinde Yönetişim
 
BTRİSK Web Uygulama Güvenliği Denetimi Eğitim Sunumu
BTRİSK Web Uygulama Güvenliği Denetimi Eğitim SunumuBTRİSK Web Uygulama Güvenliği Denetimi Eğitim Sunumu
BTRİSK Web Uygulama Güvenliği Denetimi Eğitim Sunumu
 

Semelhante a Sizma testi bilgi toplama

Infraskope Security Event Manager
Infraskope  Security  Event  ManagerInfraskope  Security  Event  Manager
Infraskope Security Event Manager
logyonetimi
 
Tcp ip iletim katmanı
Tcp ip iletim katmanıTcp ip iletim katmanı
Tcp ip iletim katmanı
Onur Şaner
 
Çalıştay | DDoS Saldırıları Nasıl Gerçekleştirilir?
Çalıştay | DDoS Saldırıları Nasıl Gerçekleştirilir?Çalıştay | DDoS Saldırıları Nasıl Gerçekleştirilir?
Çalıştay | DDoS Saldırıları Nasıl Gerçekleştirilir?
BGA Cyber Security
 
Ozgur Yazilimlar ile VoIP Guvenlik Denetimi
Ozgur Yazilimlar ile VoIP Guvenlik DenetimiOzgur Yazilimlar ile VoIP Guvenlik Denetimi
Ozgur Yazilimlar ile VoIP Guvenlik Denetimi
Fatih Ozavci
 
Tcp ip ve ip adresleme
Tcp ip ve ip adreslemeTcp ip ve ip adresleme
Tcp ip ve ip adresleme
Onur Şaner
 
Cryptospot kullanım kılavuzu (v1.6.0)
Cryptospot   kullanım kılavuzu (v1.6.0)Cryptospot   kullanım kılavuzu (v1.6.0)
Cryptospot kullanım kılavuzu (v1.6.0)
Neyasis Technology
 

Semelhante a Sizma testi bilgi toplama (20)

Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 2
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 2Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 2
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 2
 
Forti gate yapılandırma
Forti gate yapılandırmaForti gate yapılandırma
Forti gate yapılandırma
 
Dokunsal Navigasyon Cihazı
Dokunsal Navigasyon CihazıDokunsal Navigasyon Cihazı
Dokunsal Navigasyon Cihazı
 
DHCP Servisine Yeni Bir Bakış (New Look at DHCP Service)
DHCP Servisine Yeni Bir Bakış (New Look at DHCP Service)DHCP Servisine Yeni Bir Bakış (New Look at DHCP Service)
DHCP Servisine Yeni Bir Bakış (New Look at DHCP Service)
 
Site to site vpn
Site to site vpnSite to site vpn
Site to site vpn
 
Network - Bilgisayar Ağlarına Giriş
Network - Bilgisayar Ağlarına Giriş Network - Bilgisayar Ağlarına Giriş
Network - Bilgisayar Ağlarına Giriş
 
Pingturkpresentationshort 190730231427
Pingturkpresentationshort 190730231427Pingturkpresentationshort 190730231427
Pingturkpresentationshort 190730231427
 
Infraskope Security Event Manager
Infraskope  Security  Event  ManagerInfraskope  Security  Event  Manager
Infraskope Security Event Manager
 
Tcp ip iletim katmanı
Tcp ip iletim katmanıTcp ip iletim katmanı
Tcp ip iletim katmanı
 
Yerel Alan Ağları - Bilgi Sistemleri Alım Yöntemleri
Yerel Alan Ağları - Bilgi Sistemleri Alım YöntemleriYerel Alan Ağları - Bilgi Sistemleri Alım Yöntemleri
Yerel Alan Ağları - Bilgi Sistemleri Alım Yöntemleri
 
Sbs 2008 rras_vpn
Sbs 2008 rras_vpnSbs 2008 rras_vpn
Sbs 2008 rras_vpn
 
INTERNET VE YEREL AĞ SIZMA TESTLERİ
INTERNET VE YEREL AĞ SIZMA TESTLERİ INTERNET VE YEREL AĞ SIZMA TESTLERİ
INTERNET VE YEREL AĞ SIZMA TESTLERİ
 
Çalıştay | DDoS Saldırıları Nasıl Gerçekleştirilir?
Çalıştay | DDoS Saldırıları Nasıl Gerçekleştirilir?Çalıştay | DDoS Saldırıları Nasıl Gerçekleştirilir?
Çalıştay | DDoS Saldırıları Nasıl Gerçekleştirilir?
 
Ozgur Yazilimlar ile VoIP Guvenlik Denetimi
Ozgur Yazilimlar ile VoIP Guvenlik DenetimiOzgur Yazilimlar ile VoIP Guvenlik Denetimi
Ozgur Yazilimlar ile VoIP Guvenlik Denetimi
 
Tcp ip ve ip adresleme
Tcp ip ve ip adreslemeTcp ip ve ip adresleme
Tcp ip ve ip adresleme
 
Cryptospot kullanım kılavuzu (v1.6.0)
Cryptospot   kullanım kılavuzu (v1.6.0)Cryptospot   kullanım kılavuzu (v1.6.0)
Cryptospot kullanım kılavuzu (v1.6.0)
 
IP, IGP, MPLS Eğitim Sunumu @Çankaya Üniversitesi
IP, IGP, MPLS Eğitim Sunumu @Çankaya Üniversitesi IP, IGP, MPLS Eğitim Sunumu @Çankaya Üniversitesi
IP, IGP, MPLS Eğitim Sunumu @Çankaya Üniversitesi
 
Alt Ağlar
Alt AğlarAlt Ağlar
Alt Ağlar
 
Prtg Network Monitor
Prtg Network MonitorPrtg Network Monitor
Prtg Network Monitor
 
Microsoft Azure Sanal Ağ Temelleri
Microsoft Azure Sanal Ağ TemelleriMicrosoft Azure Sanal Ağ Temelleri
Microsoft Azure Sanal Ağ Temelleri
 

Mais de BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri

Mais de BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri (20)

Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
 
BTRisk - Siber Olay Tespit ve Mudahale Egitimi
BTRisk - Siber Olay Tespit ve Mudahale EgitimiBTRisk - Siber Olay Tespit ve Mudahale Egitimi
BTRisk - Siber Olay Tespit ve Mudahale Egitimi
 
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
 
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
 
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
 
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2
 
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1
 
BTRISK ISO27001 UYGULAMA EGITIMI SUNUMU
BTRISK ISO27001 UYGULAMA EGITIMI SUNUMUBTRISK ISO27001 UYGULAMA EGITIMI SUNUMU
BTRISK ISO27001 UYGULAMA EGITIMI SUNUMU
 
BTRisk iOS Mobil Uygulama Denetimi Eğitimi
BTRisk iOS Mobil Uygulama Denetimi EğitimiBTRisk iOS Mobil Uygulama Denetimi Eğitimi
BTRisk iOS Mobil Uygulama Denetimi Eğitimi
 
Unix Denetim Dokümanı
Unix Denetim DokümanıUnix Denetim Dokümanı
Unix Denetim Dokümanı
 
BTRisk Android Mobil Uygulama Denetimi Eğitimi
BTRisk Android Mobil Uygulama Denetimi EğitimiBTRisk Android Mobil Uygulama Denetimi Eğitimi
BTRisk Android Mobil Uygulama Denetimi Eğitimi
 
BTRisk Yazılım Güvenliği Yönetimi Eğitimi
BTRisk Yazılım Güvenliği Yönetimi EğitimiBTRisk Yazılım Güvenliği Yönetimi Eğitimi
BTRisk Yazılım Güvenliği Yönetimi Eğitimi
 
BTRisk Android Uygulamalara Malware Yerleştirme Sunumu
BTRisk Android Uygulamalara Malware Yerleştirme SunumuBTRisk Android Uygulamalara Malware Yerleştirme Sunumu
BTRisk Android Uygulamalara Malware Yerleştirme Sunumu
 
BTRisk ISO 27001:2013 Bilgilendirme ve İç Denetim Eğitimi Sunumu
BTRisk ISO 27001:2013 Bilgilendirme ve İç Denetim Eğitimi SunumuBTRisk ISO 27001:2013 Bilgilendirme ve İç Denetim Eğitimi Sunumu
BTRisk ISO 27001:2013 Bilgilendirme ve İç Denetim Eğitimi Sunumu
 
Bilgi Güvenliği Farkındalık Eğitimi Sunumu
Bilgi Güvenliği Farkındalık Eğitimi SunumuBilgi Güvenliği Farkındalık Eğitimi Sunumu
Bilgi Güvenliği Farkındalık Eğitimi Sunumu
 
BTRisk Adli Bilişim Eğitimi Sunumu
BTRisk Adli Bilişim Eğitimi SunumuBTRisk Adli Bilişim Eğitimi Sunumu
BTRisk Adli Bilişim Eğitimi Sunumu
 
BTRİSK Web Uygulama Güvenliği Denetimi Eğitimi
BTRİSK Web Uygulama Güvenliği Denetimi EğitimiBTRİSK Web Uygulama Güvenliği Denetimi Eğitimi
BTRİSK Web Uygulama Güvenliği Denetimi Eğitimi
 
BTRWATCH ISO27001 Yazılımı
BTRWATCH ISO27001 YazılımıBTRWATCH ISO27001 Yazılımı
BTRWATCH ISO27001 Yazılımı
 
Jmeter ile uygulama katmanında yük testi gerçekleştirme
Jmeter ile uygulama katmanında yük testi gerçekleştirmeJmeter ile uygulama katmanında yük testi gerçekleştirme
Jmeter ile uygulama katmanında yük testi gerçekleştirme
 
ISO 27001:2013 versiyonu ile gelen değişiklikler
ISO 27001:2013 versiyonu ile gelen değişikliklerISO 27001:2013 versiyonu ile gelen değişiklikler
ISO 27001:2013 versiyonu ile gelen değişiklikler
 

Sizma testi bilgi toplama

  • 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. 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. 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. 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. 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. 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. 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. 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:
  • 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. 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. 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. 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. 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. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 15 1.2.2.5 Zone transfer
  • 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. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 17 1.2.2.6 DNS bruteforce ile
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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ü.
  • 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. 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. 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. 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. 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. 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. 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. 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. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 72 Netcatile servisimizebağlanıyoruz.
  • 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. 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. 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. 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.
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 101 “nmap”inişletimsistemitespiti özelliğini kullanabilmekiçin “-O”opsiyonunukullanıyoruz.
  • 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. BTRiskBilgi Güvenliğive BTYönetişimHizmetleri SIZMA TESTİ BİLGİ TOPLAMA 103 Nmap’intespitini birazdahaiyileştirdiğini söyleyebiliriz.
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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