Quantcast
Channel: Bilgi Güvenliği AKADEMİSİ
Viewing all articles
Browse latest Browse all 331

Karmaşıklaştırılmış (Obfuscated) Javascript Analizi

$
0
0
Sıklıkla karşılaşılan istismar senaryolarından biri olan HTML dokümanlarında veya PDF dosyalarındaki gömülü Javascipt kodlarını sadece JS bilgisi kullanarak analiz etmek genelde mümkün olmamaktadır. Genelde zararlı JS kodları amaçlarını gizlemek adına obfuscation denilen kodu okunamaz hale getirme yöntemleri uygulanmış olarak bulunur. Bu da kodu tekrar okunabilir hale getirme (deobfuscation) ihtiyacını doğurur. 

Yazıda ünlü Blackhole istismar kitinin bir türevini okunabilir hale getirme senaryosu üzerinden JSDetox ve JS-beautify yazılımlarının JS deobfuscation amaçlı kullanımı anlatılmıştır.
Kullanılan Araçlar:
  • Blackhole Exploit Kit Örneği (e1ab25769040b66e644f0184a541821f19946bcd094bef2bb69762511eeeed9e)
  • JSDetox
  • JS-beautify


Obfuscation işlemi uygulanarak okunması zorlaştırılan Javascript kodlarını analiz etmeye yarayan jsdetox uygulaması çalıştırılır. Kurulum aşamalarıyla uğraşmamak için REMnux 5 dağıtımı kullanılabilir. REMnux’te JSDetox’u çalıştırmak için terminalden şu komutlar girilir.

cd /usr/local/jsdetox/
./jsdetox
Beklenen çıktı aşağıdaki gibidir.

[JSDetox] Loading framework ... done.
[JSDetox] Starting webserver (hit Ctrl-C to quit) ...
=> Padrino/0.10.7 has taken the stage development at http://127.0.0.1:3000
[2014-05-27 17:25:46] INFO  WEBrick 1.3.1
[2014-05-27 17:25:46] INFO  ruby 1.9.2 (2011-07-09) [i686-linux]
[2014-05-27 17:25:46] INFO  WEBrick::HTTPServer#start: pid=1668 port=3000

Çıktıda da gözüktüğü üzere tarayıcıdan http://127.0.0.1:3000 adresine bağlanarak JSDetox’un web arayüzüne erişilir.

Eğer analiz edilecek doküman sadece JS kodlarından oluşuyorsa “Code Analysis” sekmesindeki aksi halde “HTML Document” sekmesindeki “Upload” tuşu kullanılarak doküman yüklenir. İçeriği doğrudan textarea alanına yapıştırmak da mümkündür. Örnek dosya HTML dokümanı olduğu için ilgili sekmedeki “Extract Scripts” butonuna basılarak JS kodları dışındaki kodlar ayıklanır.  “Analyze” tuşuna basıldığında anlamsız gözüken uzun bir bloğun ardından çalıştırılabilir durumdaki JS kodları görülür.

Selection_001.png

Bu bölümün deobfuscation işlemini yapan bölüm olduğu varsayımı yapılabilir.

Daha sonra sayfanın sol tarafındaki “Execute eval() statements” seçeneği işaretlenip JSDetox’un eval fonksiyonlarını çalıştırması sağlanıp “Execute” tuşuna basılır. Bu sayede kodun  çalışma anında yaptığı gibi kendini deobfuscate etmesi sağlanır. Execute sekmesine gelindiğinde birçok kez “eval” fonksiyonunun çağırıldığı görülür. Genelde açma işlemi tamamlandıktan sonra esas işlevleri gerçekleştirecek olan kod en sondaki “eval” fonksiyonunun parametresi olarak bulunabilir. Bu bölümü analiz etmek için de listeden son “eval() call executed” uyarısının “Show Code” tuşuna tıklanıp “Send to Analyze” denilir. Bu sayede ilgili kod analiz ekranında görülür.

Selection_004.png

“Reformat” butonuna basılarak kod daha okunaklı hale getirilir. Örnekte bu işlem hata ile sonuçlanacaktır, bir sebepten JSDetox bu kodu parse edememektedir. Bu durumda mevcut diğer araçlarla devam etmek en pratik seçenek olacaktır.

Son olarak kısmen deobfuscate edilmiş edilmiş kod bir dosyaya kaydedilir (tmp.js) ve JS-beautify uygulaması ile tam okunaklı hale getirilir. Bunun için terminalden
js-beautify tmp.js > deobfuscated.js
komutu girilir.

Artık deobfuscated.js dosyası bir metin düzenleyici ile açılarak içeriği rahatlıkla analiz edilebilir. Bu analizden istismar edilmeye çalışılan zafiyetler, kullanılan shellcode, sisteme yüklenmek istenen zararlı ve benzeri detaylar elde edilebilir.

Selection_005.png

Viewing all articles
Browse latest Browse all 331

Trending Articles


Mide ağrısı için


Alessandra Torre - Karanlık Yalanlar


Şekilli süslü hazır floodlar


Flatcast Güneş ve Ay Flood Şekilleri


Gone Are the Days (2018) (ENG) (1080p)


Yildiz yükseltme


yc82


!!!!!!!!!! Amın !!!!!!!!!


Celp At Nalı (Sahih Tılsım)


SCCM 2012 Client Installation issue