Nis
27th

Temel Saldırı Teknikleri

Files under Genel | Leave a Comment

Temel Saldırı Teknikleri

Bu dökümanda bazı saldırı teknikleri hakkında bilgi sahibi olarak bu saldırılara karşı ne gibi korunma önlemleri alacağınızı öğrenebilirsiniz.

1.a Fingerprinting

Fingerprinting tanımı aslında karşı taraf hakkında bilgi toplamaktan ibarettir.Bir saldırı yöntemi değildir sadece karşı sistem hakkında bilgi verir ve saldırı için doğru seçimlerin yapılmasına olanak sağlar.Çalışan işletim sistemi, çalışan programlar işletim sistemi versiyonu gibi bilgiler sayesinde karşı sistemin güvenlik açıkları kolayca tespit edilip saldırı uygulanabilir.Bir çok çeşidi ve yöntemi vardır.En basit örneği , FTP Server’larından vermek mümkündür.FTP formatına göre karşı tarafa gönderilen “SYST” mesajı karşı tarafın işletim sistemi hakkında bilgi verir.Örneğin; anonymous olarak ftp.sau.edu.tr adresine bağlanıp, command ekranına SYST yazılırsa sonuç aşağıdaki gibi olacaktır :

Connected to ftp.sau.edu.tr

SYST
215 UNIX Type: L8
Host Type (S): UNIX Standart

Bu sayede karşı tarafta UNIX Standart yüklü bir makinenin olduğu tespit edildi.Bunun dışında telnet aracılığıyla bağlandığımız bir sistem direkt olarak bize işletim sistemini verebilir.Çoğu işletim sistemi üreticisi günümüzde bu bilgiyi telnet üzerinden otomatik olarak vermeye ayarlıyor ve çoğu sistem yöneticisi de bunları kapatmıyor.Aşağıda küçük bir örnek var:

playground~> telnet hpux.u-aizu.ac.jp
Trying 163.143.103.12 …
Connected to hpux.u-aizu.ac.jp.
Escape character is ‘^]’.

HP-UX hpux B.10.01 A 9000/715 (ttyp2)

login:

Görüldüğü gibi yaptığımız tek şey telnet aracılığı ile karşı tarafa bağlanmaktı.Sistem bize işletim sistemini versiyon numarasına kadar verdi.Bu yöntemlerin dışında birde http Fingerprinting adı verilen ve adından da anlaşılabileceği gibi http protokolünü kullanan bir yöntem daha var.Bu yöntemde “http” ’de tanımlı “GET” metodunu kullanarak Web Server’ın ne olduğunu öğreniyoruz:

playground> echo ‘GET / HTTP/1.0\n’ | nc hotbot.com 80 | egrep ‘^Server:’
Server: Microsoft-IIS/4.0

IIS Web Server kurulu bir sistemde hangi işletim sisteminin yüklü olduğunu tahmin etmek pek zor değil.Bu anlatılan yöntemlerden farklı olarak daha alt seviye bazı yöntemler de mevcut.Bu yöntemler TCP/IP protokolünün işletim sistemleri arasındaki küçük farklarından yararlanarak amacına ulaşıyor.Aşağıda bunlardan bazılarını inceleyelim:

The FIN Probe: Bu teknikte karşı tarafın açık bir portuna bir FIN paketi yolluyoruz(Yani FIN kontrol biti bir olan herhangi bir paket).RFC 973 standart’ına göre karşı tarafın bu pakete hiçbir karşılık vermemesi gerekirken, MS Windows, BSDI, CISCO, HP/UX, MVS, IRIX gibi işletim sistemleri geriye RST paketi yollarlar.Günümüzde bir çok Fingerprinting aracı bu yöntemi kullanmaktadır.

TCP ISN Sampling: Bu teknik işletim sistemlerinin TCP/IP stack’lerinin “initial sequnce number”’ları (ISN) seçme özelliğinden faydalanıyor.Hatırlayacağınız gibi TCP/IP’de bir bağlantı kurulduğu zaman iki tarafta da byte akışının doğru sağlanması için sequence number’lar kullanılıyordu.Her yeni paket için de x kadar arttırılıyordu.Bu yöntemde işletim sistemlerini kategorize edersek: “Random Increments”, “True Random” ve “Time dependant model” olarak üçe ayırabiliriz.İlk modelde iki bağlantı için belirlenen seq. Number’lar arasındaki x artış miktarı her paket için random olarak seçilir ve sürekli bir öncekiyle toplanır.Solaris, IRIX, FreeBSD, Digital UNIX, Cray gibi işletim sistemleri ISN üretmede bu modeli kullanmaktadır.İkinci modelde ise iki bağlantının seq. Number’ları arasında hiçbir bağıntı yoktur, birbirlerinden tamamen bağımsızdırlar.Bu modeli kullanan sistemler arasında Linux 2.0.x Open VMS gibi sistemleri sayabiliriz.Üçüncü modelde ise ISN ‘ler belli bir zaman aralığında sabit bir sayıyla toplanarak elde edilirler.Windows bu üçüncü modeli kullanan bir yapıya sahiptir.

TCP TimeStamp: TCP başlığı içinde yer alan bu bilgiyi işletim sistemleri farklı işlerler.Bazıları bu özelliği desteklemez, bazıları ise belirli peryodlarla bu değeri arttırırlar.Bazı işletim sistemleri ise hep 0 döndürür.

TCP Initial Window:Bu teknikte karşı sistemden dönen paketlerin “Window Size”’ları kontrol edilir ve buna göre değerlendirme yapılır.Bu değerlendirme önemlidir çünkü çoğu işletim sistemi bu değer için sabit bir sayı kullanır.Örneğin AIX işletim sistemi Window Size değeri için hex değer olarak $3F25 sayısını kullanır.Aynı şekilde FreeBSD, OpenBSD ve Windows NT işletim sistemleri bu sayıyı $402E olarak belirlemişlerdir.

ICMP Message Quoting:Bu teknikte ICMP protokolünün “port unreachable” hatasından faydalanıyoruz.Bu hata karşı tarafa bir ICMP paketi gönderildiği ve bu port açık olmadığı zaman geri gelen bir hata mesajıdır.Çoğu sistem IP Header + 8 Byte geri gönderir.Fakat Solaris işletim sistemi 8 Byte’dan daha fazla gönderir, Linux ise Solaris’ten daha fazla gönderir.

Type Of Service:ICMP protokolünde alınan bir port unreachable paketinin ToS değeri incelenirse, bu değerin her işletim sisteminde 0, bir tek Linux’ta $0C olduğu görülmüştür.

TCP Options: TCP paket başlığında “TCP Options” değerini kullanarak işletim sistemi tahmini yapmaktır.Bu yöntemin bir çok avantajı vardır bunlardan birkaçını sıralarsak:

i) Her şeyden önce bu kısım isteğe bağlıdır yani birçok işletim sistemi bu değeri gözardı eder.

ii) Eğer bir Option ayarlayarak karşı makineye gönderirseniz, karşı sistemin cevabı o option’ ın desteklenip desteklenmediğini gösterecektir.Bu Option’lar da her işletim sistemine göre değişeceği için bu da bize avantaj sağlar.

iii) Bir çok Option’ı ayarlayıp sadece bir paket göndererek, cevap alabilirsiniz.Yani tek bir paketle karşı tarafın hangi Option’ ları desteklediğini kolayca anlayabilirsiniz.

WindowScale, NOP, Max Segment Size, TimeStamp TCP Options’ın alabileceği değerlerin bazılarıdır.Örneğin bu sayılan özelliklerin hepsi FreeBSD tarafından desteklenmektedir.Bunun yanında Linux 2.0.x sürümleri yukarıdakilerin çok azını destekler.İki işletim sistemi aynı Option özellikleri desteklese bile bunlara verdiği cevaplar faklıdır.Örneğin bir Linux sistemine küçük bir MSS(Max Segment Size) değeri gönderilirse, sistem aynı değeri bize geri gönderecektir.Geri dönen değerler aynı olsa bile sıraları faklıdır.Örneğin Solaris “MSS” değerine “NNTNWME” ile cevap verirken Linux 2.1.122 “MENNTNW” ile cevap verir

1.b Port Scanning

Port Scanning (Port Tarama) adı verilen yöntemde karşı taraf hakkında bilgi toplamayla alakalı bir işlemdir.Bu işlemde aynı Fingerprinting gibi protokol formatına dayanır ve karşı sistemde açık olan portları bulmamızı sağlar.Bu sayede Fingerprinting ’ten elde edemediğimiz bilgileri bulabiliriz.Örneğin karşı tarafın 135 no’lu portu açıksa muhtemel bir Windows İşletim sistemiyle karşı karşıya olduğumuzu varsayabiliriz.Yada bir başka örnek olarak karşı tarafta eğer 80’inci port açıksa bu makinenın da bir HTTP Server olduğunu varsayabiliriz.Port Tarama yönetimde bilgi toplama portların ne işe yaradıklarını ve genel kullanımlarını bilmekle alakalıdır.Bu şekilde karşı sistemin zayıflıkları bile bulunabilir.Aşağıda kendi makinemde denediğim Port tarama işleminin sonuçları görünmekte :

Scanning 127.0.0.1 (localhost), range : 1 -135

[110] Service found at: 110

[110] Could be: pop3

[110] Read:

[135] Service found at: 135

[135] Could be: epmap

[135] No data to read.

Burada kendi makinemde 1 ile 135’inci portlar arasında yaptığım port taraması sonuçları görülmekte.Görüldüğü gibi makinemde 110 ve 135’inci portlar açık durumda bu portların işlevleri ise sırasıyla “pop3” ve “epmap” olarak adlandırılmış.Başka birisi bende port taraması yapıp bu sonuçları aldığında makinemde muhtemel olarak Windows yüklü olduğunu kolayca anlayabilir.Bu örnekteki port tarama işlemi basit olarak şöyle bir senaryoyla anlatılabilir: Belli bir IP adresinin her portuna bağlantı isteği gönderilir.Eğer bağlantı gerçekleşirse port açık, gerçekleşmezse port kapalıdır diyebiliriz.

1.b.a Stealth SYN scan

Port Tarama işleminden bahsettik fakat bu işlemin alt seviyede nasıl yapıldığından sözetmedik.Bu sistem, karşı tarafın istenilen port aralığına bağlanma istekleri göndererek çalışır.Şimdi eski bilgilerimizi tekrar hatırlarsak TCP/IP protokolünde bir TCP bağlantısının gerçekleşmesi için 3 yollu el sıkışma olduğunu biliyoruz.Bu el sıkışmada bağlantı isteyen makine server’a bir SYN paketi gönderir.Bağlantı uygunsa server’da bu makineye bir SYN+ACK paketi yollar.Son olarak ta makine server’a bir ACK paketi yollar ve bağlantı kurulurdu.Stealth SYN Scan tipinde port tarama işlemlerinde son ACK paketi dikkate alınmaz, yani server ‘dan SYN+ACK paketi alındığında, o portun açık olduğu varsayılır ve bu şekilde tarama işlemi hızlandırılır.Bu saldırı yönteminden korunmak neredeyse imkansızdır.Fakat bazı paket filtreleme donanım yada yazılımları sayesinde gelen paketler incelenir ve SYN paketleri hep aynı IP adresinden geliyorsa bloke edilir.Aşağıda nmap adlı bir port scanner programının lokal ağda yaptığı bir taramanın sonuçları yer alıyor:

C:\osmanatabey\nmap-3.75-win32>nmap -v -sS 10.0.0.21

Starting nmap 3.75 ( http://www.insecure.org/nmap ) at 2005-01-02 22:18 GTB Standard Time

Initiating SYN Stealth Scan against T1000 (10.0.0.21) [1663 ports] at 22:18

Discovered open port 3389/tcp on 10.0.0.21

Discovered open port 139/tcp on 10.0.0.21

Discovered open port 445/tcp on 10.0.0.21

Discovered open port 1025/tcp on 10.0.0.21

Discovered open port 135/tcp on 10.0.0.21

The SYN Stealth Scan took 1.47s to scan 1663 total ports.

Host T1000 (10.0.0.21) appears to be up … good.

Interesting ports on T1000 (10.0.0.21):

(The 1658 ports scanned but not shown below are in state: closed)

PORT STATE SERVICE

135/tcp open msrpc

139/tcp open netbios-ssn

445/tcp open microsoft-ds

1025/tcp open NFS-or-IIS

3389/tcp open ms-term-serv

MAC Address: 00:50:FC:A0:26:AB (Edimax Technology CO.)

Nmap run completed — 1 IP address (1 host up) scanned in 1.969 seconds

Görüldüğü gibi SYN Scanning lokal ağda 1.5 saniye gibi kısa bir sürede 1600 port taradık.Aynı işlemi normal adi port scanner’la yaptığımızda sonuçları elde etmemiz 3 dakika sürdü.Dikkat edilirse port tarama işlemi bittikten sonra bir de açık portların görevleri gösterildi.Bu sayede karşı tarafta hangi işletim sisteminin yüklü olduğunu tahmin edebiliriz.

1.b.b FIN Scanning

FIN Scanning’te Stealth SYN Scan mantığına dayanır.Karşı tarafa bir FIN paketi gönderilir.Bu paket TCP/IP protokolünde bağlantının bittiğini haber veren mesajdır.Eğer biz bağlı olmadığımız bir adresin herhangi bir portuna FIN paketi yollarsak ve eğer o port kapalıysa bir RST paketi geri döner.İşte bu sayede port kontrolü yapabiliyoruz.Fakat bu yöntem Windows işletim sistemi yüklü makineler için geçersizdir.Çünkü Windows yollanan her FIN paketine RST cevabını verir, port açık olsa da olmasa da.Her neyse aslında bu tarama yönteminin ortaya çıkış nedeni “SYN Scan” port tarama yönteminin bir çok paket filtreleme programı tarafından engellenmesi sonucu ortaya çıkmıştır.İlk kez Uriel Maimon tarafından Phrack 49, Article 15 ‘ te anlatılmıştır.Bu yöntem de günümüzde paket filtreleme programları tarafından engellenebildiği için hacker’ lar da değişik sistemler üzerinde değişik tarama işlemleri gerçekleştirmeye başlamışlardır.”XMAS Scan” ve “NULL Scan” adı verilen iki tip tarama yöntemi daha mevcuttur.XMAS yönteminde tıpkı bir Noel Ağacının her tarafının ışıl ışıl parlaması gibi, bir TCP paketinin bütün kontrol bitlerini etkin duruma getirir.Bu şekilde cevapları inceleyerek tarama işlemini yapar.NULL tarama metodunda ise XMAS ’ın tam tersi olarak tüm kontrol bitlerini etkisiz duruma getirir.Her neyse her iki metotta da karşı sistemin işletim sistemi paket cevaplarının incelenmesinde kilit rol oynar.

1.b.c Fragmented Packet Scanning

Bu tarama metodu, paket filtreleme programları tarafından engellenmesi en güç olandır.Çünkü bu metotta TCP Başlıkları da kendi içinde parçalara ayrılarak karşı tarafa gönderilir.Bu sayede paket filtreleme programı tüm TCP başlığını göremediği için filtreleme işlemini yapamayacaktır.Ancak yine de bu tarama metoduna da dayanıklı sistemler mevcut:Örneğin Linux sürümlerinde CONFIG_IP_ALWAYS_DEFRAG özelliği sayesinde, herhangi bir başlık tamamen oluşturulmadan cevap gönderilmez, paket işlenmez, yani bir nevi kuyruk oluşturur.Fakat çoğu ağ yöneticisi bu özelliği kullanmaz, çünkü ağ trafiğini yavaşlatır.Günümüzde çoğu port tarayıcı program bu yöntemi kullanmaktadır.

1.c Network Sniffing

Network Sniffing adı verilen yöntem ağda dolaşan paketlerin görüntülenmesi, ve kaydedilmesine olanak sağlayan bir yöntemdir.Bilindiği gibi çoğu yerel ağ sisteminin (LAN) temelini Ethernet oluşturmaktadır.Ethernet ilk tasarlanırken mühendisler kendi protokollerini test etmek için sniffer programlarını kullanıyorlardı.Fakat günümüzde Network Sniffing genellikle kötü amaçlara hizmet ediyor.Ethernet protokolü veriyi olduğu gibi gönderir, yani veriye herhangi bir şifreleme uygulamaz.İşte bu aşamada Sniffing daha da kolaylaşır.Ayrıca Ethernet protokolü gönderilen bu şifrelenmemiş veriyi bağlı olan tüm düğümlere(node) gönderir.Yani aslında aynı non-switched bir LAN da birbirlerine bağlı iki bilgisayarın birbirlerinin ağ trafiğini incelemeleri, sadece NIC (Network Interface Card) bir değişikliğe bağlıdır.Bu değişikliğin uygulandığı bir NIC üzerine gelen tüm bilgiyi filtrelemeden alır.Yani bağlı olduğu tüm ağ trafiğini inceleyebilir.Bu duruma gelmiş bir NIC ‘e “promiscuous mode” ‘a geçmiş denilir.NIC farklı amaçlara hizmet etmesi için farklı filtreleme metotları vardır.

Unicast D estination Address ’ i NIC ’in kendi fiziksel adresi olan paketleri alır.

Broadcast : Destination Address ’i FF FF FF FF FF FF olan paketleri alır.Bu paketler ağ üzerindeki tüm düğümlere gönderilmek amacıyla oluşturulmuştur.

Multicast : Belirli bir adres veya adres aralığından gelen paketleri kabul eder.Bu adres aralığı NIC ‘in içinde tanımlanmıştır.Ayrıca bir paketin multicast özeliği taşıması için paketin grup bitinin aktif olması gerekir.Yani bir gruba ait olduğunu gösteren bit.Bu biti aktif olanlar NIC ‘ teki listeyle kontrol edilir.

All Multicast :Herhangi bir gruba bağlı yani grup biti aktif tüm paketler NIC tarafından kabul edilir.

Promiscuous : NIC gelen bütün veriyi alır.

Non-switched ağlarda “Packet Sniffing” oldukça kolay.Çünkü filtreleme işlemi NIC ‘ te yapıldığı için bu filtreleme işlemini değiştirme imkanımız var.Switched ağlarda ise durum biraz farklı.Switched ağlarda bahsedilen filtreleme işlemleri, switch yada router ‘ de yapılır.Yani gelen paket hangi adrese gidecekse o adrese yollanır.Switch o adresin nerede olduğunu bilir ve paketi o adrese yollar.

1.d DoS (Denial of Service)

DoS saldırıları günümüzde en yaygın kullanılan saldırı biçimlerinden biridir.Çünkü bir çok saldırı yöntemini içinde barındırır.DoS saldırıları genelde bir ağa ya da kaynağa ulaşımı engellemek için kullanılır.Kendi içinde mantıksal olarak ikiye ayırmak mümkündür: Program tabanlı DoS saldırıları ve Network tabanlı DoS saldırıları.Bu iki saldırıda da iki yöntem kullanılabilir birisi “flooding” diğeri “exploiting”.Flooding’te kullanıcı kurbana çok sayıda paket yollayarak belli bir işlemi çalışamaz duruma getirir.Exploiting yönteminde ise kurbanda çalışan herhangi bir program hedef alınıp bu programın açıklarından faydalanarak program, kullanılamaz hale gelir.Şimdi DoS saldırılarını kısa bilgilerle inceleyelim.

1.d.a DDoS Flooding

Bir makineye yada ağa DDoS saldırısı yapabilmek için bir kişi önceden kendine bir çok kurban makine bulup onlara kendi hazırladığı küçük bir programcık yükler(deamon).Bu programcık bu makinelerde sürekli bu kişiden bir istek bekler.Bu kişi istediği zaman bu programcıkları da kullanarak aynı anda binlerce paketi hedef sisteme yollayabilir.Bu paketler genelde ICMP Echo request yada UDP Echo gibi masum görünen ve sadece basit işlemler için tasarlanmış paketler olabilir.Ama aynı anda binlercesi gelince bu hedef sistemin ağ trafiğinin durmasına ve hatta programların çalışamaz hale gelmesine sebep olabilir.Bu saldırı sisteminden www.yahoo.com gibi siteler bile etkilenmiştir.Günümüzde hala önemini korumaktadır ve paket filtreleyici yazılımları veya donanımlarıyla fark edilememektedir.Akıllıca yapılmış bir DDoS saldırısı farklı IP adreslerinden geleceği için filtreleyici programı şaşırtabilir.Ama çoğu sistem bu tür saldırılara karşı önlemini almıştır.

1.d.b The Ping of Death

Artık günümüzde neredeyse bütün işletim sistemleri bu tür bir saldırıya karşı önlemini aldıysa da zamanında çok etkili bir yöntemdi.Bu yöntemin mantığı şöyle çalışır: ICMP protokolü ağda bilgisayarların hata mesajlarını birbirlerine göndermesini yada “Ping” gibi basit işlemlerin yapılmasını sağlar.ICMP spesifikasyonunda, ICMP Echo request’lerin data kısmı 216 ile 65,536 byte arasında olmak zorundadır.Eğer bu veri sınırlarının dışına taşmış bir paket kurban sisteme yollanırsa işletim sistemi böyle bir şey beklemediği için çalışamaz duruma gelecektir.

1.d.c TearDrop

Bu saldırı yöntemi biraz karışıktır ve IP paketlerinin reassembly yapılmasıyla ilgilidir.Bir IP paketi karşı tarafa yollandığında bu paket tekrar verilere ayrılırken paketin içinde bulunan “offset” bilgisi kullanılır.Bu “offset” bilgilerinin birbirleriyle çakışmaması yani üst üste gelmemesi lazımdır.Özel ayarlanmış bir paket bu senkronizasyonu bozabilir ve paketler üst üste gelirse ve bunu kontrol edebilecek bir mekanizma da mevcut değilse bu işletim sistemini çalışmaz duruma getirebilir.Bu saldırı yönteminden korunma yöntemi IP protokülünün kodlanması ile ilgili olduğundan tamamen işletim sistemi ile alakalıdır.Günümüzde çoğu işletim sistemi bu tür saldırılara karşı dayanıklıdır.

1.d.d Ping Flood

“Flooding” adı verilen olay aslında bir işlemin bir çok kere tekrarlanması demektir.Flooding saldırılarında amaç programa hata verdirmek değil programı işlemez duruma sokmaktır, yani kaldırabileceğinden daha fazla işlem emri vermektir.Daha önce aynı DDoS flooding’te olduğu gibi bu saldırı yönteminde de karşı sisteme binlerce paket yollanır ve bu paketler karşı tarafın ağ trafiğinin akışını durdurabilir.Bu paketler karşı sistemle aramızdaki hızı ölçmeye yarayan ping komutundan başka bir şey değildir.Ama bunlardan binlercesi sistemde ciddi ağ trafiğine yol açar ve kullanılamaz hale gelir.Bu saldırı yönteminde zekice bir taraf yoktur, sadece internet hızı yüksek olan bir sistem daha düşük olan bir sistemin ağ trafiğini kitleyebilir.Günümüzde çoğu sistem bu tür bir sadırıya korunmalıdır.Filtreleme programları bu sadırıları kolaylıkla engeller.Aşağıda örnek bir ping komutu ve sonuçları görünmektedir:

C:\ping www.tcpsecurity.com

Pinging http://www.tcpsecurity.com/ [66.102.11.104] with 32 bytes of data:

Reply from 66.102.11.104: bytes=32 time=119ms TTL=242
Reply from 66.102.11.104: bytes=32 time=126ms TTL=242
Reply from 66.102.11.104: bytes=32 time=165ms TTL=242
Reply from 66.102.11.104: bytes=32 time=178ms TTL=242

Ping statistics for 66.102.11.104:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 119ms, Maximum = 178ms, Average = 147ms

1.d.e SYN Flooding

TCP/IP “stack” denilen bir bölgede tüm bağlantıları tutar.Tekrar eski bilgilerimize dönersek üç yollu el sıkışmadan hatırlayacağımız gibi SYN paketine cevap olarak SYN/ACK gönderiliyordu daha sonra biz tekrar ACK gönderiyorduk ve bağlantı kuruluyordu.Şimdi şöyle bir senaryo düşünelim:Bir kişi bir server’a SYN paketi gönderiyor fakat bu paketin özelliği içindeki “Source ip” kısmı bizim IP adresimizi göstermiyor, tam tersine aslında gerçekte varolmayan bir IP adresini gösteriyor.Bu noktada server bu SYN paketini alıp bağlantı işleminin aslında varolmayan IP adresiyle gerçekleşmesi için bu IP adresine SYN+ACK gönderiyor ve ACK almak için bekliyor.Bu bekleme sırasında IP adresi TCP/IP’nin stack’inde tutuluyor ve biz sürekli bu aslında varolmayan IP adresinden bu sisteme SYN paketleri yolluyoruz.IP adresinde hiçbir sistem varolmadığı için asla ACK paketi gelmiyor sonuçta belli bir süre sonra kurbanın TCP/IP stack’i taşıyor ve ağ trafiği neredeyse işlemez hale geliyor.Bu saldırı yönteminden de korunmak için yine basit bir paket filtreleme sayesinde mümkündür.

1.d.f Buffer Overflow

Buffer Overflow dediğimiz şey hatalı kodlanmış bir programın dışarıdan bir etkiyle belleğinin taşmasına neden olmaktır.Daha açarsak sınır kontrolü yapılmamış bir değişkenine alabileceğinden daha fazla veri atanırsa program bellek hatası verir ve bu hatayı kullanarak özel olarak hazırlanmış bazı kodlar sayesinde programın akışı değiştirilebilir.Bunun en güzel örneklerinden biri daha 1.5 seneyi doldurmamış Sasser Solucanıdır.Bu solucan Windows işletim sisteminde sürekli çalışan LSASS.EXE adlı dosyada bulunan bir Buffer Overflow hatası sayesinde milyonlarca makinaya bulaşabildi.

Bu LSASS.exe ‘nin asıl görevi (Local Security Authentication Server) Windows un kulanıcı işlemlerinin güvenliğini sağlamak ve kullanıcı izinlerini düzenlemekti.Fakat Windows 2000 ve XP yüklü makinelerde bu dosyanın kullandığı bir DLL dosyasında Buffer Overflow tesbit edildi.( (LSASRV.DLL).Bu sayede virüs 445’inci porta bağlanıp, programa istediği işlemleri yaptırıyordu.Daha sonra da LSASS.EXE kapatılıyordu ve 1 dakika içinde de server ‘ a reset atılıyordu.

Kısacası “Buffer Overflow Exploiting” bir programdaki programlama hatalarını kullanarak o programın değişkenlerine ve program akışına dışarıdan erişmeye denir.

Bu tür bir saldırı yöntemini engellemenin iki çeşit yolu olduğunu söleyebiliriz:Birincisi eğer programı geliştiren firma yada kişi bizsek Buffer Overflow hatalarını engellemek için alt seviye bellek fonksiyonlarından ve sınır kontrolü yapmayan değişken işlemlerinden olabildiğince kaçınmalıyız.Örneğin C dilinde, iki string tipinde değişkeni birbirine kopyalamak için kullanılan “strcpy()” fonksiyonu bu tür buffer overflow hatalarına gebedir.Çünkü birinci string’i ikinci string’e kopyalar fakat sınır kontrolü yapmaz.Yani eğer biz değişkenlerden herhangi birinin büyüklüğünü statik olarak girmişsek bu programda bellek taşmasına yol açacaktır.Örneğin aşağıdaki C programında çok basit bir buffer overflow görülmektedir:

int main(int argc, char *argv[])
{
char Buffer1[4];
char * Buffer2;
Buffer2 = “AAAAOverFlow”;
strcpy(Buffer2,Buffer1); // işte tam burada Buffer Overflow mevcuttur.
return 0;
}

Kodda görüldüğü gibi ilk 4 byte ’ tan sonra yazılan “OverFlow” kelimesi tam anlamını yansıtmaktadır.Bu pogram çalıştığında Buffer Overrun hatası verecektir.Ama OverFlow sözcüğü program stack ’ inin kritik kısımlarını etkileyecektir.

1.e TCP/IP Hijacking

TCP/IP Hijacking bir A sisteminin B sistemi ile C sistemi arasında kurulan bağlantıya sızarak kendini C sistemine B sistemi olarak göstermesi demektir.Peki bu iş nasıl yapılır?Öncelikle şunu söylemeliyimki bu tür bir saldırı için network sniffing kullanılacağı için A sistemi ile B sistemi aynı ağ üzerinde olmalıdır.

Bilindiği gibi TCP güvenilir bir protokoldür.Güvenilirden kastım her paketin karşı tarafa ulaşıp ulaşmadığı kontrol edilir ve sonra gitmesi gereken paketin önce gitmesi gerekenden daha önce gitmesi gibi senkronizasyon problemlerinin aşılması için her pakete belli senkronizasyon numaraları verilir(“sequence number”).Bu numaralar sayesinde iletişimde bulunan iki program gelen giden paketleri sırasına göre alıp sırasına göre işleyebilir.Eğer A sistemi “network sniffing” sayesinde B sisteminini tüm gelen giden paketlerini incelerse, B sisteminin C sistemiyle olan bağlantısında o andaki “sequence number”’ını tahmin edebilir.Bu hesapladığı sequence number ve B sisteminin IP adresini source IP olarak kullanarak karşı tarafa bir paket yollarsa, C sistemi doğal olarak artık A sistemini B sistemi olarak algılayacaktır.Bu sırada B sistemi C sistemine bir paket gönderse bile aralarındaki senkronizasyon numaralarında hata oluştuğu için artık C sistemi B sistemini tanımaz.Bu çeşit bir saldırının engellenmesi imkansızdır.Yapabileceğiniz tek şey ağda bir sniffer olup olmadığını araştırmak olacaktır.(bkz.Network Sniffers)

1.e.a RST Hijacking

RST Hijacking iki sistem arasında kurulan bağlantıyı dışarıdan kesmek için kullanılır.Bilindiği gibi RST Kontrol Biti TCP başlığında tanımlı spesifik bir bittir.Bu kontrol bit’i 1 olduğu zaman iki sistem arasındaki bağlantı sona erer.Eğer biz doğru ayarlanmış bir paketi iki sitemden herhangi birine RST biti 1 olarak olarak gönderirsek iki sistem arasındaki bağlantıyı dışarıdan kesmiş oluruz.Burada dikkat edilecek nokta yine TCP Başlık formatında tanımlı “acknowledgement number” dediğimiz kısımdır.Bu 32 bitlik kısım, sistemin bir sonra alacağını varsaydığı paketin “sequence number”’ını içerir.(bkz.TCP Hijacking:Sequence Number).Eğer biz source ip kısmını iki sistemden birine ayarlayıp “acknowledgement number”’ıda bulabilirsek ve RST bitini de 1 olarak ayarlarsak, bu paketi alan sistem, bağlı olduğu diğer sistemin bağlantıyı kesmek istediğini sanarak bağlantıyı bitirecektir.Bu saldırı yönteminden de korunmak neredeyse imkansızdır.Fakat 32 bitlik bir sayıyı tahmin etmek imkansıza yakındır.Yani aynı TCP/IP Hijacking ‘te olduğu gibi, bu saldırının gerçekleşmesi için saldıranın kurban sistemle aynı ağda olup trafiği bir sniffer aracıyla izlemesi gerekmektedir.Bu noktada bu saldırıyı engellemenin tek yolu ağda sniffer kullanımını bloke etmekten geçer.

1.f Shattering (Mesajlaşma sistemi açıkları)

Bu saldırı yöntemi aslında çok yeni değildir fakat son günlerde hacker’ ların ilgisini biraz daha çekmiştir.Bu yöntemde Windows’un mesajlaşma sisteminin zayıflıklarından faydalanılır.Windows’ta daha önce API düzeyinde programlama ile uğraşan herkesin bileceği gibi Windows işletim sistemi mesajlaşma sistemi üzerine kurulmuştur.Bundan kastım, oluşturulan her kontrolün kendine özgü bir “handle”’ı vardır.Sistem bu “handle”’lar arasında giden mesajlar sayesinde işler.Örneğin Windows’ta bir düğmeye tıklandığında WM_LBUTTONDOWN mesajı bu düğmeyi içeren form’a gönderilir ve işlemler orada gerçekleşir.Bu şekilde binlerce mesaj aynı anda farklı programlarda işlenebilir.Fakat bu sistemin de bir takım zayıflıkları vardır.Windows bu mesajı gönderenin kim olduğuna bakmaz, yani daha açarsak, mesaj dışarıdan başka bir programla da rahatlıkla gönderilebilir.BU zayıflıkta diğer programın ilk programı kullanarak bazı haklar elde etmesine yol açabilir.Örneğin Microsoft’un Windows 2000 SP3’e kadar ürettiği Windows versiyonlarda WM_TIMER mesajı ile ilgili bu tür bir açık mevcuttu.Bu açık sayesinde kötü niyetli bir kişi başka bir programı kullanarak yetkisi dahilinde olmayan işlemleri gerçekleştirebiliyordu.Bu saldırı yöntemini birisinin gerçekleştirebilmesi için saldırıyı yapacağı makineyi kullanıyor olması gerekmektedir.Yani dışarıdan bir tehlikesi yoktur.Bu saldırı yöntemi ile bir kişi administrator yetkisi olmayan bir sistemde administrator yetkisini kolaylıkla kazanıp ağda bir takım değişikler yaparak o makinenin bağlı olduğu ağın tümünü kullanılmaz hale getirebilir.
 

Osman Atabey & http://www.tcpsecurity.com

.

Nis
27th

Bir Saldırının Anatomisi

Files under Genel | Leave a Comment

Bir Saldırının Anatomisi

Bu bölümde bir cracker’ın planlı bir saldırıyı nasıl yaptığını adım adım inceleyeceğiz. Burada anlatılan işlemler bir saldırganın uzaktan bir sisteme nasıl saldırdığını anlatmaktadır.

Cracker’ların sisteme saldırıları nasıl yaptığını bilirsek bu şekilde kendi sistemlerimizde gerekli tedbirleri daha bilinçli olarak alarak sistemimizi daha iyi koruyabiliriz diye düşünüyorum. Bu nedenle konunun bundan sonraki kısmına planlı olarak yapılan bir saldırının aşamalarını göstermek istiyorum.

Genelde pratik olarak yapılan saldırılarda (daha çok aceleci olan script kiddie’ler tarafından yapılan saldırılardır bunlar) burada anlatılan aşamaların çoğu atlanabilmektedir.

Öncelikle saldırı yapılacak hedef sistemde herhangi bir firewall olmadığını var sayıyoruz. (Tabi artık günümüzde firewall network için vazgeçilmez bir araç haline gelmiştir ve gün geçtikçe Internet’e bir şekilde firewall kullanmadan bağlanan bir sistem bulmak imkansızlaşmaktadır.)

Burada anlatılacak olan teknikler cracking için genel bir yöntemdir. Yani her türlü sisteme saldırmak için kullanılabilir ancak biz UNIX sistemi açısından saldırıları inceleyeceğiz.

Şimdi ilk aşamadan başlayarak bir yetenekli ve kararlı bir cracker’ın bir sisteme nasıl saldıracağını inceleyelim:

1. Bilgi Toplama

Cracker’ın yapacağı ilk iş, saldırı yapılacak hedef sistemin kendisiyle doğrudan bir iletişime gerek duymaz! Yani cracker ilk olarak karşıdaki sistemin network tipini ve hedef makineler hakkında bilgi edindikten sonra, hedef sistemde uğraştığı kişiyi tanımak için onunla ilgili bilgi toplamaya çalışacaktır. Söz konusu kişi tabiki sistemin yöneticiliğini yapan root erişimine sahip yöneticidir.

Cracker sistem hakkında bilgi toplamak için aşağıdaki teknikleri kullanacaktır:

a-) Ağda bulunan tüm sistemlerle ilgili bilgi toplamak için host sorgusu çalıştıracaktır. host komutu domain adı sunucularını (DNS servers) sorgulayarak ağ hakkındaki bulunabilecek tüm bilgileri toplar.

Domain adı sunucusu o domainle ilgili bir çok bilgi tutarlar, asıl amacı alan adlarını IP numaralarına dönüştürmektir ancak aynı zamanda o sistemin donanım ve üzerinde çalışan işletim sistemi gibi bilgileri de saklarlar. nslookup komutu bir DNS sunucusunu sorgulamak için kullanılan komuttur. host komutu da nslookup komutuna benzer ama daha açıklayıcı ve ayrıntılı bilgi verir. Bu nedenle host komutu en tehlikeli on komut listesinde yer alır!

Örnek olarak bir domain sunucusuna yapılan bir host sorgusunun sonucuna bakalım:

host -l -v -t any bu.edu


bu.edu 86400 IN HINFO SUN-SPARCSTATION-10/41 UNIX
PPP-77-25.bu.edu 86400 IN A 128.197.7.237
PPP-77-25.bu.edu 86400 IN HINFO PPP-HOST PPP-SW
PPP-77-26.bu.edu 86400 IN A 128.197.7.238
PPP-77-26.bu.edu 86400 IN HINFO PPP-HOST PPP-SW
ODIE.bu.edu 86400 IN A 128.197.10.52
ODIE.bu.edu 86400 IN MX 10 CS.BU.EDU
ODIE.bu.edu 86400 IN HINFO DEC-ALPHA-3000/300LX OSF1


STRAUSS.bu.edu 86400 IN HINFO PC-PENTIUM DOS/WINDOWS
BURULLUS.bu.edu 86400 IN HINFO SUN-3/50 UNIX (Ouch)
GEORGETOWN.bu.edu 86400 IN HINFO MACINTOSH MAC-OS
CHEEZWIZ.bu.edu 86400 IN HINFO SGI-INDIGO-2 UNIX
POLLUX.bu.edu 86400 IN HINFO SUN-4/20-SPARCSTATION-SLC UNIX
SFA109-PC201.bu.edu 86400 IN HINFO PC MS-DOS/WINDOWS
UH-PC002-CT.bu.edu 86400 IN HINFO PC-CLONE MS-DOS
SOFTWARE.bu.edu 86400 IN HINFO SUN-SPARCSTATION-10/30 UNIX
CABMAC.bu.edu 86400 IN HINFO MACINTOSH MAC-OS
VIDUAL.bu.edu 86400 IN HINFO SGI-INDY IRIX
KIOSK-GB.bu.edu 86400 IN HINFO GATORBOX GATORWARE
CLARINET.bu.edu 86400 IN HINFO VISUAL-X-19-TURBO X-SERVER
DUNCAN.bu.edu 86400 IN HINFO DEC-ALPHA-3000/400 OSF1
MILHOUSE.bu.edu 86400 IN HINFO VAXSTATION-II/GPX UNIX
PSY81-PC150.bu.edu 86400 IN HINFO PC WINDOWS-95
BUPHYC.bu.edu 86400 IN HINFO VAX-4000/300 OpenVMS
….

Bu çıktıdan da görüldüğü gibi host komutu ağ ile ilgili olarak çok tehlikeli olabilecek sonuçlar vermektedir. Yukarıda ki satırlardan da görüldüğü gibi ağda bulunan makinelerin IP numaraları, işletim sistemi ve makinenin ne olduğu öğrenilebilmektedir.

DNS sunucusunun bu tür bilgileri Internet’te herkese vermesini engellemek için çeşitli önlemler alınabilir.
Bunun için firewall kullanılabilir.
Alan adı sunucu sorgularının sadece belli bir adres grubu tarafından yapılmasına izin verilebilir.
Yada bu sunuculara dışardan erişim tamamen engellenebilir.

DNS sunucusunun (BIND sunucusu) konfigüre etmek için /etc/named.conf dosyası kullanılmaktadır.

b-) Standart WHOIS sorgusu. Bu sorguyla cracker o sistemin teknik sorumlusunun bilgilerini almak için kullanır. Bu kişinin e-posta adresi fazla önemli gibi görünmese de bu adres sistem hakkında çok önemli bilgiler toplamak için kullanılabilir.

c-) Usenet ve Web sayfalarında arama yapmak. Cracker sisteme saldırmadan önce şimdiye kadar öğrendiği bilgiler doğrultusunda Internet’te o sistemle ilgili daha fazla bilgiye erişmek için aramalar yapacaktır. Yani Cracker eline geçirdiği sistem yöneticilerin yada teknik sorumluların e-posta adreslerini kullanarak bu kişilerim Usenet yada güvenlikle ilgili mail listelerinde görünüp görünmediklerini araştırır.

Cracker’ın ilk olarak sistem yöneticisi yada sorumlusunun e-posta adresini araması ve bu kişinin bu adresi Internet’te araması biraz anlaşılmaz gelebilir.

Ancak sistem yöneticisi sistemin günlük olarak yönetimini yapmaktadır ve sistemde çıkabilecek sorunlarla ilgili olarak Usenet haber gruplarına ve güvenlikle ilgili mail listelerine başvurmuş olabilir. Dolayısıyla cracker buralardan sistem yöneticisinin kendi sistemiyle ilgili olarak vermiş olabileceği her türlü bilgiyi toplamaya çalışmaktadır.

Bu konuda bariz bir örnek verecek olursak, bazen sistem yöneticileri o kadar dikkatsiz olmaktadırlar ki bir haber grubunda bir sounla ilgili olarak tartışırken sistemleri hakkında başkalarının bilmemesi gereken bilgileri bile verebilmektedirler.

Sistemlerinin root şifresini bile verenlere rastlanabiliyor. Bu şekilde, yani haber gruplarından ele geçirilen root şifreleriyle crack edilen bir sürü sistem vardır!

Ancak burda cracker için asıl zor olan kısım sistem yöneticisinin kullanıcı ID ve e-posta adresini doğru olarak ele geçirmesidir. Bunun için çeşitli yolları deneyecektir cracker.

Sistem yöneticisinin diğer network’larda bulunabilecek account’larını da takip edebilir. Bunu takip etmek için cracker finger ve ruser gibi komutları kullanabilir. Bildiğiniz gibi finger komutu sisteme logon olan kullanıcıları göstermektedir. Ayrıca finger sistemde logon olmayan bir kullanıcının en son nereden login olduğunu da gösterir. İşte yöneticinin en son login olduğu sistemlerdeki adresi de takip edilerek bu kişiyle ilgili diğer bilgilere erişmeyi deneyebilir.

Finger Sorguları : Finger sorguları bir cracker için yukarıda değindiğimiz gibi sistem hakkında çok fazla bilgi verebilir. Sistemde logon olmuş kullanıcı ID’lerini, isimlerini, en son login oldukları yeri, mail bilgileri gibi bir çok bilgi verir.

Cracker’ımız saldırdığı sistemde şüphe uyandırmamak için Internet’te yüzlerce sitede bulunabilecek “finger gateway” lerini kullanacaktır. Bu sunucular bir web sayfasından kullanıcıdan finger sorgusu gönderilecek olan sunucu adresini alır ve o sunucuya finger sorgusunu yollayarak yine sonuçları ekrana getirir. Böylece cracker kendi gerçek IP numarasının saldırdığı sistem loglarında görünmesini engelleyebilir.

Tabi aslında bu gerçek bir gizlilik sağlamaz, hedef sistemdeki sistem yöneticisi çok fazla paranoyaksa bu finger gateway sunucusunun sistem yöneticisi ile temasa geçerek cracker’ın gerçek IP adresini ele geçirebilir.

Bu şekilde çalışan diğer bir yöntemse finger yönlendirme işlemidir. Daha önceki bölümde gördüğümüz gibi, cracker bir finger

finger kullanıcı@gercek_sunucu.com@gecici_sunucu.com

Aslında finger bir sistemdeki kullanıcıların listesini çıkarmak için kullanılan tek yol değildir bundan başka güvenlik dünyasında çok fazla güvenlik açığı bulunmasıyla meşhur olan sendmail programı da kullanılabilir.

Bunu test etmek için bir SMTP sunucusuna telnet etmek yeterlidir. Örnek olarak;

telnet smtp_sunucusu.com 25

Bu komut smtp_sunucusu.com sunucusunun 25 numaralı portuna (yani SMTP portuna) telnet bağlantısı sağlar. SMTP mail göndermek için kullanılan bir protokoldür. Ancak telnet yapıldıktan sonra SMTP sunucusunun izin verdiği bir dizi komut kullanılabilir. mail from, rcpt to, data , quit gibi komutlar çalıştırılabilir. Ancak iki tane komut vardırki bunlar sistemdeki kullanıcılar hakkında bilgi vermektedir. Bunlar vrfy ve expn komutlarıdır. Bu komutlar sistemde bulunan bir kullanıcı ID’sini onaylamak için kullanılırlar.

telnet işlemini yaptıktan ve sunucuya bağlanıldıktan sonra telnet ekranında aşağıdaki gibi bir komut girilebilir:

vrfy osman
250 Osman Atabey <osman@smtp_sunucusu.com>

Buradaki 2. satır smtp sunucusunun bize gönderdiği cevap satırıdır. SMTP 250 dönüş değeri başarılı bir işlem olduğunu belirtir ve osman kullanıcısının gerçekten sistemde olduğunu ve gerçek isminin Osman Atabey olduğunu belirtir. Ayrıca satırın devamında bu kullanıcının email adresinin de vermektedir.

Eğer sunucuda bu kişi yoksa sunucu 550 dönüş değeriyle hata verecektir.

vrfy osman
500 osman… User unknown

Burdan da sistemde böyle bir kullanıcı olmadığı anlaşılır. Bu örnekten de anlaşıldığı gibi cracker’lar sistem hakkında bilgi toplamak için çok değişik yöntemleri denemektedirler.

sendmail’in bu özelliği genellikle sistem yöneticileri tarafından bilinmediği için hiç bir önlem alınmaz.

sendmail’in bazı sürümlerinde bu komutlar çalışmazken bazılarında bu komutlar sorgulanan kullanıcı ismini aynen getirmektedir.

Ancak kullanılan sendmail programının bu komutlara izin verip vermediği kontrol edilmelidir. Eğer izin veriyorsa bu komutların çalışması sendmail konfigürasyon dosyasından engellenmelidir. Bunun için /etc/sendmail.cf dosyasına aşağıdaki satırın girilmesi yeterli olacaktır.

O PrivacyOptions=goaway

Diğer yandan sendmail konusunda güvenlik yönünden yapılması gereken bir çok ayar vardır bunlar için sendmail’in dökümantasyonunda güvenlik konusuna bakılabilir. (sendmail sistemini ayrıntılı olarak anlatan O’REILLY’den “sendmail” adlı kitap yararlı olabilir.)

Cracker sistem hakkında bilgi toplamak için bilinen tüm yolları deneyebilir. Daha önce de değindiğimiz bu yöntemleri kısaca hatırlatmak için güvenlik dünyasında yazdıkları araçlarla çok ünlü olan Dan Farmer ve Wietse Venema’nın yazdığı bir makaleden (improving security by breaking into it) alıntı vermek istiyorum:

” ;İlk olarak saldırdığınız sistemle ilgili olarak mümkün olduğu kadar bilgi toplamaya çalışın. Bunun yapmak için kullanılabilecek çok zengin network servisleri vardır: finger, showmount, rpcinfo komutları iyi birer başlangıçtır. Ancak sadece bunlarla yetinmemelisiniz ayrıca DNS, whois, sendmail(smtp), ftp, uucp ve bulabildiğiniz tüm servisleri kullanmalısınız. ”

Bu açıklamadan da anlaşıldığı gibi bir sistem hakkında edinilebilecek her türlü bilgi saldırı için işe yarayabilir.

2. İşletim Sisteminin Belirlenmesi

Cracker sistem yöneticisi ve ağ hakkında gerekli bilgileri topladıktan sonra saldıracağı ağda bulunan sistemlerde kullanılan işletim sistemlerini ve sürümlerini belirlemek için bir önceki kısımda anlatılan tekniklerin dışında çeşitli teknikleri deneyebilir.

Günümüzde artık ağlar daha fazla heterojen bir yapıya sahiptir. Aynı ağda çok değişik donanım ve işletim sistemleri kullanılabilmektedir. Ancak bu güvenlik yönünden çok daha fazla açık olmasına neden olacaktır. Ne kadar çok işletim sistemi varsa o kadar da güvenlik açığı olacaktır. Çünkü her sistem kendisine özgü güvenlik açıkları içerebilir ve bu şekildeki bir ağda cracker’ın bir güvenlik açığı bulması ve tüm ağ’ın güvenliğini tehlike altına atması kaçınılmazdır.

Cracker işletim sistemlerini belirlemek için ftp, telnet gibi servisleri deneyebileceği gibi hemen hemen kesin çözüm verecek olan bir araç ta kulanabilir. Bu araçlardan biri nmap aracıdır. nmap aslında bir port tarayıcısıdır. Ancak nmap aynı zamanda taranan sistemdeki çalışan işletim sistemini de büyük bir doğruluk oranıyla tahmin edebilmektedir.

Starting nmapNT
eEye Digital Security
based on nmap

We skillfully deduced that your address is 0.0.0.0
Host www.tcpsecurity.com (95.40.33.34) appears to be up … good.
Initiating SYN half-open stealth scan against http://www.tcpsecurity.com (95.40.33.34)

21/tcp open ftp
80/tcp open http
135/tcp open unknown
139/tcp open unknown
6667/tcp open irc
6668/tcp open irc

TCP Sequence Prediction: Class=trivial time dependency
Difficulty=4 (Trivial joke)

Sequence numbers: 3F065 3F066 3F071 3F07A 3F07E 3F088
Remote operating system guess: Windows NT4 / Win95 / Win98

Nmap run completed — 1 IP address (1 host up) scanned in 72 seconds

Yukarıdaki çıktıdan anlaşıldığı gibi işletim sistemi Windows platformunu kullanmaktadır. (nmap işletim sistemini tahmin edebilmek için TCP/IP stack gerçeklemelerindeki farklılıklardan yararlanır. Ancak tüm windows platformlarının TCP/IP yapısı aynı üretici tarafından yazıldığı için hepsinin verdiği cevaplar aynıdır. Dolayısıyla nmap windows platformlarını tam olarak ayıramamaktadır. Yukarıda işletim sisteminin Windows NT4, Win95 ya da Win98 olabileceğini söylemektedir.)

Değişik işletim sistemlerini bulan cracker’ın bir sonraki işi artık bu işletim sistemleriyle ilgili bir çalışma yapmaktır. Bunun için tüm işletim sistemlerini ve makine tiplerini gösteren bir liste oluturulmalıdır. Bu liste daha sonra cracker’ın o platformlarla ilgili bilinen tüm güvenlik açıklarını bulmasına yardımcı olacaktır.

(Bu noktada bazı cracker’lar çok aceleci olup hemen karşı sistemlere karşı otomatik güvenlik tarayıcılarını kullanmaktadırlar, SATAN, SAINT, ISS.. gibi ancak ilk etapta bunu yapmak tam olarak doğru değildir. Zira bu tarayıcıların kendi alanlarında tam olarak tüm açıkları taradığını söyleyemeyiz. Zira her gün yeni açıklar çıktığı için bu tarayıcıların bunları da bulmasını bekleyemeyiz. Dolayısıyla cracker’ın platformlarla ilgili tüm açıkları Internet’ten araması akıllıca bir yöntemdir.)

3. Açıkların Aranması

Cracker saldıracağı sistemlerin listesini çıkardıktan sonra her bir platform için bilinen açıkları Internet’te aramaya başlayacaktır. Bunun için ziyaret edilmesi gereken bir çok site mevcuttur.

Bunun için firewall mailing list

Artık güvenlik dünyasında bir standart haline gelen BUGTRAQ http://www.securityfocus.com/archive/1

Burada dikkat edilmesi gereken nokta bir açıklıkla ilgili olarak ilk uyarıyı okuduktan sonra, CERT veya DDN uyarılarında, bu açıklamada o uyarıyı tanımlayacak ismini bulmak gerekir. Bu genellikle uyarının başında verilmektedir. Örnek olarak daha önce değindiğimiz AIX rlogin hatasının adı, “AIX’s froot hole” şeklindedir. Bunu yapmanın nedeni, bu tür uyarılarda genellikle güvenlik açığı ve onu kapatmanın yolları gösterilir. Ancak bu zayıflığın nasıl test edileceği ve bundan nasıl yararlanılacağı gösterilmez. Bunlar zaten bir cracker ’ın asıl aradığı şeylerdir.

İşte açıkların ismini bulan cracker bu ismi Internetteki diğer mail listelerinde, BUGTRAQ, Firewall ..gibi. arayacaktır. Buralarda genellikle o açıkla ilgili olarak test ve exploit script’leri verilmektedir. Bu scriptler otomatik olarak bir sistemde o açığın olup olmadığını test eden ve varsa ondan yararlanmaya çalışan programlardır.

Bu programlar genellikle bir shell yada C programı şeklinde yayınlanmaktadırlar. Bu programları, gerekli değişiklikleri yaparak cracker kendi sisteminde derleyip çalıştırabilir.

Bu noktaya kadar cracker aşağıdaki adımların hepsini yada belli bir kısmını belirlemiştir:

-Sistem yöneticisinin kim olduğunu,
-Ağdaki makineler ve işlevleri
-Kullanılan işletim sistemlerini,
-Muhtemel güvenlik açıklarını,
-Sistem yöneticisi tarafından topoloji, yönetim, politika yada sistem yönetimiyle ilgili Internet’te yaptığı herhangi bir tartışma

Bunlardan sonra cracker bir sonraki adıma geçecektir.

4. Test Saldırısı Yapılması

Bu adımda cracker saldıracağı sistemle ilgili olarak bazı noktaları açığa kavuşturmak için kendi sistemlerinde deneme saldırısı yapmayı deneyecektir. Bu adım, saldırıyı gerçekten yapmayı düşünen cracker’lar tarafından yapılmaktadır. Çünkü bu adımda biraz para harcamak gerekebilir!

Bu noktada cracker karşı taraftaki makinenin bir benzerini elde etmeye çalışır. Örnek olarak karşı sistemde Solaris 2.4 varsa cracker benzer bir sistemi kurmalıdır. Bunu yaparken cracker’ın iki tane temel amacı vardır:

-Saldırılar saldırı yapan tarafından nasıl görünüyor,
-Saldırılar kurban tarafından nasıl görünüyor,
-Saldırgan saldırıda bulunduğu makinedeki log’ları inceleyerek karşı tarafta saldırı ile ilgili nelerin olup bittiğini anlar. Bu şekilde cracker karşı sistemde saldırdan kalan izleri bilir. Her ssitemin kendine göre değişik logging işlemleri vardır ve cracker en azından bu log işlemlerini bilmesi gerekmektedir. Hangi log dosyalarının saldırı hakkında log tutacağını bilmesi gerekmektedir.

Cracker’ın bunu yapmasının nedeni ele geçirdiği sistemden çıkarken tüm geride bıraktığı izleri silmek istemesidir. Sistemdeki log dosyalarını bildiği için bu dosyalara giderek kendisiyle ilgili tüm bilgileri silebilir. (Aslında Internet bu işlemleri değişik sistemler için otomatik olarak yapan script’ler de vardır. Ancak bu scriptler genellikle tam olmadığından yada karşı sistemin konfigürasyonu standart dışı olduğunda doğru olarak çalışmamaktadırşlar. Bu scriptlere güvenen cracker’lar çoğu zaman logları temizleyememektedirler )

Aslında bu test adımı çok da zor bir adım değildir. Cracker istediği sistemi arkadaşlarından bulmayı deneyebilir yada üniversitelerden bile yararlanabilir.

Not: Bu test saldırısı başka bir amaç için de kullanılır. Karşı sistemde hiç bir açık bulamayan bir cracker bu yöntemi deneyerek o sistemde bilinmeyen bir açık ta bulabilir. Bu anlattığım olay geçen yıl Temmuz ayında yapılan eWeek tarafından düzenlenen birinci Openhack hacker yarışmasında bilinen hiç bir güvenlik açığı olmamasına rağmen sisteme sızmayı başaran ve ödülü alan cracker’ın kullandığı yöntemdir.

Cracker tüm sistemi taradıktan sonra sistemde sadece 80 numaralı yani HTTP portunun açık olduğunu buluyor ve başka bir saldıracak nokta olmadığı için WWW üzerinden saldırıda bulunmayı deniyor. Tabi öncelikle karşı sistemde çalışan uygulamaları tespit ediyor. Sistemde MiniVend adında bir e-Ticaret paketinin çalıştığını görüyor. Tabi cracker’ın bu sistemde olabilecek açıkları bulabilmesi için benzer bir makine üzerinde çalışması gerekmektedir. Cracker bir arkadaşında bu uygulamanın olduğunu buluyor ve kendisine bir account vermesini isteyerek test makinesi üzerinde MiniVend uygulamasının dosyalarını incelemeye başlıyor ve kullanılan bir perl cgi programında “open”
; komutunun güvensiz bir şekilde kullanıldığını buluyor.

Daha önceki kısımda anlattığım gibi perl içinden sistem çağrılarında sisteme geçirilen komut içinde metakarakterlerin olup olmadığı test edilmelidir. MiniVend script’inde pipe ‘|’ karakteri kontrol edilmediği için sisteme bu karakter kullanılarak istenilen bir komut çalıştırılabilmektedir.

Cracker bu açığı bulduğu başka bir açıkla birleştirerek Web sunucusunu kırmayı başarmıştır.

5. Kullanılacak Araçlar

Cracker bir sonraki adımda kullanacağı araçları belirleyip toplayacaktır. Bu araçlar genellikle tarayıcılardır. Hedef sistemdeki çalışan servislerin belirlemesi gerekmektedir.

Bunun için port tarayıcılarından yararlanılmaktadır. Port tarayıcıları içinde en ünlü ve kapsamlı olanı nmap aracıdır. Bu araca daha önce değinmiştik. İşletim sistemi hakkında edinilen bilgilere ve servislere göre tarayıcıların hangi alanları ve açıkları tarayıp taramadığı incelenmelidir.

Çünkü bazı tarayıcılar bazı servisleri kapsayıp bazılarını kapsamayabilir. Bu durumda birden fazla uygun tarayıcı kullanmak gerekmektedir. Bu tür araçların nasıl çalıştığını görmek için en iyi yol daha önceden bu araçları bir sistem zerinde denemektir.

Sistemlerin açıklar yönünden çeşitli araçlar tarafından taranması artık günümüzde o kadar yaygın hale gelmişki sistem yöneticilerinin dikkatini bile çekmemektedir, yada çekse bile bu konuda fazla bir işlem yapmamaktadırlar.

Örnek olarak standart bir Internet kullanıcısının sadece belli bir süre modemle Internet’e bağlı olduğu süre içerisinde bile makinesine onlarca tarama gelebilir. Bunu normalde anlamak zordur. Ancak saldırı yakalama özelliği olan bir kişisel firewall (ZoneAlarm gibi) kurduğunuz zaman kimlerin makinenize saldırıda bulunduğunu görmek mümkündür. Hatta bazen o kadar çok olmaktadır ki siz Internet’te gezinirken bu saldırıların uyarılarıyla rahatsız olabiliyorsunuz.

6. Saldırı Staratejisinin Belirlenmesi

Cracker planlı bir saldırıyı bir neden olmadan yapmayacaktır. Benzer bir şekilde saldırı yapacağı bir sisteme de belli bir planı olmadan saldırmayacaktır. Cracker’ın saldırı stratejisi yapmak istediği işe göre değişir.

Ancak bazı noktalar açıktır. Örnek olarak cracker topladığı tüm bilgilerden saldıracağı ağın bazı bölümlerinin router, switch, birdge yada diğer cihazlarla segmente edildiğini bulursa bu kısımları tarama dışı bırakabilir. Zira segmented bir ağda bir bilgisayarı ele geçirmek cracker için ana sisteme gitmek için işe yaramayacaktır. Çünkü segmente edilmiş bir sistemde sniffer yada spoofing teknikleri router yada switch üzerinden geçemezler.

Cracker stratejisini de belirledikten sonra artık tarama işlemine geçebilir. Kolay gelsin!

7. İnceleme Aşaması

Cracker taramalardan sonra bulduğu sonuçların incelemesine başlayacaktır. Bu işlem cracker’ın bulduğu sonuçlara bağlıdır. Ancak bu aşama artık günümüzde çok kolay hale gelmiştir.

Eski tarayıcılar sadece bulduğu açıkları listelemekte ancak bunlarla ilgili fazla bilgi vermemektedirler. Ancak artık çoğu tarayıcı, SAINT, twwwscan, CIS… buldukları açıklarla ilgili olarak açıklayıcı bilgi ve o açıkla ilgili Internet adreslerini de vermektedirler. Hatta SATAN, SAINT gibi tarayıcılar açıklarla ilgili veri tabanları da tutmaktadırlar sadece bunların incelenmesi bile cracker için çok önemli bilgiler sağlayabilir.

Bu noktada cracker daha önce açıkları toplamak için baş vurduğu sitelere giderek , BUGTRAQ gibi, bulduğu açıklarla ilgili olarak daha ayrıntılı bir araştırma yapabilir.

Not: Burada şunu da belirtmek gerekir bir gecede mükemmel bir sistem yöneticisi yada mükemmel bir cracker olmanın yolu yoktur. Saldırıların tabiatını tam olarak anlamak için güvenlik açıklarının, kaynak kodların, işletim sistemlerinin haftalarca çalışılması gerekir.

Sabır ve tecrübenin yerini hiç bir şey alamaz. Örnek olarak çok ünlü bir cracker olan Kevin Mitnick ve yine çok ünlü bir hacker olan Weitse Venema, yaptıkları iyi yada kötü işleri, çok çalışmaya, yaratıcılıklarına ve kararlı ve azimli olmaya borçludurlar.

Kıscası konuya hakim olmayan bir sistem yöneticisi için bir Firewall hiç bir işe yaramayacağı gibi, yeni bir cracker için de SATAN gibi tarayıcılar uzak bir sistemi crack etmek için bir işe yaramayacaklardır.

İyi planlanmış güçlü bir saldırı yarım bilgisi olan bir cracker’ın yapacağı iş değildir. Sistemin derinliklerini iyi bilen ve kendisini TCP/IP konusunda çok eğitmiş bir kişinin işi olabilir…

8. Sonuç

Burada anlattığım teknikler kararlı bir cracker’ın sonuca varmak için yapacağı adımları anlatmaktadır. Bunları anlatmamın nedeni Internet ortamında kimlerle karşı karşıya olduğumuzu ve onların neler yapıyor olabileceklerini bilmemiz içindir. Bu şekilde kendi sistemlerimize onlardan önce kendimiz saldırılarda bulunarak açıklarımızı kapatabiliriz.

Diğer yandan bir cracker’ın nerelerden nasıl saldırıcağını bilirsek ve atacağımız adımlarda bu noktalara da dikkat ederek açık verecek bir durum oluşturmamış oluruz.

Son olarak sistem yöneticileri için sistemlerini koruma yolunda kolay gelsin derken, diğer sistemlere saldırmayı düşünen cracker, hacker ve script-kiddie’lere de dikkatli olmalarını tavsiye ediyorum, zira Türkiye ’de henüz siber saldırılarla ilgili yaptırımlar olmasa da dünyada başlayan bu yasal önlemler dalgasının bir gün bize de geleceğini hatırlatmak isterim.
 

Osman Atabey & http://www.tcpsecurity.com

Nis
27th

Bilgisayar Ağları ve Temelleri

Files under Genel | Leave a Comment

Bilgisayar Ağları ve Temelleri

Iletisim Ağlari Yapisal Modeli

Bu bolumde bilgisayar aglarinin birbirleri ile olan iletisimi (internetworking) konusunda bazi temel kavramlar hakkinda bilgi verilecektir.

OSI Referans modeli

Bilgisayarlar arasi iletisimin basladigi gunden itibaren farkli bilgisayar sistemlerinin birbirleri arasindaki iletisim daima en buyuk problemlerden birisi olmus ve bu sorunun ustesinden gelebilmek icin uzun yillar boyunca cesitli calismalar yapilmistir. 1980′li yillarin basinda Uluslararasi Standartlar Organizasyonu (International Standarts Organization-ISO) bilgisayar sistemlerinin birbirleri ile olan iletisiminde ortak bir yapiya ulasmak yonunde cabalari sonuca baglamak icin bir calisma baslatmistir. Bu calismalar sonucunda 1984 yilinda Acik Sistem Baglantilari (Open Systems Interconnection-OSI) referans modeli ortaya cikarilmistir. Bu model sayesinde degisik bilgisayar firmalarinin urettikleri bilgisayarlar arasindaki iletisimi bir standarda oturtmak ve farkli standartlar arasi uyumsuzluk sebebi ile ortaya cikan iletisim sorununu ortadan kaldirmak hedeflenmistir. OSI referans modelinde, iki bilgisayar sistemi arasinda yapilacak olan iletisim problemini cozmek icin 7 katmanli bir ag sistemi onerilmistir. Bir baska deyisle bu temel problem 7 adet kucuk probleme parcalanmis ve her bir problem icin ayri ayri bir cozum yaratilmaya calisilmistir. Bu 7 katmanin en altinda yer alan iki katman yazilim ve donanim, ustteki bes katman ise genelde yazilim yolu ile cozulmustur. OSI modeli, bir bilgisayarda calisan uygulama programinin, iletisim ortami uzerinden baska bir bilgisayarda calisan diger bir uygulama programi ile olan iletisiminin tum adimlarini tanimlar. En ust katmanda goruntu ya da yazi seklinde yola cikan bilgi, alt katmanlara indikce makine diline donusur ve sonuc olarak 1 ve 0 lardan ibaret elektrik sinyalleri halini alir. Asagidaki sekilde OSI referans modeli katmanlari ve bir yerel ag uzerindeki durumu gosterilmektedir:

Cizim-2 OSI Referans modeli

OSI katmanlarinin tanimlanan temel gorevleri:

7- Uygulama

Kullaniciya en yakin olan katmandir. Spreadsheet, kelime islemci, banka terminali programlari vs. bu katmanin parcalaridir.

6-Sunum

Bu katmanda gelen paketler bilgi haline donusturulur. Bilginin karakter set cevrimi veya degistirilmesi, sifreleme vs. gorevlerini bu katman ustlenir.

5- Oturum

Iki bilgisayar uzerindeki uygulamalarin birbirini farkettigi katmandir.

4- Tasima

Bu katman gelen bilginin dogrulugunu kontrol eder. Bilginin tasinmasi esnasinda olusan hatalari yakalar ve bunlari duzeltmek icin calisir.

3-Ag

Baglantiyi saglayan ve ulasilmak istenen bilgisayara giden yolu bulan katmandir. Yonlendirme protokolleri bu katmanda calisir.

2-Veri iletim

Bu katman fiziksel katmana ulasim stratejisini belirler. Fiziksel adresleme, ag topolojisi, akis kontrolu vs. bu katmanin gorevlerindendir. Kopru cihazlari bu katmanda calisir.

1- Fiziksel

Bu katman agin elektriksel ve mekanik karakteristiklerini belirler. Modulasyon teknikleri, calisma voltaji, frekansi vs. bu katmanin temel ozelliklerindendir. OSI referans modeli bir ag uygulamasi degildir. OSI sadece her katmanin gorevini tum detaylari ile tanimlar. Bu modeli bir gemi ya da ev projesine benzetebiliriz. Nasil ayni gemi planini alip farkli firmalar gemi yapabilirse OSI modeli de boyledir. Nasil ayni gemi planindan iki farkli firma gemi urettiginde en azindan kullanilan civiler farkli yerlere cakilirsa, OSI modeli de gerceklestiren firmadan firmaya farklilik gosterebilir.

Baglanti Aygitlari

Bilgisayar agi erisiminde genel olarak dort tip baglanti aygiti kullanilir: tekrarlayici (repeater), kopru (bridge), yonlendirici (router) ve gecityolu (gateway). Tekrarlayicilar tamamen protokol bagimsiz olarak fiziksel katmanda calisir ve fiziksel genisleme amacli kullanilirlar. Geleneksel kopruler ayni protokolu kullanan Yerel Aglar arasinda temel veri duzeyinde baglanti saglar. Buna karsilik, geleneksel yonlendiriciler degisik tipteki ag protokollerini idare edebilecek sekilde programlanabilirler ve boylelikle ayni genis ag alani uzerinde farkli tipteki Yerel Aglari ve bilgisayar sistemlerini destekleyebilirler. Gecityollari daha karmasik olup, islem yogunluklu protokol cevrimi yaparak uygulamalar arasinda isletilebilirligi (interoperability) saglarlar.

Tekrarlayici (Repeater)

Tekrarlayicilar Cizim-3’deki sekilden de gorulecegi gibi fiziksel katmanda calisan cihazlardir.

Cizim-3 Tekrarlayici ve OSI modeli

Tekrarlayicinin temel gorevi bir fiziksel ortamdaki (kablo, fiber-optik, radyo dalgasi vs.) sinyali alip kuvvetlendirip bir diger fiziksel ortama vermektir. Aglarin fiziksel buyukluk sinirlarini daha da genisletmek amaci ile kullanilan bu cihazlar ile kuramsal olarak bir bilgisayar agi sonsuza kadar genisletilebilir. Ancak cesitli bilgisayar aglarindaki tasarim sinirlamalari nedeni ile gercekte bu genisleme belli sinirlar icinde kalmaktadir. Cizim-4 tekrarlyicilarin bir ag uzerinde nasil kullanildiklarini gostermektedir.

Cizim-4 Bir tekrarlayici uygulamasi

Temelde bir agin genisletilmesi amaci ile kullanilan tekrarlayicilar cok kolay kurulmalari, cok az bakim gerektirmeleri ve fiyatlarinin ucuz olmasi sebepleri ile cok populer cihazlardir.

Kopru (Bridge )

Modern, protokol-seffaf kopruler asagidaki sekilde goruldugu gibi OSI referans modelinin veri iletim (data link) katmaninda calisirlar

Cizim-5 Kopru ve OSI modeli

Kopru cihazlari temelde bagimsiz iki agin (farkli ag teknolojilerini kullanabilirler- Ethernet ve Token-Ring gibi) birbirine baglantisi icin kullanilirlar. Asagidaki sekilde iki Ethernet ve bir Token-Ring aginin birbirlerine kopruler vasitasi ile yapilan baglantisi gosterilmektedir. Bir kopru bagladigi alt aglar ustundeki tum trafigi yurutur. Her paketi okur, paketin nereden geldigini ve nereye gittigini gormek icin MAC (Media Access Control)-katman kaynagini ve yerlesim (destination) adresini inceler. Bu suzme yetenegi mesajlari yayinlamak ya da yerel veri trafiginin diger ag uzerine gecmesini engellemek icin etkili bir yol saglar. Bazi kopruler adres suzmenin ve protokol tipine bagli suzgecin de otesine gider.

Cizim-6 Bir Kopru uygulamasi

Bir kopru, DECnet, TCP/IP, XNS gibi farkli iletisim protokollerini kullanarak, protokol uyumlulugunu gozonune almadan aglar arasinda fiziksel baglanti saglayabilse de, bu uygulamalar arasinda isletilebilirligini garanti etmemektedir. Bu, OSI referans modelinin yuksek katmanlarinda isleyen ve farkli islem ortamlari arasinda cevrim yapabilen standalone protokol ceviricilerini gerektirmektedir. Koprulu aglar, protokol cevrimlerinin olmadigi, guvenlik gereksinimlerinin en az oldugu ve gereken tek seyin basit yonlendirme oldugu durumlarda basarilidir.

Yonlendirici (Router)

Yonlendiriciler asagidaki sekilde goruldugu gibi OSI referans modelinin ag (network) katmaninda calisirlar

Cizim-7 Yonlendirici ve OSI modeli

Bir kopru sadece paketlerin kaynagini ve gittigi yerin adresini kontrol ederken bir yonlendirici cok daha fazlasini yapar. Bir yonlendirici agin tum haritasini tutar ve paketin gittigi yere en iyi yolu belirleyebilmek icin tum yollarin durumunu inceler.

Yonlendirici farkli fiziksel yapida olan ve farkli protokolleri calistiran yerel ya da genis alan aglarinin birbirleri ile olan baglantisinda basari ile kullanilabilir.

Bir yonlendirici, OSI referans modelinin ag katmaninda genel olarak tanimlanan protokollerle, yerel bolge aglarini genis bolge aglarina baglar. Bu ozellikleri sayesinde ornegin yonlendirici TCP/IP kullanarak bir Ethernet aginin X.25 paket agina baglamasini saglar. Eski yonlendiriciler protokol bagimli olduklarindan, kuruluslarin ag isletim ihtiyaclarini karsilamak icin birden fazla yonlendirici gerekebilir. Yeni yonlendiriciler ise, birden fazla ve degisik protokolu ayni anda idare edebilmektedirler.

Cizim-8 Bir yonlendirici uygulamasi

Yonlendiriciler paketleri iki istasyon arasindaki en iyi yolu gosteren yonlendirme tablosuna gore ilerleterek ag uzerindeki yollari en iyi sekilde kullanirlar. Yonlendiriciler kendi yonlendirme tablolarini olusturduklarindan, ag trafigindeki degisikliklere hemen ayak uydururlar ve boylelikle veri yukunu dengelerler. Ayni zamanda, yonlendiriciler agdaki degisiklikleri tespit ederler ve asiri yuklu ve islemeyen baglantilari onlerler.

Gecityollari (Gateway)

Gecityollari kopru ve yonlendiricilerin yeteneklerinin de otesine gecerler. Asagidaki sekilden de gorulebilecegi gibi OSI referans modelinin ust katmanlarinda islerler.

Cizim-9 Gecityolu ve OSI modeli

Gecityollari sadece farkli noktalardaki aglari baglamakla kalmaz ayni zamanda bir agdan tasinan verinin diger aglarla uyumlu olmasini da garanti ederler. Bu bir server’da, minibilgisayarda ya da ana bilgisayarda bulunan protokol cevirim yazilimiyla yapilir. Internet protokolleri farkli aglar arasindaki veri iletimini, gecityollariyla bagli altaglardan olusmus otonom sistem (Autonomous System, AS) gruplarini birbirine baglayarak yapar. Yani Internet, her biri merkezi olarak yonetilen ag ya da altaglar serisi olan AS serisinden olusmaktadir. Her AS diger AS’lere baglanti saglayan gecityolu sunar. Gecityollari tum farkli aglari birlikte tutan bir yapistiricidir. Internet protokolleri altaglarin nasil birbirine bagli oldugunu ve baglanti araclarinin nasil calistigini tanimlar.

Osman Atabey & www.TcpSecurity.com

Nis
27th

Proxy Adres Kullanmak ve Değiştirmek

Files under Genel | Leave a Comment

Proxy Adres Kullanmak ve Değiştirmek

1. Linkler bölümünden proxy sitelerine girip çalışan bir proxy bulun.

2. www.tcpsecurity.com/proxytest.php adresine girerek normal ip adresinize bakın.

3. Internet Exolorer üst menüsünden –> Araçlar –> Internet seçenekleri –> Bağlantılar –> Yerel Ağ Ayarlarını açın –> Yerel ağınız için bir proxy sunucusu kullanın kutusunu işaretleyin –> bulduğunuz proxy numarasını ve portunu yazıp onaylayın.Tekrardan proxytest sayfasina dönerek sayfayı yenileyin eğer bulduğunuz veya denediğiniz proxy çalışıyorsa ip adresiniz değişecektir.

Not: Eğer Proxytest sayfasında denediğiniz proxy numarasınla birlikte gerçek ip numaranızı görüyorsanız bulduğunuz proxy gerçek ip adresinizi gizlemiyor anlamına gelir. Başka bir proxy bulup tekrar deneyin.

Dökümanı Hazırlayan :  Osman Atabey  &  www.TcpSecurity.com

Nis
27th

Syn Flood Block

Files under Genel | Leave a Comment

Syn Flood Block

Eğer internetten bilgisayarınıza devamlı olarak SYN paketleri geliyorsa ve saldırıya maruz kalıyorsanız.Bu saldırıları engellemeniz mümkün.

1. Başlat / Çalıştır / regedit yazın

2. HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Services / Tcpip / Parameters yolunu takip edin.

3. Açılan pencerede boşluğa sağ tıklayın ve DWORD değeri oluşturun isim olarak  SynAttackProtect  yazın. Çift tıklayarak açın ve 2 değerini verin.

4. Aynı sayfada TcpMaxHalfOpen  ve  TcpMaxHalfOpenRetried  DWORD değerlerini oluşturun.

TcpMaxHalfOpen  ‘ ı açarak değer olarak 100 yazın.

TcpMaxHalfOpenRetried  ‘ ı açarak değer olarak 80 yazın.

5. Ayarların kalıcı olması için bilgisayarınızı yeniden başlatın.

Kaynaklar:

http://www.securityfocus.com/infocus/1729

http://support.microsoft.com/default.aspx?scid=kb;EN-US;315669

Dökümanı Hazırlayan :  Osman Atabey    

www.TcpSecurity.com

Nis
27th

Syn Flood Nedir ?

Files under Genel | Leave a Comment

Syn Flood Nedir ?

Syn Flood, 3 adımdan oluşan bir D.o.S (Denial of Service) atak çeşitidir.

İlk önce bu 3 adım’ın ne olduğuna bir göz atalım.

1. adım : İstemci makine,sunucu makinenin bir portuna bağlanmak için sunucu’ya bir bağlantı talebinde bulunur.

2. adım : Sunucu makine bu isteği -eğer koşullar uyuyor ise- kabul eder ve istemci makineye bağlantı talebinin onayladığını belirtir.

3. adım : İstemci,sunucuya herşeyin tamam olduğunu belirtir ve bağlantı başlar.

Bağlantı başladıktan sonra,veriler iki makine arasında eşzamanlı olarak gidip gelir.Bu çeşit bağlantıya “full-duplex” iletişim denilir.Full-duplex iletişim sayesinde veri alış verişi iki makine arasında eş zamanlı olur.

- Buraya kadar herşey iyi peki SyN Flood nedir ?

Ok. Az önce olayın üzerinden basit bir geçiş yaptık.Gelin az önceki o 3 adım süresince neler olduğuna bakalım.

1. adım : İstemci,sunucu makinenin herhangi bir servisine bağlanmak istiyor telnet, mail, web, news..etc.. Ve sunucu makineye içinde kendisi hakkında bilgi bulunan bir SYN (Synchronize) paketi yolluyor.

2. adım : Sunucu makine bu SYN paketini alıyor,ve istemci makineye gönderilen SYN’i aldığını belirten ACK (Acknowledgement) ile yine kendi hakkında bilgi içeren SYN paketini beraber yolluyor.

3. adım : İstemci SYN+ACK paketini alıyor ve sunucuya ACK paketi ile bunu haber veriyor.Ve iki makine arasındaki bağlantı başlıyor.
Şimdiye kadar anlatılan şeyler istemci ile sunucu makine arasındaki normal bir bağlantıdan başka birşey değildi.Yani ortada herhangi bir saldırı yoktu.Herşey normal idi.
Şimdide olayın saldırı yönüne bakacağız.

Diyelim ki, ilk iki adım gerçekleşti.Yani istemci bir SYN,sunucuda buna yanıt olarak SYN+ACK paketlerini yolladı ve ACK paketini beklemeye koyuldu.Buraya kadar herşey güzel.Peki,ACK paketi gelmez ise ne olurdu? ACK paketi gelmez ise bu bağlantı full-duplex değil “yarı-açık” bir bağlantı olurdu.Ve bu bağlantı çeşidi pek içaçıcı değildir.

Sunucu SYN+ACK’yi yolladıktan sonra ACK için bekler.Fakat dediğim gibi istemci ACK paketini yollamaz ise işler çıkmaza girer.Sunucu beklemeyi bırakmaz.Sürekli bekler..

Sunucu ACK için beklerken,karşıya ACK yerine bir bağlantı talebinde daha bulunduğumuzu varsayalım.Ve yine 3. adım’ı gerçekleştirmeyelim.Yani son ACK’yi yollamayalım.Hatta bunu bir daha yapalım.. Bir daha .. Bir daha.. Ve “flood” şekline getirelim bunu :) (Eminim herkes flood’un anlamını biliyordur,IRC de çoğu zaman kick+ban sebebi olur.)

Sunucu açtığımız her bağlantının son ACK paketini bekliyecektir.Açtığımız her bağlantı hakkında bilgiyi hafızaya yerleştirir.Ama bir süre olduktan sonra artık bu bilgi boyut olarak bayağı büyümüştür.Yani kısaca bu data,hafızada taşma meydana getirir.

Artık bir süre sonra bütün hafıza dolacaktır.Ve sunucu dışarıdan gelecek hiçbir bağlantı talebine yanıt veremeyecektir.Normalde sistem bağlantı için ACK paketi beklerken,bu paketi bir süre içinde alamazsa bağlantıyı iptal eder.Fakat saldırı sistemden daha hızlı ve spoofed IP’ler ile sürdülürse,ne kadar bağlantı iptal edilirse edilsin,yenileri eklenecektir.

- Hasar..
Bu şekil bir saldırı sonucunda,sunucuda bulunan TCP tabanlı servisler saldırı altında bulunduğu sürece çalışmayacaktır.

- Çözüm..
Şu günkü IP protokol’ü teknolojisine göre genel olarak bir çözüm kabul edilmiş degil.Ama teknolojinin bugün yarattığı routerlar,basit bir konfigürasyon sayesinde bu saldırıyı engelleyebiliyorlar.Ayrıca yeni kerneller bu saldırıdan en az şekilde etkilenebilecek şekildeler.

- Sistemime SYN Flood yapıldığını nasıl anlarım?
Sisteminize taki bir Spoofed IP paketi girip içerde dolaşana dek olayların farkına varmazsınız. Siz dışarıya bağlantı yapabilirsiniz,fakat problem dışarıdan gelen bağlantıların sisteminizce kabul edilmemesidir.

Sisteminize saldırı yapıldığını anlamak için Ağ Trafiğini kontrol etmelisiniz.

www.TcpSecurity.com

Nis
27th

ActiveX ‘lere Dikkat

Files under Genel | Leave a Comment

Girdiğiniz sitelerden bazıları bilgisayarınıza ActiveX yüklemek ister. Eğer siteye güvenmiyorsanız bunları kesinlikle yüklemeyin. Eğer ActiveX yüklenmesini reddetmek istiyorsanız Hayır’a değil köşedeki [ X ] tuşuna basın. Çünkü Evet ile Hayır ‘ın yerini değiştirebiliyorlar.

Nis
27th

Çalınan Msn veya Hotmail şifresini geri almak

Files under Genel | Leave a Comment

Çalınan Msn veya Hotmail şifresini geri almak

Çalınan Msn veya hotmail şifresini geri almak için yapmanız gerekenleri maddeler halinde görelim :

1) Bir adet çalınmış Msn veya Hotmail gerekiyor.

2) http://support.msn.com/default.aspx?locale=en-us Bu linkteki servisler şu anda Türkçe destek vermemektedir. Bu yüzden hotmail veya Msn destek formunu ingilizce olarak doldurmanız gerekiyor. Hotmail ile yapacağınız tüm yazışmalarda ingilizce olucaktır.

Servisler arasından ” Microsoft Passport Network (now Windows Live ID) ” seçeneğini seçin. Bu servis hotmailin genel şifre servisidir. Eğer olurda bu seçeneği bulamassanız  ” Msn messenger ” serviside aynı görevi görür.

3) Açılan form sayfasında ilgili yerleri aşağıda gösterdiğim biçimde doldurun.

* Full Name: ( İsim ve Soyad yazın. ) Örnek : Osman Atabey

* What e-mail address would you like a response sent to? : ( Bu bölüme bir e-mail adresi yazın. Çalınan mail hakkında sorulacak olan sorular ve şifre bilgileri buraya yazacağınız e-mail adresine gelicek. Şifrenizi geri alana kadarda Msn servisleriyle yaptığınız tüm yazışmaları buraya yazdığınız mail ile yapın. ) Örnek : simdiki_mail@mail.com

* Primary e-mail address/member ID associated with the account you are inquiring about: ( Bu bölüme şifresi çalınan mail adresini yazın. ) Örnek : çalinan_mail@mail.com

Service:
Windows Live ID

* What type of problem do you have? : (Bu bölümde hotmail servisi ile hangi konuda problem yaşadığınızı soruyorlar)
I have a comment/suggestion about Windows Live ID  ile birlikte Technical Support seçeneğini seçin

veya

I need something fixed ile birlikte Other ve Other seçeneklerini seçin.

(Bu seçenekler bizim konumuzla ilgili değil fakat önemli olan hotmail destek bölümüne ulaşmak.)

* Be specific when describing your problem. The details that you include enable us to promptly send you the most likely solution to your issue. : (Bu bölüme Urgent ile başlayan cümleyi aynı şekilde yazın)

Urgent and important. My mail is hacked . Help me please

* Frequency of the issue: First time ( Bu seçeneği seçin )
 

* How do you access your account? : Computer ( Bu seçeneği seçin)
 

* Who is your ISP? : ( Bu bölümde kullandığınız servis sağlayıcısını soruyorlar Türk telekom seçeneği olmadığı için Other seçeneğini seçin )  Other
 

* Type of Internet connection: : ( Internete hangi şekilde bağlanıyorsanız o seçeneği seçin.)
* Have you recently installed any new software (if you enter yes please add more comments in the text box above)? : No ( Bu bölümde No seçeneğini seçelim )
 

Submit ile doldurduğumuz form bilgilerini gönderelim ve beklemeye başlayalım.

4) Form bilgilerini gönderdikten bir süre sonra aşağıdaki gibi bir mail alıcaksınız.

Not : Msn veya Hotmail size gönderdiği e-mail ‘de sorduğu soru şeklini değiştirebilir. Burda verilen örnek şuanda kullanılan ve çalışan bir örnektir.Hello OsmanAtabey

Thank you for writing to Windows Live ID Technical Support. This is Von and I understand that you believe that the security of your account has been compromised. I know how important it is for you to get your account back, so let me assist you.

OsmanAtabey, I would like to help you regain access right away, but because we value our members’ security and privacy, we will need your cooperation in verifying the account ownership. When we receive and verify the necessary information, we can give you the link that will allow you to reset your password. Please provide the following completely and accurately:

1. Your Windows Live ID
2. Your First and Last Names
3. Date of Birth (Month/Date/Year)
4. Country or Region
5. State (if applicable)
6. Zip or Postal Code
7. Your IP address. List the IPs from each computer that you use to access your account. You can go to www .whatismyip. com to find this information. The numbers that appear at the top of this page will be your IP address.
8. Answer to your Secret Question (if applicable)
9. Alternate email address associated with the account (if applicable)
10. Your Internet Service Provider (home or work). An ISP is a company that provides an end user with a connection to the Internet and other similar services, such as e-mail. Examples include MSNIA, EarthLink, and Comcast.
11. Last date and time you successfully signed in

Additional information that may assist us in verifying account ownership.

For Windows Live Mail customers:
1. Any folders you created (aside from the default folders)
2. Contacts in your address book
3. Subjects of any old mail that is in your Inbox or mail folders

For Windows Live Messenger customers:
1. A list of Contacts in your buddy list
2. Your Windows Live Messenger Nickname (your Messenger display name)

Your patience and cooperation on this matter are greatly appreciated. We look forward to your response and resolving your concern.

Sincerely,

Von
Windows Live ID Technical Support

5) Hotmail ‘den gelen bu maile cevabımızda aşağıdaki şekilde olmalıdır.

Not : Çalınan mail hakkında aşağıdaki soruları yanıtlayacak kadar bilgiye sahip değilseniz cevabını hatırlayamadığınız veya bilmediğiniz soruların yan tarafına ( I dont Know and Dont remember ) şeklinde bir cevap yazın. Aşağıdaki soruların çoğu hotmail ayarlarına yazdığınız bilgilerin doğruluğunu ögrenmek için sorulmaktadır. İlk başta dediğim gibi Hotmail ayarlarındaki bilgileri hatırlayamıyorsanız bu bölümleri yanlış bilgilerle doldurmayınız.

İçlerinde cevaplanması gereken önemli sorular : Eski şifreler ve hangi tarihler arasında kullanıldığı, alternatif mail adresi, en son giriş tarihi veya hangi saatler arasında olduğu, hotmail içinde oluşturduğunuz dosyalar klasörler ve hatırladığınız her hangi bir veya birkaç mail içerigi, Msn veya hotmail arkadaş listeniz.

Kendi bilgilerinizi aşağıdaki kırmızı olan yerlere gösterildiği biçimde yazabilirsiniz.

Hello

Addition information :

My old passwords : ( Bu seçeneği ek bilgi olarak ben ekledim. Mail için kullandığınız eski şifreleri bu bölüme yazabilirsiniz tabiki şifreleri hangi tarihler arasında kullandığınızı hatırlamanız gerekiyor. Tarih bilgisi şu aylar arasında veya şu sene gibi tahmini olarakta verilebilir ve ingilizce olarak yazılmalıdır. )

Örnek : My old passwords : tcpsecurity.com in 2005-2006 , osmanatabey  in 2007 January

1. My Windows Live ID : ( Şifresi çalınan hotmail ‘i yazın ) Örnek : çalınan_mail@mail.com

2. Your First and Last Names : ( İsim Soyad buraya ) Örnek :Osman Atabey

3. Date of Birth (Month/Date/Year) : ( Doğum Tarihi buraya Ay/Gün/Yıl şeklinde ) Örnek: 06/15/1977

4. Country or Region : ( Ülkeyi yazın ) Örnek : Turkey

5. State (if applicable) : ( Bulunduğunuz İl ‘i buraya yazın ) Örnek : Istanbul / Kadıköy

6. Zip or Postal Code : ( Bulunduğunuz İl ‘in posta kodunu yazın ) Örnek : 34200

7. My IP address : Bu mail i göndermeden önce www.whatismyip.com buradan ip adresinizi ögrenin ve bu bölüme yazın. Örnek: 81.214.175.14

8. Answer to your Secret Question (if applicable) : Gizli soru ve cevabını bu bölüme yazın.

My secret question : ( Gizli sorunuzu yazın )   My answer : (Gizli sorunuza verdiğiniz cevap buraya)

Örnek : My secret question : Mailini kim hackledi      My answer: HacerAna

9. Alternate email address : ( Eğer şifresi çalınan hotmail ayarlarına alternatif bir mail yazdıysanız o maili buraya yazın.) Örnek : alternatif_mail@mail.com

10. My Internet Service Provider : ( ISP yani internet servis sağlayıcınız hangisiyse bu bölüme yazın. Türk Telekom Adsl Company, SuperOnline, E-Kolay vs.. olabilir. )

11. My last date Signed in Time : (Burada ise hotmail veya msn ‘ye en son hangi tarihte giriş yaptığınız soruluyor. Hatırlıyorsanız yazın eğer mail şifrenizin ne zaman çalındığını biliyorsanız o tarihide buraya ekleyin ) Örnek : I signed in 03/26/2007  My mail is hacked 03/27/2007

For Windows Live Mail customers Answers : (Hotmail için sorulan soruların cevapları )

1. Any folders my created (aside from the default folders) : ( Hotmail içinde daha önce bir dosya veya klasör oluşturup oluşturmadığınız soruluyor. Eğer hatırlıyorsanız isimlerini yazın )

Örnek : My folders : depo, play, ozel_mailler, eski_mailler

2. Contacts in my address book (please include the e-mail address) : (Hotmail içindeki arkadaş listeniz veya devamlı olarak mail gönderip aldığınız kişilerin mail adreslerini buraya yazın.)

Örnek : Contacts in my adress book : arkadasim1@mail.com arkadasim2@baskamail.com

3. Subjects of any old mail that is in your Inbox or mail folders  : ( Hotmail içinde aklınızda kalan eski bir mail içeriği, gelen maillerden bir örnek, gönderdiğiniz veya detaylı olarak hatırladığınız bir mail içeriğini bu bölüme yazın )

For Windows Live Messenger customers Answers : ( Msn messenger için sorulan soruların cevapları )

1. A list of Contacts in your buddy list (please include the e-mail address) : (Msn messenger arkadaş listenizde olan kişilerin mail adreslerini detaylı olarak yazın. Ne kadar fazla e-mail adresi hatırlar ve yazarsanız o kadar iyi olur.)

2. Your Windows Live Messenger Nickname (your Messenger display name) : ( Msn messenger içinde kullandığınız nick veya  görüntü adı (Display) bölümüne en son yazdığınız yazının aynısını buraya yazın.) Örnek: OsmanAtabey & TcpSecurity.com
 

6) En son olarak gönderdiğiniz bilgilerin doğruluğu Msn ve Hotmail tarafından kontrol edilip onaylandıktan sonra size şifrenizi yenilemeniz için bir mail göndericekler o maildeki adımları uygulayarak mailinizi geri alabileceksiniz.

Dökümanı Hazırlayan : Osman Atabey

www.TcpSecurity.com

Nis
27th

E-Mail Güvenliği

Files under Genel | Leave a Comment

E-Mail Güvenliği

1. E-Mail adresi alırken doldurduğunuz forum içinde eğer şifrenizi unuttuğunuz taktirde size sorulması gereken bir gizli soru seçeneği bulunmaktadır.Bu seçenek sevdiğiniz film, yemek veya hayvan ismi vs.. olabilir.

Sizin bu soruya cevabınız şu şekilde olmalıdır.

Örnek:

Gizli soru :   sevdiğiniz film       Cevabı :  yengeçleryanyangider

veya

Gizli soru :   sevdiğiniz hayvan       Cevabı  :  portakal     

Cevapların alakasız şeyler olması gizli soruların her zaman güvende olmasını sağlar.

2. Bunların haricinde sifreleme konularında olduğu gibi mail gizli sorularını ve cevaplarını her yerde aynı kullanmamaya özen gösterin. Örnek olarak herhangi bir website üyeliğinde kullandığınız bir gizli sorusunu ve cevabını önemli bir email adresinizde kullanmayın.

3. Özel işlerinde veya yazışmalarında kullanmak için email adresi alan internet kullanıcıları bu maillerini website üyeliklerinde, forum vb.. paylaşım ortamlarındada kullanırlar ve devamlı olarak spam maillerden şikayet ederler.Bunu önlemenin bir yolu olarak şunu tavsiye edebilirim.Kendinize ait özel bir mail aldıktan sonra buna benzer bir başka mail alarak bu maili sadece üyeliklerde veya önemsiz işlerde kullanabilirsiniz.Spam maillerin önüne geçmenin en iyi yolu budur.

Dökümanı Hazırlayan :  Osman Atabey  &  www.TcpSecurity.com

Nis
27th

Şifrelerimizi Nasıl Korumalıyız

Files under Genel | Leave a Comment

Şifrelerimizi Nasıl Korumalıyız

Şifreleme  ve Şifre çalma yöntemlerini okuduktan sonra sıra geldi şifrelerimizi korumaya…

Şifrelerinizi Korumanız için Yapmanız Gerekenler

1. Tanımadığınız kişilerden resim, dosya veya program almayın.

2. Gelen her maili açmayın.Özellikle bu tür maillerin kimden geldiğini bilmiyorsanız direkt olarak açmadan silin.Eğer açtıysanız içindeki resimleri veya dosyaları kopyalamayın bilgisayarınıza indirmeyin ve içindeki linkleri tıklamayın.

3. Bütün istediğiniz bilgileri İnternette bulma imkanınız vardır.Bunu özellikle unutmayın.Tanımadığınız bir kişi size özel olarak mailden ilginç birşey yollayıp memnun etmek için uğraşmaz.

4. İnternette herkese arkadaş gözüyle bakmayın.Özellikle chat yapanlar bilir.Sanaldaki insanların çoğu sanal yaşarlar ve sizin şifrelerinizi çalmasalar bile ne yaptığınızı kontrol etmek için devamlı olarak bir merak halindedirler.Bu meraklarını gidermekte şifrelerinizi ele geçirmekle mümkündür.Zaman içindeki arkadaşlıktan doğan sebeplerden dolayıda size dosya, program ve resim türü belgeleri göndermeye çalışabilirler.

5. Chat, Messenger veya Forum türü ortamlarda bulunuyorsanız buradaki bayanların tamamen 100% bayan olduğunu gözünüzle görmeniz gerekiyor.Bunun için en iyi yöntem kamera. Bu madde bayanlar içinde geçerlidir :)) Şunuda unutmayınki çoğu sohbet programlarında sahte webcam görüntüleri  kullanılabilmektedir. Yani bir bayanın webcamından alınan görüntü kaydedilir ve arkadaşlık kurulmak istenen erkek veya kadına o görüntüler izlettirilebilir.

6. Bilmediğiniz tanımadığınız sitelere meraktan girmeyin.Eğer giriyorsanız bilgisayarınıza Firewall yükleyin. Javascript, activex, visual basic kodları bilgisayarınızda port açmaya veya komut çalıştırmaya yeterlidir ve bu tür eklentiler websitesi içine rahatlıkla yerleştirilir.Trojan veya virus içerikli websitelerinden firewall ve antivirus kullanarak korunabilirsiniz.

7. Üye olduğunuz forumlarda, gönderdiğiniz maillerde, bazı chat serverlarda ve girdiğiniz sitelerde Ip adresiniz gözükmektedir.Bu yüzden öncelikli olarak korumanız gereken şeyler Ip adresiniz, portlarınız ve en son olarakta bilgisayarınızdır.

8. Yukarıdaki maddede port dedik. Internette milyarlarca internet kullanıcısı var ve bunların bazıları (yani milyonlarcası) Scan ve scanner nedir bilirler. Scan yöntemini kullanarak internete bağlı olan bir bilgisayarın hangi portlarının açık veya kapalı olduğu öğrenmek mümkündür. Eğer bilgisayarınızda açık olan portlarınız varsa ve bu portlardan bilgisayarınıza ulaşılabiliyorsa kötü niyetli bir kişi bilgisayarınız üzerinde istediği herşeyi yapabilir.

9. Son olarak sizin şifrelerinizi Hackerlar çalmaz. Hiçbir Hacker in sizinle işi olmaz bunu kesinlikle unutmayın. Şifre veya bilgi çalan, bilgisayarlara zarar veren kişiler daha çok Cracker olarak isimlendirilir. Fakat günümüzde bilgisayarla uğraşan kişilerin bazıları şifre çalmak, bilgisayarlara,   websitelerine saldırmak ve zarar vermenin önemli bir olay olduğunu sanmaktadır. Bunu yaparakta kendilerine sanal ortamda bir yer edinmeye çalışırlar ve öğrendikleriklerini bilgisiz internet kullanıcıları üzerlerinde denerler.Bu gibi kişilerin saldırılarından korunmak içinde kullandığınız bilgisayar ve internet hakkında devamlı olarak güncel dökümanları ve haberleri okuyarak kendinizi eğitmelisiniz.

Dökümanı Hazırlayan :  Osman Atabey  &  www.TcpSecurity.com