2019

2 Kasım 2019 Cumartesi

Owasp-Zap Nedir Ve Owasp-Zap Kullanı



OWASP ZAP


OWASP ZAP (Zed Attack Proxy) aracı, Simon Bennets tarafından yazılmış, web zafiyetlerini otomatik olarak tespit etmeyi sağlayan açık kaynak kodlu ve ücretsiz bir web güvenlik tarayıcısıdır. Kali Linux ve Parrot OS da dağıtımlarında mevcuttur. Windows dağıtımlarında da kullanılabilmektedir.

 

Özellikleri;

-          Proxy sunucu olarak kullanılabilir ve bu sayede ağ üzerinde geçen tüm paketleri değiştirilebilir.

-          Kurulumu ve kullanımı kolaydır.

-          Bir çok dil desteği mevcut.

-          Açık kaynaklı olduğundan dolayı geliştirilebilmektedir.

-          Web ve ajax spider özelliği.

-          Dizin tarama desteği vardır.  

 

 

 

ZAP (Zed Attack Proxy) Kullanımı;

Owasp zap çalıştırılır Windows işletim sistemlerinde kurulduktan sonra çift tıklayarak çalıştırılabilir veya Kali Linux sistemlerde terminal ekranına “owasp-zap” yazılarak çalıştırılır.

ZAP çalıştıktan sonra karşımıza,



  

ZAP bize otomatik ve manuel olmak üzere 2 farklı tarama seçeneği sunmaktadır.

 

Otomatik taramada; url adresini url attack kısmına yazıp attack butonuna tıklamamız yeterli daha sonra kendisi tarama işlemini otomatik bir şekilde gerçekleştirecektir. 

Tarama bittikten sonra bize;

 

Spider barı, sitenin barındığı url’leri tarar ve taradığı url adreslerini gösterir. Bizlere site yapısı hakkında önemli bilgiler verir

Output barı, tarama işlemi sonlandıktan sonra bizlere çıktı verir.

Alerts barı, burada açıkları bize uyarı şeklinde optimize olarak sunar. Var olabilecek açıklıklara birer flag atanır.

high  olan flagler detaylıca incelenmelidir.
Bunların içerisinde girerek atağımızı sonucunu görebilir, zafiyet hakkında bilgi edinebilir ve zafiyetin nasıl kapatılacağı hakkında açıklamaları okuyabiliriz. 

 

 

ZAP Proxy olarak kullanılması

Tools -> options -> Local Proxy altında zap proxyin hangi porttan istek alacağını görüntüleyebiliriz.

Burada prxoy yapılandırmasını yaptıktan sonra girdiğimiz sitelerde ve geçmişi sites history kısmında görebilmekteyiz.

 

 

 

 

 

 

 

 

 

 

 

Kaynaklar:

 

https://owasp.org/www-project-zap/

 


2 Ekim 2019 Çarşamba

NAT ?







NAT (Network Address Translation)

Cihazlar internete çıkmaları için bir IP ye ihtiyaçları vardır. Gün geçtikçe internete çıkan insan sayısı ve cihaz sayısı artmaktadır haliyle IPv4 adresi tükenmek üzeredir (yaklaşık 3.3 milyar) buna çözüm olarak 2 teknoloji geliştirilmiştir. Birincisi NAT diğeri IPv6 dır. Biz bu konumuzda NAT teknolojisinden bahsedeceğiz.
IPv4 adresinin kıt bir adres olduğunu yukarda bahsetmiştik, internet sağlayıcıları da bizlere tek bir gerçek IP adresi (public) vermektedir ama bizler bir evde en az 3-4 tane cihazla internete çıkmaktayız peki bu nasıl mümkün oluyor işte burada NAT teknolojisi devreye girmektedir. NAT teknolojisi sayesinde bir gerçek IP ile birden fazla cihazla dışarı çıkabilmekteyiz. NAT sayesinde evimizde bulunan ve internete bağlanan bütün cihazlar için ayrı birer public ıp adresine ihtiyacımız kalmaz. Evdeki cihazlar modem içinde dahili bulunan wireless Router tarafından oluşturulan özel bir ağa dahili olarak ağdan birer private IP alırlar. Modem içerisinde dahili bulunan wireless routerın bir bacağı servis sağlayıcının internet ağına diğer bacağı da ev içerisinde kurulan özel ağa bağlıdır ve bu iki ağ arasında paketlerin geçişini sağlar.



 

NAT:
NAT bir ağda bulunan bilgisayarın kendi ağı dışında başka bir ağa veya internete çıkarken farklı bir IP adresi kullanabilmesi için geliştirilmiş bir internet protokolüdür. NAT protokolü tek bir IP adresi ile çok sayıda istemciyi internete çıkarabilir. NAT protokolü gerçek bir IP adresi olmayan istemcilere sanal bir IP adresi atayarak LAN içerisinde erişilebilir hale getirir. Dış dünyaya açılırken de sahip olduğu gerçek IP adresini kullanarak dış dünyaya çıkmalarını sağlar NAT protokolü ile dağıtılacak IP adresi sayısında bir sınırlama yoktur.     
IPv4 adresinin yetersizliğinde dolayı ortaya çıkmış bir protokolüdür. İnternete bazı adresler yerel ağlarda kullanılmak amacıyla özel adresler olarak ayrılmıştır bu özel adresler;

10.0.0.0/8 à 10.0.0.0 – 10.255.255.255
172.16.0.0/12 à 172.16.0.0 – 172.31.255.255
192.68.0.016 à 192.168.0.0 – 192.168.255.255 arasındadır
(Bu özel IP ler ile internete çıkmamaktayız bu özel IP ler iç ağlar oluşturulması için IANA tarafından ayrılmıştır. Bunlar Address Allocation for private Internets (özel internetler için adres payı)  diye tanımlanır. Kısacası private addresses (özel) diyoruz internete te kullandıklarımıza da Public (halka açık) address diyoruz.)
Dünya üzerinde birçok şirket ve kurum yerel ağlarında yukarıda verilen bir tablo yardımıyla IP çevirme işlemini gerçekleştirir. Kullanıcının bilgisayarında özel IP adresleri aralığında bir adres bulunur. Buradan yerel ağın içinde olmayan bir adrese gitmek için bir talep gelince, NAT yönlendiricisi daha önceden kullanıcının ayarladığı NAT tablosuna bakarak özel IP adresini genel bir IP adresine çevirir ve bu şekilde dış ağlara ya da internete çıkmış olur. Yönlendiricinin çeviri yaparak değiştirdiği bu IP, kullanıcının İnternetteki bilinen IP’sidir. Aynı şekilde dış ağlardan bu bilinen IP’ye doğru bir istek gelince, yönlendirici tablosuna bakarak bu IP’yi kullanıcın özel IP adresine yönlendirir ve paketi kullanıcının bilgisayarına gönderir.

NAT tablosunda yapılan eşleşmeler ağ yöneticisinin veya kullanıcının tercihine göre 3 farklı şekilde ayarlanabilir.


1-   Sabit NAT (Statik Nat):
Yerel ağda kullanılmakta olan özel IP yi dışarıda kullanılacak olana genel IP ye birebir çevirmedir. Bu nat türünde nat tablosu doğrudan ağ yöneticisi tarafından doldurulur. Yani ağ yöneticisi kullanılacak olan özel IP leri belirler ve bunları sahip olduğu genel IP adresiyle kendisi eşleştirir. Bu şekilde belirlenmiş adresler dışında hiçbir IP adresi dış ağlara bağlanmaz



2-   Dinamik NAT (Dynamic NAT)
Bu NAT türünde ise sahip olunan genel IP adresi bloğu dinamik olarak özel IP adresleriyle eşleştirilir. Ağ yöneticisi bir IP adres havuzu belirler ve NAT yönlendiricisi otomatik olarak IP adreslerini eşleyerek dış ağlara bağlantıyı sağlar. Sabit NAT'tan farkı yönlendiricinin kendisinin eşleştirmeyi yapmasıdır.  Hangi IP ilk önce eşleşirse ilk önce İnternete o çıkar, eğer yeterli sayıda genel IP adresi varsa özel IP’lerin hepsi eşleştirilerek İnternete bağlanabilirler. Bağlantı kesildikten sonra ise NAT tablosundaki kayıtlar bir dahaki bağlantı kurulana kadar silinir.


3-    Aşırı Yükleme NAT (Overloading NAT) – PAT  
Bu yukarıda anlattığım yöntemler yerel ağda aynı cihaz üzerinde istekte bulunan iki farklı istemci aynı sunucuyla iletişim kurduğunda etkisiz kalacaktır. Çünkü NAT Translation Table da source ve destination IP leri aynı olan iki kayıt bularak cevap paketini hangi istemciye yönlendireceğini bilemez. Bu sebeple NAT, transtion table a orijinal source  IP, target IP bilgilerine ek olarak source port bilgisi eklenmektedir. Cevap paketinde source port bilgisi target port olarak yer alacağından paket NAT tarafından kolaylıkla yerel ağda ve ilgili uygulamaya yönlendirilecektir. Bu sebepten dolayı yukarıdaki yöntemler yerine PAT olarak adlandırdığımız bu yöntemi kullanmaktayız.   
PAT'ta genel IP adresi olarak bir tane IP bulunur. Dinamik NAT'ta olduğu gibi yönlendirici NAT tablosunu kendisi oluşturur. Yerel ağda bulunan bir kullanıcıdan dışarıdaki ağlara bağlanmak için bir istek geldiğinde, yönlendirici bu kullanıcının özel IP adresini ve ona verdiği port numarasını NAT tablosuna kaydeder. Sahip olunan genel IP adresini yerel ağda bulunan kullanıcının özel IP adresi ve ona verdiği port numarası ile eşleştirerek İnternete erişmesini sağlar. Farklı bir özel IP’den aynı anda istek geldiği takdirde o IP’ye farklı bir port numarası verilir. PAT kullanılarak bütün yerel ağ daha az sayıda genel IP adresi kullanarak İnternete bağlanmış olur. NAT tablosuna kaydedilen bu IP adresleri ve port numaraları bağlantının sonuna kadar kayıtlı kalır, bağlantı kesilince silinir. Ağ yöneticisi isterse IP adreslerini kendi belirlediği port numaralarına kalıcı olarak atayabilir.

PAT tan Internete Erişimin Gerçekleşmesi:
Dış Ip’si 78.1.1.131 olan ev yerel ağıda bulunan 192.168.231.4 IP’sine sahip PC de www.muhammedaygun.com adresine erişmeye çalışırken IP paketlerinin geçtiği ağ elemanlarını ve paketlerde meydana gelen değişiklikler şöyledir;
Ip paketinin üzerinde source (kaynak) ve destination (hedef) IP adresleri, TCP header’ınnda ise kaynak ve hedef port numarası, hedef port ise http—80 dir.
IP paketinin source adresinin yerel ağdan çıkarken dış IP ile değiştirilmesi gereklidir çünkü www.muhammedaygun.com sunucuları gelen isteği cevaplamak için bu IP yi kullanacaklardır. Burada yerel IP kalırsa paketin geldiği ağ çözümleyecek ve paket cevap verilmeyecektir.
Yerel ağda bulunan NAT cihazı, paketteki source IP yi dış IP ile değiştirerek orijinal source ıp ve target ıp yi kendi tuttuğu NAT Translation Table a kaydeder, böylece pakete sunucudan cevap geldiğinde paketi yerel ağdaki cihazların hangisine yönlendirileceğine karar verilir.







Avantajları
  • Mümkün olduğunca az sayıda genel IP adresi üzerinden dış ağlara bağlanmaktadır. 
  • Daha güvenlikli bağlantı sağlar (Yerel ağdaki kullanıcıların dış ağlara yönlendirici tarafından çevrilmiş IP’lerle bağlanması sonucunda etkili bir güvenlik sistemi sağlanmış olur. Özel IP kullanarak yerel ağda bulunan IP adresleri ve ağın topolojisi dış ağlara karşı gizlenmiş olur.)
·         NAT genel ağa olan bağlantıların esneklik derecesini artırır. Çoklu IP havuzları, yedek IP havuzları ve yük dengeleme havuzları güvenilir bir ağ bağlantısı sağlamak için uygulanabilirler ( Kurmuş olduğumuz yerel ağı, isteklerimiz doğrultusunda yapılandırmaya olanak sağlar. Dilediğimiz kadar istemci ekleyebilir, adresleri istediğimiz gibi değiştirebiliriz)
  • Az miktarda IP adresi kullanılarak birden çok istemcinin internet erişimi sağlayabilmektedir. Bu sayede maddi kazanç sağlanır ve IP adresi kullanımında tasarruf sağlar..
  •  
Dezavantajları
  • IP adresi ve port numaraları değiştirildiği için FTP ve bazı oyun protokolleri çalışmaz. Bazı İnternet protokolleri ve uygulamaları, çalışabilmesi için kaynak ve hedef IP adreslerine ihtiyaç duyar. Örneğin sayısal imza gibi bazı uygulamalar NAT tarafından kaynak IP adresi değiştirildiği için, NAT kullanılan yerel ağlarda çalışmazlar. Bazen bu sorun sabit (static) NAT kullanılarak ortadan kaldırılabilir.   
  • Belirli bir genel IP ile birçok kullanıcının İnternete bağlanmasından dolayı o IP’nin takip edilmesi mümkün değildir. NAT tarafından IP adreslerinin değiştirilmesi sonucunda IP paketlerinin izlenmesi ve kaynak IP adresinin bulunması zorlaşır.
  • Fazladan bir yönlendirici daha kullanıldığı için paketlerde gecikme artabilir. Çünkü fazladan eklenen bir yönlendirici IP paket başlıklarının çevrilmesi ve etiketlenmesi sırasında oluşabilecek gecikmeleri artırır.
  • NAT kullanmak IPsec gibi tünel protokollerinin kullanımını karmaşıklaştırır.
   
  





 

































Kaynaklar:

4 Ağustos 2019 Pazar

Linux Temel Bilgiler



                                   







                                    GNU/Linux
Bir işletim sistemi çekirdeğidir. 1991 yılında linus torvalds tarafından kodlanmıştır.

Linux işletim sistemi mimarisi:



                                                                                     

      

Hardware: bilgisayarımızın donanım parçalarına verilen isimdir. CPU, GPU, bellek … Bu bileşenler işletim sistemimizin fiziksel hattını oluşturur. Bu fiziksel hattın işletim sistemi tarafından dolayısıyla kullanıcı tarafından kullanılabilmesi için bazı ara birimlere ihtiyaç duyar işte driverlar bu işe yaramaktadır.

Kernel: işletim sistemi çekirdeğidir. Hardware ile applicatin programs arasında köprü vazifesi görür. Yani bilgisayarımızın fiziksel parçalarını işletim sistemine tanıtılmasını sağlar dolayısıyla bu bileşenlerin bu bileşenler bizler tarafından kullanılmasında rol oynar.
-       İşletim sistemi üzerinde bellek, süreç, proces yönetimi, giriş-çıkış (input-output) gibi aksiyonların yönetimini sağlar.
-       İşletim sisteminin kalbidir
-       İşletim sistemlerin kendilerineözgü kernelleri vardır.
     
     Shell (kabuk): Shell, kullanıcıların işletim sisteminin kullandığı çeşitli komutların girildiği ve bu komutları işletim sistemine iletildiği bir arayüzdür.
hardware, Shell, kernel, varsa işetim sistemi kullanılabilir.


Kernel gibi çeşitli Shell ara yüzleri versiyonları vardır bunlardan en çok kullanılan bash tır.
Bash ön tanımlı olarak kali linuxta gelmektedir.
-       Terminal Shell değildir Shell i kullanmamız için arada kalan bir ara yüzdür bir tür emilatördür. Terminalde girdiğimiz komutlar Shell üzerinde çalışmaktadır ve ilgili proceslere iletilmektedir.


Linuxta Dizin Yapısı:
İşletim sisteminin bir disk üzerindeki bölümleri takip etmek amacıyla oluşturulmuş yöntemdir.



  



/bin: kullanıcı ve sistem yöneticisine ait bazı çalıştırılabilir (execute) dosyalar bulur.
/etc: içerisinde konfigürasyon dosyaları vardır.
/dev: içerisinde aygıt dosyaları vardır cdroom gibi
/proc: süreç ile ilgili dosyaları barındırır
/var: log mesajlarını bulnmaktadır
/usr: bazı paylaşılan dosyalar bulunur
/home: sistemi o an kullan kullanıcının dosyalarının barındığı yer
/boot: işletim sistemi çalışmaya başladığı anda yüklenen ilk dosyaları temsil eder boot dizini silindiği zaman işletim sistemi çalışmayacaktır.
/lib: işletim sisteminin kütüphanelerinin barıdığı dizin.
/opt: kendi kütüphane dosyaları ile gelen uygulamaların kütüphane dosyalarının saklandığı dizin
/mnt: geçici mount edilmiş (harici takılın bellekler ) dosya sistemlerinin mount edildiği yer
/media: usb, harddisk, taktığımızda buraya bağlanan media dosyalarının olduğu dizin
/srv: servis dosyalarının bulunduğu dizin
/tmp: geçici dosyaların bulunduğu dizin
/ :  kök dizin   

Linux kullanıcı yönetimi:

Linuxta birden fazla kullanıcı aynı anda veya farklı zamanda oturum açabilmektedir buna multiuser özelliği denir.
useradd                             kullanıcı ekler

userdel                            kullanıcı siler
örnek;
useradd –m  –g grupadı –G diğergrupadı –s kullanılanshell kullanıcıadı
                                                  
          oluşturulacak                                       hangi Shell
         kullanıcı için                                  olduğunu bulmak için
         bir home                                        terminale echo $shell yazılır
         dizini oluşturur

                             oluşturulan kullanıcının
                            grubunu belirler

sadece bu komut ile kullanıcı oluşmaz çünkü kullanıcya bir parola belirlememiz gerekir.
passwd parolayıyaz

Kullanıcı İzinleri:
Linuxta 3 çeişt izin vardır bunlar;
1-    Read (r)
2-    Write (w)
3-    Execuite (x)
Bu izinlerin bir sayısal değer karşılığı vardır bunlar;
Read -> 4                               Write ->2          Execute ->1
Toplam sayısal değer ise 7 dir.
         
              chmod komutu ile dosya izinleri kontrol edilir yani izin verilir , verilen izin geri                                                                         x            alınır. Kullanımı; chmod +421 dosyaadı     -> tam izin verilir.

Linuxta kritik dosyalar:


 
/etc/passwd             bu dosya kullanıcı bilgilerini saklar
/etc/shadow            bu dosya kullanıcı parola özetlerini (hash) saklar
/etc/sudoers           bu dosya sudo yetkisinin kime verileceği konfigürasyonun ayarlandığı dosyadır.  

Linux process (süreç) yönetimi:
-       Çalışmakta olan program parçasına süreç denir
-       Her sürecin kendisine ait unique bir ID si vardır (PID)
-       Linuxta aynı anda birden fazla kullanıcı için birden fazla süreç çalışabilir.
-       Çalışan süreçleri görmek için komut; ps
-       Çalışan bir process sonlandırmak için komut; kill kullanımı  kill –g PID yazılır

Linuxta paket yönetimi ;
Paket: linıx işletim sistemi üzerinde programların bizim kullanabilmemiz için derlenmiş hallerine paket denilmektedir windowstan örnek verecek olursak program kurarken next next diye bastığımız sayfalar birer pakettir.
    Çeşitli Linux dağıtımları için farklı paket türleri vardır ve çoğunlukla farklı dağıtımlardaki paketler kendi dağıtımlarına özgüdür bu sebeple, aynı paketler farklı dağıtımlarda genellikle kurulamaz yani debian a özgü olan bir paket ubuntuya kurulamaz
 

Debian işletim sisteminde  dpkg paket yükleyicisi  kullanılır, deb uzantılı paketlerin çalıştırılmasındakullanırlır.

-       debianda deb uzantılı bir paket yüklemek için;
dpkg –i paketadı
-       yüklü bir paketi silmek için
dpkg –r paketadı
-       sistemimizde yüklü olan oaket adlarını görmek için
dpkg –ı


 
   apt, dpkg yükleyicisini yönettiğimiz paket yöneticisidir. APT kullanılarak, spkg ile yapabileceğimiz bir çok işlemi kısaltmaktayız
-       paket yöneticisinin paketleri yüklediği veri tabanını güncellemek için;
apt update
-       sistemde yüklü olan tüm paketleri güncellemek için
apt uprade
-       apt ile paket yüklenmesi;
apt install paketadı
-       apt ile paket kaldırmak için
apt remove paketadı
  
      Depondency:bir paketi kurmamız için gereken diğer paketlere olan bağımlılıktır.
    

      Repository: paket yöneticimizin paketleri yüklemek için kullandığı depolardır. Zaman zaman paketleri, kaynak kodları, derleyerek kurmamız gerekebilir ekstra repositoryler sayesinde standartın dışında çeşitli programlar yüklemekteyiz





Linuxta Sistem İzleme:    
-       kullanılan  diskin durumunu görmek için df veya fdisk komutları kullanılır
-       Ram durumunu görmek için free komutu kullanılır veya meninfo dosyası içerisinde görebiliriz cat/proc/meninfo
-       CPU durumunu gözetlemek için iki farklı komut vardır bunlar; umstat ve top komutlarıdır.

Ağ izleme:
-       Netsat komutu ile ağ üzerindeki bütün işlemleri gösterir parametreleri
-t tcp bağlantılarını gösterir
-u UDP bağlantılarını gösterir
--route route tablosunu gösterir
-s ağ isteklerini gösterir