18 05 2013

RSA Güvenlik Zirvesi 2013 Türkiye

5 Haziran 2013 Çarşamba günü İstanbul'da düzenlecek olan RSA Güvenlik Zirvesi'ne Bilgi Güvenliği AKADEMİSİ'nden Huzeyfe ÖNAL "Bir Saldırının Anatomisi: Canlı Bir Saldırı Örneklemesi"  konulu sunumla katkıda bulunacaktır.

Etkinlik hakkında detay bilgi ve kayıt için  http://www.rsasummitturkey.com/ adresi ziyaret edilebilir.

Adli bilişim analizi çalışmalarında işletim sistemlerinin RAM de bulunan bilgileri hayati önem taşımaktadır. Suç/Saldırı analizi için kritik öneme sahip bir çok bilgi hafıza barındırılır ve hafızadaki bilgiler uçucudur. İşletim sistemi kapatılıp açıldığında tüm bu hassas bilgiler kaybolacağı için RAM imajını elde etmek kritik öneme sahiptir.

Mac OS X sistemlerin RAM imajını almak için 'Mac Memory Reader' uygulamasını tercih etmekteyiz. 32 bit ve 64 bit hemen hemen tüm Mac OS X sürümlerini destekleyen, ücretsiz bir komut satırı aracıdır.

Bu yazıda online ve offline parola kırma saldırılarında başrolü oynayan wordlist'lerin nasıl oluşturulabileceğine değinilecektir. Sızma testleri esnasında sistemler üzerinde erişim kazanmak , subdomain keşfetmek veya alt dizin keşfetmek için başvurulan yöntemlerin başında bruteforce(kaba kuvvet) ve dictionary(sözlük) saldırıları gelmektedir.

Bu saldırıları gerçekleştirmek için kaliteli worldlistlerin üretilmesi ise oldukça önemlidir, aksi halde mevcut worldlistler sizin saldırı yapacağınız sistemler ile ilgisiz olacaktır ve gereksiz bir çok kombinasyonu sistem üzerinde denenmiş olacaktır. Buda kıymetli ve kısıtlı olan sızma testi süresinin boşa gitmesi demektir. Bunun için wordlistlerin istenilen biçimde üretilebilmesi zaman kaybının önlenmesi ve başarılı testler için oldukça önemlidir.

16 05 2013

30 Haziran - 4 Temmuz 2013 tarihleri arasında BlueKaizen & BGA işbirliği ile  İstanbul'da Justin Searle tarafından "Assessing and Exploiting Web applications with samurai-WTF" eğitimi verilecektir.

Eğitime indirimli kayıt olmak için BGASAMURAI kodunu kayıt esnasında girmeniz yeterli olacaktır.

Eğitimle ilgili detay bilgi almak için http://bluekaizen.org/profile/bk_courses/c2.php adresini ziyaret edebilirsiniz.

Eğitim dili İngilizce'dir.
Eğitim Başlıkları:

o Samurai
-WTF Project and Distribution
- About the Project
- Using the Live
-DVD
- Joining the Project
o Web Application Assessment Methodology

13 05 2013

Web sayfası için meydana gelebilecek en kötü senaryolardan bir taneside, web sayfasındaki tahribat olayıdır. Ancak bundan dahada kötü bir senaryo ise bundan haberdar olamama veya en son haberdar olmaktır. Çünkü artık web sayfası bozuk, güvensiz olarak lanse edilmektedir. Tabiki en kesin çözüm web sayfasında bu şekilde bir olayın gerçekleşmesinin önüne geçmektir. Ancak her zaman bu mümkün olmayabiliyor, küçük bir kodlama hatası veya gerçekleştirilmeyen bir güvenlik yamasından ötürü web sayfasında tahribat gerçekleştirilebiliyor. Bu durumdan hızlı bir şekilde haberdar olabilmek için http://www.zone-h.org sitesinden takip edilerek bu durum öğrenilebilir. Bu işlem https://github.com/bgasecurity/araclar/blob/master/check_defacement.sh adresindeki betik yardımı ile haberdar edinilebilir.  Betik kullanımı temel olarak domain_adı ve eposta adres parametreleri ile çalışmaktadır. Betiğe ait örnek bir çıktı aşağıdaki şekilde olmaktadır.

# ./check_defacement.sh evolucaocontabilidade.com info@bga.com.tr

--- Defacements Reports ---
link: http://www.zone-h.org/mirror/id/19112415
pubdate: Wed, 23 Jan 2013 21:10:33

Betik çalışması sonucunda info@bga.com.tr eposta adresine eposta bilgilendirme epostası gönderilmiştir.

Asagida betigin calistirilmasi sonucu alinan e-posta icerigi goruntulenmektedir.

12 05 2013

Android Mobil Uygulama Güvenlik Testleri-I

Android mobil uygulamların birçoğu arka planda sunucu ile haberleşmede http protokolü kullanır. Bu yüzden mobil uygulama testlerinde burp suite veya zad attack proxy (zap) gibi web proxy araçları kullanılarak rahatlıkla test edilebilir.

Bunun için web proxy kurulu pc veya notebook sistemimiz ile mobil cihaz ile sunucu arasına girersek gelen giden trafik üzerinde her türlü hakimiyeti elimize almış oluruz. Parametrelere çeşitli payloadlar gönderilerek dönen cevaplar yorumlanarak çeşitli güvenlik açıkları tespit edilebilir.

7 05 2013

Siber Güvenlik Yaz Kampı 2013

TÜBİTAK-BİLGEM Siber Güvenlik Enstitüsü ve Bilgi Güvenliği AKADEMİSİ işbirliğiyle üniversite öğrencilerine yönelik olarak düzenlenen Siber Güvenlik Yaz Kampı’nın üçüncüsü bu yıl 29 Haziran – 5 Temmuz tarihleri arasında gerçekleştirilecektir.

Üniversitelerin Lisans, Yüksek Lisans ve Doktora programlarına kayıtlı öğrencilerin bölüm kısıtlaması olmaksızın katılımına açık olan Siber Güvenlik Yaz Kampı’nda öğrencilere bilişim sistemleri güvenliği konusunda eğitimler verilerek ülkemizin ihtiyaç duyduğu siber güvenlik uzmanı eksikliğinin giderilmesine destek olunması ve kapasite geliştirilmesinin sağlanması amaçlanmaktadır.

2 05 2013

Icerik filtreleme sistemlerinin atlatilmasinda oncelikle sunucunun yetkilendirme tipinin belirlenmesi gerekmektedir. Bu islemin ardindan belirlenen yetkilendirme turune gore ilgili adimlar ile icerik filtreleme sistemlerinin atlatilmasi adimlari gerceklenebilir.

Bu islem icin asagidaki betik kullanilabilir. Kullanimi ise # betik <ip_adresi> <port_numarasi>
seklinde olmaktadir.


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

try:
     import httplib
     import sys
except ImportError,e:
     import sys
     sys.stdout.write("%s" %e)
     sys.exit(1)

28 04 2013

Bu yazida 1996'da yilinda Aleph1 tarafindan yazilan "smashing the stack for fun and profit" baslikli yazisinda gecen ornek ele alinarak, program akisinin nasil degistirilebileceginden bahsedilecektir. Aleph1'in ilgisi makalesine http://insecure.org/stf/smashstack.html adresinden erisim saglanabilir.

Exploit gelistirmenin ilk adimi olarak sayilan "stack based overflow" yontemi icin temel olusturacak asagidaki ornek ile stack nasil calisiri anlamak dahada mumkun olacaktir. Buradaki amac kisaca program akisinin nasil degistirilebilecegini gostermek ve sonrasinda yazilim akisinin istenildigi gibi degistirilmesini saglamaktir.

# include <stdio.h>

void deneme()
{
    char buf[6];
    int *a;

    a = buf + 14;
    (*a) += 12;
}


int main ()
{
     printf("1\n");
     deneme();
     printf("2\n");
     printf("3\n");

     return 0;
}

Kod deneme.c ismiyle kaydedilmis ve ardindan asagidaki derleme secenekleri ile derlenmistir.

# gcc -g -o deneme deneme.c

deneme isimli fonksiyonun iceriginin asagidaki gibi oldugu varsayildiginda

void deneme()
{
    char buf[6];
    int *a;

}

kod derlendiginde ve calistirildiginda asagidaki ciktiyi  verecektir.
1
2
3
Ancak denem isimli fonksiyonun icerigi asagidaki sekilde duzenlendiginde ise
void deneme()
{
    char buf[6];
    int *a;

    a = buf + 14;
    (*a) += 12;
}
1

programin ciktisi asagidaki sekilde olacaktir. Peki deneme isimli fonksiyonun icerisinde belirtilen
a = buf + 14;
(*a) += 12;
satirlar ile ne saglanmaktadir.  int *a ile tanimlamasi gerceklestirilen a degiskeni ile once buf karakter dizisinden 14 byte uzakliktaki adrese konumlanilmis. Ardindanda bu adresin icerigi 12 byte otelenerek fonksiyon sonlandirilmistir. Bu sekilde fonksiyon akisinin ekran ciktisinda 1 2 3 olmasi gerekirken, 1 3 olarak tamamlanmis olmaktadir. Kod gdb ile disassemble edildiginde asagidaki gibi bir gorunum alacaktir.
# gdb -q deneme
(gdb) list
5        char buf[6];
6        int *a;
7   
8        a = buf + 14;
9        (*a) += 12;
10    }
11   
12    int main ()
13    {
14         printf("1\n");
(gdb)
15         deneme();
16         printf("2\n");
17         printf("3\n");
18   
19         return 0;
20    }
(gdb) disassemble main
Dump of assembler code for function main:
   0x080483d2 <+0>:    push   ebp
   0x080483d3 <+1>:    mov    ebp,esp
   0x080483d5 <+3>:    sub    esp,0x4
   0x080483d8 <+6>:    mov    DWORD PTR [esp],0x80484d4
   0x080483df <+13>:    call   0x80482f0 <puts@plt>
   0x080483e4 <+18>:    call   0x80483b4 <deneme>
   0x080483e9 <+23>:    mov    DWORD PTR [esp],0x80484d6
   0x080483f0 <+30>:    call   0x80482f0 <puts@plt>
   0x080483f5 <+35>:    mov    DWORD PTR [esp],0x80484d8
   0x080483fc <+42>:    call   0x80482f0 <puts@plt>
   0x08048401 <+47>:    mov    eax,0x0
   0x08048406 <+52>:    leave 
   0x08048407 <+53>:    ret   
End of assembler dump.
(gdb)

main+18 satirinda deneme isimli fonksiyon cagrisinin gerceklestirildigi gorulmektedir. deneme isimli fonksiyonun cagrilmasindan hemen onceki satirda ise ekrana 1 ciktisini gostermek icin yazilmis printf("1\n") cagrimi gorulmektedir. Normal sartlar altinda deneme isimli fonksiyonun ardindan main+30 satirinda bulunan ve ekrana 2 ciktisini gostermek uzere kullanilacak printf("2\n") cagrim bilgisi gerceklestirilecekken bunun yerine main+42 satirinda bulunan ve ekrana 3 ciktisini gostermek uzere kullanilacak printf("3\n") cagrim bilgisine gecis saglanmistir. 

a = buf + 14; ifadesi ile, a degiskenin eip register degerininin adresine konuslanmasi saglanmaktadir.  deneme isimli fonksiyon cagrimi gerceklestirildiginde stack gorunumu kabaca asagidaki gibi olmaktadir. derleyici tarafindan hem guvenlik hemde optimiazasyon amackli eklenen padding degerleri ve buf karakter dizisinin uzunlugu goz onune alindiginda, a = buf + 14 ifadesi ile eip register degerinin adresine konuslanilmaktadir.

    buf     ebp   eip 
[        ][    ][    ]


Ardindan kabaca bir hesap ile iki adres arasindaki mesafe 12 byte uzunlugunda olmaktadir. Yani (*a) += 12; ifadesi ile printf("2\n") ifadesi es gecilmis yerine printf("3\n") ifadesi calistirilarak program akisi degistirilmistir.

Kisaca burada deneme isimli fonksiyon icerisinden oncelikle eip register degerine erisim saglanmis ve hemen ardindan bu register degerinin icerigi degistirilerek program akisi istenildigi gibi degistirilmistir. 

Bu yazida stack nedir, nasil calisir ve herhangi bir fonksiyon cagrildiginda stack icerisinde neler olur sorularina deginilmeden kabaca program akisinin degistirilebilecegi gosterilmistir. Bu sorularin cevablarina ise daha sonraki yazilarda ayrintili olarak deginilecektir.

Bu belge VOIP ağlara yönelik sızma testleri gerçekleştirmek isteyenlere yönelik temel kılavuz niteliğini taşımaktadır. Belgenin ilk sürümünde VOIP sızma testleri için gerekli olan laboratuvar ortamının kurulması ve temel saldırı teknik ve araçlarından bahseilmiştir. İlerleyen sürümlerde VOIP amaçlı kullanılan protokollerin çalışma yapıları ve protokol istismarı gibi daha detaylı bilgilere yer verilecektir.
Belgenin güncel sürümüne  http://online.bga.com.tr/VOIPPentestLAB.pdf adresinden erişim sağlanabilir.