4 Ekim 2018 Perşembe

Raspberry Pi 3 B+ Üzerine OpenCV 4.0 Kurulumu

Not: Mevcut işletim sistemi sürümü Raspbian Stretch adresinden kurulum aşamaları takip edilerek kurulabilir. Depolama alanı sıkıntısı olmaması için 32GB sd kart kullanılması faydalıdır. Raspberry Pi 3 B+ üzerine OpenCV kurulumu tüm işlemler ile birlikte 4 saat ve üzeri bir zaman gerektirdiği için cihaz ısınmadan kaynaklı kapanabilir. Kurulum süresince bir fan yardımı ile soğutma yapmak gerekli olabilir. Kurulum süresince filtresiz bir internet bağlantısı (Mebin sağladığı internet altyapısında sitelere erişim kısıtlı) olması gereklidir.
/etc/apt/sources.list ve /etc/apt/sources.list.d/raspi.list dosyalarını (sudo olarak) açarak kaynak dosyaları değiştirilebilir.
  • Adım 1: Mevcut Sürümün Güncellemesini denetleyin.
sudo apt-get update
sudo apt-get -y dist-upgrade
Not1: Tüm Diski Kullanma(Expand filesystem)
sudo raspi-config


2018-10-04_11-11-22.png
df -h
Çıktıyı inceleyerek tüm diski kullandığınızdan emin olun.
2018-10-04_11-06-43.png
sudo reboot
Not 2: SSH aktif hale getirme. (uzaktan Erişim)
Kablolu veya Kablosuz ağ bağlantısını yapın.
Masaüstündeki çilek ikonuna tıklayarak:
  1. Tercihlerden Raspberry Pi Configuration tıkla.
  2. Sekmeli menüdenInterfaces seçin.
  3. SSH seçeneğini Enabled yapın.
Diğer alternatif olarak terminalden:
  1. sudo raspi-config komutu yazarak ayarlar penceresini açın.
  2. Interfacing Optionsseçeneğini seçin.
  3.  SSHseçeneğini seçin.
  4. Uyarı mesajına YesSeçin
  5.  Ok seçin ve Finish
systemctl servisini durdurup tekrar başlatın.
sudo systemctl enable ssh
sudo systemctl start ssh
Not 3: screen (terminal oturumunuz düştüğünde işlemlerin devam etmesini sağlamak) ve htop (performans izleme) yardımcı programları kullanılabilir.
sudo apt-get install screen
sudo apt-get install htop
Not 4:  Wolfram ve Libreoffice'i kaldırarak 1GB yer kazanabilirsiniz.
sudo apt-get purge wolfram-engine
sudo apt-get purge libreoffice*
sudo apt-get clean
sudo apt-get autoremove
Adım 2: Bağımlılıkların Yüklenmesi
OpenCV oluşturma işlemini yapılandırmamıza yardımcı olan CMake dahil bazı geliştirici araçları,
sudo apt-get install build-essential cmake pkg-config
Diskten çeşitli video ve resim dosyası formatlarını yüklememize izin veren bazı görüntü I / O paketleri,
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev 
sudo apt-get install libxvidcore-dev libx264-dev
Highgui modülünü derlemek için GTK geliştirme kütüphanesi,
sudo apt-get install libgtk2.0-dev libgtk-3-dev
sudo apt-get install libcanberra-gtk*
OpenCV içindeki birçok işlem (matris işlemleri) birkaç ek bağımlılık,
sudo apt-get install libatlas-base-dev gfortran
Python 2.7 ve Python 3,
sudo apt-get install python2.7-dev 
sudo apt-get install python3-dev
Görüntü I / O paketlerine ihtiyaç duyduğumuz gibi, video I / O paketlerine de ihtiyacımız var. Bu kütüphaneler, çeşitli video dosyası formatlarını diskten okumamızı ve doğrudan video akışlarıyla çalışmamızı sağlar.
Bu paketlerin bazıları zaten kurulu olabilir ama sıkıntı yok varsa da kontrol amaçlı yazalım.
Adım 3: Open CV Kaynak kodlarını indirme ve açma. Farklı sürüm için sürüm numaralarını değiştirmek yeterli.
cd ~
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.0.0-alpha.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.0.0-alpha.zip
unzip opencv.zip
unzip opencv_contrib.zip
mv opencv-4.0.0-alpha opencv
mv opencv_contrib-4.0.0-alpha opencv_contrib
Not: Ayarlar kısmında klasör isimlerine dikkat etmek gerekiyor. Dizinleri yeniden adlandırmayı atlarsanız, CMake yollarını güncellemeyi unutmayın.
Adım 3: pip ve virtualenv'yi kurulumu. Python paketlerini yönetmek için gerekli araçlar.
Python Paket Yöneticisi Kurulumu:
wget -O get-pip.py https://bootstrap.pypa.io/get-pip.py 
sudo python get-pip.py
sudo python3 get-pip.py
Kaynak: https://pip.pypa.io/en/stable/installing/
virtualenv sanal ortamların kurulumu. Bu paketleri yüklemek bir zorunlu değildir.  OpenCV bunlar olmadan da çalışır.  Ama sanal ortamın, her biri için ayrı , bağımsız Python ortamları oluşturarak , farklı projelerin gerektirdiği bağımlılıkları ayrı yerlerde tutmak için kullanılan özel bir araçtır. Örneğin python2 için ayrı bir sanal ortam, python3 için ayrı bir sanal ortam oluşturup, bağımlılıkları birbirinden bağımsız çalışabilir.
Daha geniş Bilgi için Tıklayın.
sudo pip install virtualenv virtualenvwrapper
sudo rm -rf ~/get-pip.py ~/.cache/pip
bu işlemden sonra
sudo nano ~/.profile 
dosyasına aşağıdaki koyu renk satırları dosya sonuna ekleyiniz.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

# virtualenv and virtualenvwrapper settings
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
ve değişiklikleri aktif hale getirin.
2. yol olarak şu sekildede eklenebilir:
echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.profile
echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile
echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.profile
echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.profile
source ~/.profile
Python için Sanal Ortamın Oluşturulması.
mkvirtualenv cv - p python3
Python2 kullanmak isterseniz
mkvirtualenv cv2 - p python2
virtualenvwoker ile çalışmak için temel komutlar:
mkvirtualenv cv # create virtualenv
workon cv # activate/switch to a virtualenv
deactivate cv # deactivate virtualenv
Artık "cv" adlı bir virtualenv'i etkinleştirebiliriz: (Python3 sanal ortamında kurulum yaptım.)
pi@raspberrypi:~ $ workon cv
(cv) pi@raspberrypi:~ $ 
şeklinde görünmelidir.
Adım 4: Sayısal işlem için kullanılan Python paketi numpy ve scipy Yükleme
sudo pip install numpy scipy
veya
sudo pip install numpy

Bu Biraz zaman alabilir bekleyin.
Adım 4: Sonunda OpenCV Kurulumu ve Derleme. Burası 2 saat sürüyor. Lütfen sabırlı olun. Cihaz ısınıp kapanabilir. Bir fan yardımı ile soğutabilirsiniz.
cv sanal ortamda olduğunuzu bir kez daha kontrol edin (sizden önceki cv ) metnini görmelisiniz )  eğer değilseniz,
workon cv
cd ~/opencv/
mkdir build
cd build

xcmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
    -D ENABLE_NEON=ON \
    -D ENABLE_VFPV3=ON \
    -D BUILD_TESTS=OFF \
    -D INSTALL_PYTHON_EXAMPLES=OFF \
    -D BUILD_EXAMPLES=OFF ..
OpenCV 3'ü Python 2.7 veya Python 3.0 için derliyorsanız , Python 2 bölümünüzün, cmake sırasında akan textlerde,  Tercüman ,  Kütüphane , numpy ve paket yolunun geçerli yolları içerdiğinden emin olun :
py27_cv-768x473.png
.....
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/opencv/opencv/build
şeklinde bitti ise ve yollarda bir sıkıntı yoksa muhtemelen bu aşama sorunsuz tamamlanmıştır.
Artık derleme(make)zamanı. Ama önce swap(takas) alanını 100 MB olan değeri 1024 MB yapalım. Derleme işleminde sıkıntı çıkmasın. İşlem sonunda tekrar 100 yapın diye öneriyorlar.  Flash belleğin sınırlı sayıda yazıcısı  olduğundan SD karta zarar verir.
nano /etc/dphys-swapfile
açılan dosyada  CONF_SWAPSIZE satırını bulun ve aşağıdaki gibi değiştirin.
# set size to absolute value, leaving empty (default) then uses computed value
#   you most likely don't want this, unless you have an special disk situation
# CONF_SWAPSIZE=100
CONF_SWAPSIZE=1024
ctrl+x ile kaydedin ve çıkın. Sonra takas servisini tekrar çalıştıralım.
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile startveya
sudo /etc/init.d/dphys-swapfile restart
 
OpenCV'yi derleme:
make -j4
//make clean
//make
Derlemede işlemci sayısını azaltarak süreyi uzatır. Raspberry işlemcilerinin yorulmasını önleyebilirsiniz.(make -j3, make -j2, make -j1)
Derleme işlemi tamamlandığında %100 olmalı. Eğer sorun çıkarsa sadece make komutunu kullanın ve işinize bakın çünkü çok çok uzun sürüyor.
sudo make install
sudo ldconfig
sudo apt-get update
komutlarını çalıştırıp sistemi yeniden başlatalım.
swap alanını tekrar eski haline getirelim.
nano /etc/dphys-swapfile
açılan dosyada  CONF_SWAPSIZE satırını bulun ve aşağıdaki gibi değiştirin.
# set size to absolute value, leaving empty (default) then uses computed value
#   you most likely don't want this, unless you have an special disk situation
CONF_SWAPSIZE=100
# CONF_SWAPSIZE=1024
ctrl+x ile kaydedin ve çıkın. Sonra takas servisini tekrar çalıştıralım.


sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile startveya
sudo /etc/init.d/dphys-swapfile restart
Adım 5:OpenCV 4'ü Python 3 sanal ortamınıza bağlayın. 
 OpenCV sembolik bir bağlantı oluşturalım
cd ~/.virtualenvs/cv/lib/python3.5/site-packages/
ln -s /usr/local/lib/python3.5/site-packages/cv2.cpython-35m-x86_64-linux-gnu.so cv2.so
cd ~
Adım 5: Test
source ~/.profile
workon cv
python
>>> import cv2
>>> cv2.__version__
'4.0.0'
>>> exit()
2018-10-04_11-38-33.png
Güle Güle Kullanın.
sudo reboot
en derli toplu anlatım kaynağı: https://www.pyimagesearch.com/2018/09/26/install-opencv-4-on-your-raspberry-pi/






 
 
 







 

19 Temmuz 2018 Perşembe

Kali ile Pentest Araçları: nikto

Web güvenlik açığı tarayıcısı olup, web sunucularını güvenlik açıkları ve bilinen diğer sorunlar için tarayan bir güvenlik testi aracı olarak da adlandırılabilir. Perl programlama dilinde yazılmış olup Kali Linux dağıtımlarında standart olarak kurulu gelen bir test aracıdır.
Nikto belirlediğimiz hedefe internet ortamında keşfedilmiş web güvenliği açıkları ile sistemi tarar, web güvenliği açıklarınızda tarama yaparken web sunucusunu da taramaya dahil eder. Nikto Hedef Site'de SQL , XSS  vb açıkları tarar.
Program kendi Database’inde bulundurduğu veritabanı tipleri, Hedefin SSL desteği olup olmadığını, Server’ı, Kullanılan İşletim Sistemini ve daha bir çok açığı ve sistem zayıflıklarını taramaktadır. Programın Güncelleme sistemi vardır. Siz Sistemi Tararken Sistem Sizi Loglar fakat IDS’lerle Server’a fake(sahte) datalar göndererek bu tip engelleri aşabilirsiniz.
not: Eğitim içeriğinde oluşabilecek tüm sorumluluğu kullanan kişiye aittir. Bu yazılarda anlatılanlar sadece penetrasyon testleri içindir.
Programı indirmek için Tıklayın1. Tıklayın2
Bilgi İçin  tıklayın.
Programı linux sistemler için indirip kurmak için:
  1. yöntem:Bu yöntem kullanıldığında nikto komutu ilgili dizin (nikto-2.1.5) içinde kullanılabilir
  • wget https://cirt.net/nikto/nikto-2.1.5.tar.gz
  • tar zxvf nikto-2.1.5.tar.gz
  • cd nikto-2.1.5
  • perl nikto.pl
2. yöntem: Bu yöntem kullanıldığında nikto komutu her yerde kullanılabilir.
  • sudo apt-get install nikto
not: Bu kurulumlar Kali Linux dağıtımlarında kurulu olarak gelmektedir.
  1. Basit Tarama:
  • perl nikto.pl -h <hedefsite/ip>
  • nikto -h <hedefsite/ip>
2. Ayrıntılı tarama (test türü belirleme)
  • nikto -Tuning x 6 <hedefsite/ip>
2018-07-06_01-28-02.png
0 - Dosya Yükleme
1 - Günlüklerde İlginç Dosya / Görülen
2 - Yanlış Yapılandırma / Varsayılan Dosya
3 - Bilgilendirme
4 - Enjeksiyon (XSS / Script / HTML)
5 - Uzaktan Dosya Erişimi
6 - Hizmet reddi
7 - Uzak Dosya Erişimi
8 - Komut Yürütme
9 - SQL Enjeksiyonu
a - Kimlik Doğrulama Baypas
b - Yazılım Tanımlaması
c - Uzak Kaynak Ekleme
x - Ters Tuning Seçenekleri
  • nikton -h <hedefsite/ip> -o dosyaadi.uzanti
2018-07-06_01-35-27.png
csv - virgülle ayrılmış liste
htm - HTML raporu
msf - Metasploit log dosyası
txt - metin raporu
xml - XML raporu
nbe : Nessus NBE formatında kaydeder.
3. Anonim Tarama: Web de güvenlik açıkları için tararken anonim(görünmez) olmak istiyorsanız, IP adresinizi ve diğer bilgilerin gizlediği bir proxy sunucusu kullanabilirsiniz. Nikto için yapılandırma dosyası aşağıda ki gibi olmalıdır.
nano /etc/nikto/config.txt
içeriğini aşağıda ki gibi değiştirin:
PROXYHOST=208.67.222.222
PROXYPORT=8080
Proxyhost & proxyport değerleri ücretsiz proxy sitelerinden alınabilir.
nikto -useproxy -h <hedefsite/ip>
Örnek Kullanımlar:
nikto -H :ayrıntılı yardım listesi.
nikto -h 192.168.0.1 -p 443nikto -h https://192.168.0.1:443/: 443 numaralı port taraması
nikto -h 192.168.0.1 -p 443 -ssl: SSL sunucusu olduğundan eminseniz testi hızlandırma
nikto -h 192.168.0.1 -mutate 3 -mutate-options kullanıcı_listesi.txt, nikto -h 192.168.0.1 -mutate 1234:2018-07-06_01-49-55.png
Nikto'nun testleri birleştirmesine veya değerleri tahmin etmeye çalışmasına neden olur. Bu teknikler, hedefe karşı çok miktarda test başlatılmasına neden olabilir. Çoklu kullanılabilir.
-mutate
1 - Tüm dosyaları tüm kök dizinleriyle sınama
2 -  Şifrelerin bulunduğu dosyaların isimlerini tahmin etmeye çalışır.
3 - Apache ile kullanıcı isimlerini tahmin eder. (/ ~ kullanıcı tipi istekleri)
4 - Kullanıcı isimlerini tahmin eder. cgiwrap (/ cgi-bin / cgiwrap / ~ kullanıcı tipi istekleri)
5 -  Subdomain isimlerine brute-force yapıp olup olmadıklarına bakar.
6 - Verilen sözlük dosyasından dizin isimlerini tahmin etme
-mutate-options: Sözlük dosyası gibi mutasyonlar için ek bilgi sağlar.
nikto -h 192.168.0.1 -p 80,88,443: Çoklu port testi.(birden fazla bağlantı noktası tarama)
nikto.pl -h 192.168.0.1 -display 1:2018-07-06_02-02-33.png
1 – Show Redirects : Eğer site üzerinde yönlendirme varsa, yönlendirmenin olduğu adresi sonuca bastırır.
2 – Show Cookies Received : Siteden cookie çalması durumunda çalınan cookieleri sonuca bastırır.
3 – Show all 200/OK messages : Brute-force yaptığı sayfalarda 200 dönen yani dizinde ulaşılabilen bir sayfa varsa bu sayfaları arama sonucunda gösteren seçenektir.
4 – Shows URLs which require authentication : Kullanıcıdan kullanıcı adı/şifre istenen URL adresleri gösterir.
D – Debug output : Çıktıyı debug ederek gösterir.
E – Display HTTP Errors : Arama sonucunda oluşacak HTTP hatalarını sonuca bastırır.
P – Print progress to STDOUT : İşlemi stdout’a yazdırır.
S – Scrub outputs of IP’s and Hostnames : Site üzerindeki ip ve host adreslerini ayıklayarak çıktıyı gösterir.
nikto -h 192.168.0.1 -evasion 1 , nikto -h 192.168.0.1 -e 168:(1,6,8 numaralı evasion’lar aktif)
2018-07-06_02-11-19.png
1 – Random URI Encoding(non UTF-8) : UTF8 yerine rastgele char kullanarak WAF’lardan kaçışı sağlar.
2 – Directory self-reference(/./) : Dizini yaptığı taramada kendini /./ şeklinde hedef göstererek WAF’lardan kaçışı sağlar.
3 –  Premature URL Ending : Başlangıç URL sonu.
4 – Prepend long random string : Yolladığı requeste çok karakterli rastgele string oluşturarak WAF’lardan kaçışı sağlar.
5 – Fake Parameter : Kaçış için sahte bir parametre kullanır.
6 – TAB as a request spacer : Requestte kullanılacak olan boşluk karakteri yerine TAB karakteri kullanır.
7 – Change the case of URL : URL durumunu değiştir.
A – Use a carriage return (0x0d) as a request spacer : Kaçış için 0x0d karakteri kullanır.
B – Use a binary value(0x0b) as a request spacer : Kaçış için 0x0b karakteri kullanır.
nikto -h 192.168.0.1 -ssl -e 1234 -m 12:SSL desteği olup olmadığını, Evasion 1234 ve Mutate 12 tekniklerini kullanarak tarama yapar.
nikto -h 192.168.0.1 -C all, nikto -h 192.168.0.1 -C none, nikto -h 192.168.0.1 -C /taranacakklasor :Klasörleri tarar.
nikto -h www.hedef.com -f: Sadece HTTP(s) tarafından kullanılan portları tarar. Eğer full tarama yapacaksanız önerilmez.
Kısayollar
(Büyük / küçük harfe duyarlı)
  • SPACE - Geçerli tarama durumunu bildir
  • v - Ayrıntılı modu aç / kapat
  • d - Hata ayıklama modunu açma / kapatma
  • e - Hata bildirimini açma / kapatma
  • p - İlerleme raporlamasını aç / kapat
  • r - Yönlendirme ekranını aç / kapat
  • c - Çerez ekranını aç / kapat
  • o - Tamam ekranını aç / kapat
  • a - Auth göstergesini açma / kapatma
  • q - Çık
  • N - Sonraki ev sahibi
  • P - Duraklat
Diğer Parametreler
– proxy : belirtilen proxy’yi kullanır.
-maxtime : host başına belirtilen maksimum test zamanını değiştirir.
-until : belirtilen süreye kadar taramaya devam eder. (Tarama biterse daha erken de bitebilir)
-nossl : SSL ile iletişime girmeden tarar.
-ssl : Zorunlu bir şekilde SSL kullanarak tarar.
-no404 : 404 Not Found dönecek sayfaları tahmin etmeyi önler.
-id : hedefimizin authentication istediğini biliyorsak ve elimizde authentication yapacak kullanıcı_adı ve şifre varsa -id syra:canyoupwnme(kullanıcı_adı:şifre) şeklinde giriş yapmamız için kullanılan parametredir.
-help : Yardım komutu.
-cookie: Bulunan Cookie’leri (çerezleri) ekrana yansıtır
-nolookup: Nolookup anlamında, tarama öncesi lookup yapmaz (Server’a whois çekmeden tarama yapar. Yani IP almaz, Name Server’ları kontrol etmez vs.
-VersionKısa komutu -V’dir Nikto’nun içinde olan; kullanılan database, plugin ve dosyaların versiyonlarını listeler.
-timeout:Kısa komutu -t’dir. Türkçesi; zaman aşımıdır. Eğer tarayacağınız serverdan sizin belirleyeceğiniz sürede cevap gelmezse zaman aşımına uğrar. Varsayılan 2 saniyedir.

-useproxy: Serverı proxy kullanarak tarar. Proxy’leri Nikto’nun bulunduğu dizindeki nikto.conf dosyasını düzenleyerek belirleyebilirsiniz.

-vhost: Gerçek olan (asıl) Host’u tarar. Eğer site üzerinden tarama yapıyorsanız yani bir örnek verecek olursak; 1.2.3.4 IP’li server’da barınan www.hedef.com olsun. Eğer www.hedef.com’da tarama yaptırıyorsak bunun Serverı yani 1.2.3.4 IP’de taramasını yapar.

-404: 404 hata sayfalarına ne tür işlem yapılacağını belirleyebilirsiniz.
Örnek;
perl nikto.pl -h 192.168.0.1 -404+deger

-config: Belirleyeceğiniz ayar dosyasını kullanır.

-dbcheck: Nikto’da bulunan scan_database.db ve user_scan_database.db’lerini kullanarak yazım hatalarını (syntax errors) veritabanı ve diğer önemli dosyaları kontrol eder.

18 Temmuz 2018 Çarşamba

Kali ile Pentest Araçları: macof

macof, anahtarın belleğini tüketen rastgele MAC adresleri üretir. Dakikada bir anahtar üzerinde 155.000 MAC girişi üretme kapasitesine sahiptir. Hedef ağı MAC adresleri ile doldurur. Bu durumda MAC tabloları dolan anahtarlar, bir hub gibi davranmaya başlar.
Her ethernet anahtarın(Switch) belli sayıda MAC adresini muhafaza ettiği bir MAC tablosu bulunur. MAC Tablosu hangi MAC adresine hangi porttan çıkış yapılacağını belirler. Eğer switch'e bu tabloda bulunmayan bir MAC adresini hedef alan bir paket gelirse, switch bu paketi bütün portlarından gönderir. Bu olaya Bilinmeyen Unicast Taşması (Unknown Unicast Flooding) denir. MAC Flood saldırısı, bu durumu ortaya çıkarıp switch'in saldırganın istediği şekilde davranmasını sağlamaya çalışır. Bu durumun ortaya çıkması için saldırgan switch'in MAC tablosunu doldurmak için, kendi MAC adresini değiştirerek ard arda paketler gönderir. Bilinmeyen Unicast Taşması oluştuğunda, tabloda olmayan MAC adreslerini hedef alan paketler bütün portlardan yayınlanacağı için hedef bilgisayarın trafiği elde edilebilir, bu sırada hedef bilgisayar ağdaki diğer bilgisayarlar ile haberleşmeye devam eder.
Kısaca
Macof rastgele mac adresleriyle birlikte switche yapılan saldırıdır.
Bu mac adresleriyle switch in MAC tablosu dolar ve yeni mac adresleri kaydedilemez.
Bunun sonucunda switch hub gibi davranmaya başlar ve bütün paketleri bütün portlara  göndermeye başlar.
Bizde geçen bütün trafiği izleyebiliriz.
Kali Linux standart kurulu bir araçtır. Terminal ekranından çalışır.
Kullanımı:
macof [-s src] [-d dst] [-e tha] [-x sport] [-y dport] [-i interface] [-n times]
Paremetreleri:
  • -i interface arayüz seçimi.
  • -s src Kaynak IP adresi.
  • -d dst Hedef IP adresi.
  • -e tha Hedef Donanım adresi.
  • -x sport TCP kaynak portu.
  • -y dport TCP hedef bağlantı portu.
  • -n times Gönderilecek paket sayısı.
örnek kullanımı:
macof -h: yardım
macof -i eth0 -n 10 :standart kullanım eth0 arabiriminde 10 paket oluşturma
macof -i eth0 -n 10 -d 192.168.220.140 : hedef ip belirterek
while  [ 1 ]  ; do macof -d 192.168.1.1 -n 100000 ; sleep 50 ; done :MAC sel saldırısı
etherape aracı çalıştırılarak izlenebilir.

Kali ile Pentest Araçları: netdiscover

Netdiscover aracı yerel ağda router veya switch gibi davranan basit bir araçtır. Yerel ağda gönderdiği ARP paketleri ile MAC adreslerine karşılık gelen IP adreslerini bulmaya çalışır.Bu araç sayesinde yerel ağda MITM veya başka bir atak gerçekleştirmeden önce hedef sistemlerin IP adresleri kolayca elde edilebilir.

Netdiscover aracını kullanmadan önce Wireshark ile normal bir yerel ağ trafiği incelendiğinde ve  protokol filtrelemesi yaparak sadece ARP paketlerini görebiliriz. Yoğun bir trafiğin olduğu ortamlarda  ise wireshark ile trafik analizi yapmak çok zahmetli ve vakit alıcı olacaktır. Bunun için yerel ağdaki herkesin IP ve MAC adresini öğrenmek için Netdiscover aracını kullanmanız size zaman kazandıracaktır

Kali Linux işletim sisteminde Netdiscover aracını çalıştırmak için Kali Linux Menu –> Information Gathering –> Live Host Identification –>Netdiscover seçilerek veya terminal ekranından  netdiscover  yazılarak çağırılabilir bir araçtır. Help menüsünden parametrelerine bakılabilir.
diğer linux sürümleri için  sudo apt-get install -y netdiscover kurulabilir.

Parametreleri:

netdiscover [-i device] [-r range | -p] [-s time] [-n node] [-c count] [-f] [-S]
-i device: Ağ aygıtı
-r range: Verilen aralıkta otomatik tarama. 192.168.6.0/24,/16,/8
-p passive mode: Sniff haricinde bir şey gönderme
-s time: Her arp isteği arasındaki bekleme süresi (milisaniye)
-c count: Her arp isteğinin gönderilme sayısı (paket kaybı olan ağlar için)
-n node:  Tarama için kullanılan son sekizli IP(from 2 to 253)
-f hızlı moda tarama


Diğer komutlar için “netdiscover  -h” komutu kullanılabilir.

 -r parametresi ile taranmak istenen alt ağı, -i parametresi ile de dinlenecek olan ağ arayüzünü vermeniz yeterlidir. 

örnek:

netdiscover -i eth0 -r 192.168.0.0/24

netdiscover -i eth0 



https://github.com/alexxy/netdiscover

cmd Network Komutları: Nbtstat

TCP/IP (NetBT) iletişim kuralı istatistikleri üzerinden NetBIOS'u, hem yerel, hem uzaktaki bilgisayarların NetBIOS ad tablolarını ve NetBIOS ad önbelleğini görüntüler. Nbtstat, NetBIOS ad önbelleğinin ve Windows Internet Ad Hizmeti'ne (WINS) kayıtlı adların yenilenmesine olanak verir. Komut satırına parametresiz olarak "nbtstat" veya "nbtstat /?" yazılırsa komutun yardım ekranı gelir.
nbtstat[-a UzakAd] [-A IPAdresi] [-c ] [-n ] [-r ] [-R ] [-RR ] [-s ] [-S ] [ZamanAralığı]
nbtstat -a UzaktakiAd: Makinanın IP adresi, NetBIOS İsim Tablosu ve o IP adresini kullanan MAC adresi görünür. Makinada birden fazla ağ adaptörü varsa hepsinin isim tablosu ekrana gelebilir. IP çakışmalarında nbtstat komutu kullanılarak çakışma yaşayan IP'yi hangi MAC adresinin kullandığı öğrenilebilir. Tekrar kullanıcının MAC adresi dönüyorsa çakışma yaşanmıyor demektir.
Yönetici haklarına sahip olmayan bir kullanıcının (power users dahil) nbtstat komutu için yeterli izni yoktur. Komut çalıştırılmak istendiğinde şu hata mesajı alınır: "Failed to access NetBT Driver - NetBT may not be loaded."
Herhangi bir sebeple (bilgilerine bakılan uzak makinede SP2 yüklü olması gibi) sorgudan cevap alınamıyorsa aşağıdaki şekilde görüldüğü gibi "Ana bilgisayar bulunamadı" (Host not found) mesajı gelir.
nbtstat -A IPAdresi : Uzaktaki bilgisayarın IP adresiyle belirtilen (noktalı ondalık cinsinden) NetBIOS ad tablosunu görüntüler.
nbtstat -c : NETBIOS ad önbelleğinin içeriğini, NetBIOS adları tablosunu ve onların çözümlenmiş IP adreslerini görüntüler.
nbtstat -n : Yerel bilgisayarın NetBIOS ad tablosunu görüntüler. Kaydedildi (Registered) durumu, adın yayın veya WINS sunucusu aracılığıyla kayıtlı olduğunu gösterir..
nbtstat -r : NetBIOS ad çözümleme istatistiklerini görüntüler. WINS kullanmak için yapılandırılmış Windows XP veya Windows Server 2003 işletim sistemi çalıştıran bir bilgisayarda, bu parametre çözümlenmiş ve yayın veya WINS aracılığıyla kaydedilmiş ad sayısını döndürür.
nbtstat -R : NetBIOS ad önbelleğinin içeriğini temizler ve Lmhosts dosyasından #PRE etiketli girişleri yeniden yükler.
nbtstat -RR : WINS sunucularıyla kayıtlı yerel bilgisayarın NetBIOS adlarını bırakır ve sonra yeniler.
nbtstat -s: Hedef IP adresini ada dönüştürmeyi deneyerek, NetBIOS istemci ve sunucu oturumlarını görüntüler.
nbtstat -S Aralık: Uzaktaki bilgisayarları yalnızca IP adreslerine göre listeleyerek NetBIOS istemci ve sunucu oturumlarını görüntüler.
Aralık: Her görüntüden sonra Aralık alanında belirtilen saniye süresince duraklayarak, seçili istatistikleri yeniden görüntüler. İstatistikleri yeniden görüntülemek için CTRL+C'ye basın. Bu parametre girilmezse, nbtstat geçerli yapılandırma bilgisini yalnızca bir kez yazdırır. Örneğin: NetBIOS oturum istatistiklerini IP adresine göre her iki saniyede bir görüntülemek için "nbtstat -S 2" yazılır.
Açıklamalar:
Nbtstat komut satırı parametreleri büyük/küçük harf duyarlıdır.
Aşağıdaki tablo, nbtstat tarafından oluşturulan sütun başlıklarını açıklamaktadır.
Input: Alınan bayt sayısı.
Output: Gönderilen bayt sayısı.
In/Out: Bağlantının bilgisayardan (giden) veya başka bir bilgisayardan yerel bilgisayara doğru (gelen) olduğu belirtilir.
Life(Yaşam): Bir ad tablosu önbellek girişinin temizlenmeden önce kalacağı süre.
Name(Ad): Bağlantıyla ilişkili yerel NetBIOS adı.
Remote Host(Ana Bil. Adresi): Uzaktaki bilgisayarla ilişkilendirilmiş ad veya IP adresi.
<20>: Onaltılığa dönüştürülmüş NetBIOS adının son baytı. Her NetBIOS adı 16 karakter uzunluğundadır. Aynı ad bilgisayarda yalnızca son baytla ayırt edilecek şekilde bir çok kez bulunabileceğinden, son baytın özel bir önemi vardır. Örneğin: <20> ASCII metinde bir boşluktur.
Type(Tür): Ad türü. Bir ad, ayrı bir ad veya bir grup adı olabilir.
Status: Uzaktaki bilgisayarda NetBIOS hizmetinin çalışıp (kayıtlı) çalışmadığını veya yinelenen bir bilgisayar adının aynı hizmete kayıtlı olduğunu (çakışma) belirtir.
State: NetBIOS bağlantılarının durumu.
Aşağıdaki tablo olası NetBIOS bağlantı durumlarını açıklar:
Connected: Oturum açıldı.
Associated: Bir bağlantı bitiş noktası oluşturuldu ve bir IP adresi ile ilişkilendirildi.
Listening: Bitiş noktası gelen bağlantılar için kullanılabilir.
Idle: Bu bitiş noktası açıldı ancak bağlantıları alamıyor.
Connecting: Oturum bağlantı aşamasındadır ve hedefin ad-IP adresi eşleştirmesi çözülmektedir.
Accepting: Bir gelen oturum halen kabul ediliyor ve kısa zamanda bağlanacak.
Reconnecting: Oturum (ilk denemede bağlanmakta başarısız olunmuşsa) yeniden bağlanmaya çalışıyor.
Outbound: Oturum bağlantı aşamasındadır ve TCP bağlantısı şu anda oluşturulmaktadır.
Inbound: Bir gelen oturumu bağlanma aşamasında.
Disconnecting: Bir oturumun bağlantısı kesiliyor.
Disconnected: Yerel bilgisayar bir bağlantı kesme isteği gönderdi ve uzaktaki bilgisayarın onayını bekliyor.
Bu komutlara birkaç örnek vermek gerekirse:
nbtstat –c = NETBIOS Cache’ini göstermektedir.
nbtstat –n = Cihazların üzerinde (Server) hangi servislerin kurulu olduğunu gösterir.
nbtstat –a [Server-Name] = Yazılan bilgisayar adı üzerindeki roleleri gösterir.
nbtstat –A [ip-address] = Yazılan ip adresi üzerindeki roleleri gösterir.
nbtstat –r = Ortamdaki bilgisayarlar broadcast yapılarak ya da WINS tarafından bulunarak listesi verilir.
nbtstat –R = Cache tablosunu temizler ve yeniden yükler.
nbtstat –RR = Silme talebini WINS Servera gönderir ve kendine ait kaydı siler ve sonra tekrar ekler.
NBTSTAT Servis Kodları :
<Computer_name> <00> = Workstation Service
<Computer_name> v<01> = Messenger Service
<Computer_name> <03> = Messenger Service
<Computer_name> <06> = Ras Server Service
<Computer_name> <20> = File Server Service
<Computer_name> <21> = Ras Client Service
<Computer_name> <BE> = Network Monitor Agent
<Computer_name> <BF> = Network Monitor Application
<Username> <03> = Messenger Service
<Domain> <00> = Domain Name
<Domain> <1B> = Domain Master Browser
<Domain> <1C> = Domain Controllers
<Domain> <1D> = Master Browser
<Domain> <1E> = Browser Service Elections
<INet~Service> <1C> = ISS
<IS~Computer_Name> <00> = IIS

9 Temmuz 2018 Pazartesi

Kali ile Pentest Araçları: nmap

C/C++ ve Python dilleri kullanılarak yazılmış güvenlik tarayıcısı. Ağ haritası çıkartabilir, çalışan servislerin durumlarını, işletim sistemlerini, port durumlarını gösterebilir. GPL(özgür) lisanslı bir yazılımdır.
Kullanılan ağa bağlı herhangi bir makinenin, işletim sistemi, fiziksel aygıt tipleri, çalışma süresi, yazılım bilgileri, güvenlik duvarı ve ağ kartıyla ilgili bilgileri öğrenebilirsiniz.
Herhangi bir tarama türü belirtmezseniz TCP taraması yapılır.
Siz farklı bir aralık belirtmezseniz, bir IP adresi üzerinde en çok kullanılan 1000 port taranır.
nmap önce bir IP adresine ping sinyali gönderir ve cevap alamaz ise o IP kapalı olarak kabul eder. Oysa, IP adresinde çalışan bir Firewall varsa ping sinyaline cevap vermemeye ayarlanmış olabilir. Ping taraması yapmadan her IP adresini açık kabul etmek için -Pn parametresini kullanabilirsiniz.
(kali linux altında standart araç halindedir.) Linux kurulum için;
sudo apt-get update
sudo apt-get install nmap
Genel kullanılan parametreler;
-sn: Port taraması yapma anlamına gelir.
-n: DNS Çözümlemesi yapma anlamına gelir.
-v, -vv, -vvv: Ekrana gösterilecek detayları arttırır.
-F: Daha hızlı tarama yapar. Daha az sonuç bulur.
-sS:Syn Taraması Yapar
--reason: Bulduğu bir sonucun sebebini gösterir.
--open: Sadece açık Portları gösterir.
-p-: Bir IP üzerinde bulunması muhteme 65535 portun hepsini tarar.
-sV: Açık portta çalışan servisin ne olduğunu bulmaya çalışır. -sC ile birlikte kullanılırsa işe yarar.
-sC: -sV ile versiyon tespiti yapılırken nmap scriptlerini kullanır.
-p: Sadece bu parametreden sonra belirtilen portları tarar.
-6 parametresi, bir IPv6 hedefin taranmasını yapmak için kullanılır.
-PN : Bazı güvenlik duvarları ping gönderildiğinde karşılık vermez. Bu durumda -PN parametresini kullanırsanız NMAP, o makineyi ayakta kabul edecek ve taramaya başlayacak.
-sP : İp adresi aralığındaki hangi makineler açık onları listeler ve port taraması yapmaz. Root yetkisi ile çalıştırırsanız yerel bir ağda mac adreslerini de size listeleyecektir.
-PS : Makinelere ping gönderilirken standart olarak 80 portu tercih edilir. Ancak siz bunu değiştirebilirsiniz. Ping göndererek yapılan kontrol işleminde istediğiniz portu seçmeniz mümkün. Örneğin : nmap -PS 80,22,443,25 [hedef]
-PA : Standart durumlarda ICMP taraması gerçekleştiğini söylemiştik. Bu işlem üçlü el sıkışması gibidir. ACK paketleri gönderilmesini sağlar. ICMP engelleyen güvenlik duvarları bulunuyorsa bu tarama biçimi çözüm olabilir.
-PU : UDP paketleri göndermeyi tercih eder. Varsayılan port numarası 40125’tir. Bunu değiştirmeniz de mümkün. Örneğin : nmap -PU 22,25,80,443 [hedef]
-PY : Hedefin Akış Kontrol İletim Protokolünü (SCTP) kullanarak keşif yapar. SCTP ise genelde ip tabanlı telefon sistemlerinde kullanılır. Yine PU’da olduğu gibi port belirtmeniz mümkün.
--scanflags: Farklı bayraklarla tarama yapılmak isteniyorsa kullanılır --scanflags bayrak(tüm bayraklar için ALL kullanılır.) Örn: “--scanflags FIN”
--traceroute = Bu parametre ile hedef cihaz ile port taraması yapan cihaz arasındaki network haritası çıkartılabilir.
--open-ports = Çıktı sonucunda sadece açık portlar gösterilir.
-A = Agrassive scan olarakta adlandırılır. -sC + -sO + -sV + --traceroute işlemlerinin hepsini bu komut vasıtası ile yapabilirsiniz.
--host-timeout = Hedef IP adresinin taramak için ayrılacak maksimum zamanı belirler.

Port Belirleme ve Tarama Düzenleme

-p <port aralığı>: Belirli portları aramak için kullanılır.
örnek kullanım:
-p1-65535 (1. port ve 65535. port aralığı)
-p 21,53,111,137,8080
–exclude-ports <port aralığı> : Taranılması istenmeyen portlarda kullanılır.
Örnek kullanım:
nmap <ip adresi> -p1-100 –exclude-ports 22-55
(1-100 arası portları arasında tarama gerçekleştirsin ama 22-55 arasını taramasın.)
-F: Hızlı tarama
–top-ports: En sık kullanılan portları tarar.

Servis/Versiyon Tespiti

-sV: Açık olan portların servis ve versiyonlarını belirler.

İşletim Sistemi Tespiti

-O: İşletim sistemi tespitini etkinleştirir.
–osscan-limit: En az bir açık ve bir kapalı portu bulunan hedeflerin işletim sistemini belirlemeye çalışır.
–osscan-guess: İşletim sistemi belirlemesini daha agresif yapar.
–max-retries: Belirtilen sayı miktarında işletim sistemi tespitini tekrarlar.
  • File Transfer Protocol(FTP) 20/21
  • Secure Shell(SSH) 22
  • Telnet 23
  • Simple Mail Transfer Protocol(SMTP) 25
  • Domain Name System(DNS) 53
  • Domain Host Configuration Protocol(DHCP) 67/68
  • Hypertext Transfer Protocol(HTTP) 80
  • HTTPS 443
  • NetBIOS 137/138/139
  • Internet Message Access Protocol(IMAP) 143
  • Simple Network Management Protocol(SNMP) 161/162
  • Hypertext Transfer Protocol over SSL/TSL(HTTPS) 443

FIREWALL/IDS Sistem Atlamaları,Fragmantasyon

Port taraması yaptığınız sistemlerde firewall, ids sistemler bulunabilir. Bu sistemler port taramalarını engelleyebilir. Bu sistemleri atlatmak için kullanılan parametreleri gösterelim:
-f: Parçalanmak istenilen paketin boyu 8 byte olması isteniyorsa bu parametre kullanılır.
-f -f: 16 byte için bu parametre kullanılır.
–mtu <sayı>Parçalanmak istenen parametre boyutunu el ile girmek istenirse bu parametre kullanılır.
nmap -f 192.168.1.1
nmap -f 15 192.168.1.1
nmap --mtu 32 192.168.1.1

SPOOFING

Fragmantasyon seçeneği, güvenlik sistemleri tarafından tespit edilebilmektedir. Bu sistemleri atlatmak için spoofing yöntemi tercih edilebilir.
nmap -D <spooflanan ip> <Taranacak olan,Hedef ip>
Güvenlik ürünlerini atlatmak için;
--data-length <sayı>=Paket boyutunun olacağı uzunluğu <sayı> belirtir. 
--ip-options <R|T|U|S *IP IP2…+ |L *IP IP2 …+ > yada --ip-options <hex string> =Paketler içerisindeki IP özelliklerini belirtir.
--randomize-hosts = Listede belirtilen taranılacak hostları rastgele bir şekilde seçer.
--badsum = Yanlış checksuma sahip TCP veya UDP paketleri gönderir. firewall tespiti için kullanılır.
--max-rate: Saniyede max kaç paket yollanacağını belirler.
nmap ile tarama yapıldığında;
Open = Portun erişilebilir olduğu ve portun TCP, UDP bağlantısı kabul ettiğini gösterir.
Closed = Portun erişilebilir olduğu ancak üzerine işlem yapılamadığı bilgisini gösterir.
Filtered = Bir paket filtreleme mekanizması tarafından engelleniyor manasına gelir. Portun açık olduğu veya kapalı olduğu konusunda herhangi bir karara varılamamıştır.
Unfiltered = Portlara erişiliyor ama açık mı kapalı mı bilemedim durumudur. (Üçlü el sıkışmanın SYN,SYN-ACK,ACK ayaklarının ACK işlemini ,yani geriye cevap dönüyor mu? sorusunu cevaplar.)
Open | Filtered = Portlar açık mı veya filtrelenmiş mi karar veremedim manasına gelir.(UDP, FIN, Null, Xmas Scan)
Closed|filtered (Kapalı|Filtreli): Nmap portların kapalı ya da filtreli olduğuna karar veremez.
Tarama Türleri;

1-) TCP Syn  (Half Open) Scan

Kaynak makinenin TCP Syn bayrağı göndermesiyle karşı tarafın TCP portlarının açık veya kapalı olduğu dönen bayrağın RST+ACK veya SYN + ACK olmasından anlaşılır. RST+ACK dönüyorsa kapalı manasına, SYN+ACK dönüyorsa açık manasına gelir.
nmap -sS  -v [Hedef IP]
three way handshake
TCP bayrakları (flags) ;

SYN = Senkronize mesajı (Synchronize)
ACK = Alındı Mesajı (Acknowledgement)
RST = Bağlantı iptali(Reset)
FIN = Bitirme mesajı (Fnish)


Portlarin açık olduğu durumlarda ise hedef makina SYN + ACK bayrakli segment döndürür. Daha sonra kaynak makina RST+ACK bayrakli segment göndererek bağlantiyi koparir ve böylelikle TCP üçlü el sıkışma (TCP three-way handshaking) tamamlanmaz. Bu tarama türünde TCP üçlü el sıkışma gerçekleşmediği için bu tarama türü hedef sistemlerinde herhangi bir şekilde iz bırakmaz. Hızlıdır.

2-) FIN (Stealth) Scan

Hedef makineye gönderilen istek TCP olmadan gönderilecektir. Yine Üçlü el sıkışma olayındaki gibi RST+ACK döndürürse kapalı porta denk gelmişiz demektir. Eğer açık portuna gelirse hedef makinadan herhangi bir tepki dönmeyecektir.
nmap -sF -v [Hedef IP]

3-)Xmas (Christmas) Scan

URG, PSH ve FIN bayraklarının 1 olduğu durumlarda makinenin verdiği tepkiye göre bir sonuç çıkartmaktayız. Eğer RST+ACK dönerse kapalı port, tepki görmezse açık port manasına gelir.
nmap -sX -v [Hedef IP]

4-)Ping Scan

Traceroute, komutu gibi bilgisayarlar arası ICMP Echo isteği gönderilir. IP adresi erişilebilir ve ICMP filtrelemesi bulunmadığı müddetçe bir cevap dönecektir. bEğer hedef makine erişilebilir değilse veya paket filtreleyici ICMP paketlerini filtreliyorsa, hedef makinedan herhangi bir cevap dönmeyecektir.
nmap -sP -v [Hedef IP]

5-)UDP Scan

Kaynak makinanın hedef makinaya gönderdiği UDP diyagramına ICMP Port Unreachable yanıtı döndürülüyorsa anlamalıyız ki makine kapalı, UDP diyagramı dönüyorsa makine açıktır.
nmap -sU -v [Hedef IP]

7-) Null Scan 
Hiç bir bayrağın bulunmayacağı bu tarama türü, gerçek hayatta karşımıza çıkmayan bir durumdur. Kaynak makinanın göndereceği bayraksız segmentler karşısında hedef makinenin vereceği tepkiler FIN scan ile aynıdır. Kaynak makinanın göndereceği bayraksız segment, hedef makinenin kapalı bir portuna gelirse hedef makina RST + ACK bayraklı segment döndürecektir. Eğer port açık olursa hedef makinadan herhangi bir tepki dönmeyecektir.
nmap -sN -v [Hedef IP]
8-)IP Protocol Scan
Bu tarama türü standart nmap tarama türlerinden biraz farklıdır. Bu tarama türünde hedef makinelerin üzerlerinde çalışan IP tabanlı protokoller tespit edilmektedir. Bu yüzden bu tarama türüne tam anlamıyla bir port taraması demek mümkün değildir. Hedef makine üzerinde taramasını yaptığımız ip protokolü aktif haldeyse makineden bu taramaya herhangi bir cevap gelmeyecektir. Hedef makine üzerinde, taramasını yaptığımız IP protokolü aktif halde değilse hedef makineden bu taramaya, tarama yapılan protokolün türüne göre değişebilen RST bayraklı (RST Bayrağı "1" yapılmış) bir segment cevap olarak gelecektir.
nmap -sO -v [Hedef IP]
9-)ACK scan 
Bu tarama türünde kaynak makina hedef makinaya TCP ACK bayraklı segment gönderir. Eğer hedef makina ICMP destination unreachable mesajını dönerse ya da hedef makinada bu taramaya karşılık herhangi bir tepki oluşmazsa port "filtered" olarak kabul edilir. Eğer hedef makina RST bayraklı segment döndürürse port "unfiltered" kabul edilir.
nmap -sA -v hedef_ip_adresi
10-)Window scan
Window scan, ack scan türüne benzer ancak bir önemli farkı vardır. Window scan portların açık olma durumlarını yani "open" durumlarını gösterebilir. Bu taramanın ismi TCP windowing işleminden gelmektedir. Bazı TCP yığınları, RST bayraklı segmentlere cevap döndüreceği zaman, kendilerine özel window boyutları sağlarlar. Hedef makinaya ait kapali bir porttan dönen RST segmentine ait window boyutu sıfırdır. Hedef makinaya ait açık bir porttan dönen RST segmentine ait window boyutu sıfırdan farklı olur.
nmap -sW -v hedef_ip_adresi
11-)TCP Connect Scan
Kaynak bilgisayardan yapılacak TCP Connect taraması, kapalı portlarda TCP SYN taraması gibi cevap dönecek. RST+ACK bayraklı paket dönecektir. Ancak açık olduğu durumlarda TCP SYN taramalarının tersine, hedefin göndereceği SYN+ACK bayraklı paketi kaynak bilgisayar ACK bayraklı paket göndererek cevaplar ve üçlü el sıkışmayı tamamlar.
nmap -v -sT <Hedef IP>
12-)Idle Scan
Kaynak bilgisayarın hedefe tarama esnasında aktif rol almadığı tarama türüdür. Kaynak bilgisayar zombie olarak nitelendirilen makinalar üzerinden hedef makinayı tarayarak bilgi toplar.
nmap -v -sI <zombi_ip> <Hedef IP>
13-) FTP Bounce Scan
FTP serverlarının pasif olarak çalışması ile gerçekleşir. Nmap'in taramayı gerçekleştirebilmesi için, aradaki FTP serverla bağlantı kurması gerekir.Bağlantı kurduktan sonra Nmap verileri taranacak olan hedef IP ve porta yönlendirir. Yönlendirme işleminden sonra FTP üzerinde taramayı gerçekleştirebilmek için öncelikle PORT komutu, sonra verileri aktarabilmek için LIST komutu çalıştırılır.
nmap -v -b <user@ftpserver> <Hedef IP>
14-)List Scan
Bu tarama türü gerçek bir tarama değildir. Sadece Nmapin sorun çözme ve test yeteneklerini aktif kılar. Taranacak olan aktif makinaların IP'lerini sıralar. Eğer reverse DNS çözümlemesi iptal edilmişse List Scan network üzerinde tamamen sessizdir. Herhangi bir paket almaz veya göndermez.
nmap -v -sL <Hedef IP>
15-)RPC Scan
RPC Scan, hedefin üzerinde koşan RPC uygulamalarını keşfeder. Başka bir tarama türü ile açık portlar keşfedildikten sonra,RPC Scan hedefin açık portlarına RPC Null göndererek, eğer çalışan bir RPC uygulaması varsa, RPC uygulamasını harekete geçirir.RPC Scan, Version Detection Scan işlemi esnasında otomatik olarak çalıştırılır.
nmap -v -sR <Hedef IP>
16-)Version Detection
Version Detection, bütün portların bilgilerini bulabilecek herhangi bir tarama türü ile birlikte çalışır. Eğer herhangi bir tarama türü belirtilmediyse yetkili kullanıcılar için TCP SYN, diğer kullanıcılar için TCP Connect çalıştırılır. Eğer açık port bulunursa, Version Detection taraması hedef üzerinde araştırma başlatır ve elde edebileceği kadar bilgiyi almaya çalışır.
nmap -v -sV <Hedef IP>

17-) Nmap Betik Motoru (Nmap Scripting Engine -NSE)

NSE olarak adlandırılan bu komut kalıp olarak “–script= example.nse” eklenmesiyle oluşturulur.  Karşıdan ciddi bilgilerin ele geçirilmesi olağandır.
NSE (nmap script engine) nmapin en güçlü ve kullanışlı özelliklerinden birisidir. Nse'yi normal nmap komutlarıyla yapılamayan yada yapılması çok zor olan işlemlerin daha kolay bir şekilde yapılmasının sağlandığı bir betikler bütünü olarak tarif edebiliriz. Nmap ile birlikte birçok betik kütüphanesi hazır olarak gelmektedir. NSE kullanılarak temel olarak yapılabilecekler aşağıda listelenmiştir.
1) Ağ Keşifleri: hedef etki alanlarının whois veri tabani sorgulari yapilabilir. Hedef sistemlerin snmp sorgulari yapılabilir ve mevcut nfs/smb/rpc paylaşım ve servisleri listenilebilir.
2) Karmaşık Versiyon Tespiti: normal nmap komutlarıyla hedef sistemlerin versiyonları belirlenebilmektedir. NSE ile hedef sistemlerin versiyonları çok daha ayrıntılı bir şekilde tespit edilebilir.
3)  Zafiyet (Vulnerability) Tespiti: normal nmap komurtlariyla hedef sistemlerin zafiyetleri tam anlamıyla tespit edilememektedir. NSE ile bu zafiyetler daha kolayca belirlenebilir. Nmap ile hazır gelen biir çok zafiyet tespit betiği bulunmaktadir. Ancak temel işlevinin zafiyet tarayicisi olmadığının bilinmesi gerekir.
4) Arka Kapi (backdoor) Tespiti: NSE bazı arka kapı programlarınıda tespit edebilmektedir.
5)  Zafiyet Sömürmesi (vulnerability exploitation) NSE ile sadece hedef sistemlerin zafiyetleri tespit edilmekle kalmayıp bu zafiyetlerin bazıları kullanılarak hedef sistemlere sızılması mümkün olmaktadır. Fakat nmap'in temel amacı metasploit gibi bir zafiyet sömürü programına dönüşmek değildir. Buna rağmen NSE ile hedef sistemlerdeki bazı zafiyetlerin sömürülmesi de mümkündür. NSE 'nin geliştirilmesine devam edilmektedir.
Nmap Tarama Örneklei :
  • nmap -sS -sV -Pn -top-ports 10 192.168.38.130
    sS : Syn Taramasi
    sV : Versiyon Bilgisi
    Pn : Ping Atma
    Top-ports10: En Çok Kullanilan 10 Portu Tara.
  • nmap -sS -sV -Pn -T4 -p- 192.168.38.130
    sS : Syn Taraması
    sV : Versiyon Bilgisi
    Pn : Ping Atma 
    T4 : Tarama Hızı Hızlı Bir Tarama.
     -p- : Tüm Portları Tara
    Bu Tarama Çok Uzun Sürer
-sV  ile hedef cihazın portlarının arkasında çalışan processler ile ilgili detaylı bilgiler edinebiliriz. Mesela hedef cihazın 80 port numaralı socketinin arkasında çalışan processin versiyonu ile ilgili detaylı bilgiler edinebiliriz.Bu bilgiler ile de hedef cihazda çalışan processler exploit edilebilmektedir.
  • nmap -sS -A -Pn -oA sonuclar 51.255.10.187
    sS : Syn Taramasi 
    A  : Versiyon Ve İşletim Sistemi Bilgisi
    Pn : Ping Atma 
     oA : 3 Farkli Formatta Tarama Çıktısını Kaydeder.
-oA(tüm biçimler),-oG(grep komutuna uygun düzenlenebilir nmap çıktısı),-oX(xml),-oN(text),-oS(script kiddie formatı)
İpucu: -oA parametresi ile yapılan işlemde tarama durursa "nmap -resume dosyaismi" denilerek taramaya devam edilebilir.
  • nmap --script ftp-anon -p 21 51.255.10.187
    script : Nmap Scriptlerini Kullanmamizi Sağlar.
    ftp-anon : Ftp 'ye Anonim Girişi Olup Olmadıgını Kontrol Eder.
    p 21 : Port 21 de Scripti Çalıştırır.
     
  • nmap --script http-dombased-xss www.trazer.org
    script : Nmap Scriptlerini Kullanmamizi Sağlar.
    http-dombased-xss : trazer.org'da xss ara
     
    Couldn't find any DOM based XSS.=
    Yani Herhangi Bir Dom Tabanli XSS Bulunamadı
  • Birden Fazla IP Adresi ya da Bir IP Subnet’ini Taramak İçin örnekler; 192.168.1.1 192.168.1.44
    nmap 192.168.1.0/24
    nmap 192.168.1.1,2,3
    nmap 192.168.1.1-20
    nmap 192.168.1.*
  • İşletim Sistemi ve Versiyonu Bulma; nmap -A 192.168.1.44
    nmap -v -A 192.168.1.44
    nmap -A -iL /tmp/scanlist.txt
  • Bir Host ya da Network’ün Firewall tarafından korunup korunmadığını öğrenme; nmap -sA <hedef_ip>
  • Firewall ile korunan bir Host’u Tarama; nmap -PN <hedef_ip>
  • Network Taraması ile çalışan cihaz ya da serverların tespit edilmesi; nmap- sP 192.168.1.0/24
  • Hızlı tarama; nmap -F <hedef_ip>
  • Alınan ve Gönderilen Tüm Paketleri Görüntüleme;  nmap –packet-trace <hedef_ip>
  • Özel Port Taraması; 80. Portu Tarama: nmap -p 80 192.168.1.1
    TCP 80 Portunu Tarama : nmap -p T:80 192.168.1.1
    UDP 53 Portunu Tarama : nmap -p U:53 192.168.1.1
    İki Portu Tarama : nmap -p 80,443 192.168.1.1
    Port aralığı tarama : nmap -p 80-200 192.168.1.1
  • Ağdaki Bütün Cihazlar Üzerindeki Açık Portları Tarama; nmap -T5 192.168.1.0/24
-T Parametresi İle Hız Ayarlama
Uygulamamızın -T parametresi ile tarama hızı ayarlanabilir. Uygulamanın bu özelliği sayesinde, belli bir sürede belli bir sayıdan fazla paket geldiği zaman, o paketin geldiği IP adresini blocklayan güvenlik cihazları aşılabilir.
0 Paranoid = Gönderdiği paketler arasında 5 dakika kadar bekler.
1 Sneaky = Gönderdiği paketler arasında 15 saniye kadar bekleyerek tarama yapar.
2 Polite = Gönderdiği paketler arasında 0.4 saniye kadar bekleyerek tarama yapar.
3 Normal = Varsayılan olarak bu tarama tipi kullanılır.
4 Aggressive = Bu tarama tipinde, cevapların dönmesi için sadece 1.25 saniye beklenir.
5 Insane = Cevabın dönmesi için 0.3 saniye bekleyerek paralel bir tarama gerçekleştirilir.
  • Uzak Host üzerindeki İşletim Sistemini Tespit Etme; nmap -O 192.168.1.1
    nmap -O –osscan-guess 192.168.1.1
    nmap -v -O –osscan-guess 192.168.5.1
  • Yapılan taramaları Txt olarak kaydetme; nmap 192.168.1.1 > output.txt
  • nmap -sS -v 192.168.133.129 ;Özelliği NMAP yazılımının ekrana daha fazla bilgi dökmesini sağlar.
  • nmap –sS –sV –Pn –p- 192.168.133.129 ; Standart SYN Scan ile tarama yapacak ve versiyon tespitinde bulunacaktır. Bilmediğimiz ise -Pn komutu ping atmasını önlemek ve -p- komutu ise 65535 portun tamamını taramasını sağlayacaktır.
  • nmap –sW –T1 –p- 192.168.133.129 ;Window Scan gerçekleştirecek yazılım, -T1 komutu ile yavaş bir şekilde tarama yapacak ve Firewall yani güvenlik duvarlarına yakalanamayacaktır.
  • nmap –script vuln 192.168.10.0/24 ; Bu komut ile NMAP içeriğinde ki exploiteri hedef sistem üzerinde test edecek ve sonuçları ekrana dökecektir.
  • nmap –script=ftp-brute –p 21 192.168.133.129 ;NMAP, içinde ki ftp-brute yazılımı ile hedef makinanın 21. portuna elinde ki şifreler ile giriş yapmaya çalışacaktır. Bu Brute/Force yani Kaba/Kuvvet saldırılarına girer. Bu yazılımları seçmek için -script=yazilim-ismi denilmesi yeterlidir.
  • nmap –sC 192.168.44.3 ; NMAP içerisinde ftp-brute gibi onlarca script bulunmaktadır. Bu komut ile NMAP, içeriğinde ki tüm scriptleri çalıştıracaktı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 tara
  • HEARTBLEED SSL AÇIGI tarama : nmap -sV -p 443 --script=ssl-heartbleed 10.0.2.1/24
  • 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ışı. 
  • nmap -T5 --max_rtt_timeout 150 --initial_rtt_timeout 150 -p 80; --max_rtt_timeout : Kat edilen yol süresi
    --initial_rtt_timeout : Kaç mili saniye ile başlayacağı
  • istediğimiz ethernet üstünden arama; nmap -P0 -e eth0 -S 192.168.2.2 <hedef_ip>
  • sahte mac adresi; nmap --spoof-mac <MAC-ADDRESS> 192.168.1.1
    nmap -v -sT -PN --spoof-mac <MAC-ADDRESS> 192.168.1.1
    nmap -v -sT -PN --spoof-mac 0 192.168.1.1
  • http ile başlayan scriptleri kullanmak için; nmap --script "http*" <hedef_ip>
  • "-D RND:10" : Bu şekilde bir parametre verirseniz(10 değerini kendiniz değiştirebilirsiniz) karşı tarafa farklı farklı random ıplerden NMAP sorgu gönderir, araya da birkaç tane sizin IP adresinizden serpiştirir.
  • nmap --script dns-brute -sn <hedef_ip> nmap ile cloudflare atlatılabilir. nmap aracı ile hedef sistemin dns üzerindeki tüm alan adlarına subdomain  brute force yapılarak alt alan adları tespit edilip gerçek ip adresi bulunabilir. 
 
Nmap Scriptlerini /usr/share/nmap/script/ klasörü altındadır.
 
 
  • TOR Ağını Kullanarak Nmap Taraması
 

 apt-get install tor

 service tor start
'Proxychains uygulaması TOR network’ünü kullanacak şekilde yapılandırılır,
nano /etc/proxychains.conf
'Proxychains uygulamasının konfgürasyon dosyasının en alt satırındaki
'socks4  127.0.0.1 9050 değeri socks5  127.0.0.1 9050 ile değiştirilir.
'TOR kullanılarak Nmap taraması,
proxychains nmap -p 1-65535 -T4 -A -v -Pn 8.8.8.8
'Komutun başına getirilen proxychains ile bağlantılar TOR üzerinden çıkartılabilir