Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

BTRisk Android Mobil Uygulama Denetimi Eğitimi

2,831 views

Published on

BTRisk Android Mobil Uygulama Denetimi Eğitimi sunumumuz aşağıdaki ana konu başlıklarından oluşmaktadır:

Mobil Uygulama Mimarisi

-Android İşletim Sistemi
-Android Rooting
-Android Güvenlik Mimarisi
-Uygulama Dili Dönüşümleri
-Dalvik Virtual Machine

ARM (Advanced Risk Machines) Mimamrisi
Mobil Uygulama Fonksiyonalitesi
Androdi Uygulama Bileşenleri
Uygulama Erişim İzinleri
Android Hacking Metodları

-Root Kontrolünü Aşma Yöntemleri
-SSL Pinning Atlatma Yöntemleri
-Android Debug Altyapısı
-Kritolu Verilerin Okunması
-IPC (Inter Process Communication) Saldırıları
-Cihaz Üzerinde Saklanan Bilgiler
-Cihaz Loglarından Sızan Bilgiler

Obfuscation (Karmaşıklaştırma) Yöntemleri
Ekran Resmi Çekme ve Recent Apps Ekran Görüntüleri
Kontrolsüz Gönderilen Broadcast Mesajları


Published in: Education
  • Login to see the comments

BTRisk Android Mobil Uygulama Denetimi Eğitimi

  1. 1. ANDROID MOBİL UYGULAMA DENETİMİ EĞİTİMİ blog.btrisk.com @btrisk /btrisktv /btrisk
  2. 2. BTRİSK HAKKINDA TANIŞMA Pentest & BT Denetimi ISO27001 Danışmanlık Hizmetleri BG Operasyon Hizmetleri
  3. 3. Göreviniz, Deneyiminiz ve Eğitimden Beklentileriniz Nelerdir? TANIŞMA
  4. 4. Web Sunucusu Tarayıcı (Browser) Web Sunucusu Uygulama Sunucusu Veritabanı Sunucusu XML Veri Deposu / Konfigürasyon Dosyaları Web Servisi Soket Servisi Diğer Sunucular WEB UYGULAMA MİMARİSİ
  5. 5. Web Sunucusu Tarayıcı (Browser) Web Sunucusu Uygulama Sunucusu Veritabanı Sunucusu XML Veri Deposu / Konfigürasyon Dosyaları Web Servisi Soket Servisi Diğer Sunucular WEB UYGULAMA AÇIKLIKLARI XSS SQL Injection Insecure Direct Object Reference (IDOR) CSRF Sunucu Açıklıkları İstemci Bilgisayarında Güvensiz Veri Saklama LDAP, SMTP, Command v.d. Injection Kontrolsüz Yönlendirme Oturum Yönetim Açıklıkları Erişim Kontrol Açıklıkları Güvenlik Fonksiyonalite Yetersizliği Mantık Hataları Güvensiz İletişim Üçüncü Taraflara Bilgi Sızdırma Local File Inclusion (LFI)
  6. 6. Web Sunucusu Web Sunucusu Uygulama Sunucusu Veritabanı Sunucusu XML Veri Deposu / Konfigürasyon Dosyaları Web Servisi Soket Servisi Diğer Sunucular MOBİL UYGULAMA MİMARİSİ Mobil Cihaz (OS) Native Uygulama Lokal dosyalar, veritabanları, saklama alanları
  7. 7. Web Sunucusu Web Sunucusu Uygulama Sunucusu Veritabanı Sunucusu XML Veri Deposu / Konfigürasyon Dosyaları Web Servisi Soket Servisi Diğer Sunucular MOBİL UYGULAMA MİMARİSİ Mobil Cihaz (OS) Native Uygulama Lokal dosyalar, veritabanları, saklama alanları AndroidiOS JavaObjective C HTTP/S EĞİTİM KAPSAMI EĞİTİM KAPSAMI
  8. 8. ANDROID İŞLETİM SİSTEMİ Neye benzer, nasıl hissettirir?
  9. 9. ANDROID İŞLETİM SİSTEMİ Linux (Android) Kernel Boot Loader Dalvik VM Uygulamalar Android API Native Kütüphaneler GömülüSistem Mimarisi ARM Assembly DEX Smali
  10. 10. ANDROID İŞLETİM SİSTEMİ STARTUP İŞLEMİ Boot Loader Kernel Init Demons Zygote Runtime Dalvik VM System Servers Managers Service Manager İlk Java kodları
  11. 11. ANDROID ROOTING Boot Loader Kernel Init Demons Zygote Runtime Dalvik VM System Servers Managers Service Manager İlk Java kodları SYSTEM.IMG "su" uygulaması UNLOCK
  12. 12. ANDROID GÜVENLİK MİMARİSİ • Root'lanmamış bir cihaz için root erişimi mümkün değildir, çünkü "su" uygulaması sistem üzerinde bulunmaz. • Her Android uygulaması kurulduğunda kendine ait bir Android ID'ye sahip olur ve bu kullanıcı hakları ile çalışır. Her uygulama kendine ait dizindeki verilere erişebilir. Ancak SDCard'a veri yazılması halinde diğer uygulamalar da erişebilir. • Bizim sistem imajı üzerinde değişiklik yapabilmek ve uygulama dizinlerine erişebilmek için "root" erişimine ihtiyacımız var.
  13. 13. UYGULAMA DİLİ DÖNÜŞÜMLERİ JAVA SMALI ARM Assembly Android Studio Eclipse Dalvik VM JAVA Bytecode ARM (Makine) CİHAZ GELİŞTİRME ORTAMI
  14. 14. DALVIK VIRTUAL MACHINE SINIF TARTIŞMASI • Android Linux türevi bir işletim sistemi ise ve Android uygulamaları Java dilinde geliştiriliyorsa neden JVM değilde Dalvik VM gibi bir teknoloji kullanılıyor?
  15. 15. DALVIK VIRTUAL MACHINE Neden DVM? • JVM hakkında Google ve Oracle arasındaki lisans problemi • Hafıza kullanımı ve performans verimlilik ihtiyacının mobil cihazlarda daha yüksek olması
  16. 16. ARM (Advanced Risk Machines) SINIF TARTIŞMASI • Mobil cihazlarda ARM işlemcilerin tercih edilmesinin özel bir nedeni olabilir mi?
  17. 17. ARM (Advanced Risk Machines) Neden ARM? • ARM mimarisi Reduced Instruction Set Computing (RISC) mimarisine uygun olduğu için instruction sayıları daha az ve instruction uzunlukları standarttır. • Bu ve diğer dizayn özellikleri nedeniyle ARM işlemciler x86 işlemcilere göre daha az güç tüketirler. • ARM işlemcilerin kısıtlı güç imkanlarına sahip gömülü sistemlerde tercih edilmesinin nedeni düşük enerji tüketimidir.
  18. 18. MOBİL UYGULAMA FONKSİYONALİTESİ SINIF TARTIŞMASI • Mobil uygulamalardan temel fonksiyonel beklentilerimiz nelerdir?
  19. 19. ANDROID UYGULAMA BİLEŞENLERİ İhtiyaç ANDROID Bileşeni Menü görüntüleme ve girdi işleme ACTIVITY Cihaz üzerinde olan diğer olaylardan haberdar olma ve otomatik olarak aktif hale gelme BROADCAST RECEIVER Activity arka plana atılmış olsa bile aktif kalabilme SERVICE Diğer uygulamalara bir sorgulama veya URL formatında bir istek arayüzü sağlama CONTENT PROVIDER
  20. 20. UYGULAMA ERİŞİM İZİNLERİ • AndroidManifest.XML • http://developer.android.com/reference/android/Man ifest.permission.html
  21. 21. ANDROID UYGULAMAMIZ (BTR MOBILE) • BTR Mobile Web, Android ve iOS Mobil Uygulamalarımız güvenlik eğitimlerimizde test ortamı amacıyla BTRisk tarafından geliştirilmiştir. • Bu uygulamalar bir mobil operatörün Online İşlem Merkezi (OIM) hizmetini simüle etmektedir.
  22. 22. UYGULAMA KURULUMU VE AYARLAR • API Level 19 AVD (Uygulamanın ARM bağımlılığı yok) • adb install BTRMobile.apk • Cihaz üzerindeki /system partition'ının RW olarak remount edilmesi (# mount –o rw,remount /system) • Cihaz üzerindeki /etc/hosts dosyasına btrmobile (web servisleri) sunucu IP adresinin girilmesi • Web servis sunucusu üzerindeki Apache SSL ayarlarının yapılması ve sunucu özel anahtarı ile sertifikasının ilgili dizinlere eklenmesi (ref. btriskblog Android SSL Pinning Hakkında Herşey makalesi)
  23. 23. UYGULAMA KURULUMU VE AYARLAR
  24. 24. UYGULAMA KURULUMU VE AYARLAR
  25. 25. UYGULAMA KURULUMU VE AYARLAR
  26. 26. BTR MOBILE
  27. 27. BTR MOBILE
  28. 28. ROOT KONTROLÜNÜ AŞMA SINIF TARTIŞMASI • Test edeceğimiz uygulamayı neden Root'lu bir ortamda çalıştırmaya ihtiyacımız olabilir?
  29. 29. ROOT KONTROLÜNÜ AŞMA
  30. 30. ROOT KONTROLÜNÜ AŞMA
  31. 31. ROOT KONTROLÜNÜ AŞMA
  32. 32. ROOT KONTROLÜNÜ AŞMA
  33. 33. ROOT KONTROLÜNÜ AŞMA
  34. 34. ROOT KONTROLÜNÜ AŞMA
  35. 35. ROOT KONTROLÜNÜ AŞMA
  36. 36. ROOT KONTROLÜNÜ AŞMA
  37. 37. ROOT KONTROLÜNÜ AŞMA
  38. 38. ROOT KONTROLÜNÜ AŞMA İLK ÇALIŞACAK AKTİVİTE
  39. 39. ROOT KONTROLÜNÜ AŞMA DEX2JAR
  40. 40. ROOT KONTROLÜNÜ AŞMA JDGUI DEX2JAR
  41. 41. ROOT KONTROLÜNÜ AŞMA ROOT KONTROLÜ YAPILAN BÖLÜM
  42. 42. ROOT KONTROLÜNÜ AŞMA SEÇENEKLERİMİZ 1 2 Kontrol mantığını incele Cihaz üzerinde gerekli düzenlemeleri yap Uygulamayı SMALI seviyesinde yamala
  43. 43. ROOT KONTROLÜNÜ AŞMA 1 /system/build.props dosyası içindeki ro.build.tags=test-keys satırı değiştirilir Dosya adı değiştirilir "su" dosya adı değiştirilir
  44. 44. ROOT KONTROLÜNÜ AŞMA 2
  45. 45. ROOT KONTROLÜNÜ AŞMA YAMALANAN BÖLÜM 2
  46. 46. ROOT KONTROLÜNÜ AŞMA 2 YENİDEN DERLE KODU İMZALA
  47. 47. ROOT KONTROLÜNÜ AŞMA 2 MEVCUT UYGULAMAYI KALDIR
  48. 48. ROOT KONTROLÜNÜ AŞMA 2 İMZALI UYGULAMAYI KUR
  49. 49. ROOT KONTROLÜNÜ AŞMA 2 ROOT KONTROLÜ AŞILDI
  50. 50. ATTACK PROXY İLE ARAYA GİRME
  51. 51. ATTACK PROXY İLE ARAYA GİRME BURP'ÜN SUNUCUYU BULABİLMESİ İÇİN
  52. 52. ATTACK PROXY İLE ARAYA GİRME
  53. 53. ATTACK PROXY İLE ARAYA GİRME CİHAZA BURP CA SERTİFİKASININ YÜKLENMESİ
  54. 54. ATTACK PROXY İLE ARAYA GİRME
  55. 55. ATTACK PROXY İLE ARAYA GİRME HATA STACK TRACE BİLGİSİ POTANSİYEL SUÇLU SSL PINNING BİZİM KODLARIMIZ İÇİNDE HATANIN KAYNAĞI PostClass.httpPostLogin metodu
  56. 56. ATTACK PROXY İLE ARAYA GİRME STOREPASS RESOURCE DOSYA İSMİNİN R SINIFI REFERANSI JDB İLE DEBUG EDEREK BULUNABİLECEK HATA SATIRI httpPostLogin METODU
  57. 57. ATTACK PROXY İLE ARAYA GİRME RES/RAW DİZİNİ ALTINDAKİ KEYSTORE DOSYA ADI
  58. 58. ATTACK PROXY İLE ARAYA GİRME X.509 SERTİFİKA EMARESİ
  59. 59. SSL PINNING'İ ATLATMA SEÇENEKLERİMİZ 1 3 Keystore dosyasının içine Burp'ün sertifikasını imzalayan CA sertifikasını yerleştir Uygulamayı SMALI seviyesinde yamala 2 SSL Pinning'i aşan bir hacker aracı kullan
  60. 60. SSL PINNING'İ ATLATMA 1 Keystore dosyasını değiştirme (Bu örneğe özel olmak kaydıyla aşağıdaki yöntem izlenir) Adım-1: Aşağıdaki adresten ilgili JAR paketi indirilir: "http://repo2.maven.org/maven2/org/bouncycastle/bcprov-ext- jdk15on/1.46/bcprov-ext-jdk15on-1.46.jar"
  61. 61. SSL PINNING'İ ATLATMA 1 Keystore dosyasını değiştirme (Bu örneğe özel olmak kaydıyla aşağıdaki yöntem izlenir) Adım-2: Aşağıdaki işlem gerçekleştirilerek yeni keystore dosyası üretilir: C:> keytool -importcert -v -trustcacerts -file "burpcert.pem" -alias ca -keystore "btrkeystore.bks" -provider org.bouncycastle.jce.provider.BouncyCastleProvider - providerpath "bcprov-ext-jdk15on-1.46.jar" -storetype BKS - storepass btrisk Uygulamanın kullandığı keystore dosya adı JAVA SDK ile gelen keytool aracı Uygulamanın kullandığı storepass değeri Yeni keystore dosyasına yerleştirmek istediğimiz Burp sertifika dosyası
  62. 62. SSL PINNING'İ ATLATMA 1 Keystore dosyasını değiştirme (Bu örneğe özel olmak kaydıyla aşağıdaki yöntem izlenir) Adım-3: APKTOOL ile açtığımız paket dizinlerinden keystore dosyasının saklandığı aşağıdaki dizine yeni oluşturduğumuz dosya kopyalanır:
  63. 63. SSL PINNING'İ ATLATMA 1 Keystore dosyasını değiştirme (Bu örneğe özel olmak kaydıyla aşağıdaki yöntem izlenir) Adım-4: Son olarak APKTOOL ile açılan paket tekrar derlenir ve yeni oluşturulan APK paketi imzalanarak cihaza / emülatöre tekrar yüklenir.
  64. 64. SSL PINNING'İ ATLATMA 2 Android SSL Killer aracını kullanma
  65. 65. SSL PINNING'İ ATLATMA 2 Android SSL Killer aracını kullanma • Android SSL Killer, Cydia Substrate for Android aracının servislerinden faydalanır. • Cydia Substrate kapalı kaynak kodlu bir yazılım olup içinde native kütüphaneler barındırır ve (root'lu olması kaydıyla) işletim seviyesi katmanında uyguladığı Rootkit yöntemleri ile diğer Android uygulamaları tarafından kullanılabilecek bir API sağlar.
  66. 66. SSL PINNING'İ ATLATMA 2 Android SSL Killer aracını kullanma • Bu şekilde sistem kütüphanelerinde bulunan metodlar kendi geliştireceğimiz kodlarla çalışma anında değiştirilebilir. • Android SSL Killer, Cydia Substrate for Android aracının bu özelliğinden faydalanarak sertifika ve sunucu kontrolü yapan metodları bu kontrolü geçersiz kılacak metodlarla değiştirir.
  67. 67. SSL PINNING'İ ATLATMA 2 Android SSL Killer aracını kullanma • ANCAK; • Cydia Substrate for Android aracının desteği Android versiyonu 4.3'e kadardır ve Emülatör'ü desteklemez.
  68. 68. SSL PINNING'İ ATLATMA 2 Android SSL Killer aracını kullanma • EK OLARAK; • SSL Pinning için farklı bir yöntem kullanılması halinde yine tersine mühendislik yaparak bir çözüm bulmak zorunda kalabilirsiniz.
  69. 69. SSL PINNING'İ ATLATMA 3 Uygulamayı yamalama getSocketFactory'nin kullanıldığı 1. metod "httpPostLogin"
  70. 70. SSL PINNING'İ ATLATMA 3 Uygulamayı yamalama getSocketFactory'nin kullanıldığı 2. metod "httpPost"
  71. 71. SSL PINNING'İ ATLATMA 3 httpPostLogin metodu
  72. 72. SSL PINNING'İ ATLATMA 3 httpPostLogin METODU YAMASI
  73. 73. SSL PINNING'İ ATLATMA 3 YAMALANAN BÖLÜM Yaptığımız değişiklikten etkilenen v19 ve v1 register'ları tekrar sıfırlanıyor. Bu nedenle kod mantığı Etkilenmeyecek.
  74. 74. SSL PINNING'İ ATLATMA 3 httpPost METODU YAMASI
  75. 75. SSL PINNING'İ ATLATMA YAMALANAN BÖLÜM Yaptığımız değişiklikten etkilenen v17 ve v0 regıster'ları tekrar sıfırlanıyor. Bu nedenle kod mantığı Etkilenmeyecek. 3
  76. 76. SSL PINNING'İ ATLATMA 3 UYGULAMAMIZI KALDIRDIĞIMIZDAN EMİN OLALIM
  77. 77. SSL PINNING'İ ATLATMA 3
  78. 78. SSL PINNING'İ ATLATMA PROXY AYARLARIMIZIN DOĞRULUĞUNDAN EMİN OLALIM 3
  79. 79. SSL PINNING'İ ATLATMA 3
  80. 80. SSL PINNING'İ ATLATMA 3 SSL PINNING KONTROLÜ AŞILDI
  81. 81. SSL PINNING'İ ATLATMA 3 SSL PINNING KONTROLÜ AŞILDI
  82. 82. KRİPTOLU VERİLER LOGIN İSTEK VERİSİ AÇIK OLARAK İLETİLMİYOR
  83. 83. KRİPTOLU VERİLER MAALESEF ENCODE EDİLMİŞ GİBİ GÖRÜNMÜYOR
  84. 84. KRİPTOLU VERİLER STATİK ANALİZ
  85. 85. KRİPTOLU VERİLER STATİK ANALİZ
  86. 86. KRİPTOLU VERİLER STATİK ANALİZ Statik analiz sonrasında yapılacaklar • Örnek veri alınır • Statik analiz sırasında tespit edilen algoritma tersine işletilecek şekilde bir uygulama olarak kodlanır • Açık hale getirilen veri üzerinde gerekli değişiklikler yapılarak tekrar kriptolama işlemi gerçekleştirilir ve veri hedefe yollanır • Eğer attack proxy üzerinde bu iş yapılmak isteniyorsa Burp Extension'ı olarak bu kod geliştirilebilir, ancak yukarıdaki iş yükünden daha az bir iş yükü olmayacaktır (Burp Extension'ı geliştirme için btriskblog'daki makalemize bakınız)
  87. 87. KRİPTOLU VERİLER DİNAMİK ANALİZ
  88. 88. KRİPTOLU VERİLER DİNAMİK ANALİZ
  89. 89. KRİPTOLU VERİLER DİNAMİK ANALİZ
  90. 90. KRİPTOLU VERİLER DİNAMİK ANALİZ
  91. 91. KRİPTOLU VERİLER DİNAMİK ANALİZ
  92. 92. ANDROID DEBUG ALTYAPISI JVM (Java Virtual Machine) JDWP (Java Debug Wire Protocol) JVM Tool Interface JDI Debug Interface DDMS JDB Debug Eden Debug Edilen
  93. 93. KRİPTOLU VERİLER DİNAMİK ANALİZ JDB ile debug işlemi (bağlantı hazırlığı) • 1. Yöntem (manuel yöntem) • Uygulamayı başlatmadan önce "adb jdwp" komutu ile process id'lerini listeleriz. • Aynı işlemi bir de uygulamayı başlattıktan sonra gerçekleştirerek aradaki farkı görürüz. Yeni gelen process id'si bizim bağlanmak istediğimiz id'dir. • Daha sonra "adb forward tcp:9999 jdwp:8765" gibi bir komutla uzaktaki debug agent üzerinden proses'e bağlantı kanalını açarız.
  94. 94. KRİPTOLU VERİLER DİNAMİK ANALİZ JDB ile debug işlemi (bağlantı hazırlığı) • 2. Yöntem (DDMS aracılığı ile) • Uygulamayı başlatırız ve DDMS üzerinde yanında kırmızı böcek işareti ile görürüz. • Bu satır seçildiğinde DDMS bizim için otomatik olarak "8700" TCP portunu proses'e bağlanmak üzere ayarlar.
  95. 95. KRİPTOLU VERİLER DİNAMİK ANALİZ
  96. 96. KRİPTOLU VERİLER DİNAMİK ANALİZ JDB ile debug işlemi (bağlantı kurma) • JAVA SDK ile gelen JDB aracı ile bağlantı kurma jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8700
  97. 97. KRİPTOLU VERİLER DİNAMİK ANALİZ JDB ile debug işlemi (breakpoint koyma) • Statik analizimizden gördük ki kriptolu verinin oluşturulduğu metod adı "MCrypt" sınıfının "encrypt" metoduydu. Bu metoda aşağıdaki gibi breakpoint koyabiliriz. stop in com.btrisk.btrmobile.drawableslidermenu.MCrypt.encrypt
  98. 98. KRİPTOLU VERİLER DİNAMİK ANALİZ
  99. 99. KRİPTOLU VERİLER DİNAMİK ANALİZ
  100. 100. KRİPTOLU VERİLER DİNAMİK ANALİZ SMALI ile Log yazma • SMALI kodunun kurallarına uygun olmak kaydıyla statik analizden elde edindiğimiz bilgiyi kullanarak veri kriptolanmadan hemen önce veriyi log'a yazabiliriz. • Bu en temel debug yöntemi verinin kriptolanmadan önceki halini görmemize imkan tanıyabilir.
  101. 101. KRİPTOLU VERİLER DİNAMİK ANALİZ
  102. 102. KRİPTOLU VERİLER DİNAMİK ANALİZ
  103. 103. IPC (InterProcess Communication) Saldırıları Bu alandaki ilk örneğimiz Login View'ını kullanıcı tanımlama adımını atlayarak bir sonraki View'ı görüntülemek (daha doğrusu aktiviteyi çalıştırmak) olacak. Mobil uygulamalarda kullanım ihtiyaçları dolayısıyla (notification mekanizması, SMS geldiğinde haberdar olma, bir resmi bir mesajlaşma uygulamasıyla gönderme gibi) Mobil platformların IPC iletişim fonksiyonalitesi bulunuyor. Eğer bu erişimler belli izinlerle kontrol edilmezse cihaz üzerindeki herhangi bir uygulama diğer bir uygulamanın bileşenlerini hayata geçirebilir.
  104. 104. IPC (InterProcess Communication) Saldırıları İLK ÇALIŞTIRILACAK OLAN AKTİVİTE (.login)
  105. 105. IPC (InterProcess Communication) Saldırıları login AKTİVİTESİ İÇİNDEN ÇAĞRILAN BİR SONRAKİ AKTİVİTE (.MAINACTIVITY)
  106. 106. IPC (InterProcess Communication) Saldırıları LOGIN AŞAMASINDAN SONRA ÇAĞRILAN AKTİVİTE (.MAINACTIVITY)
  107. 107. IPC (InterProcess Communication) Saldırıları AKTİVİTE ÇAĞIRMA
  108. 108. IPC (InterProcess Communication) Saldırıları
  109. 109. IPC (InterProcess Communication) Saldırıları DOĞRUDAN BTRMOBILE UYGULAMASININ ANA AKTİVİTESİNİ AÇTIK
  110. 110. IPC (InterProcess Communication) Saldırıları BTRMOBILE UYGULAMAMIZ BİR CONTENT PROVIDER İÇERİYOR
  111. 111. IPC (InterProcess Communication) Saldırıları CONTENT PROVIDER'A ERİŞMEK İÇİN KULLANILMASI GEREKEN URI
  112. 112. IPC (InterProcess Communication) Saldırıları FARKLI BİR UYGULAMADAN BTRMOBILE'IN CONTENT PROVIDER'INI SORGULUYORUZ
  113. 113. IPC (InterProcess Communication) Saldırıları
  114. 114. IPC (InterProcess Communication) Saldırıları FARKLI BİR UYGULAMADAN BTRMOBILE UYGULAMASININ CONTENT PROVIDER 'INI SORGULAYARAK BİLGİ ALABİLDİK
  115. 115. IPC (InterProcess Communication) Saldırıları IPC testleri için bu alanda özelleşmiş olan DROZER aracını kullanabilirsiniz. Sorgulanabilir bileşenleri analiz ettikten sonra Content Provider bileşenlerine yönelik SQL Injection testlerini de bu araçla yapabilirsiniz.
  116. 116. CİHAZ ÜZERİNDE SAKLANAN BİLGİLER UYGULAMALARA ÖZEL DİZİNLER "/data/data/" DİZİNİ ALTINDA KENDİ ADLARINA AÇILIR
  117. 117. CİHAZ ÜZERİNDE SAKLANAN BİLGİLER SD CARD'a yazma ve okuma • Uygulamalar SD Card'a gerekli permission'ları içermek kaydıyla yazabilir ve SD Card'dan veri okuyabilir. • Bu yüzden hassas uygulamaların SD Card'a yazmaları önerilmez.
  118. 118. CİHAZ ÜZERİNDE SAKLANAN BİLGİLER SQLITE VERİTABANLARINDA SAKLANABİLECEK HASSAS BİLGİLER
  119. 119. CİHAZ ÜZERİNDE SAKLANAN BİLGİLER SHARED PREFERENCES DOSYALARINDA SAKLANABİLECEK HASSAS BİLGİLER
  120. 120. CİHAZ LOGLARINDA SIZAN BİLGİLER READ_LOGS Permission'ı • READ_LOGS permission'ının kullanımı Android 4.1 itibarıyla kaldırılmıştır. • Android cihazlar belli bir miktardaki log verisini barındırırlar ve bu veriler yenileri geldikçe ezilir. • Cihaza fiziksel erişimi bulunan kişiler USB Debugging Enabled olmak koşuluyla loglara erişebilirler.
  121. 121. CİHAZ LOGLARINDA SIZAN BİLGİLER
  122. 122. CİHAZ LOGLARINDA SIZAN BİLGİLER
  123. 123. CİHAZ LOGLARINDA SIZAN BİLGİLER "adb logcat"
  124. 124. CİHAZ ÜZERİNDE SAKLANAN BİLGİLER DDMS
  125. 125. OBFUSCATION (KARMAŞIKLAŞTIRMA) build.gradle DOSYASI
  126. 126. OBFUSCATION (KARMAŞIKLAŞTIRMA)
  127. 127. OBFUSCATION (KARMAŞIKLAŞTIRMA)
  128. 128. OBFUSCATION (KARMAŞIKLAŞTIRMA)
  129. 129. DİĞER KONULAR • Ekran resmi çekme ve Recent Apps ekran görüntüleri • Kontrolsüz gönderilen Broadcast mesajları
  130. 130. blog.btrisk.com @btrisk /btrisktv /btrisk

×