Saturday, April 23, 2016

Nmap kullanımı

Bu bölümde aktif bilgi toplama evresinde kullanabileceğiniz en güçlü, en faydalı araçlardan biri olan Nmap üzerinde durmaya çalışacağım. Nmap Windows, MacOSX ve Linux üzerine kurulabilen ve bilgi toplama evresinin footprinting ve banner grabbing evresinde oldukça güvenilir sonuçlar verebilen başarılı bir programdır. Nmap terminal üzerinde çalışır ve sağlamış olduğu kolaylıklarla scan işleminizi oldukça farklı ve detaylı hale getirmenizi sağlar.
Nmap hedef hosta çok spesifik paketler yollar ardından hosttan aldığı cevapları derleyerek, kendi bünyesinde değerlendirdikten sonra hangi portun açık, kapalı veya filtreli olduğunu, hangi işletim sisteminin yüklü olduğunu ve yüklü servislerin türünü ve versiyonlarını yüksek oranda doğruluğunu kabul edebileceğimiz bir şekilde bize sunar.

Nmap sürekli geliştirilmeye devam etmektedir ve daha önceden de belirttiğim gibi ücretsiz bir uygulamadır. Teknoloji çok hızlı gelişmekte ve sürekli servislerin versiyonları değişmekte hatta yeni işletim sistemleri kullanılmakta. Bu anlamda yeni hazırlanan işletim sistemlerinin ve servislerin nmap tarafından tanıtılması ve böylece yapılan network tarama işleminde tanımlanamamış sonuçlar alınmaması için karşılaşılan footprinting izlerinin nmap bünyesine eklenmesi gerekir. Bu client tarafından yapılabilecek birşey değildir. Güncellemeler ile bunları edinmiş oluruz. Ancak karşılaştığınız bazı durumlarda Nmap'in geliştirilme safhasına destek olabilirsiniz. Hangi işletim sisteminin veya hangi servisin kurulu olduğunu bildiğiniz bir hedef üzerinde (local network veya internet üzerinden) yapmış olduğunuz bir test sonucunda, Nmap' in bu özellikleri (işletim sistemi türü ve servisi) tanıyamadığını tespit ettiğinizde bu sonuçları Nmap' in resmi websitesi üzerinden paylaşabilirsiniz.Link burada.

Öncelikle şunu belirtmekte yarar var: Yapacağınız tüm scan taramaları hedef host tarafından pek de hoş olarak karşılanmayacak bir durumdur. Bu tıpkı tepeden tırnağa birini elinizle kontrol etmeye benzer. Port taramalarının genel felsefesi önceden belirlenmiş ve çok kullanılan bir takım portlara sinyaller yollama ve sonuçları yorumlama temeline dayanır. Ancak buna bazı tweakler yaparak 65535 portun tamamını taratabilir veya en çok kullanılan ilk 100, 200 veya buna benzer bir sayıda portu taratabilirsiniz. Aynı zamanda belirli bir aralıkta port taraması yapmak da seçenekleriniz arasında olabilir. Bazı nedenlerden dolayı adminler servisleri yüksek rakamlı (nmap top listte olmayan) portlara kurabilirler veya çeşitli güvenlik duvarları kullanabilirler. Bu durumlarda sonuçlar yanıltıcı olabilir. Ancak yapabileceğiniz ufak ayarlamalar ile sonuçları biraz daha solidife etmek mümkün olabilir. Genel olarak hangi portta hangi servisin olabileceğini anlamak adına şu listeye göz atabilirsiniz.

Kali dağıtımı ile yüklü şekilde gelen Nmap programını diğer linux dağıtımlarına da kurmak mümkün. Bunun için apt-get install nmap komutunu çalıştırmanız yeterlidir. Ardından konsola nmap --version yazarak kurmuş olduğunuz Nmap in versiyonunu öğrenebilirsiniz.

Nmap çok kapsamlı bir programdır ve çok ince detayları dahi göz önünde bulundurarak spesifik scan işlemleri yapmanıza olanak sağlar. Bütün komutlar için help bölümde açıklamalar var ancak önemli olanların üzerinde durmaya çalışacağım.

Öğreneceğiniz komutları pratik yapmak için networkunuzda bulunan bir cihaz üzerinden işlemlerinizi yapabilir veya scanme.nmap.org adresini kullanabilirsiniz. Bu adres tamamen yeni kullanıcıların pratik yapmaları için tahsis edilmiştir.

nmap scanme.nmap.org şeklinde hiçbir özellik eklemeksizin scan yaptığınızda nmap top 1000 listesindeki portları tarar. Aynı şekilde nmap 45.33.32.156 şeklinde de aynı aramayı yapabilirsiniz. Scan işlemi bazen uzun sürebilir. Böyle durumlarda enter tuşuna basarak işlemin gidişatı hakkında bilgi alabilirsiniz. Gördüğünüz üzere kaç adet filtreli port bulunduğunu, hangi portta hangi servisin kurulu olduğunu bize raporladı. -v parametresini ekleyerek belirli aralıklar ile prosesin yüzde kaça geldiğini size bildirmesini sağlayabilirsiniz. Eğer bu parametreyi yazmadı iseniz, proses halindeyken v tuşuna basarak onu aktive edebilirsiniz. Verbosity dört kademedir.( -v, -v2, -v3, -v4)




nmap -sV scanme.nmap.org burada ise -sV komutunu kullanarak servis bilgilerini öğrenmeye çalışıyoruz.




-sT parametresi üçlü handshake ile scan yapar. Tcp scan tipi olarak bilinir.
-sS ise SYN stealth scan olarak bilinir. Handhake yoktur. Sadece SYN (Synchronise) pakedi yollar ve verilen cevabı alır. Eğer SYN/ACK pakedi gelirse port açıktır mantığı üzerine kuruludur.
Yapmış olduğunuz scan işlemlerinin raporlarına daha sonra göz atmak isteyebilirsiniz hatta bunları html formatına çevirmek isteyebilirsiniz. Bunun için -oA komutunu kullanmalısınız. Kaydedilecek raporlar terminalde bulunduğunuz dizinin içinde oluşturulacaktır. oA komutunun anlamı output all dur. Yani üç farklı çıktı tipinin herbirinden verir. Bunlar .nmap .gnmap ve .xml dir. (Sadece xml formatı için -oX, gnmap için -oG, nmap çıktısı için -oN) Xml formatının html formatına dönüştürülmesi de mümküntür. Tercih ettiğiniz converter ile bunu yapabilirsiniz veya xsltproc kullanabilirsiniz.




Belirli portlar veya port aralıkları üzerinden scan yapmanın mümkün olduğunu söylemiştik. Bunun birkaç örneği aşağıdaki gibi olabilir.

nmap nmap.scanme.org -p 443 (Sadece 443 nolu port için)
nmap nmap.scanme.org -p 1-2000 (1 ile 2000 arasındaki tüm portlar için)
nmap nmap.scanme.org -p- (65535 adet portun herbiri için işlemi uygular.)

Birden fazla hedefi aynı anda işleme almak için IP adreslerinin arasına boşluk bırakarak yazmanız yeterlidir. Grup taramalarında işlemin dışında olmasını istediğiniz hedefleri teker teker belirtmek de mümkündür. Bunun için --exclude komutu kullanılmalıdır.

nmap 98.138.253.109-162 -T5  --exclude 98.138.157-161 Burada 109 ile 162 nolu IP aralığı arasında bulacağı tüm hostlar için toplu olarak sonuç verecek. Ancak 157 ve 161 ile bitenler liste dışı. Bunu portlar için de kullanabilirsiniz.




Bazı durumlarda hedef sistemlerde çalışan servisler olmasına rağmen, serverın offline olduğu gibi sonuçlar alınabilir. Bu durumda agnostic scan denilen yönteme başvurabilirsiniz. -Pn parametresi ekleyerek daha verimli sonuçlar alınabilinir. Aynı zamanda hız ayarı da yapılabilir.

Sistemin işletim sistemi hakkında bilgi edinmek isterseniz -O parametresini eklemelisiniz. Ancak bulunan sonuçlar yüzde yüz doğru olmayabilir. Çok az da olsa yanılma payı olabilir.

Az önce bir takım hız parametreleri olduğu yazmıştım. Şimdi bunlardan bahsedelim. T0, T1, T2, T3, T4 ve T5 olmak üzere altı kademeli hız ayarımız var. En yavaş olanı T0' dır. Rakam arttıkça scan tamamlanma süresi uzar. Ancak yavaş olan scan daha verimli sonuçlar verebilir. min_rtt_timeout ve max_rtt_timeout süreleri gibi birkaç değişkende farklılıklar vardır. IPS sistemlerine karşı yapılacak scan işlemlerinde tercih edeceğiniz hız parametresinde değişiklik yapmanız gerekebilir. Hatta bunu daha da ileri götürerek IP adresinizi spooflayıp sanki yapılan scan işleminin birden çok kişi tarafından yapıldığı izlenimini verebilirsiniz. Bu işlem decoy olarak da bilinir. Hazırlanan scan komutunun sonunda -D parametresi eklenir. Örnek olarak;



Bir önceki konumuz proxychains idi. Proxychains proxy kullanarak İnternet üzerinden işlem yapmamızı sağladığı hakkında uzunca bahsetmiştik. Nmap scan işlemlerinize Proxychains' i entegre etmeniz mümkün. Bunun için service tor start komutunu çalıştırarak onu aktive edin. Ardından yapacağınız scan işlemi için yazacağınız komutun başına proxychains yazmanız yeterli. proxychains nmap scanme.nmap.org gibi.


Nmap çeşitli script eklentileri ile daha da zengin bir hale getirilebilir. Http-enumeration, traceroute veya snmp sistemlerine karşı kullanılabilecek birçok script mevcut. Biraz daha detaya girmek ve ne tarz scriptler olduğunu keşfetmek için resmi websitesine göz atabilirsiniz.

Saturday, April 9, 2016

Tor ile Proxychains Kurulumu ve Kullanımı

İnternete bağlandığınızda normade router ile ISP dan gelen gerçek IP adresiniz üzerinden işlerinizi yaparsınız. Ve bu IP adresiniz girdiğiniz her websitesinin log bölümünde kaydedilir. Hangi tarihte hangi saatte hangi dakikada hangi sayfayı ziyaret ettiğinizin takibi çok zor değildir. Bazı websitelerinin bir takım ülkelere hizmet vermemesi veya bazı ülkelerdeki yasal kısıtlamalardan ötürü istediğiniz sayfalara ulaşamazsınız. Veya iz bırakmak istemediğiniz durumlar olabilir. Bu gibi durumların çözümü VPN, proxy veya Tor kullanımıdır. Ücretsiz olarak faydalanabileceğiniz VPN servisleri olmasına karşın, bir çoğu (hızlı olanları) ücretlidir. Ek bilgi olarak, VPN internette bulunduğunuz süre boyunca tüm datalarınızın şifreli olarak gidip gelmesini sağlar. Böylelikle size bir anlamda güvenlik de sağlamış olur. Virtual Private Network adından da anlaşılacağı üzere bir çeşit özel ve global bir network ağıdır. Bu bölümde VPN kullanımından ziyade Proxychains ve Tor araçlarının nasıl kurulacağı ve kullanılacağına değineceğim.

Proxychains hem browser arkasından hemde diğer uygulamaların birçoğu ile paralel olarak çalışabilir. Yollayacağınız paketler sizin belirleyeceğiniz bir sistem çerçevesinde proxy yani vekil sunucular üzerinden işleme alınır. Yani bir sayfayı ziyaret edeceğiniz zaman, siz değil proxyniz handshake yapar. Böylece log kısmında sizin değil proxynizin izi kalır. Ücretli ve ücretsiz vekil sunucular bulunmaktadır. Kullanılan proxynin kalitesi desteklediği protokoller, hız, cevap süresi gibi değişkenlere bağlı olduğu gibi vekil sunucusunun hangi ülkede olduğuna da bağlıdır. Ücretsiz olarak bulabileceğiniz ve sürekli güncellenen proxylerin listesi için faydalanabileceğiniz sitelerden biri burasıdır.(http://proxylist.hidemyass.com)

Tor kali dağıtımı içinde yüklü olarak gelmediği için ekstra olarak kurulması gerekir. Ayrıca Tor Kali dağıtımının içinde bulunan default repository listesinde yoktur. O nedenle ilk adım olarak repository eklemesi yapmamız gerekiyor. Terminalimizi açarak başlayalım. Komut satırına leafpad /etc/apt/sources.list yazarak dosyayı açıyoruz. Ardından açılan source repositories bölümünün altına eklemek istediğimiz kaynağı koyabiliriz. Benim eklediğim kaynak bu sizde bunu kullanabilirsiniz.

deb http://deb.torproject.org/torproject.org wheezy main



Bu kaynaktan alacağımız tüm paketlerin GNU Privacy Guard denen bir sistemle güvenli bir şekilde signed yani imzalanmış onaylanmış olarak gelmesi sağlanacak. Şimdi ikinci adım olarak gpg key eklenmesi gerekiyor. Bunun için komut satırına aşağıdaki keyleri giriniz.

gpg --keyserver keys.gnupg.net --recv 886DDD89
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | apt-key add -



Ardından eklemiş olduğumuz kaynaklar üzerinden yüklü paketlerin ve sistemin yenilenmesini sağlamaya ihtiyacımız var. Bunun için kısa bir komut kullanacağız.

apt-get update

Update işlemi tamamlandıktan sonra keyleri yükleyebiliriz.

apt-get install deb.torproject.org-keyring



Son olarak Tor' u yüklemeye başlayabiliriz.

apt-get install tor

Yükleme işlemi başarı ile tamamlandıktan sonra Tor' u açmanız ve çalışıp çalışmadığını kontrol etmeniz gerekmektedir. Komutlar şu şekilde;

service tor start (Tor'u başlatır.)
service tor stop (Tor'u disable hale getirir.)
service tor status (Çalışıp çalışmadığından emin olmak istediğinizde kullanabilirsiniz.)
service tor restart (Tor'u kapatıp tekrar açar.)



Bunların haricinde birkaç tane daha ileri seviyede komutlar vardır. İlgilenenler resmi sayfasını ziyaret edebilir.


Tor default şekilde otomatik olarak başlayan birşey değildir. O nedenle tor zincirinden faydalanmak için ilk kullanımda daima onu aktive etmeniz gerekmektedir.

Bundan sonraki adımda biraz daha detaya girecek ve ne çeşit zincirler (chain) olduğunu göreceğiz.

''leafpad etc/proxychains.conf'' komutu ile konfigüre edeceğimiz dosyayı açabiliriz. Bunu nano veya vi ile de yapabilirsiniz. Her chain tipi için bir açıklama zaten mevcut. Kısaca üzerlerinden geçelim.



dynamic_chain: En kullanışlı ve herkes tarafından tercih edilen chain tipidir. Eklediğiniz proxylerden en az birinin çalışması durumunda dahi işlem gerçekleşir. Çalışmayan proxyler göz ardı edilir.

strict_chain: Eklenen tüm proxylerin çalışması gerekir. Biri dahi çalışmazsa zincir bozulur ve bağlantı sağlanmaz. Pek tavsiye edilmez. Sıraları önemlidir. Gönderilecek paketler eklenen proxyler üzerinden bu sıraya göre işleme tabi tutulurlar.

random_chain: Toplam proxy sayısı önceden belirtilmeli ve o sayıda proxy girilmelidir. Eğer chain length kısmına dört yazıldıysa tam olarak dört tane proxy girişi yapılmalı. Adından da anlaşılacağı gibi hangi pakedi hangi proxy üzerinden yollayacağı bilinmez rastgele olarak birini seçer.

Aktive etmek istediğiniz türün önündeki # işaretini kaldırmanız yeterlidir. Bu arada proxy_dns seçeneğini de aktive etmelisiniz. Zaten default olarak aktiftir. Bu özellik DNS leak (DNS sızması) nın önüne geçer.



Konfigürasyonun en alt kısmında eklenmesi gereken proxy adres bölümü vardır. Default olarak socks4 127.0.0.1:9050 adresinin ekli olduğunu görürsünüz. Onun altına aynı adresi socks5 olarak da ekleyebilirsiniz. Ücretli kullanılan proxy hizmetlerinde kullanıcı adı ve şifre bilgisi vardır. Bunları da faydalanacağınız proxy adresinin sonrasına eklemelisiniz. Proxy adresinin türü (socks4, socks5, http), ip adresi ve port bilgisi örnekte gösterildiği gibi belirtilmelidir. Ardından kaydedip dosyayı kapatabilirsiniz.

Proxychains ile çalışmayan tek uygulama metasploit dir. Onun haricinde proxychains ile kullanmak istediğiniz programın ismini proxychains iceweasel veya proxychains hping3 şeklinde şeklinde yazabilirsiniz.


Iceweasel ile proxychains üzerinden dnsleaktest.com adresine girip, ip adresinizin değiştiğini gözlemleyebilir. Hatta extended test yaparak dns leak durumunu görebilirsiniz. Siz web üzerinde kimliğinizi saklayarak surf yaparken terminal üzerinden birçok şeyin tor tarafından gerçekleştirildiğini gözlemleyebilirsiniz.