Huawei E353 CSRF Zafiyeti Geçtiğimiz Haziran ayının ortasına kadar 2.5 Kg ağırlığında nur topu gibi bir dizüstü bilgisayara sahiptim. Bu nedenle sabahları işe giderken, akşamları işten dönerken veya bir cafede otururken biraz makale okumak istediğimde ağırlığı ve büyüklüğü nedeniyle onu yanımda taşıyamıyordum. Onun yerine sim kart girişine sahip, hafif ve portatif Android tabletim yıllardır işimi görüyordu. Tablet kullandığım için, 2-3 yıl önce Turkcell den data hattı satın alırken yanında verilen Huawei marka E353 model 3G USB modemi (Turkcell VINN) çok kullanma fırsatım olmamıştı. Haziran ayından sonra ise ultrabook satın aldığım için tabletimle yollarımı ayırarak 3G modemi aktif olarak kullanmaya başladım. 3G USB modemler, yanında dizüstü bilgisayar taşıyan ve güvenlik kaygısı nedeniyle güvenlilirliğinden şüphe ettiği kablosuz ağlara bağlanmak istemeyen bilişimciler için büyük bir nimettir. 3G USB modemin aslında bilgisayarımıza bağladığımız, üzerinde yönetilebilir olmayan bir işletim sisteminin çalıştığı, kapalı bir kutu olduğunu ve onun da zafiyetleri olabileceğini çoğu zaman aklımızın ucuna getirmeyiz. Modemi sıkça kullanmaya başladıktan sonra boş bir zamanımda modeme hızlıca göz atmaya ve canımı acıtabilecek ilk zafiyeti tespit ettikten sonra gerisini incelemek üzere sizlere havale etmeye karar verdim. 3G modemi taktığımde karşıma otomatik olarak açılan modem web arayüzünü incelemeye başladım. Yaptığım ilk iş sayfanın kaynak kodlarına ve oradan da sayfa üzerinde kullanılan JavaScript kodlarını incelemek oldu. JavaScript kodlarını incelediğimde, modeme ajax çağrıları ile çeşitli komutlar gönderilebildiğini gördüm.
traffic.html sayfasında yer alan Data paketinizden kalan miktarı öğrenmek için tıklayın kısmına tıkladığımda, data hattımından 2222 numaralı telefon numarasına KALAN smsi gittiğini gördüm. Daha sonra bunun tam olarak nasıl gerçekleştiğini görmek için trafiği Burp Suite PRO aracı ile incelemeye karar verdim.
Dikkatimi ilk çeken nokta, yapılan isteklerde Cross-Site Request Forgery (CSRF) saldırısına karşı herhangi bir önlemin alınmamış olmasıydı. Cross-Site Request Forgery (CSRF) saldırısını kısaca, kullanıcının haberi ve bilgisi olmadan, internet tarayıcısının hedef alınan web uygulamasına doğru isteklerde bulunmasını sağlamaktır. Örneğin kullanıcı hacklenmiş bir X haber sitesini ziyaret ediyor ve bu site üzerinden saldırgan, kullanıcının modeminin DNS değiştirme sayfasına (örnek: 192.168.1.1/dns.php) kullanıcısının haberi ve bilgisi olmadan DNS adresini 1.2.3.4 olarak güncelle şeklinde istek (HTTP POST) gönderiyor. Bu sayede artık kullanıcının tüm DNS istekleri, art niyetli kişinin DNS sunucusu üzerinden gerçekleşiyor ve kullanıcı gitmek istediği web sitesi yerine art niyetli kişinin web sitesine yönlendirilebiliyor.
Bu CSRF zafiyeti, istismar eden art niyetli kişiler ve dolandırıcılar tarafından nasıl kötüye kullanılır diye düşündüğümde aklıma ilk gelen, 3G modeme art niyetli kişilerin kontrolü olan bir web sitesi üzerinden premium SMS servislere SMS gönderilmesi sağlanarak haksız kazanç sağlanabileceği geldi. Bunun dışında diyelim ki ayrı bir data hattınız yok ve mevcut sim kartınızı 3G modeminiz ile kullanıyorsunuz. Bu durumda art niyetli kişiler, sms yönlendirme servisi ile size gönderilen smsleri başka bir telefon numarasına yönlendirebilirler. Bu senaryoları çoğaltmak mümkün olduğu için hızlıca, pratikte bunu kötüye kullanmak ne kadar kolay diye kendi cep telefonuma CSRF ile web sitesi üzerinden SMS atarak kontrol etmek istedim. Burp Suite PRO ile gelen Generate CSRF PoC özelliği ile herhangi bir isteği çok kolay bir şekilde CSRF zafiyetini istismar eden bir web forma aşağıdaki gibi dönüştürebilirsiniz. Bu şekilde bir form oluşturup bunu web siteme (https://www.mertsarica.com/csrf.html) yükledim.
Daha sonra bu adresi 3G modem ile internet bağlandığım bilgisayarımdan çağırdığımda ise cep telefonuma SMS geldi ve oyun bitmiş oldu :)
Bu zafiyete karşı ne yapabilirim diye soracak olursanız, Turkcell ve/veya Huawei ile iletişime geçip bu zafiyeti ortadan kaldıran bir yama var mı diye sorabilir, varsa yükleyebilir veya bu modemi çöpe atıp farklı bir modem ile yolunuza devam edebilirsiniz. Unutmayın, nasıl kullanmış olduğumuz işletim sistemimizin güvenlik yamalarının güncel olmasına güvenliğimiz için önem veriyorsak, aynı şekilde kullanmış olduğumuz aygıtların, cihazların da donanım yazılımlarının, yamalarının güncel olduğuna önem vermeliyiz. Bir sonraki yazıda görüşmek dileğiyle herkese güvenli günler dilerim.
Cryptokiller Aracı Geçtiğimiz haftalarda, kullanıcıların ve kurumların oldukça başını ağrıtan Cryptolocker zararlı yazılımı üzerinde çalışırken, işletim sistemine Cryptolocker zararlı yazılımının bulaştığını tespit edip, işlemi (process) durduran Cryptokiller adında bir araç hazırladım. Windows 7 Enterprise SP1 (x86) de test ettiğim bu aracı 5 farklı Cryptolocker zararlı yazılımı üzerinde test ettikten sonra yeni bir salgın başlamadan önce herkesin kullanımına sunma kararı aldım. İlerleyen zamanlarda bu aracı kaynak kodu ile birlikte burada yayınlayacağım. Bu sayede aracı ihtiyaçlarınıza göre iyileştirme/geliştirme imkanınız olacaktır. Aracın Kısıtları: 1. Cryptokiller aracı, Cryptolocker zararlı yazılımı sisteme bulaşmadan önce sistem üzerinde çalışıyor olması gerekmektedir. 2. Cryptolocker ı tespit etmek için sistem üzerinde en az bir dosyanın Cryptolocker tarafından şifrelenmesi gerekmektedir. 3. Aracın yönetici yetkisi ile çalıştırılması gerekmektedir. 4. 32 bit Windows işletim sistemi üzerinde çalışmaktadır. 5. Sistem üzerinde Python 2.7 ve Winappdbg modülünün yüklü olması gerekmektedir. Aracı hidden parametresi ile çalıştırdığınız taktirde (cryptokiller.exe hidden) GUI olmadan çalışabilmekte ve gerçekleştirdiği işlemlerlerle ilgili bilgileri C:\Cryptokiller klasörü altına kayıt etmektedir. Araç ile ilgili gelişmelerden haberdar olmak için https://www.mertsarica.com/cryptokiller adresini ziyaret edebilirsiniz. Uyarı: Crytokiller, POC olarak geliştirdiğim bir araçtır bu nedenle hataları/eksikleri olabilir. Aracı prototip olarak düşünmeli ve bunu göz önünde bulundurarak kullanmanızı öneririm. İndir (Windows 7 Enterprise SP1 x86 da test edilmiştir.) Güncelleme (19.11.2015): Cryptokiller aracının kaynak kodu yayınlanmıştır. ENGLISH While I was working on a Cryptolocker malware that targeted Turkish users, I decided to create a POC tool called Cryptokiller (tested on Windows 7
Enterprise SP1 x86) which is able to detect and stop the infection and also kills the infected process. I tested it on 5 different Cryptolocker malwares. I will share the source code of Cryptokiller soon so you will be able to modify it for your needs. Limitations: 6. Cryptokiller must be running on the operating system before the infection. 7. Cryptokiller is able to detect & kill the Cryptolocker process after at least one file is encrypted by Cryptolocker. 8. It must be run must under an account with administrator privileges. 9. Supports only 32 bit Windows 7 at the moment. 10. Python 2.7 and Winappdbg module must be installed on the system. You can run Cryptokiller without GUI by running it with hidden parameter. (cryptokiller.exe hidden). You will find the log file inside C:\Cryptokiller folder. Warning: Cryptokiller is POC tool. It may have bugs/issues so keep in mind. Download (Tested on Windows 7 Enterprise SP1 x86) Update (19.11.2015): Source code of Cryptokiller tool released. POC Video: Cryptokiller vs 5 Cryptolocker Malwares [pro-player type= mp4 ]https://www.mertsarica.com/videos/cryptokiller3.mp4[/pro-player] Rehber Hırsızı Hesperbot Son 1.5 yıldır hız kesmeden sahte fatura e-postaları ile ağına internet bankacılığı kullanıcılarını düşürmeye çalışan Hesperbot için son aylarda daha fazla mesai saati harcadığımı farkettim. Son salgınların çoğunda, aynı tip sahte Turkcell fatura e-postasının gönderilmesine, art niyetli kişilerin fatura ve Turkcell kelimelerinden oluşan alan adlarını kullanıyor olmasına ve bankaların bununla ilgili uyarı mesajları gönderiyor olmasına rağmen, kullanıcıların hala bu oltaya düşüyor olmaları da, hem kurumlar hem de medya tarafından Hesperbot a daha fazla dikkat çekilmesi gerektiğini gösteriyordu. (Heartbleed virüsü gibi trajikomik haberlere imza atan medyamız, Hesperbot ile ilgili daha çok haber yer vermiş olsaydı eminim bu zamana dek daha az vatandaşımız bu dolandırıcıların tuzağına düşmüş olurdu!)
Hesperbot un en son salgında kullandığı sahte e-posta mesajını ve zararlı yazılımı yaymak için kullandığı web sitesini aşağıda görebilirsiniz. Sahte Fatura E-postası: Sahte Fatura Web Sitesi: ESET in Hesperbot raporu incelendiğinde, zararlı yazılımın hedef sistemden eposta adreslerini çaldığı ve uzaktaki sunucuya bu bilgileri ilettiği belirtiliyordu fakat bununla ilgili teknik detaylara yer verilmemişti. Hesperbot u detaylı bir şekilde incelerken, bulaştığı sistemdeki e-posta bilgilerini nasıl ele geçirdiğini ve uzaktaki sunucuya nasıl gönderdiğini inceleme fırsatım olduğu için bunu sizlerle de paylaşmak istedim. Hesperbot un hedef sisteme bulaştıktan bir zaman sonra zararlı yazılımı yaymak amacıyla kullanmış olduğu sunucudan ege.xe adında bir yazılım
indirdiğini tespit ettim. Paketlenmiş (packed) olan bu yazılımın uzantısını.exe olarak değiştirip her zamanki gibi Immunity Debugger aracı ile incelemeye başladım. Zararlı yazılımı paketinden çıkardıktan sonra ilk iş olarak karakter dizilerini (strings) incelemeye başladım. WABOpen fonksiyonundan bunun adres defterinde yer alan e-posta adres bilgilerini çaldığını tahmin etmem pek güç olmadı. Immunity Debugger ile yazılımı çalıştırdığımda herhangi bir HTTP trafiği oluşturmadığında birşeylerin ters gittiğini anladım. Yazılım çalışmasına rağmen herhangi bir web trafiği üretmemesi nedeniyle bir yerlerde kısır döngüye girmiş olabileceğinden şüphe ederek PAUSE butonuna bastım. Ardından kendimi ntdll.dll içinde bulduğum için Debug -> Execute till user code ile yazılımın koduna geçiş yaptım. Sistem üzerinde yüklü olan Outlook üzerinde geçerli bir profil olmadığı için çağırılan MAPILogonEx fonksiyonunun [MAPI_E_LOGON_FAILED(80040111)] hata alması nedeniyle kısır döngüden çıkamadığını gördüm ve akışın POP EDI komutu üzerinden devam etmesini sağladım. Akışın devam edebilmesi adına Outlook un adres defterine 2 adet kayıt girdim ve programın devam etmesini sağladım.
Yazılım son sürat çalıştıktan sonra oluşan trafiği Wireshark ile izlediğimde, uzaktaki sunucuya (http://turkcell-efatura.net/cpmag/mail.php) gönderilen eposta bilgilerinin okunamaz halde (encoded) gönderildiğini gördüm ve bu fonksiyonu bulmaya karar verdim.
Immunity Debugger ile yazılım üzerinde biraz gezindikten sonra e-posta adreslerini gizleyen XOR işlemini buldum. Bu işlem ile e-posta adresinde yer alan her bir bayt, bir sonraki bayt ile (mert.sarica örneğinde m harfi e ile gibi) XOR işlemine sokuluyor ardından işlem tamamlandıktan sonra sunucuya gönderiliyordu.
XOR işlemi tersine çevrilebilir olduğu için Python ile Hesperbot Email Decoder adında ufak bir araç yazarak ağ trafiğinden elde edilen gizlenmiş eposta adreslerini okunur hale getirebildim. Bir sonraki yazıda görüşmek dileğiyle herkese güvenli günler dilerim.
Spy-Net RAT Analizi FatMal, Hesperbot, Zeus derken neredeyse 2013 yılını geride bırakıyoruz. Son yayımlanan tehdit raporlarına baktığımızda zararlı yazılım salgınlarında Türk kullanıcılarının eskiye kıyasla daha sık hedef alındığını görüyoruz. Zararlı yazılım analizi üzerine yan dal yapmaya çalışan bir sızma testi uzmanı olarak, son yıllarda artan siber saldırılara bir de bu salgınlar eklendiğinde, son kullanıcıların, kurumların geçmiş yıllara kıyasla güvenliğe, uzman personele daha çok önem vermeleri gerektiğini söyleyebilirim. Örneğin yıllar önce sızma testini 11. görev olarak gören ve 10 işi aynı anda götürmeye çalışan bir uzmana yükleyenlerin, bugün sadece sızma testi yaptırmak için 3-4 kişilik ekipler oluşturduklarını görebiliyoruz. Artan zararlı yazılım salgınları ve APT tehditleri ile zaman içinde zararlı yazılım analizi becerisine sahip uzmanlara da aynı şekilde talebin artacağını tahmin ediyorum dolayısıyla kendinizi yarına hazırlamak için zararlı analizi konusunda bol bol pratik yapmanızı tavsiye edebilirim. Pratik yapmak için benim gibi sağdan, soldan elde ettiğiniz örnek zararlı yazılımları inceleyebilirsiniz. Geçtiğimiz günlerde yine bir arkadaşım, kendisine gelen bir sahte e-postayı benimle paylaştı. 2012 yılından bu yana gönderilen JAR uzantılı sahte KVK, Yurtiçi Kargo e-postalarına son olarak sahte Turkcell e-postası eklendi. Daha önce incelediğim benzer örneklerde, art niyetli kişiler Vodafone 3G modem üzerinden zararlı yazılım bulaşan sistemler ile iletişime geçiyorlardı. Zararlı yazılımlarda geçen Türkçe fonksiyon isimleri de geliştiricilerin yabancı olmadıklarını ortaya koyuyordu. Aradan uzun bir zaman geçtikten sonra gönderilen son örneğe göz atmaya ve bu konuda sizleri bilgilendirmeye karar verdim. Sahte e-postanın ekinde Sanal POS Kontor Odeme İşlemleri.jar isimli bir dosya yer alıyordu. JAR uzantılı dosyayı açtığımda içinden BASE64 ile encode edilmiş 777.exe ve POS Kontör İşlemleri Odeme_Listesi.xls dosyaları ile birlestirici.class ve x/reverse.class dosyaları çıktı.
birlestirici.class dosyasını kaynak koduna çevirip analiz ettiğimde 777.exe ve POS Kontör İşlemleri Odeme_Listesi.xls dosyalarını BASE64 ile decode edip çalıştırdığını gördüm.
Zararsız excel dosyası bir kenara, 777.exe dosyasını BASE64 ile decode ettikten sonra (DecodedBase64.exe) Immunity Debugger hata ayıklama aracı (debugger) ile analiz etmeye başladım. Paketlenmiş olan bu dosyayı adım adım analiz ettikten sonra Visual Basic ile yazılmış başka bir yazılımı hafızada açtığını (unpack) gördüm. Statik analiz için OEP (original entry point) üzerinde programı hafızadan diske CHimpREC aracı ile DecodedBase64-_.exe adı altında kayıt (dump) ettim. Ardından bu yazılımı Malwr (cuckoo sandbox) sitesine yüklediğimde analizin başarısızlıkla sonuçlandığını gördüm.
Ardından bu yazılımın da (DecodedBase64-_.exe), UPX ile derlenmiş başka bir yazılımı hafızaya açtığını gördüm ve bunu hafızadan, diske _001A7000.exe adı altında kayıt edip, UPX ile açtım (unpack).
Statik analiz ile yazılım üzerindeki dizilerden bunun Spy-Net RAT olabileceğini düşündüm. Spy-Net RAT i genel olarak analiz ettiğimde, istemcinin bağlanacağı sunucu adresi, şifre, sistem üzerinde çalışırken kullanacağı dosya adı gibi çeşitli bilgileri, oluşturulurken (server.exe oluşturma), 0xBC ile XOR layarak ####@#### dizileri arasına kaydettiğini tespit ettim. Ardından Python ile bu parametreleri tespit edip, çözebilrn (XOR), Spy-Net Config Decrypter adı altında ufak bir araç hazırladım. Bu aracı, Spy-Net istemcisi (_001A7000.exe (klasik server.exe)) üzerinde çalıştırdığımda bana, bağlanacağı ip adresinden (microsoftupdatedns.redirectme.net:115), şifresine, sistem üzerinde kendini gizlemek için kullandığı dosya adına (ctfmon.exe) kadar tüm bilgileri verdi. IP adresini (81.6.76.156) kontrol ettiğim de ise yine Vodafone IP bloğuna ait olduğunu gördüm.
Sıra bunun gerçekten Spy-Net RAT olup olmadığını teyit etmeye geldiğinde, sanal makineme 115. bağlantı noktasını dinleyen Spy-Net v2.6 sunucusu kurup, hosts dosyasına 127.0.0.1 microsoftupdatedns.redirectme.net satırını ekledim. Son olarak _001A7000.exe dosyasını çalıştırdığımda ise Spy-Net arabirimi üzerinden bağlantının başarıyla gerçekleştiğini gördüm ve bu sayede bunun Spy-Net zararlı yazılımı olduğunu teyit etmiş oldum. Umarım herkes için faydalı bir analiz yazısı olmuştur. Bir sonraki yazıda görüşmek dileğiyle herkese güvenli günler dilerim. Güncelleme: Art niyetli kişiler, 29.10.2013 tarihi itibariyle ADSL fatura Son ödeme tarihi 29/10/2013 olan 23,00 TL tutarındaki güncel faturanız başlıklı sahte e-posta gönderiyorlar. Bu e-postada yer alan bağlantı adresi (link) ziyaret edildiği takdirde www.lotusgrill.com.tr/tt.net.jar adresinden yukarıda analiz ettiğim benzer bir zararlı JAR dosyasını indiriliyor ve ardından microsoftupdatedns.redirectme.net adresine 112. bağlantı noktasından bağlanıyor.