ÖZET

Bu yazý TCP/IP katmanlarý sorgulamasý ile bilgisayarlardan nasýl  bilgi toplanabileceðini anlatmakadýr.
Önce TCP/IP katmanlarý sorgulamasý kullanýlmadan bilgisayarýn iþletim sistemini tesbit etmeye yarayan klasik metodlarý anlattým.Daha sonra katman sorgulamasý ile iþletim sistemi tesbit eden uygulamalarýn kullandýklarý metodolojiyi açýkladým.Bundan sonra uzaktaki bir bilgisayarýn kendisi hakkýnda bilgi vermesine yol açacak tekniklere yer verdim.
En son olarakta NMAP in bu teknikleri nasýl kullandýðýný ve NMAP ile tesbit edilen popüler internet sitelerinin kullandýklarý iþletim sistemlerini ekledim.


NEDENLER

Bence bir bilgisayarýn Ýþletim sistemini tesbit etmenin faydasý çok açýk bu sebeple bu bölümü kýsa tutacaðým.Bu faydalardan bir tanesi güvenlik açýklarýnýn iþletim sistemlerine özgü olmasý.Farzedelimki bir bilgisayara girilebilirlik testi yapmayý düþünüyorsunuz ve 53 nolu portun açýk olduðunu gördünüz.Eðer Bind in kýrýlabilir versiyonunu kullanýyor ise bu açýðý kullanabilmeniz için tek bir þansýnýz var.Çünkü yanlýþ bir hareket Bind sunucusunun çökmesine neden olacaktýr.Ýyi bir TCP/IP sorgulamasý ile hedef sistemin Solaris 2.51 yada Linux 2.0.35 kullandýðýný tesbit edebilir ve kullanacaðýnýz shellcode(kabuk kodu)nu buna göre düzenleyebilirsiniz.

Veya birisi 500,000 adet bilgisayarý herbirinin kullandýðý iþletim sistemini ve açýk býraktýðý portlarý tesbit etmek için tarýyor.
Daha sonra baþka birisi Sun comsat daemonunda root eriþim saðlanabilecek bir delik olduðunu söylüyor ve bizim küçük cracker taradýðý sistemlerde 'UDP/512' ve 'Solaris 2.6' kelimelerini bulup çýkarýyor.Ve root düzeyi eriþim ekranlarý ile karþýlaþýyor.Bu arada bu hareket SCRIPT KIDDIE(Bir þey anlamadan hazýr iþlemleri kullanabilen kiþilere denilir) hareketidir.Bu metod  kabiliyetinizi kullandýðýnýzý göstermez ve kimse yaptýðýnýzdan etkilenmez.
  
Bir diðer kullanma alaný ise Sosyal mühendislik metodlarýdýr.
Farzedelimki hedef aldýðýnýz þirketi taradýnýz ve NMAP size 'Datavoice TxPORT PRISM 3000 T1 CSU/DSU 6.22/2.06' raporunu verdi.Bundan sonra Hacker 'Datavoice Desteði' istermiþ gibi üreticiyi arýyor ve PRISM 3000 ile ilgili güvenlik özelliklerini tartýþmaya baþlýyor.Aldýðý cevap"Yakýn zaman içinde bir gücenlik açýðý açýklamayý düþünüyoruz ancak açýklamadan önce müþterileimizin ilgili yamayý yüklemesini bekliyoruz.---Biraz önce size mail attým...."
Bazý saf adminler adece yetkili mühendislerin Datavoice CSU/DSU bilgisinin olabileceðini sanabilir tabii...

Baþka bir kullanýmý ise iþ yapacaðýnýz þirketlerin deðerlendirilmesidir.Ýþ yapacaðýnýz bir ISP yi seçmeden önce tarama yapýp neler kullandýðýný test edebilirsiniz."Yýllýk 99 USD isteyenler genellikle döküntü Router lar kullanýrlar ve PPP servisleri yeterli düzeyde deðildir.


KLASÝK TEKNÝKLER

Katman sorgulamasý Ýþletim sistemi belirlenmesi problemini tek bir yol ile çözer.Bana göre bu teknik verdiði sözlerin çoðunu tutuyor ama þu an birçok farklý teknik bulunmaktadýr.
Malesef bu hala en etkili tekniktir:

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: 

Eðer sistem yukarýda örneklendiði gibi herkese ne olduðunu söylüyor ise iþletim sistemi belirlenmesi çilelerine gerek kalmýyor.
Malesef pek çok sistem bu tür ilanlar ile satýlýyor ve pek çok admin bunlarý kapatmýyor.Sadece iþletim sistemini belirleyebilmenin baþka yollarý var diye her baðlanmak isteyene bunu anons etmek doðru deðil.

Bu tekniðin kullanýlmasý sebebiyle ortaya çýkan problemler sebebiyle pek çok kiþi bu ilanlarý kapatýyor ve bu ilanlarda yalan bilgi vermenin hayati önemi olduðunu kavrýyor.
Buna raðmen ,bu teknik Ýþletim sistemi ve versiyonunun tesbitinde istediðiniz herþeyi verir.eðer ISS Scanner a binlerce dolar veriyorsanýz nmap yada queso yu indirin ve paranýzý elinizde tutun:)))

Ýlanlarý kapasanýz bile birçok yüklü uygulama sorulduðu zaman bu tür bilgileri mutlulukla verir.
Örneðin FTP sunucusuna baðlanalým:

payfonez> telnet ftp.netscape.com 21
Trying 207.200.74.26 ...
Connected to ftp.netscape.com.
Escape character is '^]'.
220 ftp29 FTP server (UNIX(r) System V Release 4.0) ready.
SYST
215 UNIX Type: L8 Version: SUNOS

Herþeyden önce bu uygulama varsayýlan ilanýnda sistem ile iilgili detaylarý verir.'SYST' komutunu verdikten sonra ise bize daha fazla bilgi verir.Eðer anon FTP destekleniyor ise /bin/ls yada baþka bir uygulamayý indirebilir ve hangi mimari için yazýldýklarýný anlayabiliriz.

Pek çok uygulama bu tür bilgileri verebilir.Web sunucularýný ele alalým örneðin :

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


Diðer klasik teknikler DNS host info kayýtlarý(Nadiren etkili) ve sosyal mühendisliktir.
Eðer makine 161/UDP portunu dinliyor ise CMU SNMP uygulamalarý daðýtýmýnýn bir parçasý olan 'snmpwalk' u ve 'public' ortak adýný kullarak hemen hemen garanti bir þekilde detaylý bilgiler alabilirsiniz.


ÞU ANKÝ TESBÝT PROGRAMLARI

Nmap TCP/IP sorgulamasý kullanarak Ýþletim sistemi tesbiti yapan ilk program deðil.Genel bir IRC spoofer olan sirc(Johan tarafýndan yazýlmýþtýr) versiyon 3 ten sonra çok temel tesbit teknikleri kullanmýþtýr.
Birkaç basit TCP flag larý kullarak bilgisayarlarý "4.4BSD" , "Win95" yada "Unknown" gibi 3 sýnýfa ayýrýr.

Bü tür bir programa diðer bir örnek ise bu yýlýn ocak ayýnda genel kullanýma açýlan checkos dir.Kullandýðý teknikler tamamen sirc ile aynýdýr.Hatta kullanýlan kod bile bazý yerlerde aynýdýr.Checkos nin ek bir özelliði ise Telnet ilan kontrolünü kullanmasýdýr.Yukarýda açýklandýðý gibi yararlý olabilir ancak aldatýcý da olabilir.

Su1d de bu tür bir program yazmýþtýr.SS adýný verdiði program  versiyon 3.11 den sonra 12 faklý iþletim sistemini tesbit edebilmektedir.Bunun üzerinde çok fazla duruyorum çünkü nmap kodunda onun kullandýðý að kodlarý bulunmaktadýr.:)

Ve birde queso var.Bu program en yeni ve diðerlerinden çok önde bir program . Sadece yeni testleri tanýtmasýnýn yanýnda iþletim sistemi testlerini kodun dýþýna taþýyan ilk(Bildiðim kadarýyla) program.
Diðer tarayýcý programlar aþaðýdaki gibi kodlar içerirken : 
/* from ss */
if ((flagsfour & TH_RST) && (flagsfour & TH_ACK) && (winfour == 0) && 
   (flagsthree & TH_ACK))
       reportos(argv[2],argv[3],"Livingston Portmaster ComOS");

Queso bunu konfigürasyon dosyasýna taþýyarak daha ölçülü ve yeni eklemeleri konfigürasyon dosyasýna eklenecek bir kaç satýra indirgemiþtir.  

Queso Savage tarafýndan yazýlmýþtýr , Apostols.org un iyi bir üyesi.

Yukarýdaki programlarýn hepsinde yeralan bir problem , bunlarýn bilgi verirken cevaplarýnýn ayrýntýdan yoksun olmasý.
Ben 'Bu sistem bir OpenBSD , FreeBSD yada NetBSD ' açýklamasýndan daha fazlasýný bilmek isterim.Yani tam olarak bunlardan hangisi ve versiyonu ile ilgili bilgiler gibi.'Solaris 2.6' yi sadece'Solaris' e tercih ederim.
Bir sonraki bölümde anlatacaðým gibi , bir çok teknik ile bunu baþarmaya çalýþtým
TESBÝT METODOLOJÝSÝ(Yöntembilim)

Að katmanlarý sorgulamasý ile tesbit yapmak için kullanýlan çok fazla metod var.Temel olarak , iþletim sistemlerine özgü bazý kavramlarý arayacaksýnýz ve bunlarý araþtýrmak için kod yazacaksýnýz.Eðer bu tür farklarý yeteri kadar birleþtirebilirseniz Tesbit aralýðýnýzý daraltabilirsiniz.Örneðin NMAP Solaris 2.4 , Solaris 2.5-2.51 ve Solaris 2.6 yý biribirinden ayýrabilir.

Ýþte bazý teknikler :

FIN testi -- 

Bu teknikte açýk olan porta FIN paketi(Yada ACK veya SYN iþareti(flag) taþýmayan herhangi bir paket) yolluyoruz ve cevap için bekliyoruz. 
RPC 793 te açýklanan starndartlara göre doðru cevap cevap vermemektir.Ancak pek çok uygulama(MS Windows , BSDI , CISCO ,HP/UX  MVS ve IRIX gibi) RESET ile cevap verirler.Þu an kullanýlan pek çok uygulama bu tekniði kullanýr.

 SAHTE(BOGUS) flag testi -- 

Queso bu zekice testi kullanan  görüðüm ilk tarayýcýdýr.Düþüncenin temeli SYN paketinin TCP baþlýðýna tanýmlanmamýþ TCP "flag"(iþaret)(64 yada 128) koymaktýr. 2.0.35 öncesi Linux versiyonlarý yollanan flag setini cevaplarýnda geri yollamaktadýrlar.Bu eksiðe sahip baþka bir iþletim sistemi bulamadým .Ama bazý iþletim sistemleri SYN+SAHTE paketini aldýklarýnda baðlantýyý sýfýrlamaktadýrlar.Buda onlarý tesbit etmede kullanýlabilir.

                        
TCP ISN Modellemesi -- 

Buradaki düþünce TCP uygulamalarý tarafýndan baðlantý isteklerine cevap verirken seçilen ISN(initial Sequence Number) paternlerini bulmaktýr.Bunlar birçok guruba ayrýlabilir.Geleneksel 64 K(Bir çok eski Unix uygulamalarý),rastgele arttýrmalar(Solarisin yeni versiyonlarý ,IRIX , FreeBSD , Digital Unix , Cray ve diðerleri) ,Gerçek "rastgele"(Linux 2.0.*,OpenVMS,yeni AIX vs.)Windows tabanlý sistemler "zamana baðlý" model kullanýrlar.Bu modelde ISN küçük ve sabit zaman aralýðýna göre sürekli arttýrýlýr. Tartýþmasýz , bu metod eski 64 K modellerindeki kadar kolaylýkla kýrýlabilir.Benim favori tekniðim ise "sabit".Yani Her zaman ayný ISN yi veren sistemler.Bunu bazý 3Com hublarda(0x803 kullanýr) ve Apple LaserWriter yazýcýlarda(0xC7001 kullanýr) gördüm.
Bu guruplar ayrýca alt guruplara ayrýlabilir.Sistem sistem deðiþkenlerine göre ISN yi rastgele arttýranlar ,en büyük ortak bölene göre arttýranlar ...ISN ile ilgili özellikle üzerinde durulmasý gereken bir nokta vardýr.ISN önemli güvenlik deliklerine sebep olabilir.Bu konu ile ilgili daha fazla bilgi istiyorsanýz güvenlik uzmaný SDSC den Tsutomu "Shimmy" Shimomura ile baðlantý kurun ve nasýl hacklendiðini sorun.NMAP bu tekniði kullanarak iþletim sistemi tesbiti yapan ilk program.(Bildiðim kadarýyla)

     
Don't Fragment bit -- 
Pek çok iþletim sistemi yolladýklarý bazý paketlere IP "Don't Fragment" biti yerleþtirmeye baþladýlar.Bu performans açýsýndan bir çok artýyý da beraberinde getirir(Rahatsýz edici olabilmesine raðmen--Bu yüzden nmap in bu seçeneði Solaris te çalýþmaz)Her ne olursa olsun bütün iþletim sistemleri bunu yapmaz ve bazýlarý bunu farklý þekillerde yapar.Bu yüzden bilgi edinmek için kullanýlabilir.Bunu da kullanan baþka bir program görmedim daha.

TCP Ýlk Pencere  -- 

Bu teknik basitçe , dönen paketlerin pencere büyüklüðünü kontrol etmeyi gerektirir.Eski tarayýcýlar bir RST paketindeki sýfýr olmayan bir pencereyi "BSD 4.4" türü anlamýnda kullandýlar.Queso yada Nmap gibi yeni tarayýcýlar ise pencere boyutlarý iþletim sistemlerine özgü olduðu için bunlarýn gerçek kayýtlarýný tutarlar.Ýþletim sistemleri sadece pencere ile tesbit edilebileceði için bu testler sistem hakkýnda bir çok bilgi verir.(Örneðin AIX 0x3F25 tarafýndan kullanýlýr sadece).NT 5 için tamamen yeniden yazýlmýþ TCP yýðýnýnda Microsoft 0x402E i kullanýr..Ýlginç taraf OpenBSD ve FreeBSD de bunu kullanýr.

ACK Deðeri -- 

Bunun tamamen standart olduðunu düþünseniz bile , uygulamalar bazen kullanýlan ACK deðerine göre deðiþebilir.Örneðin ,kapalý bir TCP portuna bir FIN|PSH|URG paketi gönderdiðinizi düþünelim.Çoðu uygulama ACK deðerini ISN niz ile deðere eþleyecektir.(Windows yada bazý aptal yazýcýlar bunu ISN+1 olarak eþler)eðer açýk bir TCP portuna SYN|FIN|URG|PSH yollarsanýz windows tutarsýz davranýr.Bazen ISN nizi aynen yollar bazen bir fazlasýný bazende rastgele bir deðer.Microsoft'un böyle bir kodu nasýl yazdýðýný merak ediyorum.


ICMP Hata Mesajý Dindirmesi -- 

Bazý (akýllý) iþletim sistemleri RFC 1812 tavsiyelerine uyarak hata mesajlarýnýn yollanma oranýna limit koyar.Örneðin Linux (net/ipv4/icmp.h dosyasýnda )karþý terminalin "unreachable" mesaj jenerasyonunu  4 saniyede 80 ile sýnýrlar.(eðer aþma var ise 1/4 ceza ile)Bunu test etmenin bir yolu yüksek UDP portlarýna paket kümeleri gönderip "unreachable" mesajlarýný saymaktýr.Bunu kullanan bir uygulama hiç görmedim ve aslýnda UDP taramasý dýþýnda bunu bende Nmap te kullanmadým.Bu test iþletim sistemi tesbitini biraz uzatabilir çünkü paket kümesi yollanýr ve paketlere cevap beklenir.Ayrýca paketlerin aðý etkilemesi baþ aðrýsýna sebep olabilir.


ICMP Mesaj Alýntýsý -- 

RFC lere göre ICMP hata mesajlarý , hataya neden olan  ICMP paketlerinden küçük miktarda veri alýntýsý yapar."Port unreachable" mesajý için hemen hemen bütün uygulamalar geriye gerekli IP baþlýðý + 8 bayt yollar.Ancak Solaris biraz daha fazla Linux isee bundanda fazla yollar.Bu güzellik nmap in açýk bir port olmasa bile linux ve solaris i tanýmasýný saðlar.


ICMP Hata Mesajý Yankýsý Güvenilirliði -- 

Bu fikri Theo De Raadt (lead OpenBSD developer)ýn comp.security.unix deki mailinden aldým.Daha öncede bahsedildiði gibi bilgisayarlar orijinal mesajý "port unreachable" hatasý ile birlikte geri yollamak zorundadýr.Bazý makineler yolladýðýnýz baþlýklarý ilk deðerlendirmede 'scarcth space' gibi algýlarlar ve bu yüzden geri aldýðýnýzda biraz çarpýk görürsünüz.Örneðin , AIX ve BSDI 20 baytlýk IP 'total length' alanýný çok yüksek gönderirler.Bazý BSDI,  FreeBSD, OpenBSD, ULTRIX, ve VAXen yolladýgýnýz IP ID sini deðiþtirirler.Deðiþmiþ TTL sebebiyle checksum eðiþir iken , bazý makineler(AIX ,FreeBSD vs.) tutarsýz yada 0 checksome gönderirler.Ayný þey UDP checksum için de geçerlidir.Nmap 9 ayrý test yaparak bu tür farklarý ayýrýr.

Servis Türü (Types Of Service) -- 

ICMP port unreachable mesajlarý için geriye gönderilen paketlerdeki TOS deðelerine baktým.Hemen hemen bütün uygulamalar bu hata için 0 dðerini kullandý, linuxun 0xC0 kullanmasýna raðmen.Bu standart TOS deðerlerinden birisini göstermiyor.Bunun yerine kullanýlmayan precedence alanýný gösteriyor(AFAIK).Neden bu deðeri verdiðini bilmiyorum ama eðer 0 a deðiþirirlerse eski versiyonlar ile yeni versiyonlarý ayýrabileceðiz ve eski versiyonlarý tesbit edebileceðiz.


Tanecik Algýlamasý(Fragmentation Handling) -- 
Bu Thomas  H. Ptacek (Secure Networks)in favori yöntemidir.Þu an NAI deki windows kullanýcýlarý tarafýndanda kullanýlýyor.Bu farklý uygulamalarýn üstüste gelen IP parçaçýklarýnýn farklý alðýlayýþlarýný kullanan bir tekniktir.Bazýlarý eski kýsýmlarýn üzerine yenileri yazarken bazýlarýnda eski kýsýmlar önceliðe sahiptir.Paketlerin birleþtirilme metodlarýný test etmek için bir çok seçeneðiniz var.P parçacýklarýný yollamada kullanmak üzere portatif bir yol bilmediðim için bu özelliði eklemedim.Daha fazla bilgi için(http://www.secnet.com) adresine gidebilirsiniz.

TCP Seçenekleri -- 

Bunlar bilgi toplama açýsýndan gerçekten altýn madeni gibidir.
Bunlarýn güzellikleri :
1) Genellikle isteðe baðlýdýrlar bu yüzden bütün uygulamalar desteklemez
2) Bir seçenek kümesi göndererek bilgisayarýn bunlarý kullanýp kullanmadýðýný test edebilirsiniz.Hedef genellikle cevabýnda seçenek desteðini içerir.
3) Herþeyi bir kerede test etmek için bütün seçenekleri tek bir pakette kullanabilirsiniz.
Nmap bu seçenekleri hemen hemen her testinde gönderir:

Window Scale=10; NOP; Max Segment Size = 265; Timestamp; End of Ops;

Cevap aldýðýnýzda hangi seçeneklerin döndüðüne dolayýsýyla desteklendiðine bakabilirsiniz.Bazý iþletim sistemleri(Son FreeBSD gibi) yukarýdakilerin tamamýný destekler.Linux 2.0.X gibi bazýlarý ise bir kaçýný destekler.Enson Linux 2.1.X kernelleri de yukarýdakilerin hepsini destekler.Diðer taraftan TCP ISN tahmini saldýrýlarýndan da daha kolay etkilenirler.

Bazý iþletim sistemleri ayný seçenek kümesini destekliyor olsa bile seçeneklerin deðerlerine göre bazen bunlarý ayýrabilirsiniz.Örneðin Linux a küçük bir MSS deðeri yollarsanýz genelde size aynen geri yollar.Diðerleri farklý deðerler yollar.

Ve hatta ayný seçenekler ve ayný deðerler yollanýyor olsa bile seçeneklerin sýrasýna göre(eðer padding aktif ise)tesbit yapabilirsiniz.Örneðin , Solaris 'NNTNWME' :
<no op><no op><timestamp><no op><window scale><echoed MSS>

yollar iken Linux 2.1.122  MENNTNW yollar.Aný seçenekler , ayný deðerler farklý sýralar...

Bunlarýn dýþýnda bir kaç tane daha faydalý test seçenekleri bulunmaktadýr.T/TCP desteði ve seçici onaylar gibi.


Exploit Kronolojisi -- 

Bütün yukarýdaki testlere raðmen nmap Win95 , Win98 ,WinNT arasýndaki ayýrýmý yapamamaktadýr.Çünkü TCP implementasyonlarý arasýnda fark bulunmamaktadýr.Win98 4 sene sonra çýktýðý için yeni TCP seçenekleri eklenmiþtir ve bu sebeple aralarýnda ayýrým yapýlabilir diye düþünebilirsiniz.ama hepsi ayný yapýyý kullanmaktadýr.

Ancak ümidinizi yitirmeyin , eski windows DOS saldýrýlarýyla(Ping of Death, winnuke vs.) iþe baþlayýp daha ileri saldýrýlara (Teardrop , Land ) geçebilirsiniz.Her saldýrýdan sonra ping edip sistemlerinin çöküp çökmeiðine bakabilir ve test seçeneklerinizi daraltabilirsiniz.

Bu özelliði yazmama raðmen Nmap e eklemedim:)))

SYN Flood Direniþi -- 

Bazý iþletim sistemleri çok fazla taklit edilmiþ SYN paketi gönderildiðinde yeni baðlantý kabul etmeyi durdururlar.(Paket takliti kernelinizin baðlantýyý sýfýrlamasýný engeller)Çoðu iþletim sistemi sadece 8 paket tutabilirler.Son linux kernelleri (Diðer iþletim sistemleri arasýnda)SYN cookieleri gibi bazý metodlar ile bunun bir problem olmasýný engeller.Bu nedenle taklit edilmiþ bir kaynaktan açýk bir porta  8 paket göndererek ve baðlantý kurup kuramadýðýnýzý test ederek hedef hakkýnda birþeyler öðrenebilirsiniz.Bu teknik nmap te yok çünkü bazýlarý SYN flood yapmanýz halinde telaþlanabilir.Ýþletim sistemini öðrenmeye çalýþtýðýnýzý söylemek onlarý tatmin etmeyebilir.

NMAP UYGULAMALARI VE SONUÇLARI

Yukarýda bahsettiðim teknikler için bir referans oluþturdum.(Sadece Nmap e eklediklerim dahil).Bunu Nmap e de ekledim.Bu Nmap in hangi portlarýn tesbite açýk olduðunu bilmesini saðlamaktadýr.Bu ayrýca Linux, *BSD,
Solaris 2.51 ve 2.6 ve diðer iþletim sistemleri ile uyumludur.

Nmap in yeni versiyonlarý Tesbit þablonlarý ile doldurulmuþ dosyalarý okur.Bu dosyalar basit bir grammer ile oluþturulabilir..Aþaðýda örnekler verilmiþtir:

FingerPrint  IRIX 6.2 - 6.4 # Thanks to Lamont Granquist
TSeq(Class=i800)
T1(DF=N%W=C000|EF2A%ACK=S++%Flags=AS%Ops=MNWNNT)
T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=)
T3(Resp=Y%DF=N%W=C000|EF2A%ACK=O%Flags=A%Ops=NNT)
T4(DF=N%W=0%ACK=O%Flags=R%Ops=)
T5(DF=N%W=0%ACK=S++%Flags=AR%Ops=)
T6(DF=N%W=0%ACK=O%Flags=R%Ops=)
T7(DF=N%W=0%ACK=S%Flags=AR%Ops=)
PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)

Ýlk satýra bakalým.('>' iþaretini satýrlar için kullanýyorum)
> FingerPrint  IRIX 6.2 - 6.3 # Thanks to Lamont Granquist

Bu satýr basitçe tesbit IRIX 6.2 den 6.3 e kadar olan versiyonlarý içerir.# yorum satýrýdýr..Istenilen herþey yazýlabilir.Lamont Granquist in ip adreslerini yada test ettiði IRIX bilgisayarlarý bana gönderdiðini gösteriyor.

> TSeq(Class=i800)

Bu ISN modellemesi "i800 sýnýfýna" aittir.Yani her yeni sequence number bir öncekinden 800 ün katlarý halinde büyük.

> T1(DF=N%W=C000|EF2A%ACK=S++%Flags=AS%Ops=MNWNNT)

Test T1 olarak adlandýrýlmýþ.Bu teste TCP seçenekleri kümesi SYN paketi ile gönderiliyor.DF=N cevabýn "Don't Fragment" biti içerilmemeli demek.
W=C000|EF2A aldýðýmýz pencere reklamý 0xC000 yada EF2A olmalý demek.
ACK=S++ alacaðýmýz onay bizim ISN miz + 1 olmalý demek.
Flags = AS ACK ve SYN flaglarý cevapta gönderildi demek.
Ops = MNWNNT cevap þu sýrada olmalý demek :

<MSS (not echoed)><NOP><Window scale><NOP><NOP><Timestamp>

> T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=)

Test 2  açýk bir porta ayný seçenekler ile bir NULL gerektirir.
Resp=Y cevap almalýyýz demek.Ops= means Cevap paketinde hiçbir seçenek olmamalý demek .  Eðer '%Ops=' olarak alýrsak yollanan herhangi bir seçenek uymalý demek

> T3(Resp=Y%DF=N%W=400%ACK=S++%Flags=AS%Ops=M)

Test 3 açýk porta yollanan bir SYN|FIN|URG|PSH w/options .

> T4(DF=N%W=0%ACK=O%Flags=R%Ops=)

Bu açýk bir porta yollanan bir ACK paketi.Resp= olmadýðýna dikkat edin.Bu , cevap eksikliði(Að üzerine düþen paketler yada firewall gibi)karþýlaþtýrmayý diðer testler eþleþtikçe diskalifiye etmeyecek demek.Burada bunu kullandýk çünkü cevap eksikliði genellikle aðýn özelliklerinden dolayý olabilecek bir durum , iþletim sistemine özgü deðil.Test 2 ve 3 e Resp tag ý koyduk çünkü iþletim sistemleri bunlarý gerçekten cevapsýz býrakabiliyor.

> T5(DF=N%W=0%ACK=S++%Flags=AR%Ops=)
> T6(DF=N%W=0%ACK=O%Flags=R%Ops=)
> T7(DF=N%W=0%ACK=S%Flags=AR%Ops=)

Bu testler  kapalý portlara sýrasýyla SYN, ACK, ve FIN|PSH|URG göndermek demek.Her zamanki gibi ayný seçenekler belirlenmiþ.

> PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)

Bu satýr bir 'port unreachable' mesajý testidir.
DF=N tagýný artýk biliyor olmalýsýnýz.TOS=0 IP type of service alaný 0 demek.Diðer iki alan Ip baþlýðý mesajýnýn IP total length alaný deðerinin Hex biçimini ve bize geri dönen Ip baþlýðýnda verilen toplam uzunluðu göstermektedir.
RID=E geri aldýðýmýz UDP paketinin orijinal kopyasýnda  RID  deðeri bekleniyor demek(Gönderdiðimizin aynýsý gibi)
RIPCK=E hedef checksum ý deðiþtirmiyor demek.(RIPCK=F olsaydý deðiþtiriyor demek olurdu)
UCK=E UDP checksumý da doðru demek.
Daha sonra 0x134 uzunluðunda UDP paketi  ve DAT=E UDP verileri doðru gönderiliyor demek.Birçok uygulama(Bu da dahil) UDP verisini geri yollamaz.Bu yüzden DAT=E varsayýlan deðerdir.

Nmap in 6. betasý ve sonrasý bu özellikleri içermektedir. http://nmap.org/ adresinden en son versiyonlarý alabilirsiniz.


POPÜLER SÝTELERDEN ÖRNEKLER

Bütün çabalarýmýzýn örneði iþte burada.Bunlarýn çoðu özel bilgilerini gizlemek için bir sürü çaba sarfediyorlar .Ayrýca Yanlýþ iþletim sistemi oyunlarý da iþlemiyor.

Örneklerde kullanýlan komut : nmap -sS -p 80 -O -v <adres>

10/18/98 tarihine göre 

# "Hacker" siteleri yada (bir çoðu) kendini öyle sananlar
http://www.l0pht.com/        => OpenBSD 2.2 - 2.4
http://insecure.org/     => Linux 2.0.31-34
http://www.rhino9.ml.org/    => Windows 95/NT     # No comment :)
http://www.technotronic.com/ => Linux 2.0.31-34
http://www.nmrc.org/         => FreeBSD 2.2.6 - 3.0
http://www.cultdeadcow.com/  => OpenBSD 2.2 - 2.4
http://www.kevinmitnick.com/ => Linux 2.0.31-34  # Free Kevin!
http://www.2600.com/         => FreeBSD 2.2.6 - 3.0 Beta
http://www.antionline.com/   => FreeBSD 2.2.6 - 3.0 Beta
http://www.rootshell.com/    => Linux 2.0.35  # Changed to OpenBSD after
                                      # they got owned.

# Security vendors, consultants, etc.
http://www.repsec.com/       => Linux 2.0.35
http://www.iss.net/          => Linux 2.0.31-34
http://www.checkpoint.com/   => Solaris 2.5 - 2.51
http://www.infowar.com/      => Win95/NT

# Vendor loyalty to their OS
http://www.li.org/           => Linux 2.0.35 # Linux International
http://www.redhat.com/       => Linux 2.0.31-34 # I wonder what distribution :)
http://www.debian.org/       => Linux 2.0.35
http://www.linux.org/        => Linux 2.1.122 - 2.1.126
http://www.sgi.com/          => IRIX 6.2 - 6.4
http://www.netbsd.org/       => NetBSD 1.3X
http://www.openbsd.org/      => Solaris 2.6     # Ahem :)
http://www.freebsd.org/      => FreeBSD 2.2.6-3.0 Beta

# Ivy league
http://www.harvard.edu/      => Solaris 2.6
http://www.yale.edu/         => Solaris 2.5 - 2.51
http://www.caltech.edu/      => SunOS 4.1.2-4.1.4  # Hello! This is the 90's :)   
http://www.stanford.edu/     => Solaris 2.6
http://www.mit.edu/          => Solaris 2.5 - 2.51 # Coincidence that so many good
                                           # schools seem to like Sun?
                                           # Perhaps it is the 40%
                                           # .edu discount :)
http://www.berkeley.edu/     => UNIX OSF1 V 4.0,4.0B,4.0D  
http://www.oxford.edu/       => Linux 2.0.33-34  # Rock on!

# Lamer sites
http://www.aol.com/          => IRIX 6.2 - 6.4  # No wonder they are so insecure :)
http://www.happyhacker.org/  => OpenBSD 2.2-2.4 # Sick of being owned, Carolyn?
                                        # Even the most secure OS is
                                        # useless in the hands of an
                                        # incompetent admin.

# Misc
http://www.lwn.net/          => Linux 2.0.31-34 # This Linux news site rocks!
http://www.slashdot.org/     => Linux 2.1.122 - 2.1.126
http://www.whitehouse.gov/   => IRIX 5.3
sunsite.unc.edu      => Solaris 2.6

Not: Microsoft Windows Nt nin güvenlik özellikleri sebebiyle popülerlik kazandýðýný söylüyordu.Yalnýzca 2 tanesi windows kullanýyor.Windowsu tesbit etmek nmap için çok kolay.

Kontrol etmemiz gereken bir site daha kaldý.Çok gizli Transmeta þirketininki..Bu þirket Microsofttan Paul Allen tarafýndan kuruldu ama Linus Torvaldsý çalýþtýrýyor.Acaba paule uyup Nt mi kullanýyorlar yada isyan baþlatýp linux mu kullanýyorlar :

nmap -sS -F -o transmeta.log -v -O http://www.transmeta.com///24

Bu komut Nmap e bilinen portlarda SYN taramasý yapmasýný , sonuçlarý transmeta.log dosyasýnda tutmasýný , verbose modunda olmasýný , iþletim sistemi testi yapmasýný ve http://www.transmeta.com/ adresinin içinde bulunduðu C Class ý taramasýný söylüyor.

Sonuç :
neon-best.transmeta.com (206.184.214.10) => Linux 2.0.33-34
http://www.transmeta.com/ (206.184.214.11) => Linux 2.0.30
neosilicon.transmeta.com (206.184.214.14) => Linux 2.0.33-34
ssl.transmeta.com (206.184.214.15) => Linux unknown version
linux.kernel.org (206.184.214.34) => Linux 2.0.35
http://www.linuxbase.org/ (206.184.214.35) => Linux 2.0.35 ( possibly the same
                                      machine as above )


TEÞEKKÜRLER

Nmap in çok farklý iþletim sistemlerini test edebilmesinin sebebi Özel Beta ekibinin yeni eklentiler için büyük çabalar harcamalarýdýr.
Jan Koum, van Hauser, Dmess0r, David O'Brien, James
W. Abendschan, Solar Designer, Chris Wilson, Stuart Stock, Mea Culpa,
Lamont Granquist, Dr. Who, Jordan Ritter, Brett Eldridge, ve Pluvius tonlarca IP göndererek bana yardýmcý oldular.

Translated by Egemen Tas (egement@karyde.com.tr)