automated malware analysis

30
Mobil Malware Analiz Süreçlerini Otomatikleştirme İbrahim BALİÇ [email protected]

Upload: ibrahim-balic

Post on 01-Jul-2015

285 views

Category:

Technology


2 download

DESCRIPTION

Automated malware analysis

TRANSCRIPT

Page 1: Automated malware analysis

Mobil Malware Analiz SüreçleriniOtomatikleştirme

İbrahim BALİÇ[email protected]

Page 2: Automated malware analysis

Ajanda

• Ben Kimim• Malware Analiz• Süreçler• Otomasyon• Örnek• Sorular

Page 3: Automated malware analysis

Ben Kimim?

• Security Researcher @ BalichIT• Online Projeler

Android Sandbox – http://www.androidsandbox.netAndroid Remote Admin/Access Tool – https://github.com/ibrahimbalic/AndroidRAT

• Devameden ProjeleriOS Sandbox – http://www.iossandbox.comApprowler – http://www.approwler.com

• Offline ProjelerOnline Mobile App Builder – http://uygu.laMalTrack – http://maltrack.balicbilisim.com

• Apple, Facebook, Opera, Google vs. @ Whitehat Hacker• Links

SQLMap CSRF Bypass – http://www.exploit-db.com/wp-content/themes/exploit/docs/34193.pdfSoftware Vulnerabilities – http://www.exploit-db.com/wp-content/themes/exploit/docs/29139.pdfMobil Forensics 1 – http://www.bilgiguvenligi.gov.tr/adli-analiz/mobile-forensics-bolum-1.htmlMobil Forensics 2 – http://www.bilgiguvenligi.gov.tr/adli-analiz/mobile-forensics-bolum-2.htmlAndroid Internals – http://www.bilgiguvenligi.gov.tr/mobil-cihaz-guvenligi/android-internals-part-i.htmlBilgi Güvenliğine Giriş – http://www.bilgiguvenligi.gov.tr/veri-gizliligi/bilgi-guvenligine-giris.html

Page 4: Automated malware analysis

Malware Analiz

“Malware, kullanıcı veya hedef sistemlere zarar veren her türlü uygulama için kullanılan “Zararlı Uygulama” kavramının

genel adıdır.”

Page 5: Automated malware analysis

Malware Analiz

Uygulama Nedir?“Elektronik araçların Önceden belirlenmiş standartları çerçevesinde

bir araya getirilmiş görevler/işlemler zinciridir.”

Page 6: Automated malware analysis

Malware Analiz

Standartlar Nedir?• İşlemci Mimarisi (CPU)• İşletim Sistemi (OS)• Framework (library)

........

Page 7: Automated malware analysis

Malware Analiz

+ Diğer donanımlar=

+ OS (Operating System)

Page 8: Automated malware analysis

Malware Analiz

Standartlar Nedir?

Page 9: Automated malware analysis

Malware Analiz

main ( int arc, char **argv ) {return 0;

}

x64 Mips

Page 10: Automated malware analysis

Malware Analiz

#include <stdio.h>

main ( int arc, char **argv ) {return 0;

}

int ibrahimbalic(int a) {return 0;}

./nm –A istsecII

Page 11: Automated malware analysis

Malware Analiz

#include <stdio.h>

main ( int arc, char **argv ) {return 0;

}

int ibrahimbalic(int a) {return 0;}

./objdump -t istsecII

Page 12: Automated malware analysis

Malware Analiz

#include <stdio.h>

main ( int arc, char **argv ) {return 0;

}

int ibrahimbalic(int a) {return 0;}

IDA

Page 13: Automated malware analysis

Malware Analiz

int main(int argc, char *argv[]){

char mesaj[] = "IstSEC\n";

struct sockaddr_in dest; struct sockaddr_in serv; int istsecport;socklen_t socksize = sizeof(struct sockaddr_in);

memset(&serv, 0, sizeof(serv));serv.sin_family = AF_INET;serv.sin_addr.s_addr = htonl(INADDR_ANY);serv.sin_port = htons(PORTNUM);

istsecport = socket(AF_INET, SOCK_STREAM, 0);bind(istsecport, (struct sockaddr *)&serv, sizeof(struct sockaddr));listen(istsecport, 1);int gelenbag = accept(istsecport, (struct sockaddr *)&dest, &socksize);

while(gelenbag){

printf("Mesaj gonderildi. %s\n", inet_ntoa(dest.sin_addr));send(gelenbag, mesaj, strlen(mesaj), 0); gelenbag = accept(istsecport, (struct sockaddr *)&dest, &socksize);

}

close(gelenbag);close(istsecport);return 0;

}

./nm –A istsecIII

Page 14: Automated malware analysis

Malware Analiz

Page 15: Automated malware analysis

Malware Analiz

• Statik Malware Analiz• Dinamik Malware Analiz

Page 16: Automated malware analysis

Süreçler

.APK Analiz

Strings

Disassemble codes

Decompilling

Network Activiteleri

strace (), ltrace()

Page 17: Automated malware analysis

Süreçler

.APK

Analiz

Strings

String pool of 20 unique UTF-8 non-sorted strings, 20 entries and 0 styles using 828 bytes:String #0: res/drawable/elite_background.pngString #1: res/drawable/elite_logo.pngString #2: res/layout/activity_main.xmlString #3: res/layout/lock_screen.xmlString #4: res/layout/main_uninstall_admin_device.xmlString #5: res/anim/fadein.xmlString #6: res/anim/fadeout.xmlString #7: res/xml/device_admin_sample.xmlString #8: res/menu/main.xmlString #9: res/drawable-mdpi/ic_launcher.pngString #10: res/drawable-hdpi/ic_launcher.pngString #11: res/drawable-xhdpi/ic_launcher.pngString #12: res/drawable-xxhdpi/ic_launcher.pngString #13: Angry Bird TransformersString #14: SettingsString #15: Angry Bird Transformers: A parent's care for child.String #16: To ensure the correct installation of Angry Bird Transformers, you must press the "ACTIVATE" button below.String #17: Device admin setting activated successfully.String #18: Elite has hacked you.Obey or be hacked.String #19: com.hellboy

aapt d --values strings test.apk

Page 18: Automated malware analysis

Süreçler

.APK

Analiz

disassemble code

Processing 'classes.dex'...Opened 'classes.dex', DEX version '035'Class #0 -Class descriptor : 'Landroid/support/annotation/AnimRes;'Access flags : 0x2601 (PUBLIC INTERFACE ABSTRACT ANNOTATION)Superclass : 'Ljava/lang/Object;'Interfaces -

#0 : 'Ljava/lang/annotation/Annotation;'Static fields -Instance fields -Direct methods -Virtual methods -source_file_idx : 466 (AnimRes.java)

dexdump –d classes.dex

Page 19: Automated malware analysis

Süreçler

.APK

Analiz

Decompilling

private void startService(){

timer.scheduleAtFixedRate(new mainTask(null), 0L, 500L);this.context = this;

}

public IBinder onBind(Intent paramIntent){

return null;}

public void onCreate(){

super.onCreate();startService();

}

dex2jar classes.dex

Page 20: Automated malware analysis

Süreçler

.APK

Analiz

Network Activiteleri

emulator -avd "test" -tcpdump "test.pcap"

Page 21: Automated malware analysis

Süreçler

.APK

Analiz

strace (), ltrace()

[pid 447] getpid() = 447[pid 447] getuid32() = 10003[pid 447] epoll_pwait(39, {{EPOLLIN, {u32=64, u64=64}}, {EPOLLIN, {u32=32, u64=32}}}, 16, 0, NULL) = 2[pid 447] read(32, "W", 16) = 1[pid 447] recvfrom(64, "nysv\0\0\0\0\0\20*\3507\0\0\0/#\0\0\0\0\0\0", 2400, MSG_DONTWAIT, NULL, NULL) = 24[pid 447] recvfrom(64, 0xbef14a68, 2400, 64, 0, 0) = -1 EAGAIN (Try again)[pid 447] clock_gettime(CLOCK_MONOTONIC, {240, 143333618}) = 0[pid 447] clock_gettime(CLOCK_MONOTONIC, {240, 145650900}) = 0[pid 447] clock_gettime(CLOCK_MONOTONIC, {240, 147686380}) = 0[pid 447] writev(3, [{"\4", 1}, {"Choreographer\0", 14}, {"Skipped 38 frames! The applicat"..., 83}], 3) = 98[pid 447] clock_gettime(CLOCK_MONOTONIC, {240, 152925603}) = 0[pid 447] clock_gettime(CLOCK_MONOTONIC, {240, 154903354}) = 0[pid 447] clock_gettime(CLOCK_MONOTONIC, {240, 156899920}) = 0[pid 447] recvfrom(64, 0xbef14bd8, 2400, 64, 0, 0) = -1 EAGAIN (Try again)[pid 447] ioctl(9, 0xc0186201, 0xbef153d0) = 0[pid 447] clock_gettime(CLOCK_MONOTONIC, {240, 162224240}) = 0

adb shell strace -p PID -f

Page 22: Automated malware analysis

Otomasyon

Page 23: Automated malware analysis

Otomasyon

• Android SDK(software development kit)• aapt (android asset packaging tool)• dexdump• emulator• adb (android debug bridge)

• dex2jar• jad• cproxy(basit bir proxy yazdık)• phpword library

Page 24: Automated malware analysis

Otomasyon

Emulator Oluştur Emulator’ü-http-proxy ile çalıştır

Emulator Çalıştır

Emulator’ü–tcpdump ile çalıştır

cproxy istekleri kayıt et.

.pcap olarak dosya adı ver.

adb

adb install .apk dosyasınıyükle.

adb shell strace pid dosyaaktivitilerini takip et

adb shell monkey -v -p apkpackname 1000

shell screencap ekrangörüntüsünü al

Apk bilgileri Oluştur

aapt dump ile permissionlar, launchable-activity,servisler gibi

bilgileri al.

dex2jar ile dex dosyasını jar’a çevir. Ve sonrasında jar dosyasını jadyardımı ile class haline çevir.

Dexdump ile disassemble codelarınıgörüntüle..

Launch activity bul ve çalıştır.

Page 25: Automated malware analysis

Otomasyon

Emulator Oluştur Emulator Çalıştır adb

android create avd -n androidemulator -t TARGETID

emulator -sdcard sdcard.img -avd androidemulator -no-window -no-boot-anim -noaudio -nojni -netfast -wipe-data -verbose -tcpdump networkaktivitileri.pcap -http-proxy http://127.0.0.1:1988

1.adb install test.apk2.adb shell am start -a android.intent.action.VIEW -c adroid.intent.category.DEFAULT -n com.elite/com.elite.MainActivity3.adb shell strace -p PID -f -s 256 -e open,access4. adb shell monkey -v -p apkpackname 10005. adb shell screencap -p /sdcard/screen.png6. adb pull /sdcard/screen.png

Page 26: Automated malware analysis

Otomasyon

.bash script veyapython veya

php veyaexecutable bir

dosya oluşturarak.

ornek.py test.apk

word

pdf

db

pdf

Page 27: Automated malware analysis

Otomasyon

ornek.py test.apkword

pdf

.bash script veyapython veya

php veyaexecutable bir

dosya oluşturarak.

Page 28: Automated malware analysis

Örnek

Page 29: Automated malware analysis

Sorusu olan varmı????

Page 30: Automated malware analysis

Ibrahim BALİÇ[email protected]

Teşekkürler. (: