Upload
siber-guevenlik-dernegi
View
2.156
Download
3
Embed Size (px)
DESCRIPTION
Siber Güvenlik Buluşmalarının 8. oturumda İbrahim Baliç'in gerçekleştirdiği sunum dosyası
Citation preview
Ajandabull Ben Kimimbull Android
bull Android Nedirbull Dalvik VM bull Data Saklama Alanlarıbull Rooted ve Unrooted Kavramıbull Android Mimarisibull Android APIs( PackageManager Telephony )bull Lab Ortamının Kurulumubull Android Debug Bridgebull Log Araccedilları ( Logcat Dumpsys )bull Uygulama Araccedilları ( Aapt Dexdump )
bull Android Adli-Bilişim ( Forensics )bull Manuelbull Agent-Based Adli Bilişim
bull SAFT (Yerli)bull Oxygenbull veya geliştirelim
bull Santoku Androidbull Android Uygulama Analizi
bull Manuelbull Android Sandboxlar
bull UNdroid (Yerli)bull Anubisbull veya geliştirelim
bull Sorular
Ben Kimimbull Security Researcher Balich ITbull SAFT Mobile Forensics SignalsSECbull Android Sandbox(androidsandboxnet) Balich ITbull Uygula Online Mobile App Builder Balich ITbull MalTrack ndash Malware Dedection Tool Balich ITbull Android RAT (Remote Access Tool) Balich ITbull Apple Facebook Opera Google Security Researcher
Androidbull Maliyet ve İşletim Sistemi tutarlılığı konusunda oldukccedila başarılı
olan Android Google Inc şirketi tarafından geliştirilmiş ve yaygın olarak kullanılan Linux kernel tabanlı bir İşletim sistemidir (Android OS ndash Android Operating System)
bull Android guumlnuumlmuumlzde bir ccedilok kaynakta Mobil İşletim Sistemi olarak anılsada bu tam olarak doğru değildir
bull Android İşletim Sistemi birccedilok farklı aygıt iccedilerisinde karşımıza ccedilıkabilir(oumlrnek olarak tabletler akıllı tvler vs) Fakat yaygın olarak kullanım alanı mobil cihazlardır
bull Gelecekte farklı enduumlstriel araccedillar iccedilerisindede goumlrebilmemiz kaccedilınılmazdır
Androidbull IDC şirketinin 2013 yılı araştırma raporunda Mobil kullanım iccedilin
belirtilen sonuccedillara goumlre 2013 yılında Akıllı Cihaz kullanımı 512 lik artışla yuumlkselişte ve Mobil Pazarrsquoda Akıllı Cihazların primekullanımları pazar payının yarınsından fazlasına hakim
bull Yine aynı araştırma firmasının 2013 yılında sunmuş olduğu 2012 pazar araştırması raporuna goumlrede Android işletim sisteminin pazardaki payı 688
Android Mimarisi
Android Mimarisibull Linux Kernel
ndash Process Youmlnetimindash Memory Youmlnetimi
bull Librariesndash Bionic libcndash Function kuumltuumlphanesindash Yerel servislerndash Hardware abstraction ( HAL )ndash
bull Android Runtimendash Dalvik VM (JIT ndash Just-in-Time) (libdvmso)ndash ART ( 44 KitKat ile geldi - AOT ndash Ahead-of-Time) (libartso)ndash Core Java Kuumltuumlphanesi
bull Application Frameworkndash Activity Managerndash Notification Managerndash
bull Applicationsndash Contactsndash Phone
Dalvik VMbull Dalvik Virtual Machine Dan Bornstein tarafından Android iccedilin oumlzel
olarak geliştirilmiş bir sanal makinadır
bull Java olarak yazılan uygulama kodları (class) derleyiciler tarafından Dalvik VMrsquoin okuyabileceği op codelara ccedilevrilir ve dex uzantılı dosyaya doumlnuumlştuumlruumlluumlr
bull Dex dosyaları Dalvik VMrsquonin ccedilalıştırılabilir(executable) dosya uzantılarıdır
ARTbull Google firmasının Android iccedilin uumlretmeye başladığı ve Android 44
Kitkat ile tanıttığı yeni nesil Android Runtime rsquodir
bull Gelecekte Dalvik VMrsquoin yerini alması beklenmektedir
bull Dalvik VM Just-in-Time ndash JIT olarak ccedilalıştığı iccedilin az hafıza ccedilok işlemci tuumlketir ART ise Ahead-of-Time ndash AOT olarak ccedilalışarak ccedilok hafıza az işlemci ile Android lsquoin daha hızlı ccedilalışmasını sağlar
bull Dalvik VM ile JIT ndash Uygulamalar kurulduktan sonra ccedilalıştırılabilir dosyaları(dex) ccedilalıştırılacağı zaman kendi iccedilerisinde işlemcinin anlayacağı dile ccedilevirerek derler
bull ART ile AOT - Uygulamalar kurulurken ccedilalıştırılabilir dosyaları(dex) kurulum aşamasında işlemcinin anlayacağı dile ccedilevirir ve ccedilalışma sırasında ccedilevirdiği dosyaları kullanır ve zaman kaybetmez
APK Dosyalarıbull Android uygulamaların paketlenmiş
APK Dosyaları
DEX Dosyaları
Data Saklama AlanlarıAndroid işletim sistemi uumlzerinde 5 farklı şekilde data tutma youmlntemi bulunmaktadır
Data Saklama Alanlarıbull Internal Storage ndash datadata klasoumlruuml iccedilerisinde ilgili uygulamanın paket adıyla
oluşturulmuş ve uygulama alanıyla erişim sağlanabilinen alanıdır Normal şartlarda bu alana sadece uygulamanın erişim hakkı verilir ilgili erişim root yetkisiyle yapılmadıysa goumlruumlntuumllenemez
bull External Storage ndash İlgili cihazın diğer depolama alanlarında guumlvenlik ilke ve politikaları yuumlksek seviyede uygulanırken external storage alanında kısıtlamalar daha duumlşuumlk seviyededir cihaz uumlzerine dahil edilmiş bir sdcard uumlzerinde yazma ve okuma işlemlerini rahatlıkla yapabilmekteyiz
bull Shared Preferences - İlgili uygulama alanında bulunan ve XML formatı ile ilgili uygulamaya ait isteğe bağlı dataların saklanmasına olanak tanır bu alanda genelde uygulama ile ilgili basit ayar bilgileri bulunur
bull Network Android Network uumlzerinden data saklama imkanıda sağlamaktadır
bull SQLite SQLite dosyaları kısıtlama olmaksızın uygulamalar tarafından oluşturulabilir tablo mantiği ile veri saklama imkanı sağlarken genellikle datadatapaketadidatabases dizininde bulunurlar bu zorunlu değildir dilendiği takdirde harici dizinlerde barındırılabilinir
Rooted amp Unrootedbull Android işletim sistemi erişim ve yetki konusunda bazı sınırlar
barındırmaktadır Bu sınırlar işletim sistemi uumlzerindeki bazı zafiyetler sayesinde soumlmuumlruumllerek (exploit) işletim sistemi uumlzerinde root yetkisi kazanılması işlemi piyasada rootlamak olarak adlandırılmaktadır
bull Data Saklama Alanlarında internal storage(datadatapackage) alanına normal şartlarda root dışında uygulama haricinde erişemeyiz fakat root yetkisi kazandıysanız internal storage alanınıda goumlruumlntuumlleyebilmeniz muumlmkuumlnduumlr
bull Root yetkisi kazanılmış cihazlara Rootlanmış cihaz
bull Root yetkisi bulunmayan cihazlara ise Unrooted cihaz diyebiliriz
Rooted amp Unrooted
Android APIsbull Android işletim sistemi mimarisinden hatırlayacağınız uumlzere
Application Framework katmanında bazı kuumltuumlphaneler barındırmaktadır Bu kuumltuumlphanelere uygulama geliştirirken ilgili servisin yetki gereksinimine goumlre erişerek uygulamamız iccedilerisinde kullanabilir veya youmlnetebiliriz
ndash Power Managerndash Activity Managerndash Package Managerndash Alarm Managerndash Window Managerndash Bluetooth Servicendash Location Managerndash
bull Bunlardan bazılarıdır
Package Managerbull Package Manager Android uumlzerinde kurulu paket(uygulamalar)ler
den sorumlu olan servistir Bu servisi kullanılarak bir paket kaldırabilir veya bu paket hakkında bilgi alabiliriz
bull Package Manager uygulamalar hakkında bilgi alınacağı zaman herhangi bir yetki gerektirmez Paket hakkında bilgi alabileceğiniz gibi uygulamanın kaynağınada erişebilmenize imkan tanır Anti-Viruumlsler ve benzeri bir ccedilok uygulama bu sayede paketlere erişim sağlar veya onları kopyalar
bull Package Manager paketleri kaldırmak(silmek) iccedilin yetkiizin gerektirir Bu izni DELETE_PACKAGES ile kazanır
Package Manager
Package ManagerPackageManager pm = getPackageManager() ListltApplicationInfogt paketler = pmgetInstalledApplications(PackageManagerGET_META_DATA) for (ApplicationInfo paketbilgileri paketler) if(paketbilgileripackageNametoString() = null) Logd(SiberGuvenlik Yuumlkluuml paket + paketbilgileripackageName)
Telephony Managerbull TelephonyManager Androidrsquoin kurulu olduğu cihazdan sorumlu
olan servistir Bu servisi kullanılarak cihaz hakkında farklı alanda bilgi alabiliriz
ndash CALL_STATE_IDLE Device call state No activityndash CALL_STATE_OFFHOOK Device call state Off-hookndash CALL_STATE_RINGING Device call state Ringingndash DATA_ACTIVITY_DORMAN Data connection is active but physical link is downndash DATA_ACTIVITY_IN Data connection activity Currently receiving IP PPP
trafficndash DATA_ACTIVITY_NONE Data connection activity No trafficndash DATA_ACTIVITY_OUT Data connection activity Currently sending IP PPP trafficndash DATA_CONNECTED Data connection state Connected
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Ben Kimimbull Security Researcher Balich ITbull SAFT Mobile Forensics SignalsSECbull Android Sandbox(androidsandboxnet) Balich ITbull Uygula Online Mobile App Builder Balich ITbull MalTrack ndash Malware Dedection Tool Balich ITbull Android RAT (Remote Access Tool) Balich ITbull Apple Facebook Opera Google Security Researcher
Androidbull Maliyet ve İşletim Sistemi tutarlılığı konusunda oldukccedila başarılı
olan Android Google Inc şirketi tarafından geliştirilmiş ve yaygın olarak kullanılan Linux kernel tabanlı bir İşletim sistemidir (Android OS ndash Android Operating System)
bull Android guumlnuumlmuumlzde bir ccedilok kaynakta Mobil İşletim Sistemi olarak anılsada bu tam olarak doğru değildir
bull Android İşletim Sistemi birccedilok farklı aygıt iccedilerisinde karşımıza ccedilıkabilir(oumlrnek olarak tabletler akıllı tvler vs) Fakat yaygın olarak kullanım alanı mobil cihazlardır
bull Gelecekte farklı enduumlstriel araccedillar iccedilerisindede goumlrebilmemiz kaccedilınılmazdır
Androidbull IDC şirketinin 2013 yılı araştırma raporunda Mobil kullanım iccedilin
belirtilen sonuccedillara goumlre 2013 yılında Akıllı Cihaz kullanımı 512 lik artışla yuumlkselişte ve Mobil Pazarrsquoda Akıllı Cihazların primekullanımları pazar payının yarınsından fazlasına hakim
bull Yine aynı araştırma firmasının 2013 yılında sunmuş olduğu 2012 pazar araştırması raporuna goumlrede Android işletim sisteminin pazardaki payı 688
Android Mimarisi
Android Mimarisibull Linux Kernel
ndash Process Youmlnetimindash Memory Youmlnetimi
bull Librariesndash Bionic libcndash Function kuumltuumlphanesindash Yerel servislerndash Hardware abstraction ( HAL )ndash
bull Android Runtimendash Dalvik VM (JIT ndash Just-in-Time) (libdvmso)ndash ART ( 44 KitKat ile geldi - AOT ndash Ahead-of-Time) (libartso)ndash Core Java Kuumltuumlphanesi
bull Application Frameworkndash Activity Managerndash Notification Managerndash
bull Applicationsndash Contactsndash Phone
Dalvik VMbull Dalvik Virtual Machine Dan Bornstein tarafından Android iccedilin oumlzel
olarak geliştirilmiş bir sanal makinadır
bull Java olarak yazılan uygulama kodları (class) derleyiciler tarafından Dalvik VMrsquoin okuyabileceği op codelara ccedilevrilir ve dex uzantılı dosyaya doumlnuumlştuumlruumlluumlr
bull Dex dosyaları Dalvik VMrsquonin ccedilalıştırılabilir(executable) dosya uzantılarıdır
ARTbull Google firmasının Android iccedilin uumlretmeye başladığı ve Android 44
Kitkat ile tanıttığı yeni nesil Android Runtime rsquodir
bull Gelecekte Dalvik VMrsquoin yerini alması beklenmektedir
bull Dalvik VM Just-in-Time ndash JIT olarak ccedilalıştığı iccedilin az hafıza ccedilok işlemci tuumlketir ART ise Ahead-of-Time ndash AOT olarak ccedilalışarak ccedilok hafıza az işlemci ile Android lsquoin daha hızlı ccedilalışmasını sağlar
bull Dalvik VM ile JIT ndash Uygulamalar kurulduktan sonra ccedilalıştırılabilir dosyaları(dex) ccedilalıştırılacağı zaman kendi iccedilerisinde işlemcinin anlayacağı dile ccedilevirerek derler
bull ART ile AOT - Uygulamalar kurulurken ccedilalıştırılabilir dosyaları(dex) kurulum aşamasında işlemcinin anlayacağı dile ccedilevirir ve ccedilalışma sırasında ccedilevirdiği dosyaları kullanır ve zaman kaybetmez
APK Dosyalarıbull Android uygulamaların paketlenmiş
APK Dosyaları
DEX Dosyaları
Data Saklama AlanlarıAndroid işletim sistemi uumlzerinde 5 farklı şekilde data tutma youmlntemi bulunmaktadır
Data Saklama Alanlarıbull Internal Storage ndash datadata klasoumlruuml iccedilerisinde ilgili uygulamanın paket adıyla
oluşturulmuş ve uygulama alanıyla erişim sağlanabilinen alanıdır Normal şartlarda bu alana sadece uygulamanın erişim hakkı verilir ilgili erişim root yetkisiyle yapılmadıysa goumlruumlntuumllenemez
bull External Storage ndash İlgili cihazın diğer depolama alanlarında guumlvenlik ilke ve politikaları yuumlksek seviyede uygulanırken external storage alanında kısıtlamalar daha duumlşuumlk seviyededir cihaz uumlzerine dahil edilmiş bir sdcard uumlzerinde yazma ve okuma işlemlerini rahatlıkla yapabilmekteyiz
bull Shared Preferences - İlgili uygulama alanında bulunan ve XML formatı ile ilgili uygulamaya ait isteğe bağlı dataların saklanmasına olanak tanır bu alanda genelde uygulama ile ilgili basit ayar bilgileri bulunur
bull Network Android Network uumlzerinden data saklama imkanıda sağlamaktadır
bull SQLite SQLite dosyaları kısıtlama olmaksızın uygulamalar tarafından oluşturulabilir tablo mantiği ile veri saklama imkanı sağlarken genellikle datadatapaketadidatabases dizininde bulunurlar bu zorunlu değildir dilendiği takdirde harici dizinlerde barındırılabilinir
Rooted amp Unrootedbull Android işletim sistemi erişim ve yetki konusunda bazı sınırlar
barındırmaktadır Bu sınırlar işletim sistemi uumlzerindeki bazı zafiyetler sayesinde soumlmuumlruumllerek (exploit) işletim sistemi uumlzerinde root yetkisi kazanılması işlemi piyasada rootlamak olarak adlandırılmaktadır
bull Data Saklama Alanlarında internal storage(datadatapackage) alanına normal şartlarda root dışında uygulama haricinde erişemeyiz fakat root yetkisi kazandıysanız internal storage alanınıda goumlruumlntuumlleyebilmeniz muumlmkuumlnduumlr
bull Root yetkisi kazanılmış cihazlara Rootlanmış cihaz
bull Root yetkisi bulunmayan cihazlara ise Unrooted cihaz diyebiliriz
Rooted amp Unrooted
Android APIsbull Android işletim sistemi mimarisinden hatırlayacağınız uumlzere
Application Framework katmanında bazı kuumltuumlphaneler barındırmaktadır Bu kuumltuumlphanelere uygulama geliştirirken ilgili servisin yetki gereksinimine goumlre erişerek uygulamamız iccedilerisinde kullanabilir veya youmlnetebiliriz
ndash Power Managerndash Activity Managerndash Package Managerndash Alarm Managerndash Window Managerndash Bluetooth Servicendash Location Managerndash
bull Bunlardan bazılarıdır
Package Managerbull Package Manager Android uumlzerinde kurulu paket(uygulamalar)ler
den sorumlu olan servistir Bu servisi kullanılarak bir paket kaldırabilir veya bu paket hakkında bilgi alabiliriz
bull Package Manager uygulamalar hakkında bilgi alınacağı zaman herhangi bir yetki gerektirmez Paket hakkında bilgi alabileceğiniz gibi uygulamanın kaynağınada erişebilmenize imkan tanır Anti-Viruumlsler ve benzeri bir ccedilok uygulama bu sayede paketlere erişim sağlar veya onları kopyalar
bull Package Manager paketleri kaldırmak(silmek) iccedilin yetkiizin gerektirir Bu izni DELETE_PACKAGES ile kazanır
Package Manager
Package ManagerPackageManager pm = getPackageManager() ListltApplicationInfogt paketler = pmgetInstalledApplications(PackageManagerGET_META_DATA) for (ApplicationInfo paketbilgileri paketler) if(paketbilgileripackageNametoString() = null) Logd(SiberGuvenlik Yuumlkluuml paket + paketbilgileripackageName)
Telephony Managerbull TelephonyManager Androidrsquoin kurulu olduğu cihazdan sorumlu
olan servistir Bu servisi kullanılarak cihaz hakkında farklı alanda bilgi alabiliriz
ndash CALL_STATE_IDLE Device call state No activityndash CALL_STATE_OFFHOOK Device call state Off-hookndash CALL_STATE_RINGING Device call state Ringingndash DATA_ACTIVITY_DORMAN Data connection is active but physical link is downndash DATA_ACTIVITY_IN Data connection activity Currently receiving IP PPP
trafficndash DATA_ACTIVITY_NONE Data connection activity No trafficndash DATA_ACTIVITY_OUT Data connection activity Currently sending IP PPP trafficndash DATA_CONNECTED Data connection state Connected
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Androidbull Maliyet ve İşletim Sistemi tutarlılığı konusunda oldukccedila başarılı
olan Android Google Inc şirketi tarafından geliştirilmiş ve yaygın olarak kullanılan Linux kernel tabanlı bir İşletim sistemidir (Android OS ndash Android Operating System)
bull Android guumlnuumlmuumlzde bir ccedilok kaynakta Mobil İşletim Sistemi olarak anılsada bu tam olarak doğru değildir
bull Android İşletim Sistemi birccedilok farklı aygıt iccedilerisinde karşımıza ccedilıkabilir(oumlrnek olarak tabletler akıllı tvler vs) Fakat yaygın olarak kullanım alanı mobil cihazlardır
bull Gelecekte farklı enduumlstriel araccedillar iccedilerisindede goumlrebilmemiz kaccedilınılmazdır
Androidbull IDC şirketinin 2013 yılı araştırma raporunda Mobil kullanım iccedilin
belirtilen sonuccedillara goumlre 2013 yılında Akıllı Cihaz kullanımı 512 lik artışla yuumlkselişte ve Mobil Pazarrsquoda Akıllı Cihazların primekullanımları pazar payının yarınsından fazlasına hakim
bull Yine aynı araştırma firmasının 2013 yılında sunmuş olduğu 2012 pazar araştırması raporuna goumlrede Android işletim sisteminin pazardaki payı 688
Android Mimarisi
Android Mimarisibull Linux Kernel
ndash Process Youmlnetimindash Memory Youmlnetimi
bull Librariesndash Bionic libcndash Function kuumltuumlphanesindash Yerel servislerndash Hardware abstraction ( HAL )ndash
bull Android Runtimendash Dalvik VM (JIT ndash Just-in-Time) (libdvmso)ndash ART ( 44 KitKat ile geldi - AOT ndash Ahead-of-Time) (libartso)ndash Core Java Kuumltuumlphanesi
bull Application Frameworkndash Activity Managerndash Notification Managerndash
bull Applicationsndash Contactsndash Phone
Dalvik VMbull Dalvik Virtual Machine Dan Bornstein tarafından Android iccedilin oumlzel
olarak geliştirilmiş bir sanal makinadır
bull Java olarak yazılan uygulama kodları (class) derleyiciler tarafından Dalvik VMrsquoin okuyabileceği op codelara ccedilevrilir ve dex uzantılı dosyaya doumlnuumlştuumlruumlluumlr
bull Dex dosyaları Dalvik VMrsquonin ccedilalıştırılabilir(executable) dosya uzantılarıdır
ARTbull Google firmasının Android iccedilin uumlretmeye başladığı ve Android 44
Kitkat ile tanıttığı yeni nesil Android Runtime rsquodir
bull Gelecekte Dalvik VMrsquoin yerini alması beklenmektedir
bull Dalvik VM Just-in-Time ndash JIT olarak ccedilalıştığı iccedilin az hafıza ccedilok işlemci tuumlketir ART ise Ahead-of-Time ndash AOT olarak ccedilalışarak ccedilok hafıza az işlemci ile Android lsquoin daha hızlı ccedilalışmasını sağlar
bull Dalvik VM ile JIT ndash Uygulamalar kurulduktan sonra ccedilalıştırılabilir dosyaları(dex) ccedilalıştırılacağı zaman kendi iccedilerisinde işlemcinin anlayacağı dile ccedilevirerek derler
bull ART ile AOT - Uygulamalar kurulurken ccedilalıştırılabilir dosyaları(dex) kurulum aşamasında işlemcinin anlayacağı dile ccedilevirir ve ccedilalışma sırasında ccedilevirdiği dosyaları kullanır ve zaman kaybetmez
APK Dosyalarıbull Android uygulamaların paketlenmiş
APK Dosyaları
DEX Dosyaları
Data Saklama AlanlarıAndroid işletim sistemi uumlzerinde 5 farklı şekilde data tutma youmlntemi bulunmaktadır
Data Saklama Alanlarıbull Internal Storage ndash datadata klasoumlruuml iccedilerisinde ilgili uygulamanın paket adıyla
oluşturulmuş ve uygulama alanıyla erişim sağlanabilinen alanıdır Normal şartlarda bu alana sadece uygulamanın erişim hakkı verilir ilgili erişim root yetkisiyle yapılmadıysa goumlruumlntuumllenemez
bull External Storage ndash İlgili cihazın diğer depolama alanlarında guumlvenlik ilke ve politikaları yuumlksek seviyede uygulanırken external storage alanında kısıtlamalar daha duumlşuumlk seviyededir cihaz uumlzerine dahil edilmiş bir sdcard uumlzerinde yazma ve okuma işlemlerini rahatlıkla yapabilmekteyiz
bull Shared Preferences - İlgili uygulama alanında bulunan ve XML formatı ile ilgili uygulamaya ait isteğe bağlı dataların saklanmasına olanak tanır bu alanda genelde uygulama ile ilgili basit ayar bilgileri bulunur
bull Network Android Network uumlzerinden data saklama imkanıda sağlamaktadır
bull SQLite SQLite dosyaları kısıtlama olmaksızın uygulamalar tarafından oluşturulabilir tablo mantiği ile veri saklama imkanı sağlarken genellikle datadatapaketadidatabases dizininde bulunurlar bu zorunlu değildir dilendiği takdirde harici dizinlerde barındırılabilinir
Rooted amp Unrootedbull Android işletim sistemi erişim ve yetki konusunda bazı sınırlar
barındırmaktadır Bu sınırlar işletim sistemi uumlzerindeki bazı zafiyetler sayesinde soumlmuumlruumllerek (exploit) işletim sistemi uumlzerinde root yetkisi kazanılması işlemi piyasada rootlamak olarak adlandırılmaktadır
bull Data Saklama Alanlarında internal storage(datadatapackage) alanına normal şartlarda root dışında uygulama haricinde erişemeyiz fakat root yetkisi kazandıysanız internal storage alanınıda goumlruumlntuumlleyebilmeniz muumlmkuumlnduumlr
bull Root yetkisi kazanılmış cihazlara Rootlanmış cihaz
bull Root yetkisi bulunmayan cihazlara ise Unrooted cihaz diyebiliriz
Rooted amp Unrooted
Android APIsbull Android işletim sistemi mimarisinden hatırlayacağınız uumlzere
Application Framework katmanında bazı kuumltuumlphaneler barındırmaktadır Bu kuumltuumlphanelere uygulama geliştirirken ilgili servisin yetki gereksinimine goumlre erişerek uygulamamız iccedilerisinde kullanabilir veya youmlnetebiliriz
ndash Power Managerndash Activity Managerndash Package Managerndash Alarm Managerndash Window Managerndash Bluetooth Servicendash Location Managerndash
bull Bunlardan bazılarıdır
Package Managerbull Package Manager Android uumlzerinde kurulu paket(uygulamalar)ler
den sorumlu olan servistir Bu servisi kullanılarak bir paket kaldırabilir veya bu paket hakkında bilgi alabiliriz
bull Package Manager uygulamalar hakkında bilgi alınacağı zaman herhangi bir yetki gerektirmez Paket hakkında bilgi alabileceğiniz gibi uygulamanın kaynağınada erişebilmenize imkan tanır Anti-Viruumlsler ve benzeri bir ccedilok uygulama bu sayede paketlere erişim sağlar veya onları kopyalar
bull Package Manager paketleri kaldırmak(silmek) iccedilin yetkiizin gerektirir Bu izni DELETE_PACKAGES ile kazanır
Package Manager
Package ManagerPackageManager pm = getPackageManager() ListltApplicationInfogt paketler = pmgetInstalledApplications(PackageManagerGET_META_DATA) for (ApplicationInfo paketbilgileri paketler) if(paketbilgileripackageNametoString() = null) Logd(SiberGuvenlik Yuumlkluuml paket + paketbilgileripackageName)
Telephony Managerbull TelephonyManager Androidrsquoin kurulu olduğu cihazdan sorumlu
olan servistir Bu servisi kullanılarak cihaz hakkında farklı alanda bilgi alabiliriz
ndash CALL_STATE_IDLE Device call state No activityndash CALL_STATE_OFFHOOK Device call state Off-hookndash CALL_STATE_RINGING Device call state Ringingndash DATA_ACTIVITY_DORMAN Data connection is active but physical link is downndash DATA_ACTIVITY_IN Data connection activity Currently receiving IP PPP
trafficndash DATA_ACTIVITY_NONE Data connection activity No trafficndash DATA_ACTIVITY_OUT Data connection activity Currently sending IP PPP trafficndash DATA_CONNECTED Data connection state Connected
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Androidbull IDC şirketinin 2013 yılı araştırma raporunda Mobil kullanım iccedilin
belirtilen sonuccedillara goumlre 2013 yılında Akıllı Cihaz kullanımı 512 lik artışla yuumlkselişte ve Mobil Pazarrsquoda Akıllı Cihazların primekullanımları pazar payının yarınsından fazlasına hakim
bull Yine aynı araştırma firmasının 2013 yılında sunmuş olduğu 2012 pazar araştırması raporuna goumlrede Android işletim sisteminin pazardaki payı 688
Android Mimarisi
Android Mimarisibull Linux Kernel
ndash Process Youmlnetimindash Memory Youmlnetimi
bull Librariesndash Bionic libcndash Function kuumltuumlphanesindash Yerel servislerndash Hardware abstraction ( HAL )ndash
bull Android Runtimendash Dalvik VM (JIT ndash Just-in-Time) (libdvmso)ndash ART ( 44 KitKat ile geldi - AOT ndash Ahead-of-Time) (libartso)ndash Core Java Kuumltuumlphanesi
bull Application Frameworkndash Activity Managerndash Notification Managerndash
bull Applicationsndash Contactsndash Phone
Dalvik VMbull Dalvik Virtual Machine Dan Bornstein tarafından Android iccedilin oumlzel
olarak geliştirilmiş bir sanal makinadır
bull Java olarak yazılan uygulama kodları (class) derleyiciler tarafından Dalvik VMrsquoin okuyabileceği op codelara ccedilevrilir ve dex uzantılı dosyaya doumlnuumlştuumlruumlluumlr
bull Dex dosyaları Dalvik VMrsquonin ccedilalıştırılabilir(executable) dosya uzantılarıdır
ARTbull Google firmasının Android iccedilin uumlretmeye başladığı ve Android 44
Kitkat ile tanıttığı yeni nesil Android Runtime rsquodir
bull Gelecekte Dalvik VMrsquoin yerini alması beklenmektedir
bull Dalvik VM Just-in-Time ndash JIT olarak ccedilalıştığı iccedilin az hafıza ccedilok işlemci tuumlketir ART ise Ahead-of-Time ndash AOT olarak ccedilalışarak ccedilok hafıza az işlemci ile Android lsquoin daha hızlı ccedilalışmasını sağlar
bull Dalvik VM ile JIT ndash Uygulamalar kurulduktan sonra ccedilalıştırılabilir dosyaları(dex) ccedilalıştırılacağı zaman kendi iccedilerisinde işlemcinin anlayacağı dile ccedilevirerek derler
bull ART ile AOT - Uygulamalar kurulurken ccedilalıştırılabilir dosyaları(dex) kurulum aşamasında işlemcinin anlayacağı dile ccedilevirir ve ccedilalışma sırasında ccedilevirdiği dosyaları kullanır ve zaman kaybetmez
APK Dosyalarıbull Android uygulamaların paketlenmiş
APK Dosyaları
DEX Dosyaları
Data Saklama AlanlarıAndroid işletim sistemi uumlzerinde 5 farklı şekilde data tutma youmlntemi bulunmaktadır
Data Saklama Alanlarıbull Internal Storage ndash datadata klasoumlruuml iccedilerisinde ilgili uygulamanın paket adıyla
oluşturulmuş ve uygulama alanıyla erişim sağlanabilinen alanıdır Normal şartlarda bu alana sadece uygulamanın erişim hakkı verilir ilgili erişim root yetkisiyle yapılmadıysa goumlruumlntuumllenemez
bull External Storage ndash İlgili cihazın diğer depolama alanlarında guumlvenlik ilke ve politikaları yuumlksek seviyede uygulanırken external storage alanında kısıtlamalar daha duumlşuumlk seviyededir cihaz uumlzerine dahil edilmiş bir sdcard uumlzerinde yazma ve okuma işlemlerini rahatlıkla yapabilmekteyiz
bull Shared Preferences - İlgili uygulama alanında bulunan ve XML formatı ile ilgili uygulamaya ait isteğe bağlı dataların saklanmasına olanak tanır bu alanda genelde uygulama ile ilgili basit ayar bilgileri bulunur
bull Network Android Network uumlzerinden data saklama imkanıda sağlamaktadır
bull SQLite SQLite dosyaları kısıtlama olmaksızın uygulamalar tarafından oluşturulabilir tablo mantiği ile veri saklama imkanı sağlarken genellikle datadatapaketadidatabases dizininde bulunurlar bu zorunlu değildir dilendiği takdirde harici dizinlerde barındırılabilinir
Rooted amp Unrootedbull Android işletim sistemi erişim ve yetki konusunda bazı sınırlar
barındırmaktadır Bu sınırlar işletim sistemi uumlzerindeki bazı zafiyetler sayesinde soumlmuumlruumllerek (exploit) işletim sistemi uumlzerinde root yetkisi kazanılması işlemi piyasada rootlamak olarak adlandırılmaktadır
bull Data Saklama Alanlarında internal storage(datadatapackage) alanına normal şartlarda root dışında uygulama haricinde erişemeyiz fakat root yetkisi kazandıysanız internal storage alanınıda goumlruumlntuumlleyebilmeniz muumlmkuumlnduumlr
bull Root yetkisi kazanılmış cihazlara Rootlanmış cihaz
bull Root yetkisi bulunmayan cihazlara ise Unrooted cihaz diyebiliriz
Rooted amp Unrooted
Android APIsbull Android işletim sistemi mimarisinden hatırlayacağınız uumlzere
Application Framework katmanında bazı kuumltuumlphaneler barındırmaktadır Bu kuumltuumlphanelere uygulama geliştirirken ilgili servisin yetki gereksinimine goumlre erişerek uygulamamız iccedilerisinde kullanabilir veya youmlnetebiliriz
ndash Power Managerndash Activity Managerndash Package Managerndash Alarm Managerndash Window Managerndash Bluetooth Servicendash Location Managerndash
bull Bunlardan bazılarıdır
Package Managerbull Package Manager Android uumlzerinde kurulu paket(uygulamalar)ler
den sorumlu olan servistir Bu servisi kullanılarak bir paket kaldırabilir veya bu paket hakkında bilgi alabiliriz
bull Package Manager uygulamalar hakkında bilgi alınacağı zaman herhangi bir yetki gerektirmez Paket hakkında bilgi alabileceğiniz gibi uygulamanın kaynağınada erişebilmenize imkan tanır Anti-Viruumlsler ve benzeri bir ccedilok uygulama bu sayede paketlere erişim sağlar veya onları kopyalar
bull Package Manager paketleri kaldırmak(silmek) iccedilin yetkiizin gerektirir Bu izni DELETE_PACKAGES ile kazanır
Package Manager
Package ManagerPackageManager pm = getPackageManager() ListltApplicationInfogt paketler = pmgetInstalledApplications(PackageManagerGET_META_DATA) for (ApplicationInfo paketbilgileri paketler) if(paketbilgileripackageNametoString() = null) Logd(SiberGuvenlik Yuumlkluuml paket + paketbilgileripackageName)
Telephony Managerbull TelephonyManager Androidrsquoin kurulu olduğu cihazdan sorumlu
olan servistir Bu servisi kullanılarak cihaz hakkında farklı alanda bilgi alabiliriz
ndash CALL_STATE_IDLE Device call state No activityndash CALL_STATE_OFFHOOK Device call state Off-hookndash CALL_STATE_RINGING Device call state Ringingndash DATA_ACTIVITY_DORMAN Data connection is active but physical link is downndash DATA_ACTIVITY_IN Data connection activity Currently receiving IP PPP
trafficndash DATA_ACTIVITY_NONE Data connection activity No trafficndash DATA_ACTIVITY_OUT Data connection activity Currently sending IP PPP trafficndash DATA_CONNECTED Data connection state Connected
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Mimarisi
Android Mimarisibull Linux Kernel
ndash Process Youmlnetimindash Memory Youmlnetimi
bull Librariesndash Bionic libcndash Function kuumltuumlphanesindash Yerel servislerndash Hardware abstraction ( HAL )ndash
bull Android Runtimendash Dalvik VM (JIT ndash Just-in-Time) (libdvmso)ndash ART ( 44 KitKat ile geldi - AOT ndash Ahead-of-Time) (libartso)ndash Core Java Kuumltuumlphanesi
bull Application Frameworkndash Activity Managerndash Notification Managerndash
bull Applicationsndash Contactsndash Phone
Dalvik VMbull Dalvik Virtual Machine Dan Bornstein tarafından Android iccedilin oumlzel
olarak geliştirilmiş bir sanal makinadır
bull Java olarak yazılan uygulama kodları (class) derleyiciler tarafından Dalvik VMrsquoin okuyabileceği op codelara ccedilevrilir ve dex uzantılı dosyaya doumlnuumlştuumlruumlluumlr
bull Dex dosyaları Dalvik VMrsquonin ccedilalıştırılabilir(executable) dosya uzantılarıdır
ARTbull Google firmasının Android iccedilin uumlretmeye başladığı ve Android 44
Kitkat ile tanıttığı yeni nesil Android Runtime rsquodir
bull Gelecekte Dalvik VMrsquoin yerini alması beklenmektedir
bull Dalvik VM Just-in-Time ndash JIT olarak ccedilalıştığı iccedilin az hafıza ccedilok işlemci tuumlketir ART ise Ahead-of-Time ndash AOT olarak ccedilalışarak ccedilok hafıza az işlemci ile Android lsquoin daha hızlı ccedilalışmasını sağlar
bull Dalvik VM ile JIT ndash Uygulamalar kurulduktan sonra ccedilalıştırılabilir dosyaları(dex) ccedilalıştırılacağı zaman kendi iccedilerisinde işlemcinin anlayacağı dile ccedilevirerek derler
bull ART ile AOT - Uygulamalar kurulurken ccedilalıştırılabilir dosyaları(dex) kurulum aşamasında işlemcinin anlayacağı dile ccedilevirir ve ccedilalışma sırasında ccedilevirdiği dosyaları kullanır ve zaman kaybetmez
APK Dosyalarıbull Android uygulamaların paketlenmiş
APK Dosyaları
DEX Dosyaları
Data Saklama AlanlarıAndroid işletim sistemi uumlzerinde 5 farklı şekilde data tutma youmlntemi bulunmaktadır
Data Saklama Alanlarıbull Internal Storage ndash datadata klasoumlruuml iccedilerisinde ilgili uygulamanın paket adıyla
oluşturulmuş ve uygulama alanıyla erişim sağlanabilinen alanıdır Normal şartlarda bu alana sadece uygulamanın erişim hakkı verilir ilgili erişim root yetkisiyle yapılmadıysa goumlruumlntuumllenemez
bull External Storage ndash İlgili cihazın diğer depolama alanlarında guumlvenlik ilke ve politikaları yuumlksek seviyede uygulanırken external storage alanında kısıtlamalar daha duumlşuumlk seviyededir cihaz uumlzerine dahil edilmiş bir sdcard uumlzerinde yazma ve okuma işlemlerini rahatlıkla yapabilmekteyiz
bull Shared Preferences - İlgili uygulama alanında bulunan ve XML formatı ile ilgili uygulamaya ait isteğe bağlı dataların saklanmasına olanak tanır bu alanda genelde uygulama ile ilgili basit ayar bilgileri bulunur
bull Network Android Network uumlzerinden data saklama imkanıda sağlamaktadır
bull SQLite SQLite dosyaları kısıtlama olmaksızın uygulamalar tarafından oluşturulabilir tablo mantiği ile veri saklama imkanı sağlarken genellikle datadatapaketadidatabases dizininde bulunurlar bu zorunlu değildir dilendiği takdirde harici dizinlerde barındırılabilinir
Rooted amp Unrootedbull Android işletim sistemi erişim ve yetki konusunda bazı sınırlar
barındırmaktadır Bu sınırlar işletim sistemi uumlzerindeki bazı zafiyetler sayesinde soumlmuumlruumllerek (exploit) işletim sistemi uumlzerinde root yetkisi kazanılması işlemi piyasada rootlamak olarak adlandırılmaktadır
bull Data Saklama Alanlarında internal storage(datadatapackage) alanına normal şartlarda root dışında uygulama haricinde erişemeyiz fakat root yetkisi kazandıysanız internal storage alanınıda goumlruumlntuumlleyebilmeniz muumlmkuumlnduumlr
bull Root yetkisi kazanılmış cihazlara Rootlanmış cihaz
bull Root yetkisi bulunmayan cihazlara ise Unrooted cihaz diyebiliriz
Rooted amp Unrooted
Android APIsbull Android işletim sistemi mimarisinden hatırlayacağınız uumlzere
Application Framework katmanında bazı kuumltuumlphaneler barındırmaktadır Bu kuumltuumlphanelere uygulama geliştirirken ilgili servisin yetki gereksinimine goumlre erişerek uygulamamız iccedilerisinde kullanabilir veya youmlnetebiliriz
ndash Power Managerndash Activity Managerndash Package Managerndash Alarm Managerndash Window Managerndash Bluetooth Servicendash Location Managerndash
bull Bunlardan bazılarıdır
Package Managerbull Package Manager Android uumlzerinde kurulu paket(uygulamalar)ler
den sorumlu olan servistir Bu servisi kullanılarak bir paket kaldırabilir veya bu paket hakkında bilgi alabiliriz
bull Package Manager uygulamalar hakkında bilgi alınacağı zaman herhangi bir yetki gerektirmez Paket hakkında bilgi alabileceğiniz gibi uygulamanın kaynağınada erişebilmenize imkan tanır Anti-Viruumlsler ve benzeri bir ccedilok uygulama bu sayede paketlere erişim sağlar veya onları kopyalar
bull Package Manager paketleri kaldırmak(silmek) iccedilin yetkiizin gerektirir Bu izni DELETE_PACKAGES ile kazanır
Package Manager
Package ManagerPackageManager pm = getPackageManager() ListltApplicationInfogt paketler = pmgetInstalledApplications(PackageManagerGET_META_DATA) for (ApplicationInfo paketbilgileri paketler) if(paketbilgileripackageNametoString() = null) Logd(SiberGuvenlik Yuumlkluuml paket + paketbilgileripackageName)
Telephony Managerbull TelephonyManager Androidrsquoin kurulu olduğu cihazdan sorumlu
olan servistir Bu servisi kullanılarak cihaz hakkında farklı alanda bilgi alabiliriz
ndash CALL_STATE_IDLE Device call state No activityndash CALL_STATE_OFFHOOK Device call state Off-hookndash CALL_STATE_RINGING Device call state Ringingndash DATA_ACTIVITY_DORMAN Data connection is active but physical link is downndash DATA_ACTIVITY_IN Data connection activity Currently receiving IP PPP
trafficndash DATA_ACTIVITY_NONE Data connection activity No trafficndash DATA_ACTIVITY_OUT Data connection activity Currently sending IP PPP trafficndash DATA_CONNECTED Data connection state Connected
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Mimarisibull Linux Kernel
ndash Process Youmlnetimindash Memory Youmlnetimi
bull Librariesndash Bionic libcndash Function kuumltuumlphanesindash Yerel servislerndash Hardware abstraction ( HAL )ndash
bull Android Runtimendash Dalvik VM (JIT ndash Just-in-Time) (libdvmso)ndash ART ( 44 KitKat ile geldi - AOT ndash Ahead-of-Time) (libartso)ndash Core Java Kuumltuumlphanesi
bull Application Frameworkndash Activity Managerndash Notification Managerndash
bull Applicationsndash Contactsndash Phone
Dalvik VMbull Dalvik Virtual Machine Dan Bornstein tarafından Android iccedilin oumlzel
olarak geliştirilmiş bir sanal makinadır
bull Java olarak yazılan uygulama kodları (class) derleyiciler tarafından Dalvik VMrsquoin okuyabileceği op codelara ccedilevrilir ve dex uzantılı dosyaya doumlnuumlştuumlruumlluumlr
bull Dex dosyaları Dalvik VMrsquonin ccedilalıştırılabilir(executable) dosya uzantılarıdır
ARTbull Google firmasının Android iccedilin uumlretmeye başladığı ve Android 44
Kitkat ile tanıttığı yeni nesil Android Runtime rsquodir
bull Gelecekte Dalvik VMrsquoin yerini alması beklenmektedir
bull Dalvik VM Just-in-Time ndash JIT olarak ccedilalıştığı iccedilin az hafıza ccedilok işlemci tuumlketir ART ise Ahead-of-Time ndash AOT olarak ccedilalışarak ccedilok hafıza az işlemci ile Android lsquoin daha hızlı ccedilalışmasını sağlar
bull Dalvik VM ile JIT ndash Uygulamalar kurulduktan sonra ccedilalıştırılabilir dosyaları(dex) ccedilalıştırılacağı zaman kendi iccedilerisinde işlemcinin anlayacağı dile ccedilevirerek derler
bull ART ile AOT - Uygulamalar kurulurken ccedilalıştırılabilir dosyaları(dex) kurulum aşamasında işlemcinin anlayacağı dile ccedilevirir ve ccedilalışma sırasında ccedilevirdiği dosyaları kullanır ve zaman kaybetmez
APK Dosyalarıbull Android uygulamaların paketlenmiş
APK Dosyaları
DEX Dosyaları
Data Saklama AlanlarıAndroid işletim sistemi uumlzerinde 5 farklı şekilde data tutma youmlntemi bulunmaktadır
Data Saklama Alanlarıbull Internal Storage ndash datadata klasoumlruuml iccedilerisinde ilgili uygulamanın paket adıyla
oluşturulmuş ve uygulama alanıyla erişim sağlanabilinen alanıdır Normal şartlarda bu alana sadece uygulamanın erişim hakkı verilir ilgili erişim root yetkisiyle yapılmadıysa goumlruumlntuumllenemez
bull External Storage ndash İlgili cihazın diğer depolama alanlarında guumlvenlik ilke ve politikaları yuumlksek seviyede uygulanırken external storage alanında kısıtlamalar daha duumlşuumlk seviyededir cihaz uumlzerine dahil edilmiş bir sdcard uumlzerinde yazma ve okuma işlemlerini rahatlıkla yapabilmekteyiz
bull Shared Preferences - İlgili uygulama alanında bulunan ve XML formatı ile ilgili uygulamaya ait isteğe bağlı dataların saklanmasına olanak tanır bu alanda genelde uygulama ile ilgili basit ayar bilgileri bulunur
bull Network Android Network uumlzerinden data saklama imkanıda sağlamaktadır
bull SQLite SQLite dosyaları kısıtlama olmaksızın uygulamalar tarafından oluşturulabilir tablo mantiği ile veri saklama imkanı sağlarken genellikle datadatapaketadidatabases dizininde bulunurlar bu zorunlu değildir dilendiği takdirde harici dizinlerde barındırılabilinir
Rooted amp Unrootedbull Android işletim sistemi erişim ve yetki konusunda bazı sınırlar
barındırmaktadır Bu sınırlar işletim sistemi uumlzerindeki bazı zafiyetler sayesinde soumlmuumlruumllerek (exploit) işletim sistemi uumlzerinde root yetkisi kazanılması işlemi piyasada rootlamak olarak adlandırılmaktadır
bull Data Saklama Alanlarında internal storage(datadatapackage) alanına normal şartlarda root dışında uygulama haricinde erişemeyiz fakat root yetkisi kazandıysanız internal storage alanınıda goumlruumlntuumlleyebilmeniz muumlmkuumlnduumlr
bull Root yetkisi kazanılmış cihazlara Rootlanmış cihaz
bull Root yetkisi bulunmayan cihazlara ise Unrooted cihaz diyebiliriz
Rooted amp Unrooted
Android APIsbull Android işletim sistemi mimarisinden hatırlayacağınız uumlzere
Application Framework katmanında bazı kuumltuumlphaneler barındırmaktadır Bu kuumltuumlphanelere uygulama geliştirirken ilgili servisin yetki gereksinimine goumlre erişerek uygulamamız iccedilerisinde kullanabilir veya youmlnetebiliriz
ndash Power Managerndash Activity Managerndash Package Managerndash Alarm Managerndash Window Managerndash Bluetooth Servicendash Location Managerndash
bull Bunlardan bazılarıdır
Package Managerbull Package Manager Android uumlzerinde kurulu paket(uygulamalar)ler
den sorumlu olan servistir Bu servisi kullanılarak bir paket kaldırabilir veya bu paket hakkında bilgi alabiliriz
bull Package Manager uygulamalar hakkında bilgi alınacağı zaman herhangi bir yetki gerektirmez Paket hakkında bilgi alabileceğiniz gibi uygulamanın kaynağınada erişebilmenize imkan tanır Anti-Viruumlsler ve benzeri bir ccedilok uygulama bu sayede paketlere erişim sağlar veya onları kopyalar
bull Package Manager paketleri kaldırmak(silmek) iccedilin yetkiizin gerektirir Bu izni DELETE_PACKAGES ile kazanır
Package Manager
Package ManagerPackageManager pm = getPackageManager() ListltApplicationInfogt paketler = pmgetInstalledApplications(PackageManagerGET_META_DATA) for (ApplicationInfo paketbilgileri paketler) if(paketbilgileripackageNametoString() = null) Logd(SiberGuvenlik Yuumlkluuml paket + paketbilgileripackageName)
Telephony Managerbull TelephonyManager Androidrsquoin kurulu olduğu cihazdan sorumlu
olan servistir Bu servisi kullanılarak cihaz hakkında farklı alanda bilgi alabiliriz
ndash CALL_STATE_IDLE Device call state No activityndash CALL_STATE_OFFHOOK Device call state Off-hookndash CALL_STATE_RINGING Device call state Ringingndash DATA_ACTIVITY_DORMAN Data connection is active but physical link is downndash DATA_ACTIVITY_IN Data connection activity Currently receiving IP PPP
trafficndash DATA_ACTIVITY_NONE Data connection activity No trafficndash DATA_ACTIVITY_OUT Data connection activity Currently sending IP PPP trafficndash DATA_CONNECTED Data connection state Connected
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Dalvik VMbull Dalvik Virtual Machine Dan Bornstein tarafından Android iccedilin oumlzel
olarak geliştirilmiş bir sanal makinadır
bull Java olarak yazılan uygulama kodları (class) derleyiciler tarafından Dalvik VMrsquoin okuyabileceği op codelara ccedilevrilir ve dex uzantılı dosyaya doumlnuumlştuumlruumlluumlr
bull Dex dosyaları Dalvik VMrsquonin ccedilalıştırılabilir(executable) dosya uzantılarıdır
ARTbull Google firmasının Android iccedilin uumlretmeye başladığı ve Android 44
Kitkat ile tanıttığı yeni nesil Android Runtime rsquodir
bull Gelecekte Dalvik VMrsquoin yerini alması beklenmektedir
bull Dalvik VM Just-in-Time ndash JIT olarak ccedilalıştığı iccedilin az hafıza ccedilok işlemci tuumlketir ART ise Ahead-of-Time ndash AOT olarak ccedilalışarak ccedilok hafıza az işlemci ile Android lsquoin daha hızlı ccedilalışmasını sağlar
bull Dalvik VM ile JIT ndash Uygulamalar kurulduktan sonra ccedilalıştırılabilir dosyaları(dex) ccedilalıştırılacağı zaman kendi iccedilerisinde işlemcinin anlayacağı dile ccedilevirerek derler
bull ART ile AOT - Uygulamalar kurulurken ccedilalıştırılabilir dosyaları(dex) kurulum aşamasında işlemcinin anlayacağı dile ccedilevirir ve ccedilalışma sırasında ccedilevirdiği dosyaları kullanır ve zaman kaybetmez
APK Dosyalarıbull Android uygulamaların paketlenmiş
APK Dosyaları
DEX Dosyaları
Data Saklama AlanlarıAndroid işletim sistemi uumlzerinde 5 farklı şekilde data tutma youmlntemi bulunmaktadır
Data Saklama Alanlarıbull Internal Storage ndash datadata klasoumlruuml iccedilerisinde ilgili uygulamanın paket adıyla
oluşturulmuş ve uygulama alanıyla erişim sağlanabilinen alanıdır Normal şartlarda bu alana sadece uygulamanın erişim hakkı verilir ilgili erişim root yetkisiyle yapılmadıysa goumlruumlntuumllenemez
bull External Storage ndash İlgili cihazın diğer depolama alanlarında guumlvenlik ilke ve politikaları yuumlksek seviyede uygulanırken external storage alanında kısıtlamalar daha duumlşuumlk seviyededir cihaz uumlzerine dahil edilmiş bir sdcard uumlzerinde yazma ve okuma işlemlerini rahatlıkla yapabilmekteyiz
bull Shared Preferences - İlgili uygulama alanında bulunan ve XML formatı ile ilgili uygulamaya ait isteğe bağlı dataların saklanmasına olanak tanır bu alanda genelde uygulama ile ilgili basit ayar bilgileri bulunur
bull Network Android Network uumlzerinden data saklama imkanıda sağlamaktadır
bull SQLite SQLite dosyaları kısıtlama olmaksızın uygulamalar tarafından oluşturulabilir tablo mantiği ile veri saklama imkanı sağlarken genellikle datadatapaketadidatabases dizininde bulunurlar bu zorunlu değildir dilendiği takdirde harici dizinlerde barındırılabilinir
Rooted amp Unrootedbull Android işletim sistemi erişim ve yetki konusunda bazı sınırlar
barındırmaktadır Bu sınırlar işletim sistemi uumlzerindeki bazı zafiyetler sayesinde soumlmuumlruumllerek (exploit) işletim sistemi uumlzerinde root yetkisi kazanılması işlemi piyasada rootlamak olarak adlandırılmaktadır
bull Data Saklama Alanlarında internal storage(datadatapackage) alanına normal şartlarda root dışında uygulama haricinde erişemeyiz fakat root yetkisi kazandıysanız internal storage alanınıda goumlruumlntuumlleyebilmeniz muumlmkuumlnduumlr
bull Root yetkisi kazanılmış cihazlara Rootlanmış cihaz
bull Root yetkisi bulunmayan cihazlara ise Unrooted cihaz diyebiliriz
Rooted amp Unrooted
Android APIsbull Android işletim sistemi mimarisinden hatırlayacağınız uumlzere
Application Framework katmanında bazı kuumltuumlphaneler barındırmaktadır Bu kuumltuumlphanelere uygulama geliştirirken ilgili servisin yetki gereksinimine goumlre erişerek uygulamamız iccedilerisinde kullanabilir veya youmlnetebiliriz
ndash Power Managerndash Activity Managerndash Package Managerndash Alarm Managerndash Window Managerndash Bluetooth Servicendash Location Managerndash
bull Bunlardan bazılarıdır
Package Managerbull Package Manager Android uumlzerinde kurulu paket(uygulamalar)ler
den sorumlu olan servistir Bu servisi kullanılarak bir paket kaldırabilir veya bu paket hakkında bilgi alabiliriz
bull Package Manager uygulamalar hakkında bilgi alınacağı zaman herhangi bir yetki gerektirmez Paket hakkında bilgi alabileceğiniz gibi uygulamanın kaynağınada erişebilmenize imkan tanır Anti-Viruumlsler ve benzeri bir ccedilok uygulama bu sayede paketlere erişim sağlar veya onları kopyalar
bull Package Manager paketleri kaldırmak(silmek) iccedilin yetkiizin gerektirir Bu izni DELETE_PACKAGES ile kazanır
Package Manager
Package ManagerPackageManager pm = getPackageManager() ListltApplicationInfogt paketler = pmgetInstalledApplications(PackageManagerGET_META_DATA) for (ApplicationInfo paketbilgileri paketler) if(paketbilgileripackageNametoString() = null) Logd(SiberGuvenlik Yuumlkluuml paket + paketbilgileripackageName)
Telephony Managerbull TelephonyManager Androidrsquoin kurulu olduğu cihazdan sorumlu
olan servistir Bu servisi kullanılarak cihaz hakkında farklı alanda bilgi alabiliriz
ndash CALL_STATE_IDLE Device call state No activityndash CALL_STATE_OFFHOOK Device call state Off-hookndash CALL_STATE_RINGING Device call state Ringingndash DATA_ACTIVITY_DORMAN Data connection is active but physical link is downndash DATA_ACTIVITY_IN Data connection activity Currently receiving IP PPP
trafficndash DATA_ACTIVITY_NONE Data connection activity No trafficndash DATA_ACTIVITY_OUT Data connection activity Currently sending IP PPP trafficndash DATA_CONNECTED Data connection state Connected
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
ARTbull Google firmasının Android iccedilin uumlretmeye başladığı ve Android 44
Kitkat ile tanıttığı yeni nesil Android Runtime rsquodir
bull Gelecekte Dalvik VMrsquoin yerini alması beklenmektedir
bull Dalvik VM Just-in-Time ndash JIT olarak ccedilalıştığı iccedilin az hafıza ccedilok işlemci tuumlketir ART ise Ahead-of-Time ndash AOT olarak ccedilalışarak ccedilok hafıza az işlemci ile Android lsquoin daha hızlı ccedilalışmasını sağlar
bull Dalvik VM ile JIT ndash Uygulamalar kurulduktan sonra ccedilalıştırılabilir dosyaları(dex) ccedilalıştırılacağı zaman kendi iccedilerisinde işlemcinin anlayacağı dile ccedilevirerek derler
bull ART ile AOT - Uygulamalar kurulurken ccedilalıştırılabilir dosyaları(dex) kurulum aşamasında işlemcinin anlayacağı dile ccedilevirir ve ccedilalışma sırasında ccedilevirdiği dosyaları kullanır ve zaman kaybetmez
APK Dosyalarıbull Android uygulamaların paketlenmiş
APK Dosyaları
DEX Dosyaları
Data Saklama AlanlarıAndroid işletim sistemi uumlzerinde 5 farklı şekilde data tutma youmlntemi bulunmaktadır
Data Saklama Alanlarıbull Internal Storage ndash datadata klasoumlruuml iccedilerisinde ilgili uygulamanın paket adıyla
oluşturulmuş ve uygulama alanıyla erişim sağlanabilinen alanıdır Normal şartlarda bu alana sadece uygulamanın erişim hakkı verilir ilgili erişim root yetkisiyle yapılmadıysa goumlruumlntuumllenemez
bull External Storage ndash İlgili cihazın diğer depolama alanlarında guumlvenlik ilke ve politikaları yuumlksek seviyede uygulanırken external storage alanında kısıtlamalar daha duumlşuumlk seviyededir cihaz uumlzerine dahil edilmiş bir sdcard uumlzerinde yazma ve okuma işlemlerini rahatlıkla yapabilmekteyiz
bull Shared Preferences - İlgili uygulama alanında bulunan ve XML formatı ile ilgili uygulamaya ait isteğe bağlı dataların saklanmasına olanak tanır bu alanda genelde uygulama ile ilgili basit ayar bilgileri bulunur
bull Network Android Network uumlzerinden data saklama imkanıda sağlamaktadır
bull SQLite SQLite dosyaları kısıtlama olmaksızın uygulamalar tarafından oluşturulabilir tablo mantiği ile veri saklama imkanı sağlarken genellikle datadatapaketadidatabases dizininde bulunurlar bu zorunlu değildir dilendiği takdirde harici dizinlerde barındırılabilinir
Rooted amp Unrootedbull Android işletim sistemi erişim ve yetki konusunda bazı sınırlar
barındırmaktadır Bu sınırlar işletim sistemi uumlzerindeki bazı zafiyetler sayesinde soumlmuumlruumllerek (exploit) işletim sistemi uumlzerinde root yetkisi kazanılması işlemi piyasada rootlamak olarak adlandırılmaktadır
bull Data Saklama Alanlarında internal storage(datadatapackage) alanına normal şartlarda root dışında uygulama haricinde erişemeyiz fakat root yetkisi kazandıysanız internal storage alanınıda goumlruumlntuumlleyebilmeniz muumlmkuumlnduumlr
bull Root yetkisi kazanılmış cihazlara Rootlanmış cihaz
bull Root yetkisi bulunmayan cihazlara ise Unrooted cihaz diyebiliriz
Rooted amp Unrooted
Android APIsbull Android işletim sistemi mimarisinden hatırlayacağınız uumlzere
Application Framework katmanında bazı kuumltuumlphaneler barındırmaktadır Bu kuumltuumlphanelere uygulama geliştirirken ilgili servisin yetki gereksinimine goumlre erişerek uygulamamız iccedilerisinde kullanabilir veya youmlnetebiliriz
ndash Power Managerndash Activity Managerndash Package Managerndash Alarm Managerndash Window Managerndash Bluetooth Servicendash Location Managerndash
bull Bunlardan bazılarıdır
Package Managerbull Package Manager Android uumlzerinde kurulu paket(uygulamalar)ler
den sorumlu olan servistir Bu servisi kullanılarak bir paket kaldırabilir veya bu paket hakkında bilgi alabiliriz
bull Package Manager uygulamalar hakkında bilgi alınacağı zaman herhangi bir yetki gerektirmez Paket hakkında bilgi alabileceğiniz gibi uygulamanın kaynağınada erişebilmenize imkan tanır Anti-Viruumlsler ve benzeri bir ccedilok uygulama bu sayede paketlere erişim sağlar veya onları kopyalar
bull Package Manager paketleri kaldırmak(silmek) iccedilin yetkiizin gerektirir Bu izni DELETE_PACKAGES ile kazanır
Package Manager
Package ManagerPackageManager pm = getPackageManager() ListltApplicationInfogt paketler = pmgetInstalledApplications(PackageManagerGET_META_DATA) for (ApplicationInfo paketbilgileri paketler) if(paketbilgileripackageNametoString() = null) Logd(SiberGuvenlik Yuumlkluuml paket + paketbilgileripackageName)
Telephony Managerbull TelephonyManager Androidrsquoin kurulu olduğu cihazdan sorumlu
olan servistir Bu servisi kullanılarak cihaz hakkında farklı alanda bilgi alabiliriz
ndash CALL_STATE_IDLE Device call state No activityndash CALL_STATE_OFFHOOK Device call state Off-hookndash CALL_STATE_RINGING Device call state Ringingndash DATA_ACTIVITY_DORMAN Data connection is active but physical link is downndash DATA_ACTIVITY_IN Data connection activity Currently receiving IP PPP
trafficndash DATA_ACTIVITY_NONE Data connection activity No trafficndash DATA_ACTIVITY_OUT Data connection activity Currently sending IP PPP trafficndash DATA_CONNECTED Data connection state Connected
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
APK Dosyalarıbull Android uygulamaların paketlenmiş
APK Dosyaları
DEX Dosyaları
Data Saklama AlanlarıAndroid işletim sistemi uumlzerinde 5 farklı şekilde data tutma youmlntemi bulunmaktadır
Data Saklama Alanlarıbull Internal Storage ndash datadata klasoumlruuml iccedilerisinde ilgili uygulamanın paket adıyla
oluşturulmuş ve uygulama alanıyla erişim sağlanabilinen alanıdır Normal şartlarda bu alana sadece uygulamanın erişim hakkı verilir ilgili erişim root yetkisiyle yapılmadıysa goumlruumlntuumllenemez
bull External Storage ndash İlgili cihazın diğer depolama alanlarında guumlvenlik ilke ve politikaları yuumlksek seviyede uygulanırken external storage alanında kısıtlamalar daha duumlşuumlk seviyededir cihaz uumlzerine dahil edilmiş bir sdcard uumlzerinde yazma ve okuma işlemlerini rahatlıkla yapabilmekteyiz
bull Shared Preferences - İlgili uygulama alanında bulunan ve XML formatı ile ilgili uygulamaya ait isteğe bağlı dataların saklanmasına olanak tanır bu alanda genelde uygulama ile ilgili basit ayar bilgileri bulunur
bull Network Android Network uumlzerinden data saklama imkanıda sağlamaktadır
bull SQLite SQLite dosyaları kısıtlama olmaksızın uygulamalar tarafından oluşturulabilir tablo mantiği ile veri saklama imkanı sağlarken genellikle datadatapaketadidatabases dizininde bulunurlar bu zorunlu değildir dilendiği takdirde harici dizinlerde barındırılabilinir
Rooted amp Unrootedbull Android işletim sistemi erişim ve yetki konusunda bazı sınırlar
barındırmaktadır Bu sınırlar işletim sistemi uumlzerindeki bazı zafiyetler sayesinde soumlmuumlruumllerek (exploit) işletim sistemi uumlzerinde root yetkisi kazanılması işlemi piyasada rootlamak olarak adlandırılmaktadır
bull Data Saklama Alanlarında internal storage(datadatapackage) alanına normal şartlarda root dışında uygulama haricinde erişemeyiz fakat root yetkisi kazandıysanız internal storage alanınıda goumlruumlntuumlleyebilmeniz muumlmkuumlnduumlr
bull Root yetkisi kazanılmış cihazlara Rootlanmış cihaz
bull Root yetkisi bulunmayan cihazlara ise Unrooted cihaz diyebiliriz
Rooted amp Unrooted
Android APIsbull Android işletim sistemi mimarisinden hatırlayacağınız uumlzere
Application Framework katmanında bazı kuumltuumlphaneler barındırmaktadır Bu kuumltuumlphanelere uygulama geliştirirken ilgili servisin yetki gereksinimine goumlre erişerek uygulamamız iccedilerisinde kullanabilir veya youmlnetebiliriz
ndash Power Managerndash Activity Managerndash Package Managerndash Alarm Managerndash Window Managerndash Bluetooth Servicendash Location Managerndash
bull Bunlardan bazılarıdır
Package Managerbull Package Manager Android uumlzerinde kurulu paket(uygulamalar)ler
den sorumlu olan servistir Bu servisi kullanılarak bir paket kaldırabilir veya bu paket hakkında bilgi alabiliriz
bull Package Manager uygulamalar hakkında bilgi alınacağı zaman herhangi bir yetki gerektirmez Paket hakkında bilgi alabileceğiniz gibi uygulamanın kaynağınada erişebilmenize imkan tanır Anti-Viruumlsler ve benzeri bir ccedilok uygulama bu sayede paketlere erişim sağlar veya onları kopyalar
bull Package Manager paketleri kaldırmak(silmek) iccedilin yetkiizin gerektirir Bu izni DELETE_PACKAGES ile kazanır
Package Manager
Package ManagerPackageManager pm = getPackageManager() ListltApplicationInfogt paketler = pmgetInstalledApplications(PackageManagerGET_META_DATA) for (ApplicationInfo paketbilgileri paketler) if(paketbilgileripackageNametoString() = null) Logd(SiberGuvenlik Yuumlkluuml paket + paketbilgileripackageName)
Telephony Managerbull TelephonyManager Androidrsquoin kurulu olduğu cihazdan sorumlu
olan servistir Bu servisi kullanılarak cihaz hakkında farklı alanda bilgi alabiliriz
ndash CALL_STATE_IDLE Device call state No activityndash CALL_STATE_OFFHOOK Device call state Off-hookndash CALL_STATE_RINGING Device call state Ringingndash DATA_ACTIVITY_DORMAN Data connection is active but physical link is downndash DATA_ACTIVITY_IN Data connection activity Currently receiving IP PPP
trafficndash DATA_ACTIVITY_NONE Data connection activity No trafficndash DATA_ACTIVITY_OUT Data connection activity Currently sending IP PPP trafficndash DATA_CONNECTED Data connection state Connected
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
APK Dosyaları
DEX Dosyaları
Data Saklama AlanlarıAndroid işletim sistemi uumlzerinde 5 farklı şekilde data tutma youmlntemi bulunmaktadır
Data Saklama Alanlarıbull Internal Storage ndash datadata klasoumlruuml iccedilerisinde ilgili uygulamanın paket adıyla
oluşturulmuş ve uygulama alanıyla erişim sağlanabilinen alanıdır Normal şartlarda bu alana sadece uygulamanın erişim hakkı verilir ilgili erişim root yetkisiyle yapılmadıysa goumlruumlntuumllenemez
bull External Storage ndash İlgili cihazın diğer depolama alanlarında guumlvenlik ilke ve politikaları yuumlksek seviyede uygulanırken external storage alanında kısıtlamalar daha duumlşuumlk seviyededir cihaz uumlzerine dahil edilmiş bir sdcard uumlzerinde yazma ve okuma işlemlerini rahatlıkla yapabilmekteyiz
bull Shared Preferences - İlgili uygulama alanında bulunan ve XML formatı ile ilgili uygulamaya ait isteğe bağlı dataların saklanmasına olanak tanır bu alanda genelde uygulama ile ilgili basit ayar bilgileri bulunur
bull Network Android Network uumlzerinden data saklama imkanıda sağlamaktadır
bull SQLite SQLite dosyaları kısıtlama olmaksızın uygulamalar tarafından oluşturulabilir tablo mantiği ile veri saklama imkanı sağlarken genellikle datadatapaketadidatabases dizininde bulunurlar bu zorunlu değildir dilendiği takdirde harici dizinlerde barındırılabilinir
Rooted amp Unrootedbull Android işletim sistemi erişim ve yetki konusunda bazı sınırlar
barındırmaktadır Bu sınırlar işletim sistemi uumlzerindeki bazı zafiyetler sayesinde soumlmuumlruumllerek (exploit) işletim sistemi uumlzerinde root yetkisi kazanılması işlemi piyasada rootlamak olarak adlandırılmaktadır
bull Data Saklama Alanlarında internal storage(datadatapackage) alanına normal şartlarda root dışında uygulama haricinde erişemeyiz fakat root yetkisi kazandıysanız internal storage alanınıda goumlruumlntuumlleyebilmeniz muumlmkuumlnduumlr
bull Root yetkisi kazanılmış cihazlara Rootlanmış cihaz
bull Root yetkisi bulunmayan cihazlara ise Unrooted cihaz diyebiliriz
Rooted amp Unrooted
Android APIsbull Android işletim sistemi mimarisinden hatırlayacağınız uumlzere
Application Framework katmanında bazı kuumltuumlphaneler barındırmaktadır Bu kuumltuumlphanelere uygulama geliştirirken ilgili servisin yetki gereksinimine goumlre erişerek uygulamamız iccedilerisinde kullanabilir veya youmlnetebiliriz
ndash Power Managerndash Activity Managerndash Package Managerndash Alarm Managerndash Window Managerndash Bluetooth Servicendash Location Managerndash
bull Bunlardan bazılarıdır
Package Managerbull Package Manager Android uumlzerinde kurulu paket(uygulamalar)ler
den sorumlu olan servistir Bu servisi kullanılarak bir paket kaldırabilir veya bu paket hakkında bilgi alabiliriz
bull Package Manager uygulamalar hakkında bilgi alınacağı zaman herhangi bir yetki gerektirmez Paket hakkında bilgi alabileceğiniz gibi uygulamanın kaynağınada erişebilmenize imkan tanır Anti-Viruumlsler ve benzeri bir ccedilok uygulama bu sayede paketlere erişim sağlar veya onları kopyalar
bull Package Manager paketleri kaldırmak(silmek) iccedilin yetkiizin gerektirir Bu izni DELETE_PACKAGES ile kazanır
Package Manager
Package ManagerPackageManager pm = getPackageManager() ListltApplicationInfogt paketler = pmgetInstalledApplications(PackageManagerGET_META_DATA) for (ApplicationInfo paketbilgileri paketler) if(paketbilgileripackageNametoString() = null) Logd(SiberGuvenlik Yuumlkluuml paket + paketbilgileripackageName)
Telephony Managerbull TelephonyManager Androidrsquoin kurulu olduğu cihazdan sorumlu
olan servistir Bu servisi kullanılarak cihaz hakkında farklı alanda bilgi alabiliriz
ndash CALL_STATE_IDLE Device call state No activityndash CALL_STATE_OFFHOOK Device call state Off-hookndash CALL_STATE_RINGING Device call state Ringingndash DATA_ACTIVITY_DORMAN Data connection is active but physical link is downndash DATA_ACTIVITY_IN Data connection activity Currently receiving IP PPP
trafficndash DATA_ACTIVITY_NONE Data connection activity No trafficndash DATA_ACTIVITY_OUT Data connection activity Currently sending IP PPP trafficndash DATA_CONNECTED Data connection state Connected
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
DEX Dosyaları
Data Saklama AlanlarıAndroid işletim sistemi uumlzerinde 5 farklı şekilde data tutma youmlntemi bulunmaktadır
Data Saklama Alanlarıbull Internal Storage ndash datadata klasoumlruuml iccedilerisinde ilgili uygulamanın paket adıyla
oluşturulmuş ve uygulama alanıyla erişim sağlanabilinen alanıdır Normal şartlarda bu alana sadece uygulamanın erişim hakkı verilir ilgili erişim root yetkisiyle yapılmadıysa goumlruumlntuumllenemez
bull External Storage ndash İlgili cihazın diğer depolama alanlarında guumlvenlik ilke ve politikaları yuumlksek seviyede uygulanırken external storage alanında kısıtlamalar daha duumlşuumlk seviyededir cihaz uumlzerine dahil edilmiş bir sdcard uumlzerinde yazma ve okuma işlemlerini rahatlıkla yapabilmekteyiz
bull Shared Preferences - İlgili uygulama alanında bulunan ve XML formatı ile ilgili uygulamaya ait isteğe bağlı dataların saklanmasına olanak tanır bu alanda genelde uygulama ile ilgili basit ayar bilgileri bulunur
bull Network Android Network uumlzerinden data saklama imkanıda sağlamaktadır
bull SQLite SQLite dosyaları kısıtlama olmaksızın uygulamalar tarafından oluşturulabilir tablo mantiği ile veri saklama imkanı sağlarken genellikle datadatapaketadidatabases dizininde bulunurlar bu zorunlu değildir dilendiği takdirde harici dizinlerde barındırılabilinir
Rooted amp Unrootedbull Android işletim sistemi erişim ve yetki konusunda bazı sınırlar
barındırmaktadır Bu sınırlar işletim sistemi uumlzerindeki bazı zafiyetler sayesinde soumlmuumlruumllerek (exploit) işletim sistemi uumlzerinde root yetkisi kazanılması işlemi piyasada rootlamak olarak adlandırılmaktadır
bull Data Saklama Alanlarında internal storage(datadatapackage) alanına normal şartlarda root dışında uygulama haricinde erişemeyiz fakat root yetkisi kazandıysanız internal storage alanınıda goumlruumlntuumlleyebilmeniz muumlmkuumlnduumlr
bull Root yetkisi kazanılmış cihazlara Rootlanmış cihaz
bull Root yetkisi bulunmayan cihazlara ise Unrooted cihaz diyebiliriz
Rooted amp Unrooted
Android APIsbull Android işletim sistemi mimarisinden hatırlayacağınız uumlzere
Application Framework katmanında bazı kuumltuumlphaneler barındırmaktadır Bu kuumltuumlphanelere uygulama geliştirirken ilgili servisin yetki gereksinimine goumlre erişerek uygulamamız iccedilerisinde kullanabilir veya youmlnetebiliriz
ndash Power Managerndash Activity Managerndash Package Managerndash Alarm Managerndash Window Managerndash Bluetooth Servicendash Location Managerndash
bull Bunlardan bazılarıdır
Package Managerbull Package Manager Android uumlzerinde kurulu paket(uygulamalar)ler
den sorumlu olan servistir Bu servisi kullanılarak bir paket kaldırabilir veya bu paket hakkında bilgi alabiliriz
bull Package Manager uygulamalar hakkında bilgi alınacağı zaman herhangi bir yetki gerektirmez Paket hakkında bilgi alabileceğiniz gibi uygulamanın kaynağınada erişebilmenize imkan tanır Anti-Viruumlsler ve benzeri bir ccedilok uygulama bu sayede paketlere erişim sağlar veya onları kopyalar
bull Package Manager paketleri kaldırmak(silmek) iccedilin yetkiizin gerektirir Bu izni DELETE_PACKAGES ile kazanır
Package Manager
Package ManagerPackageManager pm = getPackageManager() ListltApplicationInfogt paketler = pmgetInstalledApplications(PackageManagerGET_META_DATA) for (ApplicationInfo paketbilgileri paketler) if(paketbilgileripackageNametoString() = null) Logd(SiberGuvenlik Yuumlkluuml paket + paketbilgileripackageName)
Telephony Managerbull TelephonyManager Androidrsquoin kurulu olduğu cihazdan sorumlu
olan servistir Bu servisi kullanılarak cihaz hakkında farklı alanda bilgi alabiliriz
ndash CALL_STATE_IDLE Device call state No activityndash CALL_STATE_OFFHOOK Device call state Off-hookndash CALL_STATE_RINGING Device call state Ringingndash DATA_ACTIVITY_DORMAN Data connection is active but physical link is downndash DATA_ACTIVITY_IN Data connection activity Currently receiving IP PPP
trafficndash DATA_ACTIVITY_NONE Data connection activity No trafficndash DATA_ACTIVITY_OUT Data connection activity Currently sending IP PPP trafficndash DATA_CONNECTED Data connection state Connected
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Data Saklama AlanlarıAndroid işletim sistemi uumlzerinde 5 farklı şekilde data tutma youmlntemi bulunmaktadır
Data Saklama Alanlarıbull Internal Storage ndash datadata klasoumlruuml iccedilerisinde ilgili uygulamanın paket adıyla
oluşturulmuş ve uygulama alanıyla erişim sağlanabilinen alanıdır Normal şartlarda bu alana sadece uygulamanın erişim hakkı verilir ilgili erişim root yetkisiyle yapılmadıysa goumlruumlntuumllenemez
bull External Storage ndash İlgili cihazın diğer depolama alanlarında guumlvenlik ilke ve politikaları yuumlksek seviyede uygulanırken external storage alanında kısıtlamalar daha duumlşuumlk seviyededir cihaz uumlzerine dahil edilmiş bir sdcard uumlzerinde yazma ve okuma işlemlerini rahatlıkla yapabilmekteyiz
bull Shared Preferences - İlgili uygulama alanında bulunan ve XML formatı ile ilgili uygulamaya ait isteğe bağlı dataların saklanmasına olanak tanır bu alanda genelde uygulama ile ilgili basit ayar bilgileri bulunur
bull Network Android Network uumlzerinden data saklama imkanıda sağlamaktadır
bull SQLite SQLite dosyaları kısıtlama olmaksızın uygulamalar tarafından oluşturulabilir tablo mantiği ile veri saklama imkanı sağlarken genellikle datadatapaketadidatabases dizininde bulunurlar bu zorunlu değildir dilendiği takdirde harici dizinlerde barındırılabilinir
Rooted amp Unrootedbull Android işletim sistemi erişim ve yetki konusunda bazı sınırlar
barındırmaktadır Bu sınırlar işletim sistemi uumlzerindeki bazı zafiyetler sayesinde soumlmuumlruumllerek (exploit) işletim sistemi uumlzerinde root yetkisi kazanılması işlemi piyasada rootlamak olarak adlandırılmaktadır
bull Data Saklama Alanlarında internal storage(datadatapackage) alanına normal şartlarda root dışında uygulama haricinde erişemeyiz fakat root yetkisi kazandıysanız internal storage alanınıda goumlruumlntuumlleyebilmeniz muumlmkuumlnduumlr
bull Root yetkisi kazanılmış cihazlara Rootlanmış cihaz
bull Root yetkisi bulunmayan cihazlara ise Unrooted cihaz diyebiliriz
Rooted amp Unrooted
Android APIsbull Android işletim sistemi mimarisinden hatırlayacağınız uumlzere
Application Framework katmanında bazı kuumltuumlphaneler barındırmaktadır Bu kuumltuumlphanelere uygulama geliştirirken ilgili servisin yetki gereksinimine goumlre erişerek uygulamamız iccedilerisinde kullanabilir veya youmlnetebiliriz
ndash Power Managerndash Activity Managerndash Package Managerndash Alarm Managerndash Window Managerndash Bluetooth Servicendash Location Managerndash
bull Bunlardan bazılarıdır
Package Managerbull Package Manager Android uumlzerinde kurulu paket(uygulamalar)ler
den sorumlu olan servistir Bu servisi kullanılarak bir paket kaldırabilir veya bu paket hakkında bilgi alabiliriz
bull Package Manager uygulamalar hakkında bilgi alınacağı zaman herhangi bir yetki gerektirmez Paket hakkında bilgi alabileceğiniz gibi uygulamanın kaynağınada erişebilmenize imkan tanır Anti-Viruumlsler ve benzeri bir ccedilok uygulama bu sayede paketlere erişim sağlar veya onları kopyalar
bull Package Manager paketleri kaldırmak(silmek) iccedilin yetkiizin gerektirir Bu izni DELETE_PACKAGES ile kazanır
Package Manager
Package ManagerPackageManager pm = getPackageManager() ListltApplicationInfogt paketler = pmgetInstalledApplications(PackageManagerGET_META_DATA) for (ApplicationInfo paketbilgileri paketler) if(paketbilgileripackageNametoString() = null) Logd(SiberGuvenlik Yuumlkluuml paket + paketbilgileripackageName)
Telephony Managerbull TelephonyManager Androidrsquoin kurulu olduğu cihazdan sorumlu
olan servistir Bu servisi kullanılarak cihaz hakkında farklı alanda bilgi alabiliriz
ndash CALL_STATE_IDLE Device call state No activityndash CALL_STATE_OFFHOOK Device call state Off-hookndash CALL_STATE_RINGING Device call state Ringingndash DATA_ACTIVITY_DORMAN Data connection is active but physical link is downndash DATA_ACTIVITY_IN Data connection activity Currently receiving IP PPP
trafficndash DATA_ACTIVITY_NONE Data connection activity No trafficndash DATA_ACTIVITY_OUT Data connection activity Currently sending IP PPP trafficndash DATA_CONNECTED Data connection state Connected
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Data Saklama Alanlarıbull Internal Storage ndash datadata klasoumlruuml iccedilerisinde ilgili uygulamanın paket adıyla
oluşturulmuş ve uygulama alanıyla erişim sağlanabilinen alanıdır Normal şartlarda bu alana sadece uygulamanın erişim hakkı verilir ilgili erişim root yetkisiyle yapılmadıysa goumlruumlntuumllenemez
bull External Storage ndash İlgili cihazın diğer depolama alanlarında guumlvenlik ilke ve politikaları yuumlksek seviyede uygulanırken external storage alanında kısıtlamalar daha duumlşuumlk seviyededir cihaz uumlzerine dahil edilmiş bir sdcard uumlzerinde yazma ve okuma işlemlerini rahatlıkla yapabilmekteyiz
bull Shared Preferences - İlgili uygulama alanında bulunan ve XML formatı ile ilgili uygulamaya ait isteğe bağlı dataların saklanmasına olanak tanır bu alanda genelde uygulama ile ilgili basit ayar bilgileri bulunur
bull Network Android Network uumlzerinden data saklama imkanıda sağlamaktadır
bull SQLite SQLite dosyaları kısıtlama olmaksızın uygulamalar tarafından oluşturulabilir tablo mantiği ile veri saklama imkanı sağlarken genellikle datadatapaketadidatabases dizininde bulunurlar bu zorunlu değildir dilendiği takdirde harici dizinlerde barındırılabilinir
Rooted amp Unrootedbull Android işletim sistemi erişim ve yetki konusunda bazı sınırlar
barındırmaktadır Bu sınırlar işletim sistemi uumlzerindeki bazı zafiyetler sayesinde soumlmuumlruumllerek (exploit) işletim sistemi uumlzerinde root yetkisi kazanılması işlemi piyasada rootlamak olarak adlandırılmaktadır
bull Data Saklama Alanlarında internal storage(datadatapackage) alanına normal şartlarda root dışında uygulama haricinde erişemeyiz fakat root yetkisi kazandıysanız internal storage alanınıda goumlruumlntuumlleyebilmeniz muumlmkuumlnduumlr
bull Root yetkisi kazanılmış cihazlara Rootlanmış cihaz
bull Root yetkisi bulunmayan cihazlara ise Unrooted cihaz diyebiliriz
Rooted amp Unrooted
Android APIsbull Android işletim sistemi mimarisinden hatırlayacağınız uumlzere
Application Framework katmanında bazı kuumltuumlphaneler barındırmaktadır Bu kuumltuumlphanelere uygulama geliştirirken ilgili servisin yetki gereksinimine goumlre erişerek uygulamamız iccedilerisinde kullanabilir veya youmlnetebiliriz
ndash Power Managerndash Activity Managerndash Package Managerndash Alarm Managerndash Window Managerndash Bluetooth Servicendash Location Managerndash
bull Bunlardan bazılarıdır
Package Managerbull Package Manager Android uumlzerinde kurulu paket(uygulamalar)ler
den sorumlu olan servistir Bu servisi kullanılarak bir paket kaldırabilir veya bu paket hakkında bilgi alabiliriz
bull Package Manager uygulamalar hakkında bilgi alınacağı zaman herhangi bir yetki gerektirmez Paket hakkında bilgi alabileceğiniz gibi uygulamanın kaynağınada erişebilmenize imkan tanır Anti-Viruumlsler ve benzeri bir ccedilok uygulama bu sayede paketlere erişim sağlar veya onları kopyalar
bull Package Manager paketleri kaldırmak(silmek) iccedilin yetkiizin gerektirir Bu izni DELETE_PACKAGES ile kazanır
Package Manager
Package ManagerPackageManager pm = getPackageManager() ListltApplicationInfogt paketler = pmgetInstalledApplications(PackageManagerGET_META_DATA) for (ApplicationInfo paketbilgileri paketler) if(paketbilgileripackageNametoString() = null) Logd(SiberGuvenlik Yuumlkluuml paket + paketbilgileripackageName)
Telephony Managerbull TelephonyManager Androidrsquoin kurulu olduğu cihazdan sorumlu
olan servistir Bu servisi kullanılarak cihaz hakkında farklı alanda bilgi alabiliriz
ndash CALL_STATE_IDLE Device call state No activityndash CALL_STATE_OFFHOOK Device call state Off-hookndash CALL_STATE_RINGING Device call state Ringingndash DATA_ACTIVITY_DORMAN Data connection is active but physical link is downndash DATA_ACTIVITY_IN Data connection activity Currently receiving IP PPP
trafficndash DATA_ACTIVITY_NONE Data connection activity No trafficndash DATA_ACTIVITY_OUT Data connection activity Currently sending IP PPP trafficndash DATA_CONNECTED Data connection state Connected
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Rooted amp Unrootedbull Android işletim sistemi erişim ve yetki konusunda bazı sınırlar
barındırmaktadır Bu sınırlar işletim sistemi uumlzerindeki bazı zafiyetler sayesinde soumlmuumlruumllerek (exploit) işletim sistemi uumlzerinde root yetkisi kazanılması işlemi piyasada rootlamak olarak adlandırılmaktadır
bull Data Saklama Alanlarında internal storage(datadatapackage) alanına normal şartlarda root dışında uygulama haricinde erişemeyiz fakat root yetkisi kazandıysanız internal storage alanınıda goumlruumlntuumlleyebilmeniz muumlmkuumlnduumlr
bull Root yetkisi kazanılmış cihazlara Rootlanmış cihaz
bull Root yetkisi bulunmayan cihazlara ise Unrooted cihaz diyebiliriz
Rooted amp Unrooted
Android APIsbull Android işletim sistemi mimarisinden hatırlayacağınız uumlzere
Application Framework katmanında bazı kuumltuumlphaneler barındırmaktadır Bu kuumltuumlphanelere uygulama geliştirirken ilgili servisin yetki gereksinimine goumlre erişerek uygulamamız iccedilerisinde kullanabilir veya youmlnetebiliriz
ndash Power Managerndash Activity Managerndash Package Managerndash Alarm Managerndash Window Managerndash Bluetooth Servicendash Location Managerndash
bull Bunlardan bazılarıdır
Package Managerbull Package Manager Android uumlzerinde kurulu paket(uygulamalar)ler
den sorumlu olan servistir Bu servisi kullanılarak bir paket kaldırabilir veya bu paket hakkında bilgi alabiliriz
bull Package Manager uygulamalar hakkında bilgi alınacağı zaman herhangi bir yetki gerektirmez Paket hakkında bilgi alabileceğiniz gibi uygulamanın kaynağınada erişebilmenize imkan tanır Anti-Viruumlsler ve benzeri bir ccedilok uygulama bu sayede paketlere erişim sağlar veya onları kopyalar
bull Package Manager paketleri kaldırmak(silmek) iccedilin yetkiizin gerektirir Bu izni DELETE_PACKAGES ile kazanır
Package Manager
Package ManagerPackageManager pm = getPackageManager() ListltApplicationInfogt paketler = pmgetInstalledApplications(PackageManagerGET_META_DATA) for (ApplicationInfo paketbilgileri paketler) if(paketbilgileripackageNametoString() = null) Logd(SiberGuvenlik Yuumlkluuml paket + paketbilgileripackageName)
Telephony Managerbull TelephonyManager Androidrsquoin kurulu olduğu cihazdan sorumlu
olan servistir Bu servisi kullanılarak cihaz hakkında farklı alanda bilgi alabiliriz
ndash CALL_STATE_IDLE Device call state No activityndash CALL_STATE_OFFHOOK Device call state Off-hookndash CALL_STATE_RINGING Device call state Ringingndash DATA_ACTIVITY_DORMAN Data connection is active but physical link is downndash DATA_ACTIVITY_IN Data connection activity Currently receiving IP PPP
trafficndash DATA_ACTIVITY_NONE Data connection activity No trafficndash DATA_ACTIVITY_OUT Data connection activity Currently sending IP PPP trafficndash DATA_CONNECTED Data connection state Connected
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Rooted amp Unrooted
Android APIsbull Android işletim sistemi mimarisinden hatırlayacağınız uumlzere
Application Framework katmanında bazı kuumltuumlphaneler barındırmaktadır Bu kuumltuumlphanelere uygulama geliştirirken ilgili servisin yetki gereksinimine goumlre erişerek uygulamamız iccedilerisinde kullanabilir veya youmlnetebiliriz
ndash Power Managerndash Activity Managerndash Package Managerndash Alarm Managerndash Window Managerndash Bluetooth Servicendash Location Managerndash
bull Bunlardan bazılarıdır
Package Managerbull Package Manager Android uumlzerinde kurulu paket(uygulamalar)ler
den sorumlu olan servistir Bu servisi kullanılarak bir paket kaldırabilir veya bu paket hakkında bilgi alabiliriz
bull Package Manager uygulamalar hakkında bilgi alınacağı zaman herhangi bir yetki gerektirmez Paket hakkında bilgi alabileceğiniz gibi uygulamanın kaynağınada erişebilmenize imkan tanır Anti-Viruumlsler ve benzeri bir ccedilok uygulama bu sayede paketlere erişim sağlar veya onları kopyalar
bull Package Manager paketleri kaldırmak(silmek) iccedilin yetkiizin gerektirir Bu izni DELETE_PACKAGES ile kazanır
Package Manager
Package ManagerPackageManager pm = getPackageManager() ListltApplicationInfogt paketler = pmgetInstalledApplications(PackageManagerGET_META_DATA) for (ApplicationInfo paketbilgileri paketler) if(paketbilgileripackageNametoString() = null) Logd(SiberGuvenlik Yuumlkluuml paket + paketbilgileripackageName)
Telephony Managerbull TelephonyManager Androidrsquoin kurulu olduğu cihazdan sorumlu
olan servistir Bu servisi kullanılarak cihaz hakkında farklı alanda bilgi alabiliriz
ndash CALL_STATE_IDLE Device call state No activityndash CALL_STATE_OFFHOOK Device call state Off-hookndash CALL_STATE_RINGING Device call state Ringingndash DATA_ACTIVITY_DORMAN Data connection is active but physical link is downndash DATA_ACTIVITY_IN Data connection activity Currently receiving IP PPP
trafficndash DATA_ACTIVITY_NONE Data connection activity No trafficndash DATA_ACTIVITY_OUT Data connection activity Currently sending IP PPP trafficndash DATA_CONNECTED Data connection state Connected
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android APIsbull Android işletim sistemi mimarisinden hatırlayacağınız uumlzere
Application Framework katmanında bazı kuumltuumlphaneler barındırmaktadır Bu kuumltuumlphanelere uygulama geliştirirken ilgili servisin yetki gereksinimine goumlre erişerek uygulamamız iccedilerisinde kullanabilir veya youmlnetebiliriz
ndash Power Managerndash Activity Managerndash Package Managerndash Alarm Managerndash Window Managerndash Bluetooth Servicendash Location Managerndash
bull Bunlardan bazılarıdır
Package Managerbull Package Manager Android uumlzerinde kurulu paket(uygulamalar)ler
den sorumlu olan servistir Bu servisi kullanılarak bir paket kaldırabilir veya bu paket hakkında bilgi alabiliriz
bull Package Manager uygulamalar hakkında bilgi alınacağı zaman herhangi bir yetki gerektirmez Paket hakkında bilgi alabileceğiniz gibi uygulamanın kaynağınada erişebilmenize imkan tanır Anti-Viruumlsler ve benzeri bir ccedilok uygulama bu sayede paketlere erişim sağlar veya onları kopyalar
bull Package Manager paketleri kaldırmak(silmek) iccedilin yetkiizin gerektirir Bu izni DELETE_PACKAGES ile kazanır
Package Manager
Package ManagerPackageManager pm = getPackageManager() ListltApplicationInfogt paketler = pmgetInstalledApplications(PackageManagerGET_META_DATA) for (ApplicationInfo paketbilgileri paketler) if(paketbilgileripackageNametoString() = null) Logd(SiberGuvenlik Yuumlkluuml paket + paketbilgileripackageName)
Telephony Managerbull TelephonyManager Androidrsquoin kurulu olduğu cihazdan sorumlu
olan servistir Bu servisi kullanılarak cihaz hakkında farklı alanda bilgi alabiliriz
ndash CALL_STATE_IDLE Device call state No activityndash CALL_STATE_OFFHOOK Device call state Off-hookndash CALL_STATE_RINGING Device call state Ringingndash DATA_ACTIVITY_DORMAN Data connection is active but physical link is downndash DATA_ACTIVITY_IN Data connection activity Currently receiving IP PPP
trafficndash DATA_ACTIVITY_NONE Data connection activity No trafficndash DATA_ACTIVITY_OUT Data connection activity Currently sending IP PPP trafficndash DATA_CONNECTED Data connection state Connected
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Package Managerbull Package Manager Android uumlzerinde kurulu paket(uygulamalar)ler
den sorumlu olan servistir Bu servisi kullanılarak bir paket kaldırabilir veya bu paket hakkında bilgi alabiliriz
bull Package Manager uygulamalar hakkında bilgi alınacağı zaman herhangi bir yetki gerektirmez Paket hakkında bilgi alabileceğiniz gibi uygulamanın kaynağınada erişebilmenize imkan tanır Anti-Viruumlsler ve benzeri bir ccedilok uygulama bu sayede paketlere erişim sağlar veya onları kopyalar
bull Package Manager paketleri kaldırmak(silmek) iccedilin yetkiizin gerektirir Bu izni DELETE_PACKAGES ile kazanır
Package Manager
Package ManagerPackageManager pm = getPackageManager() ListltApplicationInfogt paketler = pmgetInstalledApplications(PackageManagerGET_META_DATA) for (ApplicationInfo paketbilgileri paketler) if(paketbilgileripackageNametoString() = null) Logd(SiberGuvenlik Yuumlkluuml paket + paketbilgileripackageName)
Telephony Managerbull TelephonyManager Androidrsquoin kurulu olduğu cihazdan sorumlu
olan servistir Bu servisi kullanılarak cihaz hakkında farklı alanda bilgi alabiliriz
ndash CALL_STATE_IDLE Device call state No activityndash CALL_STATE_OFFHOOK Device call state Off-hookndash CALL_STATE_RINGING Device call state Ringingndash DATA_ACTIVITY_DORMAN Data connection is active but physical link is downndash DATA_ACTIVITY_IN Data connection activity Currently receiving IP PPP
trafficndash DATA_ACTIVITY_NONE Data connection activity No trafficndash DATA_ACTIVITY_OUT Data connection activity Currently sending IP PPP trafficndash DATA_CONNECTED Data connection state Connected
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Package Manager
Package ManagerPackageManager pm = getPackageManager() ListltApplicationInfogt paketler = pmgetInstalledApplications(PackageManagerGET_META_DATA) for (ApplicationInfo paketbilgileri paketler) if(paketbilgileripackageNametoString() = null) Logd(SiberGuvenlik Yuumlkluuml paket + paketbilgileripackageName)
Telephony Managerbull TelephonyManager Androidrsquoin kurulu olduğu cihazdan sorumlu
olan servistir Bu servisi kullanılarak cihaz hakkında farklı alanda bilgi alabiliriz
ndash CALL_STATE_IDLE Device call state No activityndash CALL_STATE_OFFHOOK Device call state Off-hookndash CALL_STATE_RINGING Device call state Ringingndash DATA_ACTIVITY_DORMAN Data connection is active but physical link is downndash DATA_ACTIVITY_IN Data connection activity Currently receiving IP PPP
trafficndash DATA_ACTIVITY_NONE Data connection activity No trafficndash DATA_ACTIVITY_OUT Data connection activity Currently sending IP PPP trafficndash DATA_CONNECTED Data connection state Connected
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Package ManagerPackageManager pm = getPackageManager() ListltApplicationInfogt paketler = pmgetInstalledApplications(PackageManagerGET_META_DATA) for (ApplicationInfo paketbilgileri paketler) if(paketbilgileripackageNametoString() = null) Logd(SiberGuvenlik Yuumlkluuml paket + paketbilgileripackageName)
Telephony Managerbull TelephonyManager Androidrsquoin kurulu olduğu cihazdan sorumlu
olan servistir Bu servisi kullanılarak cihaz hakkında farklı alanda bilgi alabiliriz
ndash CALL_STATE_IDLE Device call state No activityndash CALL_STATE_OFFHOOK Device call state Off-hookndash CALL_STATE_RINGING Device call state Ringingndash DATA_ACTIVITY_DORMAN Data connection is active but physical link is downndash DATA_ACTIVITY_IN Data connection activity Currently receiving IP PPP
trafficndash DATA_ACTIVITY_NONE Data connection activity No trafficndash DATA_ACTIVITY_OUT Data connection activity Currently sending IP PPP trafficndash DATA_CONNECTED Data connection state Connected
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Telephony Managerbull TelephonyManager Androidrsquoin kurulu olduğu cihazdan sorumlu
olan servistir Bu servisi kullanılarak cihaz hakkında farklı alanda bilgi alabiliriz
ndash CALL_STATE_IDLE Device call state No activityndash CALL_STATE_OFFHOOK Device call state Off-hookndash CALL_STATE_RINGING Device call state Ringingndash DATA_ACTIVITY_DORMAN Data connection is active but physical link is downndash DATA_ACTIVITY_IN Data connection activity Currently receiving IP PPP
trafficndash DATA_ACTIVITY_NONE Data connection activity No trafficndash DATA_ACTIVITY_OUT Data connection activity Currently sending IP PPP trafficndash DATA_CONNECTED Data connection state Connected
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Telephony Manager
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Telephony Manager
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Lab Ortamının Kurulumubull JDK Kurulumu
bull SDK Kurulumu (Candroidsdk iccedilerisine taşıyalım)
bull Intellij IDEA Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Lab Ortamının Kurulumu
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Lab Ortamının Kurulumubull Emulatoumlr oluşturma ve kontrolleri
ndash Yuumlkluuml platformları tespitkontrol android list targets
ndash Oluşturulmuş emulatoumlrleri tespitkontrol android list avd
ndash Emulatoumlrleri oluşturma android create avd -n siberguvenlik -t 28 --skin QVGA
ndash Emulatoumlrler iccedilin sdcard oluşturma mksdcard -l sdcardSiberguvenlik 1024M ldquocandroidsdcardSiberguvenlikimgrdquo
ndash Emulatoumlrler başlatma emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik
bull Emulatoumlruumln doğrulunu sağla bağlanbull adb devicesbull adb shell
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Lab Ortamının Kurulumu
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Lab Ortamının Kurulumu
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Debug Bridgebull Android cihazlar ile bilgisayar arasında koumlpruuml vazifesi
goumlren bir araccediltır adb iccedilin Tuumlrkccedile Android hata ayıklama koumlpruumlsuuml desek sanırım hata etmiş olmayız Android cihazlar uumlzerindeki hata ayıklama modu aktif hale getirildikten sonra cihazımız ile farklı cihazlar arasında ADB uumlzerinde iletişim kurabilmekktedir
bull Adb iccedilerisinde birccedilok farklı alan iccedilin komut satırı barındırılmaktadır Bunların ayrıntılı listesi ve kullanımı iccedilin adb help komutu veya direkt olarak bu sayfayı ziyaret edebilirsiniz
bull httpdeveloperandroidcomtoolshelpadbhtml
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Log Araccedilları ( LogcatDumpsys )bull Logcat
ndash logcat android debug youmlntemlerinden biridir System ve Uygulamalara ait debug mesajları barındırır Bu uygulamaların başlatılmasından sonlandırılmasına kadar geccedilen suumlrede bir sistem mesajını ve uygulamayı oluşturan kişinin belirlediği mesajların dan oluşmaktadır Bu mesajlar arasında bir ccedilok bilgiye rastlamak muumlmkuumlnduumlr
ndash İlgili uygulamaların verbose debug information warning error başlıkları arasında herhangi bir konualanda bilgi barındırabilirler
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Log Araccedilları ( LogcatDumpsys )bull Logcat
bull httpdeveloperandroidcomtoolshelplogcathtml
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Log Araccedilları ( LogcatDumpsys )bull Dumpsys
ndash Dumsys sistem dump olarak accedilıklanabilinir Bu komut bize servislerin memory ve diğer sistem detaylarını verir ve yine en guumlzel kısmı root hakkı gerektirmemektedir ve iyi bir analiz ile faydalı bilgiler elde edilebilinir
ndash httpssourceandroidcomdevicestechinputdumpsyshtml
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Android paketleme aracı olarak soumlz edebileceğimiz aapt android uygulamaların derlenmesi aşamasında kaynaklar(resources) iccedilin kullandığı derleme araccedilı
ndash SDK iccedilerisinde gelen aapt build-tools klasoumlruuml iccedilerisinde bulunmaktadır
ndash Bu araccedil sayesinde derlenmiş bir uygulama (apk) dosyası hakkındada bilgi alınabilinir
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Oumlrnek vermem gerekirse bir uygulamanın iccedilerisindeki değerlere aapt ile goumlzatalım
bull aapt d --values resources candroidsiberguvenlikapk
Package Groups (1)Package Group 0 id=127 packageCount=1 name=siberguvenlikbalichit Package 0 id=127 name=siberguvenlikbalichit typeCount=4 type 0 configCount=0 entryCount=0 type 1 configCount=4 entryCount=1 spec resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher flags=0x00000100 config ldpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000001 (s=0x0008 r=0x00) (string16) resdrawable-ldpiic_launcherpng config mdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000002 (s=0x0008 r=0x00) (string16) resdrawable-mdpiic_launcherpng config hdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000003 (s=0x0008 r=0x00) (string16) resdrawable-hdpiic_launcherpng config xhdpi-v4 resource 0x7f020000 siberguvenlikbalichitdrawableic_launcher t=0x03 d=0x00000004 (s=0x0008 r=0x00) (string16) resdrawable-xhdpiic_launcherpng type 2 configCount=1 entryCount=1 spec resource 0x7f030000 siberguvenlikbalichitlayoutmain flags=0x00000000 config (default) resource 0x7f030000 siberguvenlikbalichitlayoutmain t=0x03 d=0x00000000 (s=0x0008 r=0x00) (string16) reslayoutmainxml type 3 configCount=1 entryCount=1 spec resource 0x7f040000 siberguvenlikbalichitstringapp_name flags=0x00000000 config (default) resource 0x7f040000 siberguvenlikbalichitstringapp_name t=0x03 d=0x00000005 (s=0x0008 r=0x00) (string16) PackageManagerOrnegi
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide aynı uygulama iccedilerisindeki dosya listesine goumlz atalımbull aapt list candroidsiberguvenlikapk
reslayoutmainxmlAndroidManifestxmlresourcesarscresdrawable-hdpiic_launcherpngresdrawable-ldpiic_launcherpngresdrawable-mdpiic_launcherpngresdrawable-xhdpiic_launcherpngclassesdexMETA-INFMANIFESTMFMETA-INFCERTSFMETA-INFCERTRSA
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Uygulama Araccedilları (Aapt Dexdump)bull Aapt (Android Asset Packaging Tool)
ndash Şimdide farklı bir uygulama iccedilerisindeki permissionlara goumlz atalımbull aapt d permissions candroidsiberguvenlik2apk
package siberguvenlikbalichituses-permission androidpermissionREAD_PHONE_STATE
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Uygulama Araccedilları (Aapt Dexdump)bull Dexdump
ndash Android SDK ile birlikte gelen dex dosyalarının disassembler araccedilıdır Belirtilen dosyarsquonın dalvik VM bytecodelarını verir bull dexdump -d candroidclassesdex
Processing candroidclassesdexOpened candroidclassesdex DEX version 035Class 0 - Class descriptor LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle Access flags 0x0000 () Superclass LandroidtelephonyPhoneStateListener Interfaces - Static fields - Instance fields - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name this$0 type LsiberguvenlikbalichitMyActivity access 0x1010 (FINAL SYNTHETIC) Direct methods - 0 (in LsiberguvenlikbalichitMyActivity$TelefonDurumuDinle) name ltinitgt type (LsiberguvenlikbalichitMyActivity)V access 0x10000 (CONSTRUCTOR) code - registers 2 ins 2 outs 1 insns size 6 16-bit code units Class 1
Dalvik VM Bytecode iccedilin daha fazla bilgi
httpsourceandroidcomdevicestechdalvikdalvik-bytecodehtmlhttppallergaboruwhuandroidblogdalvik_opcodeshtml
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Adli-Bilişim ( Forensics )bull Bir durumda Android bir cihaz uumlzerinde adli bir konun
araştırılması icelenmesini delil toplanması vs gibi durumlar Android Adli Bilişimi konu almaktadır
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Adli-Bilişim ( Forensics )bull Manuel
bull Sqlite amp App databaseleribull Resimler Tarihler Accountlar History Cookieler Uygulama
shared preferences alanı vs
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb shellndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatandash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cd datadatacombalichITAndroidSandboxndash Ls
ndash Cd datadatacombalichITAndroidSandboxdatabasesndash ls
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Adli-Bilişim ( Forensics )bull Manuel
ndash adb pull ltnerdenalinacakgt ltnereyekoyapalanacakgt ( cihazdan bilgisayara )ndash adb push ltneredenalinacakgt ltnereyekopyalanacakgt ( bilgisayardan cihaza )
ndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewCachedbndash adb pull datadatacombalichITAndroidSandboxdatabaseswebviewdb
ndash Sqlite browser ile inceleyelim
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Adli-Bilişim ( Forensics )bull Manuel
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Adli-Bilişim ( Forensics )bull Manuel
ndash Cihazdaki tuumlm dosyaların doumlkuumlmuumlnuuml alıp bakalımbull adb shell ls ndashl ndashR gt tumdokumtxt
ndash Cihazdaki tuumlm logların doumlkuumlmuumlnuuml alıp bakalımbull adb logcat -d gt loglardokumtxt
ndash Cihazdaki servislerin durum doumlkuumlmuumlnuuml alalımbull adb dumsys gt sistemdokumtxt
bull Vs vs
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT Mobil Forensics iccedilin geliştirilmiş ve community versiyonu uumlcretsiz olarak dağıtılan yerli bir yazılımdır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Adli-Bilişim ( Forensics )bull SAFT
ndash SAFT community versiyonu agent-based olarak ccedilalışmaktadır
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Adli-Bilişim ( Forensics )
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Adli-Bilişim ( Forensics )bull SAFT community versiyonu ile cihaz uumlzerinden şu
bilgiler alınabilinmektedir
httpwwwsignalseccomportfoliosaft-mobile-forensics
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen Forensicreg Suite forensics iccedilin geliştirilmiş bir yazılımdır
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Adli-Bilişim ( Forensics )bull Oxygen
ndash Oxygen android lsquode Saft gibi agent-based olarak ccedilalışmaktadır
ndash Oxygen ile sadece android tabanlı değil ios nokia vs gibi diğer mobil cihazlar iccedilinde kullanılabilinir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Adli-Bilişim ( Forensics )bull Oxygen ile cihaz uumlzerinden şu bilgiler alınabilinmektedir
httpwwwoxygen-forensiccomen
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash EVET androidpermissionREAD_CONTACTSndash SMS listesi ndash EVET androidpermissionREAD_SMSndash Arama listesi ndash EVET androidpermissionREAD_CALL_LOGndash Neden duruyoruz peki
Hadi Kendimiz geliştirelim
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Adli-Bilişim ( Forensics )
ndash Kişi listesi ndash androidpermissionREAD_CONTACTS
Cursor kisiler = thisgetContentResolver()query(ContactsContractCommonDataKindsPhoneCONTENT_URI nullnullnull null)
while (kisilermoveToNext()) String adi
=kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneDISPLAY_NAME))
String telefonNO = kisilergetString(kisilergetColumnIndex(ContactsContractCommonDataKindsPhoneNUMBER))
Logd(SiberGuvenlik Adi + adi + Numarasi + telefonNO) kisilerclose()
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Adli-Bilişim ( Forensics )
ndash SMS listesi ndash androidpermissionREAD_SMS
Cursor smsler= thisgetContentResolver()query(Uriparse(contentsms) nullnull null null) while (smslermoveToNext()) String adres = smslergetString(smslergetColumnIndex(address)) String body = smslergetString(smslergetColumnIndex( body )) String tarih= smslergetString(smslergetColumnIndex( date ))
Logd(SiberGuvenlik adres + adres + body + body + tarih + tarih)
smslerclose()
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Adli-Bilişim ( Forensics )
ndash Arama listesi ndash androidpermissionREAD_CALL_LOG
Ev oumldevi
kopya google= androidpermissionREAD_CALL_LOG uriparse
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Uygulama Analizindash İhtiyaccedillarımız
bull Uygulamanın bağlantı kurduğu dış kaynaklarbull Uygulamanın kullandığı izinlerbull Uygulamanın disasambler kodları veya source kodları
ndash Yapabileceklerimizbull Hepsi
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 1 alternatifimiz emulatoumlrrsquouumln http-proxy seccedileneği ile emulatoumlruuml bir proxy serverrsquoa youmlnlendirerek dinlemek bu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak
ndashhttp-proxy httpproxyserverproxyserverport
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik ndashhttp-proxy http
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 2 alternatifimiz emulatoumlrrsquouumln tcpdump seccedileneği ile başlatılıp emulatoumlruumln network akışını pcap formatında dışa almak ve daha sonra pcaprsquoten manuel incelemekbu seccedilenek iccedilin emulatoumlr başlangıccedil parametresi olarak -tcpdump siberguvenlikapkpcap
emulator -sdcard candroidsdcardSiberguvenlikimg -avd siberguvenlik -tcpdump siberguvenlikapkpcap
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Uygulama Analizibull Uygulamanın bağlantı kurduğu dış kaynaklar
ndash 3alternatifimiz emuumllatoumlruumln ccedilalıştırılacağı computerrsquoı (sanal makinada olabilir) bir proxyrsquoe youmlnlendirmek veya alternatif bir network dinleme aracı ile dinlemek
Bkz wireshark
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 1alternatifimiz aapt aracını hatırlıyalım
aapt d permissions candroidsiberguvenlik2apk
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Uygulama Analizibull Uygulamanın kullandığı izinler
ndash 2alternatifimiz apktool ile apk dosyasını decoding ederek manifest dosyasını dışarı ccedilıkartabiliriz
apktool d Candroidsiberguvenlik2apk ampamp cat siberguvenlik2AndroidManifestxml
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Uygulama Analizibull Uygulamanın Disassembler kodları
ndash 1alternatifimiz dexdump lsquoı hatırlayalım Apk dosyasının iccedilerisinden classessdex dosyasını ccedilıkartıp dexdump ile inceyelim
dexdump -d candroidclassesdex
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Uygulama Analizibull Sandboxlar
ndash 1alternatifimiz Tabiki Android Sandbox (yerlidir)
ndash 2alternatifimiz Anubis ( yerli değildir P )
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Uygulama Analizibull Sandboxlar
ndash Anubis
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox
Android Uygulama Analizibull Sandboxlar
ndash Android Sandbox