Alternatif Kaba Kuvvet Saldiri Araci Crowbar (aka Levye)

Friday, October 17, 2014

Alternatif Brute Force (Kaba Kuvvet Aracı): CROWBAR

Neden Crowbar?


Crowbar (Levye), kaba kuvvet saldırıları gerçekleştirmek için kullanılabilecek bir sızma testi aracıdır. Sızma testlerinde bir bilgisayardan - özellikle Linux bilgisayarlardan - SSH anahtarı, VNC passwd dosyası, OpenVPN sertifikası elde edilmekte ve bu dosyaları kullanarak erişim sağlanabilecek diğer bilgisayarlara tek tek deneme yapılmaktadır. Benzer olarak elde edilen kimlik bilgilerini kullanarak, RDP ile bağlantı kurulabilecek Windows bilgisayarların tespiti de hızlı bir şekilde tespit edilmesi sızma testleri açısından önem arz etmektedir. Crowbar, bu gibi ihtiyaçların karşılanması için hazırlanmıştır.

Crowbar Aracının Diğer Araçlardan Farkı


Crowbar aracının diğerlerinden ayıran fark diğer araçlar tarafından desteklenmeyen protokoller için kaba kuvvet saldırılarını gerçekleştirebilmektedir.

Örneğin; piyasada yaygın olarak kullanılan Hydra aracı kullanıcı adı ve parola ile SSH kaba kuvvet saldırısı gerçekleştirebilmektedir. Crowbar aracı ise SSH anahtarı (SSH key) ile kaba kuvvet saldırısını gerçekleştirebilmekte, böylece ele geçirilen anahtar veya anahtarlarla hangi bilgisayarlara SSH bağlantısı elde edilebileceği listelenebilmektedir.

Crowbar aracı ile sadece SSH için değil; OpenVPN ve VNC bağlantıları için de parolaya gerek duyulmadan, anahtar kullanılarak kaba kuvvet saldırısı gerçekleştirilebilir. Bunun yanında, Crowbar ile mevcut elde edilen kimlik bilgileri (kullanıcı adları ve parolalar) ile NLA deskteği olan ve NLA desteği olmayan Windows bilgisayarlara uzaktan masaüstü bağlantısı (Remote Desktop Connection) yapılabilecek bilgisayarlar da elde edilebilmektedir. Özetlemek gerekirse Crowbar aracı ile gerçekleştirilebilecek kaba kuvvet saldırıları şu şekildedir:

·         SSH anahtarı kullanılarak SSH bağlantısı
·         VNC anahtarı kullanılarak VNC bağlantısı
·         Konfigürasyon dosyaları ve kimlik bilgileri kullanılarak VPN bağlantısı
·         Kimlik bilgileri kullanılarak Windows RDP bağlantısı

DHCP Havuzu Tüketme ve SSL Trafiğinde Araya Girme (Man In The Middle) Saldırısı

Saturday, October 11, 2014

KULLANILAN YAZILIMLAR VE KÜTÜPHANELER:

Yazılım Adı
İşlevi
Ubuntu Server
Saldırı İçin Gerekli Yazılımların Çalışacağı İşletim Sistemi
Isc Dhcp
Dhcp Sunucusu
Squid
İçerik Filtreleme ve SSL Sonlandırıcı
C-icap
İcap Protokolü Destekli İçerik Erişim Yazılımı
Python
Dhcp Starvation Saldırısı İçin Kullanılan Yazılım Dili
Scapy
Python programlama diline entegre kütüphane
C
C-icap modülünün geliştirilmesi amaçlı kullanılan programlama dili
Tika
Dosyaları ayrıştıran açık kaynak kodlu yazılım
Table 1 Kullanılan yazılım ve kütüphaneler

Senaryoda kullanılan tüm sanal sunucular için ağ yapılandırması olarak NAT belirtilmiştir. Dhcp sunucu servislerinin sağlıklı çalışabilmesi için NAT ağ yapılandırması için çalışan Dhcp servisi hizmet dışı bırakılmalıdır. Bu durum Şekil 1’de gösterilmiştir.


Şekil 1 Sanal Sunucular İçin Ağ Yapılandırması

Python - Windows Sistemler Üzerinde Python Kodundan Çalıştırılabilir Dosya (EXE File) Oluşturma

Burada anlatilanlar Python2.7 surumu icin 64 bit Windows surumu uzerinde gerceklestirilmistir. Diger surumler icin farkli durumlar soz konusu olabilir. Kullanilan python surumunu ogrenmek icin komut satirindan pythonun calistirilmasi ve ilgili ciktinin yorumlanmasi gerekmektedir.

Asagidaki gibi bir cikti ile karsilasiliyor ise 32 bit python sistemde kurulu demektir.
Python 2.7.2+ ... [MSC v.1500 32 bit (Intel)] on win32

Asagidaki gibi bir cikti ile karsilasiliyor ise 64 bit python sistemde kurulu demektir.
Python 2.7.2+ ... [MSC v.1500 64 bit (AMD64)] on win32

Arpspoof, Dnsspoof ve Browser Autopwn İle Örnek Sızma Testi Senaryosu

Wednesday, July 16, 2014

Geliştirme Ortamı ve Kütüphaneler:

Python: Arpspoof ve DnsSpoof araçlarının geliştirilmesi amaçlı kullanılan açık kaynak kodlu betik programlama dili.

https://github.com/galkan/tools/blob/master/others/programming/python/arpspoof.py

Arpspoof ile ilgili yazıya http://www.galkan.net/2014/05/scapy-kutuphanesi-kullanilarak-python-ile-arpspoof-man-in-the-middle-saldirisi.html adresinden erişim sağlanabilir.

Dnsspoof yazılımı http://code.activestate.com/recipes/491264-mini-fake-dns-server/ adresindeki yazılımı baz alınarak geliştirilmiştir. main fonksiyonuna ait kod bloğu aşağıda gösterilmiştir.

Python - Syslog Loglama AltYapısının Kullanımı

Friday, May 30, 2014

Özellikle komut satırından çalıştırılan uygulamalar için gerçekleştirilen detaylarını kayıt altına almak, hata mesajlarını kayıt altına almak vb sebeplerden dolayı loglama (işlem kaydı) işlemlerinin gerçekleştirilmesi gerekmektedir.

Bu amaçla kullanılan farklı kütüphaneler bulunmaktadır. Linux/Unix sistemlerde özellikle bu amaç için geliştirilmiş ve en çok tercih edilen servis ile aynı ismi taşıyan syslog kütüphanesi kullanılmaktadır. Aşağıdaki örnek ile syslog servisini kullanan örnek bir loglama servisi geliştirilmiştir. 

Python Scapy Kütüphanesi Kullanılarak Arpspoof , Man In The Middle (Ortadaki Adam Saldırısı) Saldırısı

Arpspoof yerel ağlarda en çok karşılaşılan saldırılardan bir tanesi olarak göze çarpmaktadır. Kısaca saldırgan hedef bilgisayarın arp tablosundaki kayıtları değiştirirerek ön tanımlı ağ geçidi üzerinden akacak trafiğin kendisi üzerinden akmasını sağlamasıdır. http://en.wikipedia.org/wiki/ARP_spoofing adresinden arpspoof ile ilgili daha fazla bilgi edinilebilir.

Bu saldırının önlemi için yapılabileceklere https://www.bilgiguvenligi.gov.tr/aktif-cihaz-guvenligi/ikinci-katman-saldirilari-1-3.html adresinden göz atılabilir. 

Burada https://github.com/byt3bl33d3r/arpspoof/blob/master/arpspoof.py adresindeki örnek temel alınarak arpspoof saldırını gerçekleştirmek üzere dsniff paketi ile birlikte gelen arpsoof yazılımının parametre kullanımı baz alınarak bir geliştirme gerçekleştirilmiştir. 

Yazılım scapy kütüphanesi kullanılarak geliştirilmiştir. Eğer sistemde yoksa kurulması gerekmektedir. Bu işlem apt-get paket yönetimini kullanan sistemlerde apt-get install python-scapy komutunun çalıştırılması ile gerçekleştirilebilir. Scapy ile ilgili daha fazla bilgi almak için http://www.secdev.org/projects/scapy/ adresine göz atılabilir.

Python - Linux\Unix Sistemlerde SSH Servisi Üzerinden Otomatik Komut Çalıştırarak Sistem Yönetiminin Gerçekleştirilmesi

Sunday, May 25, 2014

Linux\Unix sistemlerde SSH servisi üzerinden otomatik olarak komut çalıştırarak sistem yönetimi otomatik olarak gerçekleştirilebilir. Örneğin Linux sistemlerde üzerinde periyodik olarak gerçekleştirilebilecek olan işlemler bu yolla yapılarak raporlanabilir. Özellikle aynı işin gerçekleştirilmesi gereken birden fazla Linux/Unix sunucunun bulunduğu ortamlar için bu durum oldukça büyük rahatlık sağlayabilmektedir.

Python ile SSH servisi üzerinden komut çalıştırmak amaçlı kullanılan kütüphanenin adı paramikodur. Detaylı bilgi için https://github.com/paramiko/paramiko/ adresine göz atılabilir.

Kısaca paramiko kütüphanesinin sisteme kurulabilmesi için apt-get paket yönetim sistemi kullanan sistemlerde aşağıdaki adımlar takip edilebilir. 

# apt-get install pip
# pip install ecsda
# wget https://github.com/paramiko/paramiko/archive/master.zip
# unzip master.zip
# python setup.py install

Betik bir yapılandırma dosyası aracılığı ile SSH servisi üzerinden otomatik olarak komut çalıştırmaya izin vermektedir Yapılandırma dosyasının formatı ise;

Python - FTP Sunucu Servisi Dosya/Dizin Tespit Çalışması

Thursday, April 10, 2014

Gerek sistem yöneticileri için gerekse sızma testi uzmanları için ağ içerisindeki FTP sunucu servislerinin tespit edilerek içeriklerinin araştırılması gerekebilmektedir. Windows ağlarındaki paylaşımları tespit ederek belirtilen yapılandırma dosyasına göre veri taraması gerçekleştiren projeye https://github.com/galkan/depdep adresinden erişim sağlanabilir. Bunun için öncelikle gerekli ağ içerisindeki FTP sunucu servisleri için keşif çalışması gerçekleştirilmelidir. Bu amaçla en çok kullanılan yazılımlardan olan nmap ile ön tanımlı 21/tcp portu için tarama gerçekleştirerek mecut FTP sunucu servisleri için keşif adımı gerçekleştirilmelidir. Bu işlem 192.168.1.0 ağı için aşağıda gösterildiği şekilde gerçekleştirilebilir.

# nmap -n -PN -sS -p 21 --open 192.168.1.0/24

Bu amaçla aşağıda gösterilen betik kullanılabilir. FTP servisi için gerekli modül olarak ftputil kullanılmıştır. Daha fazla ayrıntı için https://pypi.python.org/pypi/ftputil/2.2.3 adresine göz atılabilir.

Pentestlar Icin Python - Sosyal Mühendislik Saldırıları İçin E-posta Adreslerinin Internet Sayfalarından Keşfedilmesi

Saturday, March 1, 2014

Sosyal mühendislik saldırıları için başlangıç noktası kuruma ait e-posta adreslerinin bulunmasıdır. Bunun için farklı yöntemler kullanılmaktadır. Özellikle bir çok kurum internet sayfalarında kuruma ait e-posta adreslerini yayınlamaktadırlar. El ile kuruma ait e-posta adreslerinin çıkartılması mümkün olmamaktadır. Bu işlem otomatize bir şekilde herhangi bir programlama dili ile gerçekleştirilebilir. Bu işlemi python ile gerçekleştirmek için aşağıdaki kod kullanılabilir. Github linkine https://github.com/galkan/tools/tree/master/mail-crawl adresinden erisim saglanabilir.

#!/usr/bin/python
# -*- coding: utf-8 -*-


__VERSION__ = '0.1'
__AUTHOR__ = 'Galkan'
__DATE__ = '30.10.2013'

Ağ Üzerinde Rasperry Pi Keşif Çalışmaları

Artık bir çok yerde Rasperry Pi adı oldukça sık geçmeye başladı. Bununla birlikte sessizce ağınıza adapte olan Rasperry Pi'ler arka kapı olarak tehlike arz etmektedir. Sistem ve güvenlik yöneticilerinden habersiz olarak ağa yerleştirilen Rasperry Pi ile kurum dışından kurum içerisine erişim sağlanarak tabiri caiz ise cirit atılarak istenilen adımlar gerçekleştirilebilmektedir.

MAC adresi tekil olarak verilen 48 baytlık bir bilgidir. Bu bilginin ilk yarısı üretici firmayı belirtmektedir. Bu durumda aynı subnetde bulunan Rasperry Pi'lerin keşfi basit olarak subnetize ping atıp ardından ise arp tablonuzu kontrol etmek olacaktır. Bunun için çeşitli yöntem ve araçlar kullanılabilir. Burada sadece ping atıp ardından arp tablosuna bakmak yönteminden bahsedilecektir.


# fping -a -r1 -g 192.168.4.0/24 &> /dev/null
# arp -n | fgrep "b8:27:eb"

Rasperry pi üzerinde  "avahi daemon" servisi aktif ise yine keişf işlemi gerçekleştirilebilmektedir. Kısaca rasperry pi üzerinde avahi-daemon servisinin aktive edilmesi için belirtilen adımlar sırası ile uygulanmalıdır.
# apt-get install avahi-daemon
# /etc/init.d/avahi-daemon restart

Paylaşımlardaki Gizli Tehlike, Kritik Verilerin Ortaya Çıkartılması - DepDep

Kurum ağı içerisindeki paylaşımlar içerisinde kritik bilgilerin bulunması kurum ağı içerisindeki sunucu servislerine erişim imkanı sağyabilmektedir. Yedekleme amaçlı olarak kullanılan veya hızlı bir biçimde veri aktarımı için aktf hale getirilen paylaşımların unutulması gibi bir takım durumların ardından ortaya çıkabilecek verilerin kullanılması ile kurum ağı içerisindeki servislere erişim mümkğn duruma gelebilmektedir.

NOT : Burada anlatılanlar Kali Linux üzerinde denenmiştir.

Kurulum:


https://github.com/galkan/depdep adresinden yazılım temin edilebilir. Bunun için git clone komutu kullanılabilir.
# git clone https://github.com/galkan/depdep

Determine Critical Data In Network Sharing - DepDep

Depdep is a merciless sentinel which will seek sensitive files containing critical info leaking through your network. Basically, it is a fast and practical sensitive data search tool maintaining personal & commercial data privacy for companies and institutions. It can very well be used by auditors making sure that their network doesn't leak any unauthorized non-compliant data through windows & unix/linux shares.
The usage is easy and configurable, however, certain technical knowledge is necessary, such as using linux console, ability of writing and understanding basic regular expressions, tough the configuration file comes with several sensitive information patterns, etc.
Future Work
  • Process using hostname or ip address
  • Advanced logging operations
  • Advanced debugging operations
  • Detect & process linux shares (NFS)

DNS Tünelleme ile Güvenlik Duvarı ve İçerik Filtreleme Sistemlerinin Atlatılması

Sızma testlerinde karşılaşılan zorluklardan bir tanesi de içerik filtreleme sistemleri olarak göze çarpmaktadır. Bu tarz sistemleri atlatabilmek için kullanılan en sık yöntemler olarak SSH socks proxy, http tünelleme gelmektedir. Bu tarz yöntemlerin tespit edilip engellenmesi daha kolaydır bu yüzden güvenlik duvar ve içerik filtreleme sistemlerini atlatabilmek için DNS tünelleme yöntemi kullanılabilmektedir. İstemci DNS sunucusuna x.tunnel.dns.example.com adresini sorgulamakta ve sorgunun tunnel.dns.example.com sunucusuna ulaşması ile cevap tekrardan istemciye ulaşmaktadır.

Aşağıda dns.example.com adresi için BIND DNS sunucusu ve iodine yazılımı kullanılarak nasıl DNS tünelleme işleminin gerçekleştirileceğinden bahsedilecektir. DNS tünelleme işlemi için iç ağda recursive sorgulara izin verecek bir DNS sunucusunun olması gerekmektedir. Bu adım dig yada nslookup komutları yardımı ile öğrenilebilir. Dig komutu yardımı ile www.google.com.tr adresi sorgulanmasi için;
# dig @dns_sunucu_ip_adresi www.google.com.tr A +short

Cevap alınması halinde ilgili DNS sunucusu recursive sorgulara cevap verebildiği anlamına gelmektedir. İstemciden giden sorguların tunnel.dns.example.com DNS sunucusuna ulaşabilmesi için sorguların değişken olarak yapılması gerekmektedir. Bu durum iodined DNS sunucusu üzerindeki trafik dinlenerek bu gözlemlenebilir.

Parse Edilebilir Şekilde NMAP Çıktılarının Bash Scripting ile Yorumlanması

Wednesday, February 19, 2014

Parse edilebilir formatda NMAP -oG parametresi ile çalıştırıldığında çıktıların yorumlanabilmesi için aşağıdaki https://github.com/galkan/tools/blob/master/others/programming/bash/parse_nmap_oG.sh adresinden erişim sağlanabilmektedir.

#!/bin/bash

if [ ! $# -eq 2 ]
then
        echo "Kullanim: $0 <rapor_dosyasi> <protokol>"
        exit 37
fi

nmap_rapor="$1"
proto="$2"

cat $nmap_rapor | grep “Ports” | while read -r line
do
        ip_addr="`echo "$line" | cut -d " " -f2`"
        control=0
        for line2 in `echo "$line" | cut -d " " -f4-`
        do
                echo "$line2" | grep -Eq "/$proto/"
                if [ $? -eq 0 ]
                then
                        if [ $control -eq 0 ]
                        then
                                echo "$ip_addr"
                                echo "-----------"
                                control=1
                        fi

                        port_number="`echo "$line2" | cut -d "/" -f1`"
                        service="`echo "$line2" | cut -d "/" -f5`"

                        echo "$port_number/$service"
                fi
        done
done

exit 0

NMAP Sonuçlarının Metasploit Yardımı ile Yorumlanması

Tarama sonrası Nmap raporlarının süzülerek yorumlanması oldukça büyük önem arz etmektedir. Çünkü bir sonraki hedefli atakların gerçekleştirilebilmesi için istenen ip adres ve port bilgisinin temin edilmesi gerekmektedir. Örneğin 22/tcp açık durumda olan ip adreslerinin temin edilmesi veya 445/tcp portu açık durumda bulunan ip adreslerinin temin edilmesi durumu sızma testleri esnasından oldukça sık bir biçimde karşılaşılabilecek bir durumdur.


Bu amaçla çeşitli araçların kullanımı mümkün olmaktadır. Veya kişisel olarak geliştirilmiş araçların yardımı ilede bu işlem mümkün olmaktadır. Burada ise bu işlemin metasploit ile nasıl yapılabileceğinden bahsedilecektir.


Metasploit postgresql veritabanı desteği ile sonuçların aktarılmasına izin vermektedir. Yine kendi bünyesinde bulunan komutlar yardımı ile bu sonuçların süzülmesine ve hatta dışa aktarılmasına olanak sağlamaktadır. Aşağıda bu amaçla öncelikle bir Nmap taraması gerçekleştirilmiş ve rapor formatı XML olarak seçilmiştir.


# nmap -n -Pn -sS -sU --open -T4 --top-ports 10 192.168.1.1-254 -oX rapor


Görüldüğü üzere çalışma dizini içerisinde rapor isimli Nmap XML formatında rapor dosyası oluşmaktadır. Ardından metasploit ile postgresql veritabanı kullanımı için aşağıdaki adımların sırası ile takip edilmesi gerekmektedir.

# sudo su postgres
postgres@kali:/root$ createuser galkan -P
Enter password for new role: Test12345
Enter it again: Test12345
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n

Gökhan ALKAN

Information Security, Programming, Linux/Unix ...