magnify
formats

Adobe Shockwave Player Memory Corruption

Tarih 15 Haziran 2011 yazar içinde Genel
Affected Products:
Shockwave Player

CVE ID:
CVE-2011-2122

Vulnerability: Memory Corruption

Impact: Remote Code Execution:

Risk Level: High

Vulnerability Details:
This vulnerability allows remote attackers to execute arbitrary code on vulnerable installations of the Adobe Shockwave Player. User interaction is required to trigger this vulnerability in that the target must visit a malicious page or open a malicious file.
A memory corruption vulnerability in the Dirapi.dll component that could lead to code execution. By crafting specific values within rcsL substructures an attacker can corrupt memory.

Vendor Response:
Adobe has issued an update to correct this vulnerability. More details can be found at:
http://www.adobe.com/support/security/bulletins/apsb11-17.html

Disclosure Timeline:
2011-02-14 – Vulnerability reported to vendor
2011-06-14 – Coordinated public release of advisory

Credit:
This vulnerability was discovered by Celil ÜNÜVER from BGA and SignalSEC

BID:http://www.securityfocus.com/bid/48297/info

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

SCS3 Briefings

Tarih 27 Mayıs 2011 yazar içinde Genel

12-15 Mayıs tarihlerinde İsviçre’de düzenlenen Swiss Cyber Storm 3 Konferansına konuşmacı olarak katılma fırsatı buldum. Organizasyon güzeldi , voting device vb. bir çok orjinal fikir üretmişler konferans için. Türkiye’deki konferanslara örnek olması dileğiyle. Tabi en önemli kısmı ise yeni insanlarla tanışmak , dünyanın dört bir yanından arkadaşlar edinip , fikir alışverişlerinde bulunmak ve yardımlaşmaktı.

Bir kaç fotoğraf:


 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

IstSec 2011

Tarih 24 Mayıs 2011 yazar içinde Genel

İstanbul’a özel Bilgi Güvenliği Konferansı olan İstSec, bu yıl 3-4 Haziran 2011 tarihlerinde İstanbul Bilgi Üniversitesi ev sahipliğinde gerçekleştirilecektir.

Bu yılki İstSec’e Bilgi Güvenliği Akademisi olarak 4 ayrı sunumla katılıyoruz. (Ozan UÇAR, Huzeyfe ÖNAL , Aysun TUNCER, Celil ÜNÜVER) Akıllı Telefonlar üzerine yaptığım araştırmaları (mobil malware analiz,vulnerability research, mobil shellcoding vb.) anlatacağım. İki gün boyunca da konferans alanına bulunmayı planlıyorum. Görüşmek üzere :)

Detaylı bilgiye : www.istsec.org dan ulaşabilirsiniz.

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

Signature-Based Detection

Antivirus , IPS/IDS vb. yazılımların temelde imza tabanlı (signature-based) çalıştığını biliriz.

Bu yazıda basit bir düzeyde signature(imza) tabanlı tanıma yöntemini ele alalım.

Akıllı imza vb. yöntemleri ise ele almayacağız.

Sırasıyla ASPACK ile packlenmiş bir programın imzasını çıkartıcağız ve o imzayı kullanarak aspack ile packlenip packlenmediğini belirleyen bir perl kodu daha sonra da Foxit Reader programındaki bir hafıza taşması açığına imza oluşturup, exploitini tanıyan bir program yazacağız. Foxit Reader için yazacağımız signature , vulnerability-based olacak.

Konu hakkında detaylı bilgi için PE Format , Packing , Unpacking gibi konulara göz atabilirsiniz.

Packerlar bildiğiniz gibi programların boyutunu azaltmak , analizini zorlaştırmak veya güvenlik yazılımları tarafından tespit edilmesini zorlaştırmak amacıyla kullanılabilir.

Kobay olarak çok kullanılan ASPACK packer programını seçelim ve bir programı packleyelim.

Hedef programı packlemeden önceki entry point’e baktığımızda , function prologue şu şekilde;
unpack

Packlendikten sonra baktığımızda ise değiştiğini görebiliriz. Function Prologue “PUSHAD” instruction ile başlamakta. PUSHAD vb. instructionları kullanmasının sebebi için google’da unpacking/packing konularını arattırıldığında türkçe/ingilizce tonlarca yazı bulunabilir. ASPACK ile packlenmiş programların Entry Point’i istisnasız PUSHAD instructionını işaret etmekte.packed

O halde biz ASPACK imzası olarak bu OPCODEları kullanabiliriz; “60 E8 03 00 00 00 E9 EB 04 5D 45″
Yani yazacağımız ASPACK tespit programı belirteceğimiz binary’inin içerisinde yukarıda bulduğumuz hex kodları aratacak. Kolaylığı, esnekliği ve regexdeki başarısı için Perl bu işlerde biçilmiş kaftan.

open(FILE, " binmode(FILE);
my ($buf, $data, $n);
while (($n = read FILE, $data, 200) != 0) {
$buf .= $data;
}
if ($buf =~ /\x60\xE8\x03\x00\x00\x00\xE9\xEB\x04\x5D\x45/)
{
print "Aspack Detected!\n";
}

C:\Perl64\bin>perl aspack.pl
Aspack Detected!
C:\Perl64\bin>

Gördüğünüz gibi yukarıdaki üç-beş satır kod belirtilen dosyayı binary modunda açıp içerisinde bizim bulduğumuz aspack imzasını aratıyor ve eğer bulursa Aspack Detected uyarısı veriyor.

Şimdi işi biraz daha ilerletip Vulnerability-Based Signature oluşturma kısmına gelelim. Bu konu SNORT kuralları oluşturmanızda da işinize yarayabilir.

Örnek olarak Foxit Reader’daki bir hafıza taşması açığını ele alıyorum. Zaafiyet PDF formatındaki /Title tag’ine kapasitesinden fazla data girilmesiyle tetikleniyor. Yani biz /Title (\x2f\x54\x69\x74\x6c\x65) tag’i ile bu tag’i kapatmak için gerekli olan header’ın başlangıcı (\x29\x3e\x3e\x0d) arasındaki datanın uzunluğunu kontrol ederek elimizdeki PDF’in bu açığı sömüren bir exploit olup olmadığını anlayabiliriz. Tabi bir pdf’in içinde birden fazla /Title tag’i olduğuna dikkat etmek gerekli. Bunun için aşağıda da gördüğünüz gibi PDF’i split fonksiyonundan yararlanarak parçalara ayırarak analiz ettim.

#celil ünüver
#securityarchitect.org
#foxylady.pl
$filename = $ARGV[0];
open(FILE, $filename);
binmode(FILE);
my ($buf, $data, $n);
while (($n = read FILE, $data, 200) != 0) {
$buf .= $data;
}
@s=split(/\x29\x3e\x3e\x0d/, $buf); ####Signature-1
$size=scalar(@s);
for($i=0;$i<=$size;$i++){
@end = split(/\x2f\x54\x69\x74\x6c\x65/, $s[$i]); ####Signature-2
$size2 = scalar(@end);
for($d=1;$d<=$size2;$d++){
if(length($end[$d])>300){
print "ALERT!!! Foxit Title Tag Buffer Overflow Exploit!";
}
}
}

Programımızı iki adet bu açığı sömüren exploit ile test ettiğimizde başarılı sonuç alıyoruz;

C:\Perl64\bin>perl foxylady.pl Foxit-exploit.pdf
ALERT!!! Foxit Title Tag Buffer Overflow Exploit!
C:\Perl64\bin>perl foxylady.pl foxit_title.pdf
ALERT!!! Foxit Title Tag Buffer Overflow Exploit!
C:\Perl64\bin>

Test ettiğim exploitler ; http://www.exploit-db.com/exploits/15532/ – http://www.exploit-db.com/exploits/15542/

Celil Ünüver

Not: Ne kullanacam diye kafa patlatırken SPLIT fonksiyonunu kullanmamı söyleyen ve yardım eden Ulaş’a teşekkürler :)

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

Netsec Etkinliği Sunum

Tarih 10 Mayıs 2011 yazar içinde Genel

30 Nisan’daki NetSec etkinliği yeni insanlarla tanışmak arkadaşlar edinmek açısından güzel geçti.

sunum ve kullandığım kodlar ;
Sunum Dosyası
Vulnerable Code
Simple Exploit (hardcode way)
Simple Exploit (jmp esp – way)
Novell eDirectory Exploit (SEH – ASLR Bypass)

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

Mobil Platformlarda Debugging ve Crash Analizi

Gömülü sistemler gün geçtikçe hayatımızda önem kazanmakta ve akıllı telefonlar giderek yayılmakta. Yarınlarda güvenlik dünyasında gömülü sistemlerin önem kazanacağını tahmin etmek için kahin olmaya gerek yok. Zaten akıllı telefonları hedef alan zararlı yazılımlar , exploitler ile bunlar konuşulmaya çoktan başladı!

Mobil ortamdaki yazılım güvenliği testleri sırasında karşılaştığımız crashleri nasıl analiz ederiz? Bu konu hakkında biraz ipucu vermek istedim. Crash analizi çalıştığınız mobil platforma göre farklılık gösterecektir.

Symbian, Windows Phone 6 (winmob 6) üzerinde çalışıyorsanız işiniz biraz daha kolay diyebiliriz. Buna Androidi de ekleyebiliriz. Çünkü Android SDK’da gdb benzeri adb debuggerı kullanabilirsiniz. Ancak Windows Phone 7 ve Blackberry için kolay diyemeyiz. Örneğin şu an için windows phone 7′yi uygulamalarını debug etmenin bir yolu yok.

Şu an için sadece Platform Builder özelliği olan developer phone’larda debug edebilme imkanı bulunmakta. Yani sadece Microsoft ve OEM’ler debug edebiliyor.

Bu durum şu an için geçerli diyebiliriz.

1-)IDA Debugger

Windows Mobile 6.1/6.5 , Symbian ve Android (IDA 6.1 ile) telefonlarınızı IDA Debugger ile kolayca remote (usb) debug edebilir ve crash analizini yapabilirsiniz.
Telefonunuzdaki bir uygulamayı debug etmek için, usb bağlantısını sağladıktan sonra IDA’da aşağıdaki adımları takip edebilirsiniz;

Debugger>Attach>Remote WinCE/Symbian/Android Debugger

Daha sonra telefonunuzda çalışan processlerin listesiyle karşılacaksınız, listeden uygulamanızı seçip debug işlemine başlayabilirsiniz.

2-)Windbg

Windows Phone 7′ye kadar olan windows mobile sistemlerde windbg ile de analiz etme olanağımız var crash vb. durumları.
Windows Mobile 6.1 ve 6.5 sürümlerinde crash meydana geldiğinde crash dump dosyası “windows/system/crashdump files” klasöründe “kdmp” uzantılı olarak kaydedilmekte.
Bu crash dump dosyalarını bilgisayarınıza attıktan sonra gerekli analizi Windbg ile yapabilirsiniz.

Örnek bir crash dump dosyası ve windbg;

(6bea76da.dee2a1e): Stack buffer overflow – code c0000409 (!!! second chance !!!)
Unable to load image browsui.dll, Win32 error 0n2
*** WARNING: Unable to verify timestamp for browsui.dll
*** ERROR: Module load completed but symbols could not be loaded for browsui.dll
browsui_37ea000+0x3edit:
038edit 0800a0e1 mov r0, r8
8:309:armce> r
r0=00610061 r1=00000002 r2=00000010 r3=00000000 r4=000000b0 r5=00000210
r6=00000000 r7=139afae0 r8=00000001 r9=019420c0 r10=0000010f r11=139afae0
r12=139ae724 sp=139ae828 lr=0381f8a8 pc=031edit. psr=60000010 -ZC– ARM
browsui_37ea000+0x3edited:
038edit. 0800a0e1 mov r0, r8

8:309:armce> dd r12
139ae724 00610061 00000002 00000010 00000000
139ae734 000000b0 00000210 00000000 139afae0
139ae744 00000001 019420c0 0000010f 139afae0
139ae754 139ae724 139ae828 0381f8a8 0381f8a8
139ae764 60000010 00000000 00000000 00000000
139ae774 00000000 00000000 00000000 00000000
139ae784 00000000 00000000 00000000 00000000
139ae794 00000000 00000000 00000000 00000000
8:309:armce> dd sp
139ae828 00000024 00770077 002e0077 00610061
139ae838 00610061 00610061 00610061 00610061
139ae848 00610061 00610061 00610061 00610061
139ae858 00610061 00610061 00610061 00610061
139ae868 00610061 00610061 00610061 00610061
139ae878 00610061 00610061 00610061 00610061
139ae888 00610061 00610061 00610061 00610061
139ae898 00610061 00610061 00610061 00610061

Yukarıdaki Crash , internet explorer mobile’da güvenlik testleri yaparken meydana geldi. Error Code’dan bunun bir stack tabanlı buffer overflow hatası olduğunu anlıyoruz.
Windbg’de “r” komutuyla mevcut registerların durumunu görebiliriz. d veya dd ile de herhangi bir registerı inceleyebiliriz. ”k” komutuyla call stack’e bakıp en son hangi fonksiyonların/adreslerin çağırıldığını görüp, disassembly ederek vulnerable fonksiyonu bulabilirsiniz.

8:309:armce> k
Child-SP RetAddr Call Site
139ae828 0382edit browsui_37ea000+0x3edit
139af898 0382edit browsui_37ea000+0x3edit
139af8dc 03f6edit browsui_37ea000+0x3edit
139af8f8 0c027efc coredll_3f4a000+0x1edit
139af900 0c0289f0 gwes_c010000+0x17efc
139af928 0c024544 gwes_c010000+0x189f0
139af9a0 0c0248a4 gwes_c010000+0×14544
139afa00 0c0bb250 gwes_c010000+0x148a4

Windows Phone 7′de debug işlemi dediğim gibi şu an için kısıtlı. Emulator üzerinden çalışıyorsanız emulatorunuzu regedit yardımıyla Console-Enabled yapıp , consoledan emulator processlerini takip edebilirsiniz.

Bir crash meydana geldiğinde analiz edemesenizde biraz bilgi sahibi olabilirsiniz. Console çıktısı herhangi bir crash meydana geldiğinde şu şekilde olacaktır;

PID:011F0232 TID:0C5900C2 Exception ‘Access Violation’ (0xe): Thread-Id=0c5900c2
(pth=c0587818), Proc-Id=011f0232(pprc=c051f0f8) ‘Iexplore.exe’, VM-active=011f02
32(pprc=c051f0f8) ‘Iexplore.exe’
PID:011F0232 TID:0C5900C2 PC=8341c457(???+0x8341c457) RA=41c89c5d(mshtml.dll+0×0
02a9c5d) SP=0367ec78, BVA=8341c457

Celil ÜNÜVER

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

realplayer silent fix

Tarih 20 Nisan 2011 yazar içinde Genel

rjm4pln!MPACreateComponentInstance+0x40db:
641f6d4b 8d4da8 lea ecx,[ebp-58h]
641f6d4e 51 push ecx
641f6d4f 57 push edi
641f6d50 53 push ebx
641f6d51 6838ad1f64 push offset rjm4pln!MPACreateComponentInstance+0x80c8 (641fad38)
641f6d56 8bce mov ecx,esi
641f6d58 e863f6ffff call rjm4pln!MPACreateComponentInstance+0x3750 (641f63c0) ---> this buggy function fixed in patch.
641f6d5d 85c0 test eax,eax

Product: Real Player
Unpatched Version: 14.02.633

Description:
The specific flaw exists within the rjm4pln.dll module.
Malformed “trak” atom causes a crash on Real Player.
Vulnerability can be triggered by opening a crafted mp4 file.
Code execution is not possible because only a part of EDI register is controllable.

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

WP7 Emulator Konsol

Tarih 06 Mart 2011 yazar içinde Genel

WP7 çıktı ama malesef ben emulatore mahkumum.  bildiğiniz gibi emulator kısıtlı geliyor sadece internet explorer kullanabiliyorsunuz. emulatoru unlock yapmak için image dosyasını google’da bulabilirsiniz.. indirdiğiniz image dosyasını C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.0\Emulation\Images dizinine kopyalayarak emulatorunuzu full olarak kullanabilirsiniz.

Peki ya emulatordeki programları nasıl debug ederiz? ne olup bittiğini nasıl görürüz? bizim gibi zaafiyet avcıları için en önemli sorun bu :) emulatorden applicationları debug etme şansınız yok. üstelik windows mobile 6.x emulatorlerdeki gibi file explorer da yok yani crash dump dosyalarına da ulaşamıyorsunuz. ya da ben henüz bir yolunu bulamadım ! WP7 de bir uygulama çöktüğünde hata da vermiyor , tabi çöküp çökmediğini anlıyorsunuz uygulamanın aniden kapanmasıyla :]

Regedit yardımıyla emulatorunuzu Console-Enabled yapıp , consoledan emulator processlerini , olup bitenleri görebilirsiniz. Bunun için XDE kayıtlarına EnableConsole isimli 0×00000001 değerli yeni bir DWORD ekleyin.
wp7
Artık emulatoru her açtığınızda konsol da açılacak ve olup bitenleri izleyebilecek,  bir crash meydana geldiğinde göreceksiniz misal ;
PID:011F0232 TID:0C5900C2 Exception 'Access Violation' (0xe): Thread-Id=0c5900c2
(pth=c0587818), Proc-Id=011f0232(pprc=c051f0f8) 'Iexplore.exe', VM-active=011f02
32(pprc=c051f0f8) 'Iexplore.exe'
PID:011F0232 TID:0C5900C2 PC=8341c457(???+0x8341c457) RA=41c89c5d(mshtml.dll+0x0
02a9c5d) SP=0367ec78, BVA=8341c457

/* Oh! move over , Rover
And let Jimi take over
Yeah, you know what I’m talking ’bout
Now dig this! Ha! */

console özelliği crash izlemesinde bize yardımcı oluyor ama malesef yetmez. crash analizi için debug etmenin bir yolunu bulmak lazım en azından eğer varsa crash dump dosyalarına ulaşmanın bir yolunu. sanırım bunları emulatorde yapmak şu an imkansız gibi , wp7 yüklü bir cihazda test sürüşü şart :]

-we are not dead, just busy…

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
1 Comment  comments 
formats

Swiss Cyber Storm 3

Tarih 23 Şubat 2011 yazar içinde Genel

11 – 15 Mayıs tarihlerinde, İsviçre’deyim.  Swiss Cyber Storm’da “Threats On Your Smartphone” başlıklı bir sunum yapacağım. Yolu düşen varsa beklerim :) yolu düşmeyenler için inşallah aynı sunumu Türkiye’de yapma fırsatı bulurum…

https://www.swisscyberstorm.com/speakers/unuver


 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
3 Comments  comments 
formats

AnkaSEC

Tarih 27 Aralık 2010 yazar içinde Genel

Güzel bir organizasyondu , emeği geçen herkese teşekkürler. Bizi dinleyen ilgi gösteren arkadaşlara da çok teşekkürler.

Sunum dosyasına burdan : http://2010.ankasec.org/mobil_tel_guvenlik.pdf

Fotoğraflara ise burdan : http://s1230.photobucket.com/albums/ee490/securityarchitect/ankasec/

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments