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

Ruby ile NMAP Kullanımı

Öncelikle gerekli kütüphanenin sisteme kurulu olması gerekmektedir. Bunun için:



# gem install ruby-nmap


-sS -oX -n -PN --open -T4 -p 21,22,80,443,445 Nmap parametreleri ile tarama gerçekleştirmek aşağıda belirtilen program kullanılabilir. Programa https://github.com/galkan/tools/blob/master/others/programming/ruby/scanning_nmap.rb adresinden erişim sağlanabilmektedir.


Kütüphane içerisinde kullanılabilecek olan parametrelere ilişkin detaylara http://rubydoc.info/gems/ruby-nmap/frames adresinden erişim sağlanabilmektedir. Ya da kütüphane ile gelen task.rb dosyası içerisindende kullanılabilecek olan parametrelere göz atılabilir.


Program çalıştırıldığında arka planda çalışan NMAP sürecine ait görüntü aşağıdaki gibi olmaktadır.



# ps -ef | grep nmap | grep -v grep

root      5404  5402 10 08:28 pts/2    00:00:00 /usr/bin/nmap -sS -oX /tmp/nmap_tarama_sonuc20131223-5402-16xz4nw -n -PN --open -T4 -p 21,22,80,443,445 192.168.4.0/24

NMAP Betik Kullanımı ve Betik Geliştirme Süreci - 2

Nmap Scripting Engine (NSE) Nmap yazılımının en önemli ve güçlü özellikleri olarak göze çarpmaktadır. NSE ile birlikte Nmap port tarama yazılımı olmasının ötesinde bir kullanıma sahip olmuştur. Hem sızma testi uzmanları için hem de sistem yöneticileri için vazgeçilmez öneme sahip bir yazılım haline gelmektedir.


Nmap betikleri LUA dili kullanılarak geliştirilseler de, Nmap tarafından sunulan API'lerin yardımı ile birlikte oldukça hızlı ve efektif şekilde geliştirmeler gerçekleştirilebilmektedir. Ağ kesif çalışmalarından zafiyet taramasına, kaba kuvvet saldırılarından versiyon bilgisi tespit etmeye kadar çeşitli alanlardan kullanımı mevcut bulunmaktadır.


Nmap betikleri genel olarak 3 kısımdan oluşmaktadır. Kural kısmında betiğin çalışmasından önce gerekli adımları belirlenmektedir. Bu bölüm portrule, hostrule, prerule ve postrule kısımlarından en az bir tanesini içermelidir. portrule kısmı ile port ve host bazlı olarak ele almaktadır. action = function(host, port) ifadesi ile betiğe ait çalışması gereken kısımlar ele alınmaktadır.


Aşağıda örnek olarak geliştirilmiş bir Nmap betiği bulunmaktadır. Yaptığı iş basit olarak hedef IP adres ya da blokları içerisindeki web sunucular üzerinde Admin, admin, Administrator veya administrator url'lerinden mevcut olanlarını ortaya çıkartmaktadır. Bu şekilde hedef sunucu üzerinde koşan bir portal uygulamasının yönetim ara yüzü keşfedilebilir.

NMAP Betik Kullanımı ve Betik Geliştirme Süreci - 1

Monday, February 17, 2014

Nmap zaman içerisinde sadece port tarama özellikleri olan bir yazılım olarak kalmamış, betik desteği ile bir framework haline gelmiştir. Nmap betikleri ile belirlenen port ve sunucular üzerinde uygulama seviyesinde bir takım işlemler gerçekleştirilebilmektedir. Nmap, keşif çalışmalarından kaba kuvvet saldırılarına, zaafiyet taramalarından servis dışı bırakma işlemlerine kadar bir çok kategoride yeteneğe, betikleri sayesinde sahip olmuştur. Özellikle sızma testi uzmanları için çok sık kullanılan bir araç haline gelen Nmap, hem sistem yöneticileri için hemde ağ yoneticileri için olmazsa olmaz yazılımlar arasına girmeyi başarmıştır.

Betikleri güçlü yapan şey ise Nmap API leri olarak göze çarpmaktadır. Nmap API'lerinin yardımı ile bir çok iş hızlı ve kolay bir şekilde gerçekleştirilebilmektedir. Burada anlatılacak olanlar Kali Linux dağıtımı üzerinde Nmap 6.25 sürümü ile denenmiş olup, muhtemelen diğer dağıtım ve sürümler içinde uygulanabilmektedir.

Bu yazıda örnek bir Nmap betik geliştirme sürecinden ve temel Nmap API'lerinin kullanımından bahsedilecektir. Kali Linux dağıtımı altında Nmap ile birlikte gelen betiklere /usr/share/nmap/scripts/ dizininden erişim sağlanabilmektedir. Betik kullanımı için --script parametresi ve ardından çalıştırılmak istenen betik adı belirtilmelidir. Aşağıda hedef sistem üzerinde hizmet veren DNS servisinin recursive sorgulara cevap verip vermediğinin kontrolu gerçekleştirilmektedir. 

# nmap -n -Pn -sU -p 53 192.168.1.1 --script dns-recursion
...
PORT STATE SERVICE
53/udp open domain
|_dns-recursion: Recursion appears to be enabled
MAC Address: EC:23:3D:D4:85:51 (Unknown)

Gökhan ALKAN

Information Security, Programming, Linux/Unix ...