<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SignalSEC Corp.</title>
	<atom:link href="https://www.signalsec.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.signalsec.com/blog</link>
	<description>Penetrasyon Testi ve Siber Güvenlik İstihbaratı</description>
	<lastBuildDate>Mon, 22 Feb 2016 10:45:37 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.0.1</generator>
	<item>
		<title>Use After Free Zafiyetleri ve Browser Exploiting</title>
		<link>https://www.signalsec.com/blog/use-after-free-zafiyetleri-ve-browser-exploiting/</link>
		<comments>https://www.signalsec.com/blog/use-after-free-zafiyetleri-ve-browser-exploiting/#comments</comments>
		<pubDate>Thu, 07 Jan 2016 14:32:22 +0000</pubDate>
		<dc:creator><![CDATA[SignalSEC]]></dc:creator>
				<category><![CDATA[Binary Analiz]]></category>
		<category><![CDATA[Browser Exploiting]]></category>
		<category><![CDATA[Bug Hunting]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Disassembly]]></category>
		<category><![CDATA[Exploit Geliştirme]]></category>
		<category><![CDATA[Heap Spray]]></category>
		<category><![CDATA[Heap Spraying]]></category>
		<category><![CDATA[Tersine Mühendislik]]></category>
		<category><![CDATA[Use After Freee]]></category>
		<category><![CDATA[Uygulama Güvenliği]]></category>
		<category><![CDATA[Vulnerability Research]]></category>
		<category><![CDATA[windbg]]></category>
		<category><![CDATA[Yazılım Güvenliği]]></category>

		<guid isPermaLink="false">http://www.signalsec.com/blog/?p=1457</guid>
		<description><![CDATA[Bu makalemizde browserlarda genelde yaygın olarak keşfedilen Use After Free zafiyetlerini ve exploiting yöntemini ele<a href="https://www.signalsec.com/blog/use-after-free-zafiyetleri-ve-browser-exploiting/"><div class="moretag">Read More</div></a>]]></description>
				<content:encoded><![CDATA[<p>Bu makalemizde browserlarda genelde yaygın olarak keşfedilen Use After Free zafiyetlerini ve exploiting yöntemini ele alacağız. En başta detaylıca Heap mimarisine, Alloc / Free işlemlerinin arka planda nasıl çalıştığına,  UAF zafiyetlerinin temeline, heap spraying yöntemine ve yeni önlem mekanizmalarına değineceğiz. Bu alanda yazılmış en kapsamlı  makalelerden biri olduğunu düşünüyoruz,  aynı zamanda bu konuda detaylıca yazılmış tek Türkçe içerik. Umarım bilgi güvenliği topluluğumuz için faydalı olur.</p>
<p>Makale yaklaşık 20 sayfa tuttuğu için buradan PDF haline ulaşabilirsiniz:  <span style="color: #0000ff;"><a style="color: #0000ff;" href="http://www.signalsec.com/publications/UseAfterFree-Exploiting.pdf">http://www.signalsec.com/publications/UseAfterFree-Exploiting.pdf</a></span></p>
]]></content:encoded>
			<wfw:commentRss>https://www.signalsec.com/blog/use-after-free-zafiyetleri-ve-browser-exploiting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yazı Tipleriyle Hacklemek: CVE-2015-6093</title>
		<link>https://www.signalsec.com/blog/yazi-tipleriyle-hacklemek-cve-2015-6093/</link>
		<comments>https://www.signalsec.com/blog/yazi-tipleriyle-hacklemek-cve-2015-6093/#comments</comments>
		<pubDate>Mon, 16 Nov 2015 15:11:45 +0000</pubDate>
		<dc:creator><![CDATA[SignalSEC]]></dc:creator>
				<category><![CDATA[Advanced Persistent Threat]]></category>
		<category><![CDATA[APT]]></category>
		<category><![CDATA[Binary Analiz]]></category>
		<category><![CDATA[Bug Hunting]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Disassembly]]></category>
		<category><![CDATA[Exploit Geliştirme]]></category>
		<category><![CDATA[Fuzzing]]></category>
		<category><![CDATA[Tersine Mühendislik]]></category>
		<category><![CDATA[Uygulama Güvenliği]]></category>
		<category><![CDATA[Vulnerability Research]]></category>
		<category><![CDATA[Yazılım Güvenliği]]></category>

		<guid isPermaLink="false">http://www.signalsec.com/blog/?p=1447</guid>
		<description><![CDATA[5-6 Kasım 2015 tarihinde SignalSEC Research ekibi olarak Güney Kore&#8216;de bu yıl 10.su düzenlenen POC2015<a href="https://www.signalsec.com/blog/yazi-tipleriyle-hacklemek-cve-2015-6093/"><div class="moretag">Read More</div></a>]]></description>
				<content:encoded><![CDATA[<p>5-6 Kasım 2015 tarihinde SignalSEC Research ekibi olarak <strong>Güney Kore</strong>&#8216;de bu yıl 10.su düzenlenen <strong>POC2015</strong> hacker konferansına katıldık. Bu konferansta bizim de Breaking Font Parsers isimli bir sunumumuz mevcuttu. (Sunum dosyaları:<a href="http://github.com/signalsec/kirlangic-ttf-fuzzer" target="_blank" rel="nofollow">http://github.com/signalsec/kirlangic-ttf-fuzzer</a> )</p>
<p>Sunumda, TTF font formatı yapısını ve bu dosya formatına uygun akıllı bir fuzzing aracını nasıl geliştirdiğimizi anlattık. Çünkü TTF dosyalarını fuzz edecekseniz , &#8220;dumb fuzzing&#8221; gibi bir seçeneğimiz malesef yoktu. Dosya formatı içinde bulunan tablo checksum değerleri gibi doğrulama mekanizmaları buna engel olmaktaydı. Sunumun sonunda ise geliştirdiğimiz fuzzer ile keşfettiğimiz güvenlik açıklarını gösterdik.</p>
<p>Örneğin keşfettiğimiz zero-day açıklardan biri Microsoft Office Word&#8217;ü etkiliyordu. 10 Kasım&#8217;da Microsoft&#8217;un yayınladığı patchler ile kapatıldı. Biz testlerimizi Office 2013 üzerinden yapmıştık ve zafiyeti bildirdiğimizde sadece Office 2013&#8217;ü etkilediğini biliyorduk. Ancak Microsoft&#8217;un yayınladığı bültende okuduğumuza göre, <strong>Office 2007/2010/2013/2016</strong> sürümlerini , <strong>SharePoint Server</strong> 2010/2013 &#8216; ü ve <strong>Office Web Apps Server</strong> ürünlerinin hepsini etkileyen bir Remote Code Execution zafiyetiymiş meğer. (CVE-2015-6093)</p>
<p>Zafiyet TTF dosya formatındaki &#8220;<strong>name</strong>&#8221; tablolarının Office Word tarafından yorumlanması esnasında oluşuyor.  Name tablosu ,  font dosyası hakkında multilingual  stringler tutmak için kullanılıyor. Bu stringler, Font dosyasının ismi, dili, copyright bilgileri vs. olabiliyor. Genel itibariyle bir name tablosu aşağı ana yapıdan oluşur;</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/name1.png"><img class="aligncenter size-full wp-image-1448" src="http://www.signalsec.com/blog/wp-content/uploads/name1.png" alt="name1" width="817" height="138" /></a></p>
<p>NameRecord elementi de aşağıda gösterildiği gibi bir yapıdadır;</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/namrecords.png"><img class="aligncenter size-full wp-image-1449" src="http://www.signalsec.com/blog/wp-content/uploads/namrecords.png" alt="namrecords" width="770" height="188" /></a></p>
<p>Keşfettiğimiz zafiyet NameID si 16 olan NameRecord ile ilişkiliydi. NameID 16 , Typographic Family name ismini belirtmek için kullanılmakta. Bu NameRecord&#8217;ın length alanında tutulan size değeri büyük bir değer olarak tanımlandığında, Word ilgili hafıza alanına çok fazla data kopyalayarak bir<strong> heap overflow</strong> zafiyetine neden olmaktaydı. Aşağıda zafiyeti tetiklemek için değiştirilen NameRecord &#8211; length değeri görülebilir;</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/fff.png"><img class="aligncenter size-full wp-image-1450" src="http://www.signalsec.com/blog/wp-content/uploads/fff.png" alt="fff" width="682" height="470" /></a></p>
<p>Zafiyet keşfettiğimiz süreden itibaren 3,5 ay boyunca zero-day olarak kaldı. Microsoft Office, Adobe Reader, Adobe Flash ve çeşitli client-side uygulamalar bu tarz bilinen ve bilinmeyen bir çok güvenlik açığı barındırmaktadır. Bildiğiniz üzere client-side zero-day güvenlik açıkları son zamanlarda hedef odaklı gelişmiş siber saldırıların ilk giriş noktasını oluşturmaktadır.</p>
<p>Zafiyet araştırma ve exploit geliştirme alanında uzun yıllardır edindiğimiz tecrübelerle geliştirdiğimiz Zero-Day ataklara karşı CPU tabanlı bir çözüm olan <strong>TRAPMINE </strong>hakkında bilgi almak için <a href="http://www.trapmine.com/" target="_blank" rel="nofollow">http://www.trapmine.com </a>adresini ziyaret edebilir ya da bizimle demo/poc için iletişime geçebilirsiniz.</p>
<p><em>Bekir KARUL, Celil Ünüver</em></p>
<p><em>SIGNALSEC Ltd.</em></p>
]]></content:encoded>
			<wfw:commentRss>https://www.signalsec.com/blog/yazi-tipleriyle-hacklemek-cve-2015-6093/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Patchlerin izinde zafiyet avcılığı!</title>
		<link>https://www.signalsec.com/blog/patchlerin-izinde-zafiyet-avciligi/</link>
		<comments>https://www.signalsec.com/blog/patchlerin-izinde-zafiyet-avciligi/#comments</comments>
		<pubDate>Thu, 02 Jul 2015 13:00:38 +0000</pubDate>
		<dc:creator><![CDATA[SignalSEC]]></dc:creator>
				<category><![CDATA[Binary Analiz]]></category>
		<category><![CDATA[Bug Hunting]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Disassembly]]></category>
		<category><![CDATA[Exploit Geliştirme]]></category>
		<category><![CDATA[Tersine Mühendislik]]></category>
		<category><![CDATA[Uygulama Güvenliği]]></category>
		<category><![CDATA[Vulnerability]]></category>
		<category><![CDATA[Vulnerability Research]]></category>
		<category><![CDATA[windbg]]></category>
		<category><![CDATA[Yazılım Güvenliği]]></category>

		<guid isPermaLink="false">http://www.signalsec.com/blog/?p=1393</guid>
		<description><![CDATA[30 Haziran tarihinde yayınlanan zafiyetlere bakarken ,  IBM &#8216; in yaygın Storage yazılımı ile ilgili<a href="https://www.signalsec.com/blog/patchlerin-izinde-zafiyet-avciligi/"><div class="moretag">Read More</div></a>]]></description>
				<content:encoded><![CDATA[<p>30 Haziran tarihinde yayınlanan zafiyetlere bakarken ,  IBM &#8216; in yaygın Storage yazılımı ile ilgili zafiyetler dikkatimizi çekti.  Zafiyetle ilgili yayınlanan güvenlik bildirisinden yola çıkarak , bu zafiyeti tersine mühendislik ile bulmayı ve tetiklemeyi hedefledik.  Bu yazıyı hazırlarken  piyasada henüz yayınlanmış bir PoC ve exploit kodu yoktu. Öncelikle zafiyetle ilgi güvenlik bildirisini inceleyelim;</p>
<div style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/vuln-details.png"><img class="aligncenter  wp-image-1396" src="http://www.signalsec.com/blog/wp-content/uploads/vuln-details.png" alt="vuln-details" width="562" height="202" /></a></div>
<div style="text-align: center;"></div>
<div style="text-align: left;">
<p>Güvenlik bildirisi bize kısıtlı olmakla beraber iki adet ipucu veriyor. Birinci ipucu; Zafiyet  11460 portunu dinleyen IBM FastBack Server yazılımında bir hafıza taşması hatası .. İkinci ipucu ise zafiyetin FXCLI_OraBr_Exec_Command fonksiyonunda olduğu.</p>
<p>Yazılımın trial versiyonunu bulup , yüklüyoruz  ve ilk etapta 11460 portunu dinleyen processi tespit etmek için TcpView ile bir göz atıyoruz. İnceleyeceğimiz process; FastBackServer.exe</p>
<div style="text-align: center;">
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/tcpview.png"><img class="aligncenter  wp-image-1399" src="http://www.signalsec.com/blog/wp-content/uploads/tcpview.png" alt="tcpview" width="643" height="194" /></a></p>
<p>&nbsp;</p>
<p style="text-align: left;">Bu bir server-side zafiyet olduğuna göre tetiklenmesi illaki paket ile yapılacak. O halde önce bu işlem için bir script hazırlayalım;</p>
<p style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/ilkpaket.png"><img class="wp-image-1402 aligncenter" src="http://www.signalsec.com/blog/wp-content/uploads/ilkpaket.png" alt="ilkpaket" width="447" height="279" /></a></p>
<p style="text-align: left;">Debuggerımızı processe attach edip,  WSARecv fonksiyonuna bir breakpoint koyuyoruz ve scriptimizi çalıştırarak ilk paketi gönderiyoruz.</p>
<p><code>bp WS2_32!WSARecv" .printf \"[+] WSArecv(%x, %x, %x)\n\", poi(@esp+0x4), poi(poi(@esp+0x8)+4), poi(poi(@esp+0x8)); .echo"</code></p>
<div style="text-align: center;">
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/bp-wsarecv.png"><img class="aligncenter  wp-image-1404" src="http://www.signalsec.com/blog/wp-content/uploads/bp-wsarecv.png" alt="bp-wsarecv" width="708" height="224" /></a></p>
<p>&nbsp;</p>
<p style="text-align: left;">İlk etapta bu breakpoint esnasında anladığımız , WSARecv ile uygulamanın 0x4400 byte&#8217;a kadar paket kabul ettiği&#8230; O halde scriptimizi bu doğrultuda düzenleyip, 0x4400 bytelık paket gönderelim.</p>
<p style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/17408lik-data.png"><img class="aligncenter  wp-image-1406" src="http://www.signalsec.com/blog/wp-content/uploads/17408lik-data.png" alt="17408lik-data" width="459" height="231" /></a></p>
<p style="text-align: left;">Artık paketimizi adım adım debuggerda takip edebiliriz. Bunun için WSARecv &#8216; in buf parametresine yani paketime bir breakpoint access koyalım;</p>
<div style="text-align: center;">
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/bp-access-ondata.png"><img class="aligncenter  wp-image-1407" src="http://www.signalsec.com/blog/wp-content/uploads/bp-access-ondata.png" alt="bp-access-ondata" width="598" height="336" /></a></p>
<p>&nbsp;</p>
<p style="text-align: left;">Uygulama bir memcpy fonksiyonunda duruyor.  Paketimizin ilk bytelarına burada bir read işlemi olduğu için breakpoint access çalışıyor ve duruyor.  Memcpy fonksiyonun bitmesini sağlıyoruz. Memcpyden bittikten sonra ,  uygulama   005816EA adresine dönüş yapıyor. Burası  public FX_AGENT_CopyReceiveBuff   fonksiyonu içinde bir alan oluyor.</p>
<div style="text-align: center;">
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/ida-graphs.png"><img class="aligncenter  wp-image-1408" src="http://www.signalsec.com/blog/wp-content/uploads/ida-graphs.png" alt="ida-graphs" width="497" height="286" /></a></p>
<p style="text-align: left;">Bu fonksiyondan tahminen anladığımız, agent&#8217;dan gelen  veriyi hafıza alanına kopyalamaya yarıyor.  Fonksiyonun ilişkisel bağlarına baktığımızda ,  herşey daha da oturuyor. Biz zaten Agent gibi davranıyoruz, server ilk EstablishConnection ile bağlantımızı kabul ediyor, daha sonra Cylic ve GetData fonksiyonları ile bizi en son CopyReceiveBuff a getiriyor.  Tekrardan adım adım paketimizi, debugger ve ida&#8217;da takip etmeye devam edelim. loc_581752  isimli bir fonksiyona geliyor, bu fonksiyon paketimizi çeşitli bitwise işleminden geçiriyor. Bu yüzden IDA&#8217;da fonksiyonu bitwise_fonk olarak rename ettik.</p>
<div style="text-align: center;">
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/bitwise.png"><img class="aligncenter  wp-image-1409" src="http://www.signalsec.com/blog/wp-content/uploads/bitwise.png" alt="bitwise" width="267" height="351" /></a></p>
<p>&nbsp;</p>
<p style="text-align: left;"> Fonksiyonun en sonunda gönderdiğimiz paketimizin ilk 4byteını,  sıfıra eşit olup olmadığına bakıyor. Paketimizin ilk dört byteını bu şekilde toplamda 3 adet karşılaştırmaya sokuyor.</p>
<p style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/compare.png"><img class="aligncenter  wp-image-1410" src="http://www.signalsec.com/blog/wp-content/uploads/compare.png" alt="compare" width="633" height="288" /></a></p>
<p style="text-align: left;">Paketimiz mevcut haliyle , 41424344h &gt;  100000h olduğundan ,  üçüncü karşılaştırmada  kırmızı okun gösterdiği adrese gidiyor.. Debuggerda takip ettiğimizde FX_AGENT_GetData fonksiyonu içerisindeki 005815d3 adresine geri dönüyoruz ve daha sonra da şu fonksiyonun içine düşüyoruz;</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/packeterror.png"><img class="aligncenter  wp-image-1411" src="http://www.signalsec.com/blog/wp-content/uploads/packeterror.png" alt="packeterror" width="585" height="267" /></a></p>
<p style="text-align: left;">Anlaşıldığı üzere paketimiz, uygulamanın istediği yapıya uygun olmadığı için clientın discconnect olduğu, hata loglarının yazıldığı fonksiyonu gittik. Bizim gelmek istediğimiz yer malesef burası değil. O halde 3. karşılaştırmada , paket  &lt;=  100000h eşitliğini sağlayıp , bu sefer nereye gideceğimize bakalım. Bunun için scriptdeki paketimin ilk 4 byteını şu şekilde değiştiriyoruz; 0x30000</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/3000h.png"><img class="wp-image-1413 aligncenter" src="http://www.signalsec.com/blog/wp-content/uploads/3000h.png" alt="3000h" width="531" height="270" /></a></p>
<p style="text-align: left;">Tekrardan 3. karşılaştırmanın olduğu 0x005817D0 adresine breakpoint koyup ,  uygulamayı debugger içinde çalıştırıp , yeni paketimizi tekrardan gönderelim;</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/3rdcmp.png"><img class="aligncenter size-full wp-image-1415" src="http://www.signalsec.com/blog/wp-content/uploads/3rdcmp.png" alt="3rdcmp" width="609" height="275" /></a></p>
<p style="text-align: left;"> Bitwise operasoyonu sonrasında ECX+4438&#8217;de bulunan paketimizin ilk 4byteı,  0x300 oluyor. Bu sefer diğer koşula zıplayabiliyoruz. Tekrardan paketimizi debugger ve IDA ile paralel bir şekilde takip etmeye devam ediyoruz. Yine bir memcpy fonksiyonuna giriyoruz, memcpy parametlerine baktığımızda  src parametresinde paketimizin kalan datasının (XXXXX&#8230;) bir memory alanına kopyalandığını anlıyoruz.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/memcpy1.png"><img class="aligncenter size-full wp-image-1416" src="http://www.signalsec.com/blog/wp-content/uploads/memcpy1.png" alt="memcpy" width="312" height="343" /></a></p>
<p style="text-align: left;">Fonksiyonların içinde kaybolmadan devam ediyoruz amacımız paketimizi takip etmek ve şüpheli gördüğümüz yerde durmak. Bu fonksiyonları da geçtikten sonra tekrardan daha önce 3. karşılaştırmadan sonra geri döndüğümüz FX_AGENT_GetData fonksiyonu içerisindeki 005815d3 adresine geri dönüyoruz.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/getdata.png"><img class="aligncenter size-full wp-image-1417" src="http://www.signalsec.com/blog/wp-content/uploads/getdata.png" alt="getdata" width="608" height="384" /></a></p>
<p style="text-align: left;"> Ancak bu sefer paketimizi takip ettiğimizde  Java Client Disconneceted hatasının verdiği fonksiyona değil,  loc_581614 fonksiyonuna zıplıyoruz.  3. karşılaştırma için paketimizi değiştirmemiz bizi hataya düşmekten kurtardı.  Paketimizi , debuggerda trace ederek takip etmeye devam ettiğimizde , FX_AGENT_GetData fonksiyonunu da tamamlayıp,  FX_Agent_Cyclic fonksiyonu içinde 00581320 adresine geri dönüyoruz. Bir kaç instruction devam ettikten sonra , şöyle bir fonksiyonun içine düşüyoruz ve yine bizim paketimizin ilk 4byteı , karşılaştırılmaya sokuluyor;</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/58132c.png"><img class="aligncenter size-full wp-image-1419" src="http://www.signalsec.com/blog/wp-content/uploads/58132c.png" alt="58132c" width="347" height="111" /></a></p>
<p style="text-align: left;">İlk 4byte , sıfıra eşit olmadığı için , loc_581347 fonksiyonuna zıplıyoruz;</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/call-recvcmnd.png"><img class="aligncenter size-full wp-image-1420" src="http://www.signalsec.com/blog/wp-content/uploads/call-recvcmnd.png" alt="call-recvcmnd" width="312" height="171" /></a></p>
<p style="text-align: left;">Burada eminim , FXCLI_C_ReceiveCommand fonksiyonunu gören bug hunter iştahlanmaya başlar. Bu fonksiyona call edilirken , PUSH ile gönderilen ECX (int) ve EDX (src) argümanlarını da bizim paketlerimiz oluşturuyor. src (edx) argümanında gönderdiğimiz &#8220;X&#8221; datası , int (ecx) ise paketimizin ilk 4byteının bitwise edildikten sonraki hali 0x300 bulunuyor.   Yani paketimizi bu yeni fonksiyon içerisinde takip edeceğiz.  Artık FXCLI_C_ReceiveCommand isimli yeni fonksiyonun içine düşebiliriz;</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/recvcommand.png"><img class="aligncenter size-full wp-image-1421" src="http://www.signalsec.com/blog/wp-content/uploads/recvcommand.png" alt="recvcommand" width="333" height="292" /></a></p>
<p style="text-align: left;">FXCLI_C_ReceiveCommand  fonksiyonuna şöyle bir tepeden baktığımızda, kırmızı çarpı ile işaretlediğim en alt sağ fonksiyon içindeki bir call dikkatimizi çekiyor;</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/FXCLI_OraBR_Exec_Command.png"><img class="aligncenter  wp-image-1422" src="http://www.signalsec.com/blog/wp-content/uploads/FXCLI_OraBR_Exec_Command.png" alt="FXCLI_OraBR_Exec_Command" width="295" height="282" /></a></p>
<p style="text-align: left;"> Güvenlik bildirisinde de zafiyetin bu fonksiyon içinde olduğu söyleniyordu. Umarım paketimizi çok fazla değiştirme gereği duymadan bu fonksiyona sıçrayabiliriz diye umarak ,  adım adım takip işlemine debuggerdan devam ediyoruz. Sırasıyla paketimiz loc_56A12E, loc_56A158, loc_56A192,  loc_56A1B9 fonksiyonlarından geçtikten sonra en son FXCLI_OraBR_Exec_Command fonksiyonuna çağrımın olduğu loc_56A1F0 fonksiyonuna ulaşıyor.</p>
<p style="text-align: left;">IDA&#8217;dan FXCLI_OraBR_Exec_Command fonksiyonuna gittiğimizde gerçekten devasal bir fonksiyon ile karşılaşıyoruz. Node sayısı 1000in üzerinde olduğu için IDA Graph ayalarınında maximum node sayısını arttırmanız gerekiyor graph view için;</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/bigfunc.png"><img class="aligncenter size-full wp-image-1423" src="http://www.signalsec.com/blog/wp-content/uploads/bigfunc.png" alt="bigfunc" width="609" height="212" /></a></p>
<p style="text-align: left;">Bu fonksiyon içerisinde ilerlememizi devam ettiriyoruz. GetConnectedIPport, GetJavaClientInfo  gibi yaklaşık 12-13 fonksiyondan geçiyoruz. Yazının yeterince uzun olmaması için bu kısımları detaylıca irdelemiyoruz. Uzun bir süreçle bu fonksiyonları atlattıktan sonra , yine bir paketimizin belli bir byteının karşılaştırıldığı aşağıdaki fonksiyona düşüyoruz;</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/xx-ilkcmp.png"><img class="aligncenter  wp-image-1425" src="http://www.signalsec.com/blog/wp-content/uploads/xx-ilkcmp.png" alt="xx-ilkcmp" width="361" height="270" /></a></p>
<p style="text-align: left;"> Buradaki cmp instructionı incelediğimizde yine bizim paketimizdeki belirli bir byte&#8217;ı  0x61A8 ile karşılaştırdığını görüyoruz;</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/xx-ilkcmp2.png"><img class="aligncenter size-full wp-image-1426" src="http://www.signalsec.com/blog/wp-content/uploads/xx-ilkcmp2.png" alt="xx-ilkcmp2" width="661" height="123" /></a></p>
<p style="text-align: left;">Burada yapmamız gereken , gönderiğimiz kaçıncı X byetlarını , 61A8h ile karşılaştırıyor bunu tespit etmek. Daha sonrasında o byteları , 61A8h&#8217;den küçük bir byte ile değiştirmek. Aksi takdirde uygulama akışı  yine bir istenmeyen (messaga size error hatasına) noktaya gidiyor.  Scriptimi aşağıdaki gibi düzenleyip,  paketimde gerekli yere 0x61A7 yazarak , karşılaştırmadan geçmeyi sağlıyoru&lt;.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/passcmp11.png"><img class="aligncenter  wp-image-1430" src="http://www.signalsec.com/blog/wp-content/uploads/passcmp11.png" alt="passcmp1" width="462" height="326" /></a></p>
<p style="text-align: left;">Bu şekilde karşılaştırmayı geçtikten sonra, debuggerda ilerlerken ikinci bir comparison ile karşılaşıyoruz. Bu sefer paketimdeki &#8220;EFGH&#8221; bytelarını yine 0x61A8 ile karşılaştırıyor;</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/kinci.png"><img class="aligncenter size-full wp-image-1431" src="http://www.signalsec.com/blog/wp-content/uploads/kinci.png" alt="kinci" width="687" height="303" /></a></p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/xx-2ndcmp.png"><img class="aligncenter size-full wp-image-1432" src="http://www.signalsec.com/blog/wp-content/uploads/xx-2ndcmp.png" alt="xx-2ndcmp" width="381" height="109" /></a></p>
<p style="text-align: left;">Paketimiz bu şekilde 3 adet karşılaştırmadan geçiyor. Her karşılaştırmada gerekli yerleri değiştirerek , atlatıyoruz ve sonrasında bir memcpy fonksiyonuna geliyoruz.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/koprudenoncememcpy.png"><img class="aligncenter size-full wp-image-1433" src="http://www.signalsec.com/blog/wp-content/uploads/koprudenoncememcpy.png" alt="koprudenoncememcpy" width="329" height="243" /></a></p>
<p style="text-align: left;">Bu memcpy fonksiyonunu aynı zamanda debuggerda takip ettiğimizde , Size kısmında bizim paketimizdeki 0x61A7 değerini görüyoruz. Yani memcpy&#8217;nin size değeri paket içerisinde belirleniyor. Bir overflowu önlemek için de öncesinde paket içerisindeki bu değerin 61A8&#8217;den küçük olup olmadığı kontrol ediliyor.  Bu fonksiyonu geçip adım adım paketimizi takip etmeye devam ediyoruz. Bu sefer ikinci bir memcpy fonksiyonu karşımıza çıkıyor;</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/memcpy222.png"><img class="aligncenter size-full wp-image-1434" src="http://www.signalsec.com/blog/wp-content/uploads/memcpy222.png" alt="memcpy222" width="329" height="248" /></a></p>
<p style="text-align: left;">Dinamik olarak debuggerda yine bu memcpy&#8217;nin argümanlarına baktığımızdda &#8220;size&#8221; parametresinde yine paketimizin içindeki 0x61A7 değerini görüyoruz;</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/memcpysize.png"><img class="aligncenter  wp-image-1435" src="http://www.signalsec.com/blog/wp-content/uploads/memcpysize.png" alt="memcpysize" width="636" height="129" /></a></p>
<p style="text-align: left;">Bu fonksiyonu geçtikten sonra  yine bir memcpy fonksiyonuna geliyoruz;</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/ucuncumemcpy.png"><img class="aligncenter size-full wp-image-1436" src="http://www.signalsec.com/blog/wp-content/uploads/ucuncumemcpy.png" alt="ucuncumemcpy" width="427" height="247" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-align: left;">İşte zafiyetimizi burada keşfediyoruz. Malesef üçüncü memcpy fonksiyonun size argümanı gönderdiğimiz paketin geri kalan kısmından belirleniyor (XXXX=0x58585858)..</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/memcpy-boom.png"><img class="aligncenter size-full wp-image-1437" src="http://www.signalsec.com/blog/wp-content/uploads/memcpy-boom.png" alt="memcpy-boom" width="657" height="197" /></a></p>
<p style="text-align: left;">Size parametresi 0x58585858 gibi destionation için ayrılan alandan bir hayli büyük olunca, memcpy fonksiyonu bir  hafıza bozulmasına sebep oluyor;</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/access-violation.png"><img class="aligncenter size-full wp-image-1438" src="http://www.signalsec.com/blog/wp-content/uploads/access-violation.png" alt="access-violation" width="664" height="135" /></a></p>
<p>&nbsp;</p>
<p style="text-align: left;">PoC kodunun son haline buradan ulaşabilirsiniz: <a href="http://www.signalsec.com/publications/ibm-tivolifastback-server-poc.txt">http://www.signalsec.com/publications/ibm-tivolifastback-server-poc.txt</a></p>
<p style="text-align: left;"><strong>Celil UNUVER</strong></p>
<p style="text-align: left;">SIGNALSEC Ltd.</p>
</div>
</div>
</div>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>https://www.signalsec.com/blog/patchlerin-izinde-zafiyet-avciligi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fuzzing Mobile &#8211; 101</title>
		<link>https://www.signalsec.com/blog/fuzzing-mobile-101/</link>
		<comments>https://www.signalsec.com/blog/fuzzing-mobile-101/#comments</comments>
		<pubDate>Mon, 22 Jun 2015 15:12:10 +0000</pubDate>
		<dc:creator><![CDATA[SignalSEC]]></dc:creator>
				<category><![CDATA[Bug Hunting]]></category>
		<category><![CDATA[Fuzzing]]></category>
		<category><![CDATA[Mobil Güvenlik]]></category>
		<category><![CDATA[Mobile Security]]></category>
		<category><![CDATA[Uygulama Güvenliği]]></category>
		<category><![CDATA[Vulnerability Research]]></category>
		<category><![CDATA[Yazılım Güvenliği]]></category>

		<guid isPermaLink="false">http://www.signalsec.com/blog/?p=1352</guid>
		<description><![CDATA[Yakın zamanda mobil platformlara yönelik bir fuzzing makalesi hazırlamaya karar verdik ve odak noktası olarak mobil<a href="https://www.signalsec.com/blog/fuzzing-mobile-101/"><div class="moretag">Read More</div></a>]]></description>
				<content:encoded><![CDATA[<div style="text-align: left;">Yakın zamanda mobil platformlara yönelik bir fuzzing makalesi hazırlamaya karar verdik ve odak noktası olarak mobil web tarayıcısını ele aldık.  Fuzzing testini Jailbreakli iOS 7 iPhone 4S cihazı üzerinde gerçekleştirdik.</div>
<div style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/image0.png"><br />
</a><a href="http://www.signalsec.com/blog/wp-content/uploads/image1.png"><img class="wp-image-1354 aligncenter" src="http://www.signalsec.com/blog/wp-content/uploads/image1.png" alt="image1" width="310" height="413" /></a></div>
<div style="text-align: left;">
<div><b>Peki hedefimiz ne ?</b></div>
<div>Zafiyet arama işleminde hepimizin bildiği üzere ilk aşama input noktalarını tespit etmektir. Neticede yapılacak iş aslında bir input manipülasyonudur. Eğer bir browserı hedef alırsak ,  o zaman browserın olası input noktalarını belirlememiz gerekir. Aşağıdaki tablo bir browserın yorumladığı (rendering) , kullanıcı tarafından belirlenebilen dataları göstermektedir. Anlaşılacağı gibi bu tabloda belirtilen her element (PDF, Audio, Image, CSS, JS)  browser için bir inputtur . İşte fuzzing&#8217;de biz bu inputlardan herhangi birini hedef alıp , input manipülasyonu yapabiliriz.</div>
<div></div>
<div style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/breaking-browsers.png"><img class="aligncenter  wp-image-1368" src="http://www.signalsec.com/blog/wp-content/uploads/breaking-browsers.png" alt="breaking-browsers" width="354" height="334" /></a></div>
</div>
<div>Genelde browserlarda , tabloda da görülebileceği üzere Javascript, Html ve CSS &#8216; in payı daha büyüktür. Bu yüzden zafiyet avcıları genelde bu elementleri fuzz ederler. Biz ise bu makalede &#8220;auido&#8221; fuzzing gerçekleştireceğiz. Zaman zaman Safari ve çeşitli uygulamalarda TIFF , PDF, MP4 vb. medya elementlerinin yorumlanması esnasında oluşan zafiyetlerle karşılaşıyoruz. <a href="http://www.securityfocus.com/bid/48833/info"> ¹</a>  <a href="http://blog.binamuse.com/2014/09/coregraphics-memory-corruption.html">²</a></div>
<div></div>
<div style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/image.png"><img class="aligncenter  wp-image-1371" src="http://www.signalsec.com/blog/wp-content/uploads/image.png" alt="image" width="288" height="207" /></a></div>
<div></div>
<div>Biz de AAC (Advanced Audio Coding) ses türlerinden .m4r ve .m4a dosyaları üzerinden mutation based &#8211; dumb fuzzing yapacağız.</div>
<div></div>
<div>
<p><div><b>Mutating Input Values</b></div>
<div></div>
</p>
<div>İlk amacımız bu iş için elimizdeki sample dosyanın içeriğini değiştirecek bir fuzzer kullanmamız lazım. Biz daha önceden geliştirilmiş Bug Hunter&#8217;s Diary kitabındaki fuzzer&#8217;dan yararlandık ancak aynı işlemi siz ufak bir script ile de yapabilirsiniz.  Fuzzerın kodlarına projeye ait Github deposundan ulaşabilirsiniz: <a href="https://github.com/FeCassie/MobileFuzzing/blob/master/fuzzer.c" target="_blank">fuzzer.c</a></div>
<div></div>
</p>
<div style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/alarm.png"><img class="aligncenter  wp-image-1374" src="http://www.signalsec.com/blog/wp-content/uploads/alarm.png" alt="alarm" width="457" height="285" /></a></div>
<div style="text-align: center;"></div>
<div style="text-align: left;">
<div></div>
</p>
<div>Alarm.m4r dosyasının orijinalini şimdilik bozmak istemediğimizden ilk olarak dosyayı case1.m4r adında klonladık. &#8220;du&#8221; komutuyla iki dosyanın da boyutlarının aynı olduğunu görebilirsiniz. ​Daha sonra fuzzer.c yi derledik ve case1.m4r dosyasının 4.offsetini &#8220;0xFF&#8221; (255) değeri ile değiştirdik;</div>
</p>
<div style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/byteflip.png"><img class="aligncenter  wp-image-1375" src="http://www.signalsec.com/blog/wp-content/uploads/byteflip.png" alt="byteflip" width="621" height="319" /></a></div>
<div></div>
<div></div>
</p>
<div>Gördüğünüz gibi Alarm.m4r dosyasının 4.offseti 00 iken case1.m4r dosyasının 4.offseti FF değerini almış (saymaya 0&#8217;dan başlıyoruz).  Bizim bu işlemi, fuzzing olabilmesi için sıfırıncı byte&#8217;dan başlayıp , son byte&#8217;a kadar bu şekilde belirlediğimiz bir fuzzing değeri ile (0xFF)değiştirerek (byte-flip ) otomatize etmemiz ve farklı testcaseler oluşturmamız gerekiyor.  0xFF değeri potansiyel integer overflow ve signedness error hatalarını tespit edebilmek için seçildi , farklı değerler da seçilebilir. Bu süreci otomatize etmek için <a href="https://github.com/FeCassie/MobileFuzzing/blob/master/autofuzz.sh" target="_blank">autofuzz.sh</a> scriptini kullanacağız. Scriptin kodları şu şekilde, baktığınızda da ne iş yaptığını kolayca anlaşılır;</div>
</p>
<div style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/autofuzz.png"><img class="aligncenter  wp-image-1376" src="http://www.signalsec.com/blog/wp-content/uploads/autofuzz.png" alt="autofuzz" width="554" height="469" /></a></div>
<div></div>
<div>
<div>Şimdi testcase dosyalarımızı otomatize bir şekilde oluşturalım yapalım:</div>
</div>
<div style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/testcases.png"><img class="aligncenter  wp-image-1379" src="http://www.signalsec.com/blog/wp-content/uploads/testcases.png" alt="testcases" width="392" height="418" /></a></div>
<div>
<div>&#8220;case1.m4r&#8221; dosyasının ilk 20 offsetine sırasıyla FF değerini yerleştirdik. Örnek olması açısından 20 tane dosya oluşturmayı tercih ettik.Fuzzing yaparken 1000 veya 10000 gibi sayılarla dosyaları oluşturacağız.</div>
<div></div>
</p>
<div>Buraya kadar her şeyi başarılı bir şekilde hallettik. Fuzzing&#8217;de ilk aşamamız yukarıda anlatıldığı gibi çeşitli sample dosyalardan bu şekilde binlerce testcaseler oluşturmak. İkinci aşamamız ise oluşturduğumuz bu testcaseleri , hedef uygulamada , örneği Safari browserda açmak. Amacımız oluşturduğumuz bu dosyaların Safari tarafından yorumlanmasını sağlamak ve bir crash / potansiyel zafiyet keşfetmek.  Fakat oluşturduğumuz mutasyon ses dosyalarının 1000, 10000 gibi sayılar olduğunu düşünürsek,  bu işlemi elle yapmak çok vakit alacaktır hatta imkansız bir hale dönüşecektir.  Oluşturduğumuz ses dosyalarının browser üzerinde otomatik çalıştırmak istiyoruz.Bunun için 1.m4a dosyası açıldıktan belli bir süre sonra(1 saniye), 2.m4a 3.m4a &#8230;.,1000.m4a şeklinde açılmasını sağlamamız gerekiyor. Bu otomatize işlemi yapmak için de ayrı bir script geliştirmemiz gerekiyor.  Windows ortamında bunu yapmak ve hatta crash olduğunda otomatik olarak log tutmak oldukça kolay ancak mobil  platformlar biraz daha kapalı kutu.</div>
</p>
<div></div>
<div>
<div>Hedefimiz Safari olduğu için aklımıza oluşturduğumuz mutasyon dosyaları yorumlatmak için oldukça basit ve güzel bir yöntem geldi.Bunun için html meta taglarını kullanmaya karar verdik. Yani kullanacağımız yöntem html meta-refresh yöntemi. Kısaca meta-refreshi ne için ve nasıl kullanacağımızdan bahsedelim. Oluşturduğumuz ses dosyalarının sayısı kadar içinde html meta-refresh metodunu kullanarak yönlendirmeyi sağlayacağımız html dosyaları oluşturacağız. Örneğin 1.html dosyasının içinde 1.m4a çalıştırılacak, ardından 1 saniye gibi kısa bir zaman aralığından sonra 2.html dosyasına geçiş yapılacak ve 2.m4a çalıştırılacak. Bu döngü 1000.html 1000.m4a&#8217;ya veya sizin belirlediğiniz sınırlara kadar devam edecek.</div>
</p>
<div style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/htmlscript.png"><img class="aligncenter  wp-image-1381" src="http://www.signalsec.com/blog/wp-content/uploads/htmlscript.png" alt="htmlscript" width="609" height="524" /></a></div>
<div></div>
<div>Geliştirdiğimiz <a href="https://github.com/FeCassie/MobileFuzzing/blob/master/signalfuzzer.py" target="_blank">signalfuzzer.py</a> scriptine projenin github sayfasından ulaşabilirsiniz. Fuzzing&#8217;i bu şekilde yapmak için web server kullanacağız. Hazırladığımız dosyaları web server&#8217;a atıp çalıştırınca fuzzing işlemi başlamış olacaktır.</div>
<div></div>
</p>
<div><b>Let the Fuzzing begin !</b></div>
</p>
<div></div>
<div>Scriptleri web server üzerinde çalıştırdık ve m4a dosyalarından testcaselerimizi oluşturduk. Daha sonra yapmamız gereken  signalfuzzer.py scriptini gerekli inputları vererek çalıştırmak.   Gördüğünüz gibi .m4a ve meta-refresh metotuyla çalışan html dosyaları oluşturuldu;</div>
<div></div>
<div style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/dosyalar.png"><img class="aligncenter  wp-image-1382" src="http://www.signalsec.com/blog/wp-content/uploads/dosyalar.png" alt="dosyalar" width="451" height="395" /></a></div>
<div></div>
<div>
<div></div>
<div>Bundan sonra yapmamız gereken, fuzzing yapacağımız mobil browser&#8217;da web server IP adresini kullanarak 1.html dosyasını çalıştırmak.</div>
<div>​Örnek: <a href="http://serverip/1.html" target="_blank">http://ServerIP/1.html</a></div>
<div>1.html sayfası açılınca 1.m4a çalıştırılacak ve 1 saniye sonra 2.html sayfası açılıp 2.m4a çalıştırılacak.Bu döngü böyle 500&#8217;e kadar devam edecek.  Oluşturduğumuz dosya sayısına ve türüne bağlı olarak eğer fuzzing işlemi işe yararsa browser crash olana kadar bu işlem devam edecektir.</div>
<div></div>
<div style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/accesslog.jpg"><img class="aligncenter  wp-image-1383" src="http://www.signalsec.com/blog/wp-content/uploads/accesslog.jpg" alt="accesslog" width="293" height="391" /></a></div>
<div></div>
<div></div>
<div>Fuzzing&#8217;i başlattıktan sonra son olarak access_log dosyasını izlemeye alabilirsiniz.  Crash olursa, Safari browser kapanacaktır, böylece en son hangi dosyaya erişildiğine loglardan bakara,  crash eden dosyayı bulabiliriz.  Sizde bu şekilde farklı dosya türlerini kullanarak mobile browser üzerinde fuzzing yapabilirsiniz.</div>
<div></div>
<div>
<div><b>Fatih Erdoğan</b></div>
</div>
</div>
</div>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>https://www.signalsec.com/blog/fuzzing-mobile-101/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windbg ile Manuel Unpack</title>
		<link>https://www.signalsec.com/blog/windbg-ile-manuel-unpack/</link>
		<comments>https://www.signalsec.com/blog/windbg-ile-manuel-unpack/#comments</comments>
		<pubDate>Mon, 01 Jun 2015 10:01:29 +0000</pubDate>
		<dc:creator><![CDATA[SignalSEC]]></dc:creator>
				<category><![CDATA[Binary Analiz]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Malware Analiz]]></category>
		<category><![CDATA[Tersine Mühendislik]]></category>
		<category><![CDATA[windbg]]></category>

		<guid isPermaLink="false">http://www.signalsec.com/blog/?p=1336</guid>
		<description><![CDATA[Özellikle zararlı yazılım analiz ederken analistin işini zorlaştıran mekanizmaları aşmamız gerekiyor. Bu mekanizmalardan bir tanesi<a href="https://www.signalsec.com/blog/windbg-ile-manuel-unpack/"><div class="moretag">Read More</div></a>]]></description>
				<content:encoded><![CDATA[<p>Özellikle zararlı yazılım analiz ederken analistin işini zorlaştıran mekanizmaları aşmamız gerekiyor. Bu mekanizmalardan bir tanesi packer ismini verdiğimiz yazılımlardır, ne oldukları ve nasıl çalıştıkları hakkında detaylı bilgiyi internetten bulabilirsiniz. Bu yazı da basit olarak unpack işleminin WinDbg ile gerçekleştirilmesini açıklamaktadır.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/caps-1.png"><img class="size-full wp-image-1338 aligncenter" src="http://www.signalsec.com/blog/wp-content/uploads/caps-1.png" alt="caps-1" width="516" height="288" /></a></p>
<p>&nbsp;</p>
<p>Unpack işlemine geçmeden önce yukarıdaki resim bu yazılımın pack edilmiş bir yazılım olduğunu teyit etmemiz gerekiyor. Burada temel dikkat edilmesi gereken bir kaç nokta var, bunlardan başlıca önem arz edenleri import edilen fonksiyonların sayısı ve bunların LoadLibrary, GetmoduleHandle gibi fonksiyonlar olması gibi hususlardır.</p>
<p>&nbsp;</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/caps-3.png"><img class="aligncenter size-full wp-image-1341" src="http://www.signalsec.com/blog/wp-content/uploads/caps-3.png" alt="caps-3" width="493" height="148" /></a></p>
<p>&nbsp;</p>
<p>Unpack işlemini gerçekleştireceğiniz yazılımı debugger ile yükledikten sonra entrypoint/base adresi kontrol etmemiz gerekiyor.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/caps-4.png"><img class="aligncenter size-full wp-image-1343" src="http://www.signalsec.com/blog/wp-content/uploads/caps-4.png" alt="caps-4" width="665" height="141" /></a></p>
<p>Bu aşamayı geçtiğimize göre giriş noktasına breakpoint koyarak -ki buradaki iment entrypoint adresine işaret eder- programın çalıştırılmasına devam ediyoruz.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/caps-5.png"><img class="aligncenter size-full wp-image-1344" src="http://www.signalsec.com/blog/wp-content/uploads/caps-5.png" alt="caps-5" width="626" height="162" /></a></p>
<p>Programın çalıştırılması işleminden sonra F10 ve p komutu verilerek kaydedici üzerindeki değişikliği gözlemleyebiliyoruz.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/caps-6.png"><img class="aligncenter size-full wp-image-1345" src="http://www.signalsec.com/blog/wp-content/uploads/caps-6.png" alt="caps-6" width="672" height="336" /></a></p>
<p>Buradan sonra esp gösterdiği adrese breakpoint access koyarak programın çalışmasını , bu adres read edildiğinde ise durmasını sağlıyoruz.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/caps-7.png"><img class="aligncenter size-full wp-image-1346" src="http://www.signalsec.com/blog/wp-content/uploads/caps-7.png" alt="caps-7" width="418" height="242" /></a></p>
<p>Bir sonraki adımın ne olacağını artık daha iyi biliyoruz ve orjinal entry point adresine daha yakınız.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/caps-8.png"><img class="aligncenter size-full wp-image-1347" src="http://www.signalsec.com/blog/wp-content/uploads/caps-8.png" alt="caps-8" width="637" height="168" /></a></p>
<p>Yukarıda görüldüğü gibi ikinci işaretli alan yazılımımızın orjinal entry point adresidir. Tüm aşamalar OllyDbg ile aynı olmakla birlikte bu yazıda sadece debugger olarak windbg kullanılmıştır.</p>
<p><strong>Yasin SÜRER</strong></p>
]]></content:encoded>
			<wfw:commentRss>https://www.signalsec.com/blog/windbg-ile-manuel-unpack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reverse Engineering Bootcamp , 9-13 Haziran</title>
		<link>https://www.signalsec.com/blog/reverse-engineering-bootcamp-9-13-haziran/</link>
		<comments>https://www.signalsec.com/blog/reverse-engineering-bootcamp-9-13-haziran/#comments</comments>
		<pubDate>Mon, 11 May 2015 08:00:06 +0000</pubDate>
		<dc:creator><![CDATA[SignalSEC]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.signalsec.com/blog/?p=1328</guid>
		<description><![CDATA[Reverse Engineering / Tersine Mühendislik Eğitimi, 9-13 Haziran 2015 , İstanbul Eğitim Tanımı Beş günlük<a href="https://www.signalsec.com/blog/reverse-engineering-bootcamp-9-13-haziran/"><div class="moretag">Read More</div></a>]]></description>
				<content:encoded><![CDATA[<p><strong>Reverse Engineering / Tersine Mühendislik Eğitimi, 9-13 Haziran 2015 , İstanbul</strong></p>
<p><strong>Eğitim Tanımı</strong></p>
<p>Beş günlük bu eğitim tersine mühendislik ile ilgili kapsamlı bir eğitimdir. Eğitim boyunca x86 assembly , statik ve dinamik tersine mühendislik, IDA Pro ve debugging yöntemleri anlatılmaktadır. Eğitim bir bütün olarak zararlı yazılım analizi , zafiyet / zero-day araştırma yöntemleri, fuzzing ve exploit geliştirme konularını kapsamaktadır.</p>
<p><b>Eğitimin Katkısı</b></p>
<p>Katılımcılar eğitimin sonunda, günlük hayatta karşılaştıkları şüpheli dosyaları / zararlı yazılımları nasıl analiz edip  iz sürebileceklerini,  hedef seçtikleri uygulamalarda güvenlik açığı aramayı ve exploit geliştirmeyi öğrenecektir.</p>
<p><b>Eğitmenler</b></p>
<p>Celil ÜNÜVER, Yasin SÜRER</p>
<p><b>Hedef Kitle</b></p>
<p>Bilgi Güvenliği Çalışanları, SOME / CERT birimleri,  Network / Sistem Uzmanları, Yazılım Geliştiriciler, Kamu Güvenliği Çalışanları</p>
<p><strong>Eğitim İçeriği</strong></p>
<p><a href="http://www.signalsec.com/publications/reverse-engineering-bootcamp.pdf" target="_blank" data-cke-saved-href="http://www.signalsec.com/publications/malwareegitim.pdf">http://www.signalsec.com/publications/reverse-engineering-bootcamp.pdf</a></p>
<p><strong>Ücret ve Kayıt</strong><br />
Lütfen info@signalsec.com &#8216; a mail gönderiniz.  2 Haziran&#8217;a kadar yapılan kayıtlarda %10 indirim mevcuttur.</p>
<p><strong>Eğitim Yeri</strong><br />
Istanbul, Türkiye</p>
]]></content:encoded>
			<wfw:commentRss>https://www.signalsec.com/blog/reverse-engineering-bootcamp-9-13-haziran/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enfal APT Saldırıları ve Analizi</title>
		<link>https://www.signalsec.com/blog/enfal-apt-saldirilari-ve-analizi/</link>
		<comments>https://www.signalsec.com/blog/enfal-apt-saldirilari-ve-analizi/#comments</comments>
		<pubDate>Thu, 07 May 2015 17:46:25 +0000</pubDate>
		<dc:creator><![CDATA[SignalSEC]]></dc:creator>
				<category><![CDATA[Advanced Persistent Threat]]></category>
		<category><![CDATA[APT]]></category>
		<category><![CDATA[Binary Analiz]]></category>
		<category><![CDATA[Disassembly]]></category>
		<category><![CDATA[Exploit Geliştirme]]></category>
		<category><![CDATA[Malware Analiz]]></category>
		<category><![CDATA[Siber İstihbarat]]></category>
		<category><![CDATA[Siber Savaş]]></category>
		<category><![CDATA[Tersine Mühendislik]]></category>

		<guid isPermaLink="false">http://www.signalsec.com/blog/?p=1314</guid>
		<description><![CDATA[Giriş TRAPMINE bazı devlet kurumlarına karşı hedefli düzenlenen bir dizi saldırıyı tespit etti. Saldırganlar tarafından hedeflenen<a href="https://www.signalsec.com/blog/enfal-apt-saldirilari-ve-analizi/"><div class="moretag">Read More</div></a>]]></description>
				<content:encoded><![CDATA[<p><strong>Giriş</strong></p>
<p>TRAPMINE bazı devlet kurumlarına karşı hedefli düzenlenen bir dizi saldırıyı tespit etti. Saldırganlar tarafından hedeflenen devlet kurumları Kazakistan, Moğolistan, Vietnam, Ukrayna ve Rusya gibi ülkelerde bulunuyor.</p>
<p>Saldırıda kullanılan exploit&#8217;in ve zararlının hızlı bir analizinden sonra, saldırının ardındaki grubun Lurid / Enfal APT&#8217;lerinin arkasında olan grup ile aynı olduğunu tespit ettik.</p>
<p>Lurid / Enfal saldırılarının arkasında kim olduğu pek net değildi fakat Çin&#8217;deki bazı saldırganlar ile bağlantıları vardı. İnanıyoruz ki bu saldırı ile Kuzey Kore&#8217;deki saldırganlar arasında bazı bağlantılar var.</p>
<p><strong>Saldırının arkasında kim var?</strong></p>
<p>Saldırıyı analiz ettiğimizde, saldırganların belirli hedefleri seçtiğini gördük. Özellikle ulusal stratejik araştırma merkezleri ve enstitü araştırmacıları hedef alınmış. Hedeflenen araştırmacıların genellikle Kuzey Kore üzerine araştırma yaptığını da tespit ettik. Örneğin hedef alınan bazı araştırmacıların Kuzey Kore&#8217;nin ekonomi ve politikası üzerine birçok yayını olduğu görülüyor. İşte bu nedenle bu saldırının Kuzey Kore merkezli tehdit aktörleriyle ilişkili olduğunu düşünüyoruz.</p>
<p><strong>Saldırı Şekli</strong></p>
<p>Saldırganlar genellikle seçilen hedeflere word dökümanı eklenmiş bazı phishing(avlama) mailleri gönderiyorlar. Gönderilen döküman Microsoft Office&#8217;de CVE-2012-0158 gibi bilinen zafiyetleri sömürüyor.</p>
<p style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/email1.png"><img class="aligncenter size-full wp-image-1316" src="http://www.signalsec.com/blog/wp-content/uploads/email1.png" alt="email" width="789" height="528" /></a><br />
<em>Saldırıda kullanılan mail örneği.</em></p>
<p><strong>Teknik Analiz</strong></p>
<p>Exploit içerisinde bulunan shellcode xor şifrelemesinden geçirilmiş, çözmek için gereken anahtar ise &#8220;9E&#8221;. Anahtarı kullanarak hafıza üzerinde decrypt yapıp, ne yapılmaya çalışıldığını anlamak zor değil. Anladığımız kadarıyla, &#8220;xpsfiltsvc.tmp&#8221; adında bir dosya oluşturup, başlangıçta çalışması için kayıt defterine ekliyor. Bu dosyanın bir downloader olduğu aşikar.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/shellcode-xor.png"><img class="aligncenter  wp-image-1317" src="http://www.signalsec.com/blog/wp-content/uploads/shellcode-xor.png" alt="shellcode-xor" width="906" height="439" /></a></p>
<p>DLL dosyasında birkaç dışa aktarma bulunuyor, XpsRegisterServer, XpsUnregisterServer, StartAddress gibi. DLL&#8217;i &#8220;XpsRegisterServer&#8221; parametresi ile rundll32.exe kullanarak çalıştırmak mümkün.</p>
<p>Downloader oldukça enteresan. Saldırganlar birkaç tane ilgi çekici yönteme sahip, örneğin GetProcAddress fonksiyonunu alternatif bir yoldan simüle etmek gibi. Görüldüğü üzere, LoadLibrary fonksiyonunun ardından beklediğimiz gibi GetProcAddress gelmiyor.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/loadlibrary.png"><img class="size-full wp-image-1318 aligncenter" src="http://www.signalsec.com/blog/wp-content/uploads/loadlibrary.png" alt="loadlibrary" width="527" height="291" /></a></p>
<p>GetProcAddress yerine, ImageDirectoryEntrytoData yardımıyla EAT kontrolü yapıyor, bunu gerçekleştirmek için de sub_10001738 çağırılıyor.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/imagedirectoryentrytodata.png"><img class="size-full wp-image-1319 aligncenter" src="http://www.signalsec.com/blog/wp-content/uploads/imagedirectoryentrytodata.png" alt="imagedirectoryentrytodata" width="463" height="465" /></a></p>
<p>Burada kütüphaneden çağırılacak olan fonksiyonun 3 baytı belirtiliyor. Ardından ImageDirectoryEntrytoData kullanarak bütün EAT taranıp, fonksiyon ismi eşleşene kadar karşılaştırılıyor.</p>
<p>Aşağıda görebileceğiniz gibi, beklenen çağrı olan GetProcAddress(wininet.dll, InternetConnectA) yapılmıyor. InternetConnectA fonksiyonunun adresini alabilmek adına, kullandıkları alt fonksiyon EAT kontolünü yaparak hangisinin 3. baytının &#8220;e&#8221;, 8. baytının &#8220;C&#8221; ve 15. baytının &#8220;A&#8221; olduğunu kontrol ediyor. Kısaca, zararlı hiçbir zaman bu fonksiyonların isimlerini string olarak saklamıyor, ve bu oldukça güzel bir bypass yöntemi.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/getprocaddr.png"><img class="aligncenter  wp-image-1320" src="http://www.signalsec.com/blog/wp-content/uploads/getprocaddr.png" alt="getprocaddr" width="889" height="199" /></a></p>
<p>Downloaderın asıl zararlıyı indirmek için &#8220;question.eboregi.com&#8221; adresine bağlantı kurduğu aşağıda görülüyor.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/url.png"><img class="aligncenter size-full wp-image-1321" src="http://www.signalsec.com/blog/wp-content/uploads/url.png" alt="url" width="488" height="225" /></a></p>
<p><strong>YARA Kuralı</strong></p>
<pre>rule Enfal_Downloader {
meta:
description = "Enfal Downloader YARA Rule"
author = "TRAPMINE"
date = "2015/05/07"
sha1 = "695f73cf0f85ebaca280e265b9acefc8967ce1cb"</pre>
<pre>strings:</pre>
<pre>$st1 = “DF64159.TMP” fullword
$st2 = “iphlpsvc.tmp” fullword
$st3 = “XpsUnregisterServer” fullword
$st4 = “XpsRegisterServer” fullword
$st5 = “{86A43R7C-F91F-4054-9076-301AC5EC03F7}” fullword</pre>
<pre>condition:
uint16(0) == 0x5A4D and all of ($st*)</pre>
<pre>}</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.signalsec.com/blog/enfal-apt-saldirilari-ve-analizi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DarbeliMatkap Network Fuzzer</title>
		<link>https://www.signalsec.com/blog/darbelimatkap-network-fuzzer/</link>
		<comments>https://www.signalsec.com/blog/darbelimatkap-network-fuzzer/#comments</comments>
		<pubDate>Sun, 18 Jan 2015 22:05:05 +0000</pubDate>
		<dc:creator><![CDATA[SignalSEC]]></dc:creator>
				<category><![CDATA[Bug Hunting]]></category>
		<category><![CDATA[Fuzzing]]></category>
		<category><![CDATA[Uygulama Güvenliği]]></category>
		<category><![CDATA[Vulnerability]]></category>
		<category><![CDATA[Vulnerability Research]]></category>
		<category><![CDATA[Yazılım Güvenliği]]></category>

		<guid isPermaLink="false">http://www.signalsec.com/blog/?p=1295</guid>
		<description><![CDATA[Fuzzing, bildiğiniz üzere yazılım güvenliği testlerinde, zafiyet araştırmalarında sıkça kullanılan bir dinamik güvenlik testidir. Bu<a href="https://www.signalsec.com/blog/darbelimatkap-network-fuzzer/"><div class="moretag">Read More</div></a>]]></description>
				<content:encoded><![CDATA[<p>Fuzzing, bildiğiniz üzere yazılım güvenliği testlerinde, zafiyet araştırmalarında sıkça kullanılan bir dinamik güvenlik testidir. Bu blog yazımızda sizlerle yaklaşık bir yıldır kullandığımız ve faydasını gördüğümüz bir aracımızı paylaşmak istiyoruz. Bu aracımızla gerek danışmanlığını yaptığımız kurumların custom uygulama güvenlik testlerinde, gerekse 0day araştırmalarımızda oldukça başarı elde ettik.</p>
<p>DarbeliMatkap ile server-side uygulamalarınızı güvenlik testine tabi tutabilirsiniz. Aynı zamanda Windows, Unix vb. işletim sistemlerinin network servislerinde ya da çeşitli server-side uygulamalarda zafiyet , zero-day arayabilirsiniz.</p>
<p>DarbeliMatkap, Python ve Scapy modülü ile geliştirildi. Test etmek istediğiniz uygulamanın server-client arasındaki iletişimini capture ettikten sonra, PCAP dosyasını DarbeliMatkap&#8217;a vermeniz yeterli.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/dmatkap-usage.png"><img class="size-full wp-image-1301 aligncenter" src="http://www.signalsec.com/blog/wp-content/uploads/dmatkap-usage.png" alt="dmatkap-usage" width="639" height="244" /></a></p>
<p>DarbeliMatkap, aldığı PCAP dosyasını çeşitli değerlerle fuzz edecek ve tekrardan uygulamanın çalıştığı IP&#8217;ye gönderecektir. Ne şekilde bir fuzz testi gerçekleştireceğini argümanlarla belirleyebilirsiniz. Şu an için byte-flip ve smash fuzzing methodları bulunmaktadır. Teste tabi tutacağınız uygulamalarda integer overflow, signedness error, null pointer dereference ve buffer overflow gibi zafiyetleri tespit etmesi mümkündür.</p>
<p>DarbeliMatkap Network Fuzzer&#8217;ı GitHub adresimizden indirip , kullanabilirsiniz:<br />
<span style="color: #ff0000;"><a style="color: #ff0000;" href="https://github.com/SignalSEC/darbeli-matkap/">https://github.com/SignalSEC/darbeli-matkap/</a></span></p>
<p>Ek olarak DarbeliMatkap&#8217;ın kullanımını ve  <a href="http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-2598">CVE-2012-2598</a> açığının DarbeliMatkap ile nasıl keşfedilebileceğini gösteren bir videoyu da sizlerle paylaşmak istiyoruz;</p>
<p><iframe src="//www.youtube.com/embed/1ZC9v1VM0eQ" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>Bekir Karul , Celil Ünüver</p>
]]></content:encoded>
			<wfw:commentRss>https://www.signalsec.com/blog/darbelimatkap-network-fuzzer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hacking Siemens SCADA for Fun &amp; Profit</title>
		<link>https://www.signalsec.com/blog/hacking-siemens-scada-for-fun-profit/</link>
		<comments>https://www.signalsec.com/blog/hacking-siemens-scada-for-fun-profit/#comments</comments>
		<pubDate>Fri, 19 Dec 2014 12:23:26 +0000</pubDate>
		<dc:creator><![CDATA[SignalSEC]]></dc:creator>
				<category><![CDATA[Exploit Geliştirme]]></category>
		<category><![CDATA[SCADA Güvenliği]]></category>
		<category><![CDATA[SCADA Security]]></category>
		<category><![CDATA[Tersine Mühendislik]]></category>
		<category><![CDATA[Vulnerability]]></category>
		<category><![CDATA[Vulnerability Research]]></category>

		<guid isPermaLink="false">http://www.signalsec.com/blog/?p=1267</guid>
		<description><![CDATA[Son zamanlarda giderek SCADA zafiyetlerin daha da artması her ne kadar çok büyük bir tehlike<a href="https://www.signalsec.com/blog/hacking-siemens-scada-for-fun-profit/"><div class="moretag">Read More</div></a>]]></description>
				<content:encoded><![CDATA[<p>Son zamanlarda giderek SCADA zafiyetlerin daha da artması her ne kadar çok büyük bir tehlike arz ediyor olsa da hâlâ yazılımcılar tarafından yeterince önemsenmiyor. Stuxnet (Merak etmeyin, ismi sadece bir kez geçecek yazıda.) ve Duqu zararlılarının etkileri hâlâ daha etkisini sürdürmekte. Hâl böyle olunca biz de SignalSEC ekibi olarak yazılımcıların tehlikeyi kavrayabilmesi adına Siemens SCADA yazılımı üzerindeki <a href="http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-2598">CVE-2012-2598</a> kodlu iki güvenlik açığının nasıl exploit edilebildiğini göstermeye karar verdik.</p>
<h2>Zafiyet 1 : Directory Traversal</h2>
<p>Siemens SCADA yazılımının bir parçası olan <em>CCDiagAgent</em> programı, bu yazıda göreceğimiz iki zayıflığın kaynağı. Öncelikle basit olandan başlayalım, diğer zafiyet için SafeSEH ile uğraşmamız gerekecek fakat biz klasik SafeSEH Bypass yöntemleri yerine kendi bulduğumuz bir yöntemi kullanacağız. Çünkü klasik yöntemler ile burada bir bypass başarılı olmuyor. Devam edelim. Öncelikle programı çalıştırıp TcpView ile dinlenen port numaralarına baktığımızda programımızın 80 numaralı portu dinlediğini, yani buradan gelecek olan istekleri işleyeceğini görüyoruz.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/siemens1.png"><img class="aligncenter size-full wp-image-1274" src="http://www.signalsec.com/blog/wp-content/uploads/siemens1.png" alt="siemens1" width="591" height="87" /></a></p>
<p>Aşağıdaki python scripti kullanarak http portuna içerisinde hafızada arayıp bulabileceğimiz karakterler içeren basit bir paket gönderiyoruz.<br />
<code><br />
#SignalSEC Corp. - 2014<br />
import struct<br />
from socket import *<br />
host = "192.168.20.141"<br />
port = 80<br />
adres = (host,port)<br />
Baglanti = socket(AF_INET,SOCK_STREAM)<br />
Baglanti.connect(adres)<br />
icerik = "A" * 30<br />
mesaj = "GET /"+ icerik +" HTTP/1.0\r\n\r\n"<br />
Baglanti.send(mesaj)<br />
print Baglanti.recv(4096)<br />
</code></p>
<p>Program içerisinde 30 A karakteri bulunan bir <strong>GET</strong> isteği yapıyor. İsteği yaptıktan sonra <strong>WinDbg</strong> ile kodu takip edip, gönderdiğimiz içeriğin nasıl işlendiği inceliyoruz. Sonuç olarak aşağıda görüleceği üzere program gönderdiğimiz içeriği <em>C:\Program Files\Siemens\WinCC\WinCCScope\ScopePages</em> klasörü altında bir dosya olarak algılayıp, onun içeriğini bize vermeye çalışıyor.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/siemens2.png"><img class="aligncenter size-full wp-image-1275" src="http://www.signalsec.com/blog/wp-content/uploads/siemens2.png" alt="siemens2" width="520" height="130" /></a><br />
Bu durum dizinler arasında &#8220;../&#8221; aracılığı ile gezinerek istediğimiz dosyayı okuyabileceğimiz &#8220;Directory Traversal&#8221; zafiyetine sebep oluyor. Bu zafiyeti sömürebilmek için son olarak Python kodumuzdaki &#8220;içerik&#8221; kısmını <span style="color: #ff0000;"><em>../../../../../Windows/system32/drivers/etc/hosts</em></span> olarak düzenleyip tekrar çalıştırdığımızda <i>Windows&#8217;un hosts dosyasının</i> içeriğini aşağıda görüldüğü üzere elde edebiliyoruz.</p>
<h2><a href="http://www.signalsec.com/blog/wp-content/uploads/directory-traversal-winncc.png"><img class="aligncenter  wp-image-1285" src="http://www.signalsec.com/blog/wp-content/uploads/directory-traversal-winncc.png" alt="directory-traversal-winncc" width="464" height="299" /></a><a href="http://www.signalsec.com/blog/wp-content/uploads/siemens3.png"><br />
</a><br />
Zafiyet 2 : Buffer Overflow &amp; SafeSEH Bypass</h2>
<p>İkinci olarak ilk zafiyetin keşfi sırasında kullandığımız dosyada 30 karakter yerine 5000 karakter ile bir <em>HEAD</em> isteği gönderiyoruz. Programa baktığımızda çökme gerçekleşiyor, <strong>WinDbg</strong> ile kontrol ediyoruz.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/siemens4.png"><img class="aligncenter size-full wp-image-1277" src="http://www.signalsec.com/blog/wp-content/uploads/siemens4.png" alt="siemens4" width="653" height="164" /></a></p>
<p>Görüldüğü üzere <strong>0040c1ef</strong> adresindeki <em>mov</em> işlemi sırasında çökme meydana geliyor.  Çökmenin ,  esas sebebi ise uygulamaya gelen HTTP isteklerinin kontrolsüz bir şekilde wsprintfA fonksiyonuna argüman olarak verilmesi;</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/wsprintf-wincc.png"><img class="wp-image-1286 aligncenter" src="http://www.signalsec.com/blog/wp-content/uploads/wsprintf-wincc.png" alt="wsprintf-wincc" width="747" height="201" /></a></p>
<p>Yazmaçlara baktığımızda <strong>EAX</strong> yazmacı üzere yazabildiğimizi görüyoruz.<em> !exchain</em> komutu ile SEH&#8217;in durumuna bakarsak, SEH üzerine de yazabildiğimiz görüyoruz. Bu aşamadan sonra klasik SEH tabanlı zafiyet exploiti yazarak çalışabilen bir exploit geliştirebilirsiniz. Tabi eğer <strong>SafeSEH</strong>  koruması aktif  olmasaydı. Ekip olarak SafeSEH&#8217;i geçmek için denediğimiz yöntemler başarısız oldu. İlk olarak gerekli olan<em> pop pop ret</em> üçlüsünü SafeSEH off olan bir dosyada aramayı denedik, fakat aşağıda görebileceğiniz üzere bütün dosyalarda SafeSEH koruması aktif durumdaydı.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/siemens5.png"><img class="aligncenter size-full wp-image-1278" src="http://www.signalsec.com/blog/wp-content/uploads/siemens5.png" alt="siemens5" width="724" height="392" /></a></p>
<p>Ardından gereken<em> pop pop ret</em> üçlüsünü bir sistem dosyasında aramayı denedik. Fakat ne yazık ki HTTP isteği gönderdiğimiz için adreslerin içerisinde bulunan &#8220;00&#8221; karakteri sonlandırıcı kötü karakter (bad char) olduğu için hafızaya yazmayı yarıda kesiyordu, bu sebeple bu yöntem de başarılı olamadı. Ardından bilinen diğer bir SafeSEH bypass yöntemini denedik. Fakat burada da karşımıza yine kötü karakter (bad char) sorunu çıktı. İhtiyacımız olan <strong>call dword ptr[esp+nn]</strong> ve türevleri instructionların bulunduğu hafıza adreslerin hepsi HTTP protokolünde kötü karakter olan 00, 20, 3d, 3f, 0a, 0d   bytelarından birini içermekteydi. Zafiyetin HTTP  üzerinden tetiklenmesi gerçekten de bizi oldukça kısıtlıyordu.  Bypass için hafızaya yazılması gereken adresleri hafızaya yazamıyorduk. Bir süre hafızada gözden kaçırmış olabileceğimiz bir adres olduğunu düşünerek aramaya devam ettik fakat bir sonuç çıkmadı.</p>
<p>Üç günlük bir AR-GE ve TeamViewer ile saatlerce yapılan ekip çalışmasının ardından SafeSEH&#8217;i  keşfettiğimiz başka bir yöntemle bypass edip, exploitimizi başarıyla yazabildik.  Bu yöntemi ve exploiti şu an için paylaşmayı düşünmüyoruz. Ancak zaman zaman exploit geliştiriciler tarafından sıkça kullanılan ve &#8220;application specific&#8221; bir exploiting yöntemi diyebiliriz. Aşağıda exploitimizin videosunu görebilirsiniz;</p>
<p><iframe src="//www.youtube.com/embed/aMTm_DbAyY8" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p><strong>Yazar:</strong> Bekir Karul, Celil Ünüver</p>
]]></content:encoded>
			<wfw:commentRss>https://www.signalsec.com/blog/hacking-siemens-scada-for-fun-profit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tibetli Aktivistleri Hedef Alan Saldırılar</title>
		<link>https://www.signalsec.com/blog/cin-tibet-siber-istihbarat/</link>
		<comments>https://www.signalsec.com/blog/cin-tibet-siber-istihbarat/#comments</comments>
		<pubDate>Sun, 23 Nov 2014 21:02:19 +0000</pubDate>
		<dc:creator><![CDATA[SignalSEC]]></dc:creator>
				<category><![CDATA[Advanced Persistent Threat]]></category>
		<category><![CDATA[APT]]></category>
		<category><![CDATA[Binary Analiz]]></category>
		<category><![CDATA[Bug Hunting]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Disassembly]]></category>
		<category><![CDATA[Exploit Geliştirme]]></category>
		<category><![CDATA[Hedef Odaklı Saldırı]]></category>
		<category><![CDATA[Malware Analiz]]></category>
		<category><![CDATA[Siber İstihbarat]]></category>
		<category><![CDATA[Siber Savaş]]></category>
		<category><![CDATA[Tersine Mühendislik]]></category>

		<guid isPermaLink="false">http://www.signalsec.com/blog/?p=1232</guid>
		<description><![CDATA[Çin&#8217;in Tibet ve Doğu Türkistan&#8217;da uyguladığı zulüm ve baskılardan hepimizin bir ölçüde haberi var. Son<a href="https://www.signalsec.com/blog/cin-tibet-siber-istihbarat/"><div class="moretag">Read More</div></a>]]></description>
				<content:encoded><![CDATA[<p>Çin&#8217;in Tibet ve Doğu Türkistan&#8217;da uyguladığı zulüm ve baskılardan hepimizin bir ölçüde haberi var. Son yıllarda özellikle Tibet&#8217;le bağlantılı kuruluşlar / aktivistler, bu zulmü ve baskıyı uluslararası platformlarda çeşitli organizasyonlar , protestolar ile dünyaya duyurmak için oldukça çaba sarfediyor. Tibet, son olarak G20 zirvesinde sesini bütün dünya liderlerine duyurmak ve dikkat çekmek için UniteforTibet kampanyası ve protestoları başlattı.</p>
<p style="text-align: left;">Çin, Tibet&#8217;in uluslararası platformlardaki bu hareketlerinden oldukça rahatsız. Özellikle yurt dışındaki Tibetli aktivistlerin ve organizasyonların faaliyetlerini izlemek için yıllardır siber saldırı yöntemlerine başvuruyor. Daha önce bildiğiniz üzere Çin, Doğu Türkistanlı aktivistleri de &#8220;Turkey Visa Form&#8221; isimli Adobe Reader Zero-day exploiti ile hedef almıştı. Çin, geçtiğimiz hafta G20 / UniteforTibet protestolarını düzenleyen Tibetli aktivistleri ise CVE-2012-0158 exploitiyle hedef aldı.</p>
<p style="text-align: left;">Çeşitli Tibetli kuruluşlara ve aktivistlere aşağıdaki spear-phishing emailinin gönderildiği tespit edildi. Email, UniteforTibet protestolarına destek çağrısı kılıfıyla kurbanı bir  Office dökümanını indirmeye ve çalıştırmaya yönlendiriyor;</p>
<div id="attachment_1234" style="width: 699px" class="wp-caption aligncenter"><a href="http://www.signalsec.com/blog/wp-content/uploads/Ekran-Alıntısı.png"><img class=" wp-image-1234" src="http://www.signalsec.com/blog/wp-content/uploads/Ekran-Alıntısı.png" alt="Ekran Alıntısı" width="689" height="389" /></a><p class="wp-caption-text">Office Word Exploit &#8211; MD5: 2e9613daf0685d36ff77aa05db665912</p></div>
<p style="text-align: left;">Office exploiti , sisteme  RasTls isimli bir zararlı yazılım drop ediyor. Bu zararlı yazılım, daha önce Çin devletinin desteklediği bir çok hedef odaklı saldırıda kullanılan Gh0st RAT  zararlı yazılımı.</p>
<div id="attachment_1236" style="width: 596px" class="wp-caption aligncenter"><a href="http://www.signalsec.com/blog/wp-content/uploads/rastls.png"><img class=" wp-image-1236" src="http://www.signalsec.com/blog/wp-content/uploads/rastls.png" alt="rastls" width="586" height="191" /></a><p class="wp-caption-text">Dropped Gh0st RAT &#8211; MD5: 2b9b41b731a117576008bcc2883de643</p></div>
<p style="text-align: left;">Zararlı Yazılımın Haberleştiği C&amp;C Sunucuları:</p>
<div id="attachment_1237" style="width: 544px" class="wp-caption aligncenter"><a href="http://www.signalsec.com/blog/wp-content/uploads/ccserv.png"><img class="size-full wp-image-1237" src="http://www.signalsec.com/blog/wp-content/uploads/ccserv.png" alt="ccserv" width="534" height="69" /></a><p class="wp-caption-text">IP Address: 210.209.118.87:8080</p></div>
]]></content:encoded>
			<wfw:commentRss>https://www.signalsec.com/blog/cin-tibet-siber-istihbarat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SEDNIT Espiyonaj Ekibinin Antivirüs Atlatma Hileleri</title>
		<link>https://www.signalsec.com/blog/sednit-ekibinin-antivirus-atlatma-hileleri/</link>
		<comments>https://www.signalsec.com/blog/sednit-ekibinin-antivirus-atlatma-hileleri/#comments</comments>
		<pubDate>Tue, 18 Nov 2014 19:13:28 +0000</pubDate>
		<dc:creator><![CDATA[SignalSEC]]></dc:creator>
				<category><![CDATA[Binary Analiz]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Disassembly]]></category>
		<category><![CDATA[Exploit Geliştirme]]></category>
		<category><![CDATA[Malware Analiz]]></category>
		<category><![CDATA[Siber İstihbarat]]></category>
		<category><![CDATA[Siber Savaş]]></category>
		<category><![CDATA[Tersine Mühendislik]]></category>
		<category><![CDATA[Vulnerability]]></category>
		<category><![CDATA[Vulnerability Research]]></category>
		<category><![CDATA[windbg]]></category>

		<guid isPermaLink="false">http://www.signalsec.com/blog/?p=1189</guid>
		<description><![CDATA[Bir  APT ve Siber Istihbarat Saldırısının Anatomisi  adlı yazımızda bahsettiğimiz SEDNIT siber espiyonaj grubunun operasyonları hala<a href="https://www.signalsec.com/blog/sednit-ekibinin-antivirus-atlatma-hileleri/"><div class="moretag">Read More</div></a>]]></description>
				<content:encoded><![CDATA[<p>Bir  APT ve Siber Istihbarat Saldırısının Anatomisi  adlı yazımızda bahsettiğimiz SEDNIT siber espiyonaj grubunun operasyonları hala devam etmekte. SEDNIT ekibi, zero-day exploitler dışında bilinen zafiyet ve exploitleri de sıkça kullanmakta. Özellikle bu ekip , operasyonlarında en çok, Office 2003-2007-2010 sürümlerini hedef alan  CVE-2012-0158  zafiyetini ve exploitini kullanıyor. CVE-2012-0158 zafiyeti eski ve exploiti mevcut olduğu için normal şartlar altında Antivirüsler tarafından yakalanıyor.  SEDNIT ekibi işte bu noktada Antivirüs firmaları ile bir nevi kedi-fare oyunu oynamakta.</p>
<p>SEDNIT &#8216; in en son operasyonlarda kullandığı exploiti 11.11.2014 tarihinde keşfettik.  Exploit , VirusTotal&#8217;e ilk defa 2 Kasım 2014 tarihinde gönderilmiş.  Exploit hala <strong>55 antivirüs&#8217;ün 52si tarafından</strong> tespit edilemiyor;</p>
<div id="attachment_1202" style="width: 689px" class="wp-caption aligncenter"><a href="http://www.signalsec.com/blog/wp-content/uploads/AV-Results.png"><img class=" wp-image-1202 " src="http://www.signalsec.com/blog/wp-content/uploads/AV-Results.png" alt="AV-Results" width="679" height="190" /></a><p class="wp-caption-text">Antivirus Scan Results</p></div>
<p>Antivirüsleri atlatmak için uyguladıkları yöntem ise gerçekten ilginç. Bildiğiniz üzere bizim için gizliliği önemli olan Office , PDF vb. döküman dosyalarını herhangi bir parola belirleyerek  şifreleyebiliyoruz.  İşte bu örneğimizde SEDNIT ekibi hazırladıkları excel exploitini ,  şifreleyerek Antivirüs&#8217;leri atlatma yöntemini seçmişler. Dosya içeriği encrypted olduğu için , imza tabanlı çalışan güvenlik ürünlerinin bu zafiyet / exploit için çıkardığı imzalar da faydasız oluyor.</p>
<div id="attachment_1203" style="width: 597px" class="wp-caption aligncenter"><a href="http://www.signalsec.com/blog/wp-content/uploads/encrypted-xls-data.png"><img class=" wp-image-1203" src="http://www.signalsec.com/blog/wp-content/uploads/encrypted-xls-data.png" alt="encrypted-xls-data" width="587" height="283" /></a><p class="wp-caption-text">XLS (Excel) Encrypted Data</p></div>
<p>Aslında ilginç olan nokta , saldırganların hazırladıkları  Excel exploit dosyasını şifrelemeleri değil. Şifrelemek için seçtikleri parola. Eğer şifrelenmiş bir Office dökümanını açmak isterseniz , bildiğiniz üzere uygulama sizden decrypt işlemi için kullanılacak parolayı girmenizi ister. Bu dosyanın bir <strong>exploit</strong> olduğunu ve saldırı amaçlı kullanıldığını düşünürsek ,  hedef kişiden dökümanı açtığında parola girmesini beklemek pek &#8220;user-friendly&#8221; değil :]</p>
<p>Saldırganlar bu noktada office&#8217;in bir özelliğinden faydalanmışlar. Office&#8217;in  döküman şifreleme için sunduğu  bir test / default  parolası mevcut ; &#8220;VelvetSweatshop&#8221; .  Eğer herhangi bir dökümanın şifrelenmesi için &#8220;VelvetSweatshop&#8221; varsayılan parolası kullanılırsa,  dosya içeriği şifreleniyor.  Ancak bu dosya daha sonra açılmak istediğinde, kullanıcıdan herhangi bir parola girmesi beklenmeden , otomatik decrypt edilip uygulama tarafından açılıyor. İşte saldırganlar  hazırladıkları exploitde bu hileyi kullanarak dökümanı şifreleyip Antivirüsleri atlatıyor,  exploit dökümanının açılması ve  çalışması için kurbanın herhangi bir parola girmesi de gerekmiyor.</p>
<div id="attachment_1204" style="width: 573px" class="wp-caption aligncenter"><a href="http://www.signalsec.com/blog/wp-content/uploads/BP-MSCOM.png"><img class=" wp-image-1204 " src="http://www.signalsec.com/blog/wp-content/uploads/BP-MSCOM.png" alt="BP-MSCOM" width="563" height="248" /></a><p class="wp-caption-text">Breakpoints</p></div>
<p>CVE-2012-0158 exploitlerinde ,  ret adres olarak MSCOMCTL.OCX  COM kütüphanesindeki 0x27583c30 adresinin kullanıldığını daha önceki yazımızdan da biliyorduk. Bu yüzden önce normal bir excel dosyası açıp , windbg&#8217;ı excel processine attach ettik. Daha sonra MSCOMCTL.OCX modülü yüklendiğinde debuggerın break olması için  &#8220;sxe ld mscomctl&#8221; komutunu kullandık.  MSCOMCTL kütüphanesi hafıya yüklendikten sonra da ,  27583c30 adresine breakpoint&#8217;imizi koyduk.  Böylece, exploitin,  stack&#8217;deki shellcode a zıplamak için RET adres olarak kullandığı 0x27583c30 adresinde yani &#8220;jmp esp&#8221; instructionında durduk.  Bu noktadan sonra hafızadan shellcode&#8217;u dump edebiliriz;</p>
<div id="attachment_1205" style="width: 428px" class="wp-caption aligncenter"><a href="http://www.signalsec.com/blog/wp-content/uploads/shellcode-in-memory.png"><img class=" wp-image-1205" src="http://www.signalsec.com/blog/wp-content/uploads/shellcode-in-memory.png" alt="shellcode-in-memory" width="418" height="144" /></a><p class="wp-caption-text">shellcode in da stack</p></div>
<p>Shellcode birden fazla aşamadan oluşuyor.  Hem sisteme netids.dll zararlı yazılımını drop ediyor hem de kullanıcıya sahte bir excel içeriği gösterip, exploit dosyasını sistemden siliyor.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/netids.png"><img class="aligncenter size-full wp-image-1206" src="http://www.signalsec.com/blog/wp-content/uploads/netids.png" alt="netids" width="627" height="92" /></a></p>
<p>Drop edilen netids.dll , registry&#8217;e eklenerek , rundll32 üzerinden çalıştırılıyor.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/cc-server.png"><img class="aligncenter size-full wp-image-1207" src="http://www.signalsec.com/blog/wp-content/uploads/cc-server.png" alt="cc-server" width="627" height="125" /></a></p>
<p>netids.dll  aynı zamanda bir komuta kontrol sunucusu ile HTTP üzerinden konuşuyor.</p>
<h3>Sonuç</h3>
<p>Görüldüğü üzere saldırganlar her geçen gün tekniklerini geliştirmeye devam ediyor.  Antivirüs vb. imza tabanlı çözümler ise bu yöntem ve tekniklere karşı yetersiz kalıyor.  <strong>TRAPMINE  </strong>ise imza tabanlı çalışmadığı için herhangi bir güncelleme ve konfigürasyon gerekmeksizin, bu yazıda bahsettiğimiz exploiti engellemeyi başardı;</p>
<p style="text-align: center;"><iframe src="//www.youtube.com/embed/GdZumB7yucw" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<h4>Yazarlar</h4>
<p>Ebubekir Karul</p>
]]></content:encoded>
			<wfw:commentRss>https://www.signalsec.com/blog/sednit-ekibinin-antivirus-atlatma-hileleri/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bir APT &amp; Siber İstihbarat Saldırısının Anatomisi</title>
		<link>https://www.signalsec.com/blog/bir-apt-ve-siber-istihbarat-saldirisinin-anatomisi/</link>
		<comments>https://www.signalsec.com/blog/bir-apt-ve-siber-istihbarat-saldirisinin-anatomisi/#comments</comments>
		<pubDate>Wed, 05 Nov 2014 21:37:29 +0000</pubDate>
		<dc:creator><![CDATA[SignalSEC]]></dc:creator>
				<category><![CDATA[Binary Analiz]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Disassembly]]></category>
		<category><![CDATA[Exploit Geliştirme]]></category>
		<category><![CDATA[Malware Analiz]]></category>
		<category><![CDATA[Siber İstihbarat]]></category>
		<category><![CDATA[Siber Savaş]]></category>
		<category><![CDATA[Tersine Mühendislik]]></category>

		<guid isPermaLink="false">http://www.signalsec.com/blog/?p=1153</guid>
		<description><![CDATA[APT (Advanced Persistent Threat)  tanımı şüphesiz son günlerde siber güvenlik dünyasının en popüler ve önemli<a href="https://www.signalsec.com/blog/bir-apt-ve-siber-istihbarat-saldirisinin-anatomisi/"><div class="moretag">Read More</div></a>]]></description>
				<content:encoded><![CDATA[<p>APT (Advanced Persistent Threat)  tanımı şüphesiz son günlerde siber güvenlik dünyasının en popüler ve önemli konularından biri. APT &#8216; yi kısaca hedef odaklı ,  kalıcı ve profesyonel bir ekip tarafından desteklenen siber saldırılar olarak tanımlayabiliriz.</p>
<p>Son zamanlarda , APT saldırılarının hedef seçtiği kurumlara ve saldırıların izine bakıldığında,   APT&#8217;yi besleyen &#8220;profesyonel ekip&#8221; in  %90 ihtimalle devlet destekli olduğu görülüyor.Devlet destekli  APT saldırıları genel anlamda hedef ülkelerin kritik kurumlarına siber istihbarat  amacı ile gerçekleştiriliyor. Rusya, Çin gibi siber güvenliğe önem veren ülkeler , siber istihbarat operasyonu düzenleyen ülkeler arasında ilk sırada yer alıyor. Bu yazımızda son günlerde , Rusya tarafından düzenlendiği düşünülen Sednit saldırılarının analizini sizlerle paylaşacağız. Sednit grubunun düzenlediği saldırılarda hedef aldığı bazı ülkeler ve kurumlar;</p>
<ul>
<li>- Ukrayna ve Gürcistan Bakanlıkları,</li>
<li>- Çeçenistan Direnişinin Medyası KavkazCenter,</li>
<li>- Çeçen Konusunda Yazan Gazeteciler,</li>
<li>- NATO kurumları</li>
<li>- AMAC (Ankara Military Attache Community)</li>
<li>- Bazı konsolosluk ve elçilikler</li>
</ul>
<p>Hedef kurumlara bakıldığında bu saldırılarının arkasında Rusya Devletinin olduğu tezi güçleniyor.</p>
<p><a href="http://www.signalsec.com/blog/wp-content/uploads/email2.png"><img class="aligncenter size-medium wp-image-1160" src="http://www.signalsec.com/blog/wp-content/uploads/email2.png" alt="email2" width="300" height="187" /></a></p>
<p>Sednit saldırıları bir çok APT saldırısında olduğu gibi ilk etapta hedef kişi ve kurumların ilgisini çekecek spear phishing emailleri ile başlıyor. Gönderilen bu emailler , yine hedef kişinin ilgisini çekecek bir attachment  içeriyor. Bu attachmentlar aslında zero-day ve public bir zafiyeti sömüren Word , Excel, Powerpoint exploiti oluyor.</p>
<p style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/attack-overview.png"><img class="aligncenter  wp-image-1158" src="http://www.signalsec.com/blog/wp-content/uploads/attack-overview.png" alt="attack-overview" width="255" height="270" /></a></p>
<p style="text-align: left;">Eğer hedef kişi maildeki DOC/RTF/XLS dosyasını açarsa,  exploit  Office yazılımındaki bir zafiyeti sömürerek  sisteme &#8220;saver.scr&#8221; isimli PE dosyasını drop edip çalıştırıyor. &#8220;saver.scr&#8221; ise  sisteme istihbarat faaliyetlerini gerçekleştirecek zararlı yazılımı (&#8220;install.exe&#8221;) bulaştırıyor. Exploit çalıştıktan sonra -genelde- Word veya Excel processi sonlanacağı için ,  saver.scr aynı zamanda  kullanıcının şüphelenmemesi için sahte bir Excel ve Word dosyası da drop edip çalıştırıyor.</p>
<p style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/dropped-files.png"><img class="aligncenter  wp-image-1162" src="http://www.signalsec.com/blog/wp-content/uploads/dropped-files-300x183.png" alt="dropped-files" width="340" height="223" /></a></p>
<p style="text-align: center;"><em>Exploitin ve saver.src &#8216; nin sisteme drop ettiği dosyalar</em></p>
<p style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/decoy-process-saver.png"><img class="aligncenter  wp-image-1161" src="http://www.signalsec.com/blog/wp-content/uploads/decoy-process-saver.png" alt="decoy-process-saver" width="320" height="44" /></a></p>
<p style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/IDF-Spokesperson.png"><img class="aligncenter  wp-image-1163" src="http://www.signalsec.com/blog/wp-content/uploads/IDF-Spokesperson.png" alt="IDF-Spokesperson" width="320" height="211" /></a></p>
<p style="text-align: center;">&#8220;saver.scr&#8221; nin şüphe uyandırmamak için çalıştırdığı sahte Word dosyası.</p>
<p style="text-align: left;">Sednit &#8216; in kullandığı saldırılar genel itibariyle CVE-2012-0158  zafiyetini sömüren Office exploitleri. Bu zafiyet 30 ay önce yamanmış olmasına rağmen hala hedef odaklı saldırılarda çok sık kullanıyor.  Sednit&#8217;in Powerpoint&#8217;i hedef alan bir zero-day exploit kullandığı da görüldü.</p>
<p style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/rtf-exp.png"><img class="aligncenter  wp-image-1168" src="http://www.signalsec.com/blog/wp-content/uploads/rtf-exp.png" alt="rtf-exp" width="568" height="267" /></a></p>
<p style="text-align: center;"><em>Sednit saldırılarında kullanılan, CVE-2012-0158 buffer overflow zafiyetini sömüren exploit. Ret addres olarak 0x27583C30 kullanılmış.</em></p>
<p style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/retaddres.png"><img class="aligncenter size-full wp-image-1169" src="http://www.signalsec.com/blog/wp-content/uploads/retaddres.png" alt="retaddres" width="436" height="119" /></a></p>
<p style="text-align: center;"><em>Görüldüğü gibi kullanılan RET adres, MSCOMCTL kütüphanesinde &#8220;jmp esp&#8221; instructionına tekabül ediyor.</em></p>
<p style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/createofficefile.png"><img class="aligncenter  wp-image-1171" src="http://www.signalsec.com/blog/wp-content/uploads/createofficefile.png" alt="createofficefile" width="465" height="218" /></a></p>
<p style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/CreateFile.png"><img class="aligncenter  wp-image-1170" src="http://www.signalsec.com/blog/wp-content/uploads/CreateFile.png" alt="CreateFile" width="481" height="174" /></a><em>Saver.scr &#8216; nin CreateFileA ile oluşturduğu dosyalar </em></p>
<p style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/loadlibrary-shellexecute.png"><img class="aligncenter  wp-image-1172" src="http://www.signalsec.com/blog/wp-content/uploads/loadlibrary-shellexecute.png" alt="loadlibrary-shellexecute" width="369" height="307" /></a></p>
<p style="text-align: center;"><a href="http://www.signalsec.com/blog/wp-content/uploads/shelllexecute.png"><img class="aligncenter  wp-image-1173" src="http://www.signalsec.com/blog/wp-content/uploads/shelllexecute.png" alt="shelllexecute" width="360" height="169" /></a></p>
<p style="text-align: center;"><em>Saver.scr&#8217;nin oluşturulan dosyaları ShellExecute ile açılması</em></p>
<p style="text-align: left;"><strong>Sonuç</strong></p>
<p style="text-align: left;">Görüldüğü üzere günümüzde artık siber saldırılar oldukça profesyonel kurgulanmakta. APT olarak tabir edilen saldırıların genel giriş noktası (infection vector) ise %99 ihtimalle client-side bir zafiyetin sömürülmesiyle, yani exploit ile gerçekleşmekte. Kullanılan client-side exploitler ise genelde Office, PDF, Flash ve Browser yazılımlarını hedef almakta. Kurumların APT saldırılara karşı kullandığı ürünler özellikle infection vector dediğimiz , sisteme giriş noktasını sağlayan exploitation aşamasını engellemede başarılı olmalı. Infection vector başarıyla engellenebilirse, APT &#8216; nin diğer aşamalarının da önüne geçilmiş olur. APT ürünü seçiminde mümkünse testlerde zero-day de dahil olmak üzere çeşitli ileri seviye client-side exploitler kullanılmalı.  Metasploit &#8216; den oluşturulacak exploitler ile yapılacak testler , APT ürünü seçimi için gerçekçi olmayacaktır. Çünkü saldırganlar eski (public) bir zafiyeti hedef alan bir exploit kullansalar bile, güvenlik sistemlerini atlatmak için metasploit gibi sadece payload üzerinde değil dosya formatı üzerinde de birçok değişiklik ve trick uyguluyor.</p>
<p style="text-align: left;"><strong>TRAPMINE  vs APT:</strong></p>
<p style="text-align: left;">TRAPMINE &#8216; ın bu blog yazısında bahsettiğimiz ve çeşitli güvenlik gruplarının farklı isimlerle tanıttığı (SEDNIT, Pawn Storm ve Sandworm) APT saldırıları engellemedeki başarısı üzerine bir video;</p>
<p><iframe src="//www.youtube.com/embed/9UfZ6rWfSl0" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>https://www.signalsec.com/blog/bir-apt-ve-siber-istihbarat-saldirisinin-anatomisi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
