KONUM PORTAL


Join the forum, it's quick and easy

KONUM PORTAL
KONUM PORTAL
Would you like to react to this message? Create an account in a few clicks or log in to continue.
KONUM PORTAL

PROGRAM,ANİMASYON,MÜZİK,HACK,SİTE TASARIM,ŞİİR,DİN,TARİH,VİDEO,OYUN İNDİRME,OYUN HİLELERİ,JOOMLA,PHP FUSION,MKPORTAL,PHP NUKE,KOMİK GİFLER,AŞK GİFLERİ,BAYRAK GİFLERİ,AYIRAÇ GİFLERİ,YAZARLAR,ROMAN ÖZETLERİ,DAMAR,RAP,ARABESK,ŞARKILAR,İLAHİLER


Bağlı değilsiniz. Bağlanın ya da kayıt olun

HACKER VE CREAKER ARASINDAKI FARK

Aşağa gitmek  Mesaj [1 sayfadaki 1 sayfası]

1HACKER VE CREAKER ARASINDAKI FARK Empty HACKER VE CREAKER ARASINDAKI FARK Paz Ağus. 01, 2010 10:43 pm

ByK4RB0N

ByK4RB0N
ADMİN
ADMİN

!!! KNOWLEDGE IS POWER - BİLGİ GÜÇTÜR !!! (Francis BACON)
1. GİRİŞ
=========

Bir şekilde bu dosyaya ulaşan herkese merhaba! Yaklaşık 12 yıl önce haftalık bir bilgi/teknoloji dergisinde Linux adında bir işletim sistemi hakkında bir yazı okudum. Doğrusunu söylemek gerekirse bayağı etkilenmiştim. Linux'un hikayesi kısaca şöyle: Herşey Finlandiya'da Linus Torvalds adında bir öğrencinin Minix adlı küçük bir Unix kopyası işletim sistemini nasıl daha iyi yapabilirim diye çalışmasıyla başlıyordu. Belirli bir yol katettikten sonra Linux'u internette yayınlıyor. Ve deprem gerçekleşiyor. Linux inanılmaz bir alaka görüyor ve dünya üzerinde belki de çoğu birbirini daha önce hiç görmemiş bir çok programcı tarafından geliştirilmeye başlanıyor. Hiç bir fayda ve kar amacı gütmeden!

İşte aslında herşey benim için Linux'la başladı. Bir bilgisayar dergisinin CD'sinde Slackware Linux sürümünü vermesiyle yola koyuldum. Önce Linux kurmayı öğrendim:) Evet inanın bir çok şeyi Linux'u kurarken öğrendim. Daha sonra haftasonları Linux'la ilgili websitelerinde sörf yaparken şunu anladım: Ben Hacker'ların işletim sistemine bulaşmışım!!! Aslında Internet=UNIX olduğunu öğrendim. Yıllardır insanların bu konular üzerinde ne kadar uğraştıklarını anladım. Tonlarca kitap, döküman ve program yazılmıştı bu konuda. Ve biz Türkiye olarak çok geç keşfetmiştik İnternet'i...

Hacking ilginç bir konuydu ve doğal olarak benim de ilgimi çekti. Ve herkesin en başta yaptığı gibi büyük bir açgözlülük ile ne bulursam indirmeye başladım. Ancak indirdiğim dökümanların büyük bir çoğunluğunda genelde şu sorunlarla karşılaşıyordum:
1- Çok eski tarihli olmaları(Hala 1980'lerin başlarında yazılmış bir çok dökümanı internette bulabilirsiniz-Hacker's Handbook buna en güzel örnektir)
2- Farkını anlamadan Phreak(telefon hacking diyebiliriz) veya Anarchy dosyalarını da toplamaya başlamış olabilirsiniz(ki bunlar tamamen farklı konular hele hele anarchy)
3- Ve en önemlisi...Bu dökümanların hiç birisi bir bütün olarak konuyu ele almıyordu. Yani her şeyi en başından anlatan bir döküman bulmak olanaksızdı.

Evet, ya konuları çok yüzeysel anlatan, iki paragraf uzunluğundaki dosyalar çıkıyordu karşıma; yada neden bahsettiği konusunda en ufak bir fikir bile yürütemediğim aşırı üst seviyeli yazılar okumak zorunda kalıyordum. Bu işi öğrenmeye çalışan bir çok insanın karşılaştığı bir sorundur bu bence. Gerçi bu şekilde de belirli bir süre sonra işi çözmeye başlarsınız ama kaybedilen zaman çok önemlidir.

Gene bir gün webde dalda dala zıplarken gerçekten çok güzel bir site buldum
(eğer hala oradaysa -> [Linkleri görebilmek için üye olun veya giriş yapın.]
Sitenin sahibi sayfanın en başına şöyle yazmıştı:
" Lütfen artık bana hacking öğretir misin? diye mail atmayın. Gidin yandaki kitabı okuyun
ve öğrenin ". Yanda da amazon.com'dan linklenmiş bir kitap reklamı
vardı="Maximum Security". Sitenin içeriği o kadar kaliteliydi ki sahibi böyle diyorsa bu
kitapta kesin iş vardır diyordum. Ancak doğal olarak o kitap Türkiye'de yoktu.
Amazon.com'dan alışveriş yapacak kredi kartım da yok
Ben bu kitabın aşkıyla yana durayım gene bir gün surf yaparken
(sürekli surf yapın görüyorsunuz ne kadar faydalıSmile sürekli kontrol
ettiğim sitelerden birisinde(http://www.insecure.org)
SAMS publishing-Free computer books online!
(http://www.mcp.com/personal) diye bir link buldum.
Tıkladım ve gözlerime inanamadım çünkü yüzlerce bilgisayar kitabı HTML
formatında karşımda duruyordu. Ve tahmin ettiğiniz gibi
Maximum Security-A Hacker's Guide to Protecting Your Internet Site and Network'da
bunların içindeydi.

Kitap gerçekten tam tahmin ettiğim gibi herşeyi en başından başlayarak anlatıyordu. İşte bu esnada benim aklıma bu Türkçe dökümanı hazırlama fikri geldi. Çünkü bu çok büyük bir eksiklikti ve bence birisinin(belki ben olmamalıydım ama) artık bir şeyler yazması gerekiyordu. Daha önce okuduğum dökümanlardan da faydalanarak Türkçe güzel bir şeyler hazırlayabileceğime karar verdim, konuları anlatırken de kitaptaki sıradan faydalanabilirdim. Bu arada yeri gelmişken şunu da ekleyelim, döküman boyunca gereksiz yere saçma türkçe kelime çevirileri yapmayacağım, bir kelimenin uygun bir karşılığı yoksa onun ingilizce halini kullanacağım. İşte böylece şu an saat 21:41 ve bu işe ilk adımımızı atmış olduk.

2.1 KİMİN İÇİN ve NEDEN?
=========================

Bu dökümandan bir çok insan faydalanabilir. Zaten ne zaman Network güvenliği ile ilgili bir tool veya döküman çıksa hep bunun tartışması yapılır. Bu bilgilerin ve araçların cracker'lara(hacker'la arasındaki farkı birazdan anlatacağım) fayda sağladığı söylenir hep. Savunma olarak da sadece bu şekilde internetteki güvenliğin geliştirilebileceğinden bahsedilir. Evet sonuçta bir güvenlik deliği varsa bunun bilinmesi için açıklanması gerekir ve bu açıklamaları kötü niyetli insanlardan daha önce öğrenip gerekli önlemi almak da o network'ün güvenliği ile ilgilenen kişinin sorumluluğundadır. Ancak genelde bunun tam tersine cracker'lar adminlerden hep bir adım daha öndedirler.Bazı istisnalar hariç tabii. Mesela genellikle üniversiteler bu konularla yakından ilgilenen insanlara sahip oldukları için cracker'lar için tercih edilen bir hedef değildirler. Tabii zoru seven cracker'lar olduğu da kesin. Örneğin son olarak süper bir exploit(anlamadıysanız dert etmeyin) kaynağı olan Rootshell'i ziyaret ettiğimde onların bile ana sayfasının bir grup cracker tarafından değiştirildiğini öğrendim. Rootshell bile tam olarak kendini korumyamıyorsa internete bağlı herkes tehlikede demektir:)

Evet bu döküman öncelikli olarak bir cracker için yazıldı. Ancak bir admininin de bu dökümandan kendine pay çıkartabileceğine inanıyorum. En azından neyle karşı karşıya olduğunu anlayacaktır. Nasıl saldırıldığını bilmeden savunma yapamazsınız...


Peki neden bu kadar yaygın ve dikkat çeken bir konu bu. Bence en büyük sebebi gizlilik ve kişisel tatmin. Yani bir şeyler öğrenerek, deneyerek keşfediyorsunuz ve gizlice erişim sağlıyorsunuz. Bayağı heyecan verici öyle değil mi? Bu büyük bir zevk bence. Ayrıca bilgisayar ve iletişim teknolojilerini öğrenmek için mükemmel bir yol. Eğer cracker'lar olmasaydı internet kesinlikle bu kadar gelişim gösteremezdi(en azından güvenlik konusunda:)

2.2 HACKER vs CRACKER
======================

Hacker ve Cracker arasındaki farkı çok uzatmadan örneklerle kısaca açıklamaya çalışacağım. Hacker aslında bu işin uzmanı, yani en ince detayına kadar bilen kişi demektir. Genellikle üstün yetenekli programcılar hacker olarak adlandırılırlar. Benim tanıdığım ve hacker olarak örnek verebileceğim kişiler ise şunlar:
* Dennis Ritchie ve Ken Thompson: Bu adamlar inanılmaz insanlar. Onlarsız internet filan olmazdı herhalde. Bell labaratuarlarında UNIX'i ve C programlama dilini keşfettiler! Daha ne yapsınlar. İşte gerçek hacker'lara en güzel örnek.
* Dan Farmer: COPS ve SATAN programlarının geliştirilmesinde yer aldı.
* Wietse Venema: SATAN(Dan Farmer ile birlikte) ve TCP Wrapper'ı yazdı.
* Linus Torvalds: Linux'u yazdı! (sağolsun:)
* Bill Gates: Bütün dünyayı tekeline alacak kadar(gerçi bu tartışılabilir) yaygınlaşan ve (bence)bir o kadar da işe yaramaz olan işletim sistemlerini hazırlayan şirketi yarattı ve şu an bütün dünyayı sömürüyor helal olsun!!!

Evet sanırım hacker'ın ne olduğunu anladınız. Şimdi bir de cracker'ın tarifini yapalım. Cracker'lar kanun dışı bir şekilde bir bilgisayara izinsiz olarak erişen kişilere verilen isimdir. Benim ismen tanıdığım tek cracker;
* Kevin Mitnik: Dünyanın en tanınmış cracker'ı. Önceleri phreak ile uğraşmış. Daha sonra aklınıza gelebilecek her türlü siteyi(askeri, ticari, yazılım geliştirici) kırdı. Daha bir çocukken North American Aerospace Defense Command'ı crack etmeyi becermişti. Ancak en sonunda Tsutomu Shimomura adlı bir Japon(sanırım!) security uzmanı tarafından yakalattırıldı. Şu an hala davası görüşülüyor. İnternet üzerinde FREE KEVIN şeklinde bir çok banner ve yazıya denk gelebilirsiniz.

Ancak günümüzde bu terimler gerçek anlamında kullanılmıyor. Bunda medyanın bu terimleri yanlış kullanmasının çok büyük payı var. Bilgisayarlara izinsiz erişen kişilere cracker yerine hacker deniyor. Cracker veya cracking dendiğinde ise akla debugger'ları kullanarak(reverse engineering) genelde ticari programları kıran kişiler geliyor(Şifre soran veya 30 gün çilesi yaşatan bir çok programla karşılaşmışsınızdır). Bu yüzden dolayı bende bu dökümanın adını Türçe Cracking koymak istemedim. Toplum psikolojisi...

3.1. TARİHÇE
============

1969 yılında Amerikan Defense Advanced Research Projects Agency (DARPA) Rusların Nükleer saldırı tehdidine karşı merkezi bir kontrol olmadan bilgisayarların birbirleriyle haberleşebileceği bir network geliştirmeye karar verdi. Böylece eğer network'ün bir parçası yok olursa kalan kısımlar iletişime devam edebilecekti.

Çalışmalar çabuk sonuç verdi ve 1962-1963 yılında ARPANET adında bir prototip ortaya çıktı. 1970'lerin ortalarına doğru da TCP/IP geliştirildi. TCP/IP diğer protokollere oranla uygulamaya konması daha ucuz ve sistem kaynaklarını daha etkili kullanabilen bir protokol olması dolayısıyla büyük bir ilgi gördü. 1983 yılında ilk olarak Berkeley Software Distribution(BSD) UNIX (release 4.2)'ye eklendi ve kısa bir süre sonra diğer bütün UNIX'lerde de kullanılmaya başlandı ve günümüze kadar ulaştı.(Neden Internet=UNIX olduğunu sanırım şimdi daha iyi anlıyorsunuz)

TCP/IP'nin en büyük özelliği platformdan bağımsız olmasıdır. Şu an neredeyse bütün platformlar TCP/IP'yi desteklemektedir ve aynı network üzerinde Macintosh'lar, IBM uyumlular, Sun Sparcstation'lar birbirleriyle haberleşebilmektedir.

3.2. TEMEL BÖLÜMLEME
====================

TCP/IP (Tranmission Control Protocol / Internet Protocol) şu an İnternet üzerinde bilgisayarların birbirleriyle iletişim kurduğu protokoldur. İleride bu protokollerle çok karşılaşacaksınız ve bunlar hakkında kesinlikle iyi seviyede bir bilgi birikimine ihtiyacınız olacak. Temelsiz bir bina ayakta duramaz! Eğer bu protokollere çok yabancıysanız bu konu hakkında yazılmış bir çok kitap bulunmaktadır, bunlardan birisini okumanızı tavsiye ederim. İlk bölümde bahsettiğim Macmillan Computer Publishing (http://www.mcp.com/personal) adresinde bu konu ile ilgili bir kitap (Teach Yourself TCP/IP in 14 Days) bulabilirsiniz.

Sonraki bölümler için bir giriş olması için TCP/IP'nin temel bölümlenmesinden burada bahsetmek istiyorum. TCP/IP suitinde iki sınıf protokol vardır.


1. Network Level Protokoller: Bu protokoller kullanıcı tarafından görülmezler ve sistemin derinliklerinde işlerler. Mesela IP(Internet Protocol) kullanıcı ile diğer makineler arasındaki packet dağıtımını sağlar. IP bu işi birçok bilgi sayesinde gerçekleştirir (örneğin iki bilgisayarında IP adreslerini bilmeli) ve bu esnada diğer network level protokollerle iletişim halindedir. Ama IP'nin yaptığı bu işlerin hiçbirisi kullanıcı tarafından görülmez.(Eğer bir sniffer kullanmıyorsa!-daha sonra detaylı olarak inceleyeceğiz-)


2. Application Level Protokoller: Bunlar ise kullanıcı tarafından gözlenebilen protokollerdir. Örneğin FTP'yi(File Transfer Protocol) ele alalım. Bir bilgisayara FTP isteğinizi gönderirsiniz, kabul edilirse bağlanırsınız ve transfer başlar. Bu esnada transfer ile ilgili hata mesajlarını, durum raporlarını, ne kadar zamanda ne kadar byte gönderme yapıldığı gibi bilgileri kullanıcı olarak gözleyebilirsiniz.

3.3. TCP/IP NASIL ÇALIŞIYOR?
============================

TCP/IP bir protokol stack'i üzerinden çalışır. Bu stack(yığın) iki bilgisayar arasında iletişim kurulabilmesi için gerekli olan protokollerin toplamıdır. Bu stack katmanlara(layer) ayrılmıştır ve biz bunlardan 5 tanesini inceleyeceğiz.

SERVER------+
|
|
+-----+-------+
| Application |-->Bir kullanıcı data transferini başlattığında
| Layer | bu katman isteği Transport Layer'e iletir
+-----+-------+
|
|
+-----+-------+
| Transport |-->Bu katman dataya bir header ekler ve
| Layer | Network Layer'e gönderir
+-----+-------+
|
|
+-----+-------+
| Network |-->Bu katmanda routing amaçlı kullanılmak üzere
| Layer | dataya source ve destination IP'leri eklenir
+-----+-------+
|
|
+-----+-------+
| DataLink |-->Yukarıdaki katmanlar ve Physical Layer arasındaki
| Layer | data akışı üzerinde hata kontrolünü yapar
+-----+-------+
|
|
+-----+-------+
| Physical |-->Bu katman kullanılan ortam(modem veya ethernet)
| Layer | üzerinden datayı gönderir/kabul eder.
+-----+-------+

Sonuçta bir göndermek istediğiniz data bu katmanlardan geçer ulaştığı makinede de bunun tam tersi işleme tabi tutulur. Bu işlemler esnasında yoğun bir hata kontrolü yapılmaktadır. Her katman altındaki veya üstündeki katmandan data alıp ona data gönderebilir. Her katman bir çok protokol ile ilişkilidir.

3.4. PROTOKOLLER
================

Yukarıda TCP/IP üzerinden protokol stack'ini kullanarak bir datanın nasıl transfer edildiğini gördünüz. Şimdi bu katmanlarda kullanılan bazı belli başlı protokolleri yakından inceleyelim. İlk olarak yukarıda temel bölümleme ile ayırdığımız network-level protokollere bir göz atalım.

3.4.1. ARP (ADDRESS RESOLUTION PROTOCOL)
========================================

Bir network üzerindeki iki bilgisayar haberleşirken datalar packetlere ayrılarak gönderilirler. Bu packetlerin içinde datanın geldiği ve gideceği bilgisayarların IP adresleri saklanmaktadır. Ancak iletişimin kurulabilmesi için bu 32 bitlik IP adreslerinin 48 bitlik hardware adreslerine çevirilmesi gerekir. İşte bu çevrim işini gerçekleştiren protokole ARP denmektedir. ARP bunu gerçekleştirirken bir cache mekanizması kullanır. Yani hangi IP'nin hangi adrese denk geldiğini saklar. Bu da zamandan ve network kaynaklarından tasarruf sağlar.

3.4.2 ICMP (INTERNET CONTROL MESSAGE PROTOCOL)
==============================================

ICMP'nin görevi kısaca iki bilgisayar arasındaki bir transfer esnasında hata kontrolünü yapmaktır. Böylece karşıdaki bilgisayarın durumunu anlayabilirsiniz(hala bağlı mı değil mi gibi). En çok bilinen ICMP uygulaması ping adındaki programdır. Bu program karşıdaki makineye bir packet gönderir ve echo olarak bir cevap dönmezse karşıdaki bilgisayarın koptuğunu anlayabilirsiniz.

Ayrıca bu utility sayesinde gönderdiğiniz packetlerin ne kadar sürede karşıya ulaştığını da öğrenebilirsiniz. Bir çok IRC client'inde bu program dahil edilmiştir ve böylece yazdığınız mesajların karşıdaki kişiye ne kadar süre sonra gittiğini öğrenebilirsiniz. Eğer bu süre bayağı büyükse IRC kullanıcılarının LAG olarak tabir ettikleri durum ortaya çıkar.

3.4.3. IP (INTERNET PROTOCOL)
=============================

IP Network Layer'e bağlıdır. IP'nin görevi kısaca TCP/IP suitindeki bütün protokoller için packet dağıtımını sağlamaktır. Daha iyi anlamanız için aşağıda bir datagramın yapısını göstermeye çalıştım.



+----------------++----------------++----------------++----------------+
| Çeşitli Header || Kaynak || Hedef || Data |
| Bilgileri || IP Adresi || IP Adresi || |
+----------------++----------------++----------------++----------------+

\ / \ /
\-----------------------+------------------------/ \-----+------/
Header Data

IP'nin ilginç yanlarından birisi de şudur. Bazı networkler daha küçük packetler istiyor olabilirler. Bu durumda packetler parçalara ayrılırlar ve bilgisayara ulaştıkları sıraya bağımlı olmaksızın tekrar bütünleştirilebilirler.

Header'da saklanan diğer bilgilerden de biraz bahsedelim. Burada hangi protokolün kullanıldığı, header checksum'ı(checksum'ın ne olduğunu sonraki konularımızda bahsedeceğim) ve time-to-live belirteci gibi bilgiler bulunmaktadır. Time-to-live bir paketin ne kadar süre internette dolaşacağını belirler. Sayısal bir değerdir ve zaman geçtikçe birer birer azaltılır, 0 olduğunda ise packet ölür.

3.4.4. TCP (TRANSMISSION CONTROL PROTOCOL)
==========================================

TCP internet üzerinde dosya transferi ve remote session gibi önemli görevleri yerine getiren en önemli protokoldür. TCP bunu (güvenilir)reliable data transfer denilen bir metod ile gerçekleştirir. Yani biraz daha teknik söylersek TCP bize reliable stream delivery'i sağlar ve bunun sayesinde datamızın aynı sırayla ve aynı içerikle gönderildiğinden emin oluruz.

TCP bunu, 3 bölümle incelenebilen sanal bir devre üzerinden gerçekleştirir. Yine anlamayı kolaylaştırmak için aşağıya bir şekil çizmeye çalıştım.



+-------------------------------------------------------------------+
CLIENT | Client bilgisayar server makinada bağlanacağı portu |----> SERVER
| belirterek bir connection request gönderir. |
+-------------------------------------------------------------------+

+-------------------------------------------------------------------+
CLIENT <--- | Server isteğin alındığını belirten bir mesaj gönderir ayrıca | SERVER
| bağlantı için bir sıra da client'a gönderilir. |
+-------------------------------------------------------------------+

+-------------------------------------------------------------------+
CLIENT | Client da bunu aldığını belirten bir mesaj gönderir |----> SERVER
| ve böylece aradaki sanal devre açılmış olur. |
+-------------------------------------------------------------------+

Devre açıldıktan sonra data aynı anda her iki yönde de transfer edilebilir ki buna full-duplex transmission path denir. Bu sayede data transferi esnasında oluşan hatalar istemci(client) makinaya bildirilir. Buna ek olarak TCP çok güçlü bir hata-kontrol mekanizmasına sahiptir. Gönderilen her data bloğu için bir numara üretilir. Client makina da kendisine başarılı bir şekilde ulaşan her blok için server'a transferin temiz:) olduğuna dair bir mesaj gönderir ve böylece transfer başarıyla gerçekleştirilmiş olur.

Eğer transfer başarısız olursa ne olur? Bu durumda iki ihtimal ortaya çıkmaktadır:
1- Client makina bir hata mesajı alır
2- Client makinaya hiç bir şey ulaşmaz
Birinci durumda hayati(bağlantının düşmesi ya da iletişimin kapatılması gibi) bir hata olmadığı müddetçe data yeniden gönderilir. Aynı şekilde eğer client'tan belirli bir süre alındı mesajı gelmezse de data yeniden gönderilir. Bu göndermeler transfer tamamlanıncaya kadar devam eder.

Şimdi yukarıdaki şeklin ilk basamağında bahsettiğimiz portlardan ve nasıl kullanıldıklarından, bir client request gönderdiğinde server'da neler olduğunu biraz daha yakından inceleyelim.

3.4.4.1 inetd(EN BABA DAEMON:)
==============================

Şimdi ilk olarak daemon nedir onu bir açıklayalım. Daemonlar arka planda çalışan ve başka process'leri dinleyen programlardır. Bunları DOS'taki TSR(Terminate and Stay Resident) programlara benzetebilirsiniz. Burada bizim dinlediğimiz processler connection request'lerdir.

Şimdi herşeyi kısaca toplamak gerekirse; siz bir server'a bağlanmak istersiniz. Ancak bağlanırken bir port numarası da belirtmeniz gerekir. Çünkü her portu dinleyen başka bir process bulunmaktadır. Bu da -birazdan göreceğiz- aslında hangi protokolle haberleşmek istediğinizi belirtmektedir.
Bütün bu processlerin ayrı ayrı çalışması server'ın kaynaklarını yiyip bitirebilir. O yüzden bu processlerin hepsinin kendi portunu dinlemesindense bir tane ana daemon yapılmış ve dışarıdan gelen bütün istekleri dinlemesi sağlanmıştır. Bu daemon kendisine bir istek geldiği zaman isteği inceler ve onunla ilgili olan process'i çalıştırıp iletişimin kurulmasını sağlar. Yani inetd aslında bir nevi trafik polisliği yapmaktadır.

Bunun için inetd server'ın açılması ile beraber çalıştırılır ve ancak kapatılırken durdurulur. UNIX'de /etc dizinin altındaki inetd.conf dosyası ile inetd daemonunun hangi process'leri çalıştıracağını ayarlayabilirsiniz.

3.4.4.2 PORTLAR
===============

Sanırım yukarıdaki açıklamalardan portların ne olduğu hakkında bir fikriniz oldu. Son bir örnek vererek bu konuyu da kapatalım. Bir server üzerinde binlerce port bulunur. Server üzerinde çalışan ve network üzerinden iletişim sağlayacak olan programlar kendilerine atanmış özel portları dinlerler. Bir kullanıcı da bu server üzerindeki bir servise erişmek istiyorsa o server'ın IP adresini ve o servisin dinlediği port numarasını gönderir. Böylece o servisle iletişim kurmuş olur. Örneğin web server'lar genel olarak 80 numaralı portu dinlerler. Hepimizin kullandığı web browser'lar (yani burada client programlar) aslında adresini yazdığımız server'ın 80. portuna bir istek göndermektedir. Aşağıda şu an günümüzde standart olmuş belli başlı servislerin dinlendiği port numaralarını veriyorum.

FTP (File Transfer Protocol) -> 21
Telnet -> 23
SMTP (Simple Mail Transfer Protocol) -> 25
Gopher (Artık kalmadı ya neyse:) -> 70
Finger -> 79
Hypertext Transfer Protocol -> 80
Network News Transfer Protocol -> 119




*** Evet şimdi şöyle bir toparlayalım. TCP/IP suitini iki ana bölüme ayırmıştık. Öncelikle belli başlı network level prtokolleri inceledik. TCP protokolünde portların tanımını yaptık ve bu portları bazı servislerin dinlediğinden bahsettik. İşte yukarıdaki bahsedilen bütün servisler application level protokollerdir. Yani kullanıcının gözlemleyebildiği protokollerdir. Şimdi yukarıdaki tablodaki protokolleri kısaca inceleyelim.

3.4.5. TELNET
=============

Telnet genellikle UNIX makinelerde yaygın olarak kullanılmaktadır. Kullanıcıya bir terminal arayüzü sunar. Bu protokol sayesinde uzaktaki bir server'a login olabilir ve o makine üzerinde sanki o makineyi siz kullanıyormuş gibi komutlar çalıştırabilirsiniz. Genelde BBS(Bulletin Board System)'lerin arayüzüne çok benzemektedir. Ayrıca databaselere çok mükemmel bir terminal tabanlı arayüz sağlamaktadır. Şu an ABD'deki üniversitelerin %80'nin kütüphane kayıtlarına telnet üzerinden ulaşılabilmektedir.

Günümüzde GUI(Graphical User Interface) genelde ön plana çıksada bir çok sebepten ötürü telnet uzun yıllardır kullanılmaktadır. Bu sebeplerden bir tanesi text-temelli olduğu için network kaynaklarından çok az harcamaktadır. Ayrıca telnet'in güvenliğini sağlamak da çok basit bir iştir. Secure Shell gibi bu işi gerçekleştiren programlar mevcuttur.

3.4.6. FTP (FILE TRANSFER PROTOCOL)
===================================

FTP bir bilgisayardan diğer bir bilgisayara dosya transferi için standart prokoldür. FTP sayesinde dosyaları download ve upload edebilirsiniz.

NOT:Bu protokollerin daha fazla açıklamaya ihtiyacı olduğunu zannetmiyorum çünkü internetle uğraşan herkesin bu konuda temel bilgisi vardır. FTP ve diğer protokoller de yukarıda temellerini anlattığımız client/server tipinde çalışmaktadır.

3.4.7. GOPHER
=============

Gopher ilk çıkan prokollerden birisidir ve aslında HTTP'den sonra pabucu dama atıldı denilebilir. Genellikle dosya sistemi şeklinde bir ara yüze sahiptir.

3.4.8. HTTP (HYPERTEXT TRANSFER PROTOCOL)
=========================================

Herhalde en çok bilinen protokol budur. Öncelikle HTTP ve Gopher'ın Telnet'ten farkını söylemek istiyorum. Bir server'la telnet bağlantısı kurduğunuz zaman sanki gerçekten o bilgisayarın başında oturuyormuşsunuz gibi o bilgisayara login olursunuz ve çalıştırdığınız her komut server'ın kaynaklarından bir miktar harcar. Ancak HTTP ve Gopher'da durum farklıdır, login olan bir user yoktur. Server kendisine istek geldiği zaman client'a gerekli datayı gönderir o kadar, sadece bu esnada server'ın kaynakları kullanılmış olur. Bu sayede kullanıcı ile server'ın arasına bir mesafe koyulmuş olunur.

3.4.9. NNTP (NETWORK NEWS TRANSFER PROTOCOL)
============================================

USENET'i sanırım hepiniz duymuşsunuzdur. İşte bu protokol sayesinde bir haber grubuna bağlanabilir ve oradan dilediğiniz article'ı okuyabilirsiniz. Dilerseniz sizde bir mesaj postalayabilirsiniz.

3.4.10 SONUÇ
============

Sanırım artık sizde anladınız. TCP/IP=internet demek. Bu bölümde TCP/IP'nin temel bölümlemesini yaptık. Bunları teker teker inceledik. Unutmayın ki burada sadece belli başlı protokollerden bahsettik, daha yüzlerce protokol mevcut ve bunların bir çoğunda da hatalar var...



4.1. SCANNER NEDİR?
===================

Scanner'lar bir hacker'ın ilk olarak kullandığı programların başında gelir ve en önemli silahlarından birisi sayılabilir. Scannerlar gerçekte TCP/IP portlarına ve servislerine saldırırlar ve onlardan gelen cevapları kaydederler (Belli başlı servislerin bazı belli portları dinlediğini önceki bölümde anlatmıştık). Bu sayede hedefiniz hakkında bir çok önemli bilgiye ulaşırsınız. Ayrıca scannerlar hedefteki bazı güvenlik açıklarını da ortaya koyabilirler. Scannerların kontrol ettiği çeşitli güvenlik delikleri vardır. Bu delikleri yamamamış sistemleri bulmak için çok büyük domainler taranabilir. Tabii deliği bulduktan sonra içeri sızmayı becermek size kalıyor.

Bir scanner karşıdaki hedef bilgisayarı ya da networku bulabilmeli ve üzerinde hangi servislerin çalıştığını çıkartabilmelidir. Son basamak olarak da bu servisleri bilinen açıklar için test etmelidir.
Burada size detaylı olarak scannerları anlatmayacağım genel olarak ne yaptıklarından, hangi amaçlar için kullanılabileceklerinden en son olarak da en ünlü bir kaç scanner'ı tanıtmaya çalışacağım. Sonuçta bu programları internetten indirip kendi içindeki readme'lerini okuyorak öğrenmeniz gerekiyor.

4.2. HEDEFİ NASIL BULACAĞIZ?
============================

1995 yılında Silicon Graphics (SGI) WebForce modeli adında bir bilgisayar piyasa sürdü. SGI'ların üzerinde bir çeşit UNIX olan IRIX çalışmaktadır. Bu makinaları özel kılan ise DEFAULT olarak bazı temel print işlerinin yapılması için şifre gerektirmeden "lp" olarak login olabilmenizdir. Eğer bir makineye login olup shell'e düştüyseniz zaten işin büyük kısmı bitmiş demektir.

Böylece internetteki crackerler WebForce makinalarını aramaya başladılar. WebForce adminlerinin çoğu sistem güvenliğinden pek anlamadığından ftp dizinlerini (world readable) bırakıyorlardı. Yani bu da kolayca sistem loginlerinin ve şifrelerin tutulduğu /etc/passwd dosyalarına erişebilmeniz demek. altavista.digital.com gibi arama motorları bu dosyaları da listelemektedir. WebForce modeline özel bazı kelimeleri veya program adlarını kullanan querylerle bu makinelerin bir listesini elde edebilirsiniz. Bu bir yöntem, bazılarıda internic.net'deki whois servisini kullanarak bilgisayarların kayıtlı olduğu database'i araştırdı. Ancak en güvenilir yöntem bir scanner kullanmak. Scannerımızın yapacağı iş kendisine parametre olarak verilen ip numaralarına telnet bağlantısı yapmaya çalışmak ve eğer bağlantı kurabilirse karşı taraftan gelen cevabı bir text dosyasına saklamak. Bu çok özel bir durum ancak scannerların muhtemel bir hedefi bulmakta sağladığı kolaylığı göstermesi açısından güzel.

4.3. NETWORK UTILITIES
======================

UNIX'lerdeki bazı komutlar size çok önemli bilgiler sağlayabilirler. Aşağıdakilerin hepsi temel olarak UNIX programlarıdır ancak bu komutların diğer işletim sistemleri için olan çevrimleri(porting) de vardır. Webde küçük bir araştırma ile bu tip bir çok programa ulaşabilirsiniz. UNIX kullanıyorsanız bu komutların manuel page'lerini okuyarak parametrelerini öğrenmenizi ve herhangi bir domain üzerinde deneyip neler elde ettiğinizi kontrol etmenizi tavsiye ederim.

İlk olarak host komutunu ele alalım. Bu komutla bir networkle ilgili bir çok bilgiye sahip olabilirsiniz. Mesela hangi işletim sistemleri hangi makineler üzerinde çalışıyor bunu öğrenebilirsiniz.
Traceroute komutu ise bir makinenin yerini belirlemek için kullanılır. İsminden de anlaşılacağı gibi traceroute gönderilen datanın karşı makineye ulaşmak için dolaştığı domainlerin adını gösterir. Böylece sonuç olarak elimizde sadece IP varsa bunu coğrafik olarak konumlandırmak traceroute ile mümkün olmaktadır.
rusers ve finger komutları bir network üzerindeki kullanıcılar hakkında bilgiler verir. Böylece finger'ladığınız bir kullanıcının o an bağlı olup olmadığını da öğrenebilirsiniz.
Eğer hedefin exported dizinleri varsa showmount komutu -e parametresi ile kullanılarak bu dizinler mount edilebilir.

4.4. SCANNERLAR
==============

Şimdi belli başlı scannerlara kısaca bir göz atalım.

4.4.1. NSS(NETWORK SECURITY SCANNER)
==================================

NSS'yi diğer scannerlardan ayıran en büyük özelliği Perl'de yazılmış olmasıdır. Bu da C Compilerına ihtiyacınız anlamına geliyor. Bir çok yerde C Compiler'ına erişim hakkınız kısıtlanmış olabilir. Bir çok scanner programı da C kodu şeklinde dağıtılıyor. Yani kullanabilmek için önce compile etmeniz gerekiyor. Perl ise CGI programlamasında çok kullanılan bi program olduğundan genelde erişim izni verilir. Bu yüzden NSS çok popüler bir seçimdir.

NSS aslında DEC platformu için yazıldığı söyleniyor. Ancak üzerinde Perl 4 veya daha yukarısı oaln bilgisayarlarda kucuk (veya buyuk:) değişiklikler yaparak çalıştırılabiliyor. NSS'nin en büyük özelliği çok hızlı olması. yaptığı genel kontroller şunlar:
* sendmail
* Anon FTP
* TFTP
* Host.equiv (root olmanız gerek)
* Xhost

NSS genellikle tar.gz olarak şıkıştırılmış dağıtılmaktadır. Ancak açtığınız direk çalıştıramazsınız bazı enviroment variable'ları ayarlamanız gerekiyor. ($TmpDir,$YPX,$PING,$XWININFO). Ayrıca scan işlemini ağ üzerinde bir çok makineye yayabilirsiniz.

4.4.2. STROBE(THE SUPER OPTIMIZED TCP PORT SURVEYOR)
==================================================

Adından da anlaşılacağı gibi Strobe bir makinenin TCP portlarını scan edip butun açık portları bildirmektedir ve bayağı hızlıdır. Strobe bir makinede hangi servislerin çalıştığını söylemektedir.

4.4.3. SATAN(SECURITY ADMINISTRATOR'S TOOL FOR ANALYZING NETWORKS)
================================================================

SATAN büyük ihtimalle en ünlü scannerdır. Aslında bunu da hakediyor. Yazılımında C ve Perl kullanılmış. SATAN'ı farklı kılan bir özelliği de user-friendliness için X ortamında HTML bir arayüze sahip olması. Programın kalitesi yazarlarından gelmekte: Dan Farmer (COPS'un yazarı) ve Weitse Venema(TCP Wrapper'ın yazarı-Firewall mantığının atası).

SATAN remote hostu bilinen güvenlik delikleri için arar ayrıca:
* FTPD delikleri ve yazılabilir FTP dizinleri
* NFS delikleri
* NIS delikleri
* RSH delikleri
* sendmail
* X server delikleri

Sizin farkına vardığınız gibi bunların hepsi bilinen deliklerdir ve hepsi elle de yapılabilir bu scannerların yaptığı bu işlerin otomatikleştirmektir.

4.4.4. JAKAL
==========

Jakal bir stealth scannerdır. Bu scanner sayesinde bir firewall'un arkasındaki domaini iz bırakmadan tarayabilirsiniz. Stealth scannerlar "half scan" metodunu kullanılırlar. Bu metodda karşıdaki bilgisayarla SYN|ACK transaction'ınını başlatır ama asla bitirmez!

4.4.5. IdentTCPscan
=================

IdentTCPscan özel bir scannerdır. Bu program sayesinde karşıdaki bilgisayarda çalışan servislerin hangi kullanıcı olarak çalıştıdığını bulabilirsiniz. Yani process'lerin UID'sini gösterir. Örneğin 80. portun karşısında Userid:root yazıyorsa bu o site için büyük bir tehlike demektir. Çünkü bazı CGI-bin dosyalarındaki açıklar kullanılarak bir cracker sadece bir browser kullanarak karşı tarafta istediği komutu çalıştırabilir(phf bunun en güzel örneğidir. Ancak şu an hemen hemen bütün sitelerde bu delik yamanmış durumda, boşuna uğraşıp zaman kaybetmeyin).

"alıntı"

https://konum.benimforum.net

Sayfa başına dön  Mesaj [1 sayfadaki 1 sayfası]

Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz