mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 04:33:28 +00:00
Translated ['mobile-pentesting/android-app-pentesting/README.md'] to tr
This commit is contained in:
parent
bf963e9b08
commit
17f61215a0
1 changed files with 115 additions and 115 deletions
|
@ -1,15 +1,15 @@
|
|||
# Android Uygulamaları Pentesting
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
|
@ -26,13 +26,13 @@ Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun
|
|||
Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında güncel kalın
|
||||
|
||||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi sahibi olun
|
||||
Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
**Bize katılın** [**Discord**](https://discord.com/invite/N3FrSbmwdy) ve bugün en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
## Android Uygulamaları Temelleri
|
||||
|
||||
**Android güvenliği ile ilgili en önemli kısımlar ve bir Android uygulamasındaki en tehlikeli bileşenler** hakkında bilgi edinmek için bu sayfayı okumaya başlamanız şiddetle tavsiye edilir:
|
||||
Android güvenliği ile ilgili **en önemli kısımlar ve bir Android uygulamasındaki en tehlikeli bileşenler** hakkında bilgi edinmek için bu sayfayı okumaya başlamanız şiddetle tavsiye edilir:
|
||||
|
||||
{% content-ref url="android-applications-basics.md" %}
|
||||
[android-applications-basics.md](android-applications-basics.md)
|
||||
|
@ -41,14 +41,14 @@ Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi
|
|||
## ADB (Android Debug Bridge)
|
||||
|
||||
Bu, bir android cihazına (emüle edilmiş veya fiziksel) bağlanmak için ihtiyaç duyduğunuz ana araçtır.\
|
||||
**ADB**, cihazları bir bilgisayardan **USB** veya **Ağ** üzerinden kontrol etmeyi sağlar. Bu yardımcı program, dosyaların her iki yönde **kopyalanması**, uygulamaların **yüklenmesi** ve **kaldırılması**, shell komutlarının **çalıştırılması**, verilerin **yedeklenmesi**, **logların okunması** gibi işlevleri yerine getirir.
|
||||
**ADB**, cihazları bir bilgisayardan **USB** veya **Ağ** üzerinden kontrol etmeyi sağlar. Bu yardımcı program, dosyaların her iki yönde **kopyalanmasını**, uygulamaların **yüklenmesini** ve **kaldırılmasını**, shell komutlarının **çalıştırılmasını**, verilerin **yedeklenmesini**, **logların okunmasını** ve diğer işlevleri sağlar.
|
||||
|
||||
ADB'yi nasıl kullanacağınızı öğrenmek için aşağıdaki [**ADB Komutları**](adb-commands.md) listesine göz atın.
|
||||
|
||||
## Smali
|
||||
|
||||
Bazen **gizli bilgilere** erişmek için **uygulama kodunu değiştirmek** ilginç olabilir (belki iyi obfuscate edilmiş şifreler veya bayraklar). Bu durumda, apk'yı decompile etmek, kodu değiştirmek ve yeniden derlemek ilginç olabilir.\
|
||||
[**Bu eğitimde** APK'yı nasıl decompile edeceğinizi, Smali kodunu nasıl değiştireceğinizi ve APK'yı yeni işlevsellik ile nasıl yeniden derleyeceğinizi öğrenebilirsiniz](smali-changes.md). Bu, sunulacak dinamik analiz sırasında birkaç test için **alternatif olarak** çok faydalı olabilir. Bu nedenle, **her zaman bu olasılığı aklınızda bulundurun**.
|
||||
[**Bu eğitimde** APK'yı **decompile etmeyi, Smali kodunu değiştirmeyi ve APK'yı** yeni işlevsellik ile yeniden derlemeyi **öğrenebilirsiniz**](smali-changes.md). Bu, sunulacak dinamik analiz sırasında birkaç test için **alternatif olarak** çok faydalı olabilir. Bu nedenle, **her zaman bu olasılığı aklınızda bulundurun**.
|
||||
|
||||
## Diğer ilginç ipuçları
|
||||
|
||||
|
@ -64,10 +64,10 @@ package:/data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
|
|||
|
||||
adb pull /data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
|
||||
```
|
||||
* Tüm bölmeleri ve temel apk'ları [APKEditor](https://github.com/REAndroid/APKEditor) ile birleştirin:
|
||||
* Tüm bölümleri ve temel apk'ları [APKEditor](https://github.com/REAndroid/APKEditor) ile birleştirin:
|
||||
```bash
|
||||
mkdir splits
|
||||
adb shell pm path com.android.insecurebankv2 | cut -d ':' -f 1 | xargs -n1 -i adb pull {} splits
|
||||
adb shell pm path com.android.insecurebankv2 | cut -d ':' -f 2 | xargs -n1 -i adb pull {} splits
|
||||
java -jar ../APKEditor.jar m -i splits/ -o merged.apk
|
||||
|
||||
# after merging, you will need to align and sign the apk, personally, I like to use the uberapksigner
|
||||
|
@ -88,15 +88,15 @@ APK'nın **string'lerine** bakarak **şifreler**, **URL'ler** ([https://github.c
|
|||
|
||||
### Uygulamanın Temel Anlayışı - Manifest.xml, strings.xml
|
||||
|
||||
Bir uygulamanın **_Manifest.xml**_\*\* ve \*\*_**strings.xml**\_\*\* dosyalarının incelenmesi potansiyel güvenlik açıklarını ortaya çıkarabilir\*\*. Bu dosyalara decompiler'lar kullanarak veya APK dosya uzantısını .zip olarak değiştirip ardından açarak erişilebilir.
|
||||
Bir uygulamanın **_Manifest.xml**_\*\* ve \*\*_**strings.xml**\_\*\* dosyalarının incelenmesi, potansiyel güvenlik açıklarını ortaya çıkarabilir\*\*. Bu dosyalara decompiler'lar kullanarak veya APK dosya uzantısını .zip olarak değiştirip ardından açarak erişilebilir.
|
||||
|
||||
**Manifest.xml** dosyasından belirlenen **Açıklar** şunları içerir:
|
||||
**Manifest.xml** dosyasından belirlenen **Açıklar** şunlardır:
|
||||
|
||||
* **Debuggable Uygulamalar**: _Manifest.xml_ dosyasında debuggable olarak ayarlanmış (`debuggable="true"`) uygulamalar, bağlantılara izin vererek istismar riskini artırır. Debuggable uygulamaları bulma ve istismar etme hakkında daha fazla bilgi için bir eğitime başvurun.
|
||||
* **Yedekleme Ayarları**: Hassas bilgilerle ilgilenen uygulamalar için `android:allowBackup="false"` niteliği açıkça ayarlanmalıdır, böylece adb üzerinden yetkisiz veri yedeklemeleri önlenir, özellikle usb hata ayıklama etkinleştirildiğinde.
|
||||
* **Ağ Güvenliği**: _res/xml/_ içindeki özel ağ güvenliği yapılandırmaları (`android:networkSecurityConfig="@xml/network_security_config"`) sertifika pinleri ve HTTP trafiği ayarları gibi güvenlik detaylarını belirtebilir. Örneğin, belirli alanlar için HTTP trafiğine izin vermek.
|
||||
* **Dışa Aktarılan Aktiviteler ve Servisler**: Manifestte dışa aktarılan aktiviteleri ve servisleri tanımlamak, kötüye kullanılabilecek bileşenleri vurgulayabilir. Dinamik test sırasında daha fazla analiz, bu bileşenlerin nasıl istismar edileceğini ortaya çıkarabilir.
|
||||
* **İçerik Sağlayıcıları ve Dosya Sağlayıcıları**: Açık içerik sağlayıcıları, yetkisiz erişim veya veri değişikliği izni verebilir. Dosya sağlayıcılarının yapılandırması da incelenmelidir.
|
||||
* **İçerik Sağlayıcıları ve Dosya Sağlayıcıları**: Açık içerik sağlayıcıları, yetkisiz erişim veya veri değişikliği sağlayabilir. Dosya sağlayıcılarının yapılandırması da incelenmelidir.
|
||||
* **Broadcast Alıcıları ve URL Şemaları**: Bu bileşenler istismar için kullanılabilir, URL şemalarının giriş açıkları için nasıl yönetildiğine özel dikkat gösterilmelidir.
|
||||
* **SDK Sürümleri**: `minSdkVersion`, `targetSDKVersion` ve `maxSdkVersion` nitelikleri desteklenen Android sürümlerini belirtir, güvenlik nedenleriyle eski, savunmasız Android sürümlerinin desteklenmemesinin önemini vurgular.
|
||||
|
||||
|
@ -104,7 +104,7 @@ Bir uygulamanın **_Manifest.xml**_\*\* ve \*\*_**strings.xml**\_\*\* dosyaları
|
|||
|
||||
### Tapjacking
|
||||
|
||||
**Tapjacking**, **kötü niyetli** bir **uygulamanın** başlatıldığı ve **bir kurban uygulamanın üzerine yerleştiği** bir saldırıdır. Kurban uygulamayı görünür bir şekilde gizlediğinde, kullanıcı arayüzü, kullanıcının onunla etkileşimde bulunmasını sağlamak için tasarlanmıştır, bu arada etkileşimi kurban uygulamaya iletmektedir.\
|
||||
**Tapjacking**, **kötü niyetli** bir **uygulamanın** başlatıldığı ve **bir kurban uygulamasının üzerine yerleştiği** bir saldırıdır. Kurban uygulamasını görünür bir şekilde gizlediğinde, kullanıcı arayüzü, kullanıcının onunla etkileşimde bulunmasını sağlamak için tasarlanmıştır, bu arada etkileşimi kurban uygulamasına iletmektedir.\
|
||||
Sonuç olarak, bu, **kullanıcının aslında kurban uygulamasında eylemler gerçekleştirdiğini bilmesini engellemektedir**.
|
||||
|
||||
Daha fazla bilgi için:
|
||||
|
@ -115,7 +115,7 @@ Daha fazla bilgi için:
|
|||
|
||||
### Görev Ele Geçirme
|
||||
|
||||
**`launchMode`**'u **`singleTask`** olarak ayarlanmış ve herhangi bir `taskAffinity` tanımlanmamış bir **aktivite**, görev ele geçirmeye karşı savunmasızdır. Bu, bir **uygulamanın** kurulabileceği ve gerçek uygulamadan önce başlatılırsa, **gerçek uygulamanın görevini ele geçirebileceği** anlamına gelir (bu durumda kullanıcı, **gerçek uygulamayı kullanıyormuş gibi kötü niyetli uygulama ile etkileşimde bulunacaktır**).
|
||||
**`launchMode`**'u **`singleTask`** olarak ayarlanmış ve herhangi bir `taskAffinity` tanımlanmamış bir **aktivite**, görev ele geçirmeye karşı savunmasızdır. Bu, bir **uygulamanın** yüklenebileceği ve gerçek uygulamadan önce başlatılırsa, **gerçek uygulamanın görevini ele geçirebileceği** anlamına gelir (bu durumda kullanıcı, **gerçek uygulamayı kullanıyormuş gibi kötü niyetli uygulama ile etkileşimde bulunacaktır**).
|
||||
|
||||
Daha fazla bilgi için:
|
||||
|
||||
|
@ -123,7 +123,7 @@ Daha fazla bilgi için:
|
|||
[android-task-hijacking.md](android-task-hijacking.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Güvensiz veri depolama
|
||||
### Güvensiz Veri Depolama
|
||||
|
||||
**Dahili Depolama**
|
||||
|
||||
|
@ -132,21 +132,21 @@ Android'de, **dahili** depolamada **saklanan** dosyalar, yalnızca **oluşturan*
|
|||
1. **Statik Analiz:**
|
||||
* `MODE_WORLD_READABLE` ve `MODE_WORLD_WRITABLE` kullanımının **dikkatlice incelenmesini sağlayın**. Bu modlar, dosyaları **istenmeyen veya yetkisiz erişime** açabilir.
|
||||
2. **Dinamik Analiz:**
|
||||
* Uygulama tarafından oluşturulan dosyalar üzerindeki **izinleri** **doğrulayın**. Özellikle, herhangi bir dosyanın **dünya çapında okunabilir veya yazılabilir olarak ayarlanıp ayarlanmadığını kontrol edin**. Bu, **cihazda yüklü olan herhangi bir uygulamanın**, kökeni veya niyeti ne olursa olsun, bu dosyaları **okumasına veya değiştirmesine** izin vereceğinden önemli bir güvenlik riski oluşturabilir.
|
||||
* Uygulama tarafından oluşturulan dosyalar üzerindeki **izinleri** **doğrulayın**. Özellikle, herhangi bir dosyanın **dünya çapında okunabilir veya yazılabilir** olarak ayarlanıp ayarlanmadığını **kontrol edin**. Bu, cihazda yüklü olan **herhangi bir uygulamanın**, kökeni veya niyeti ne olursa olsun, bu dosyaları **okumasına veya değiştirmesine** izin vereceğinden önemli bir güvenlik riski oluşturabilir.
|
||||
|
||||
**Harici Depolama**
|
||||
|
||||
**Harici depolama** ile ilgili dosyalarla çalışırken, belirli önlemler alınmalıdır:
|
||||
**Harici depolama** ile dosyalarla ilgilenirken, belirli önlemler alınmalıdır:
|
||||
|
||||
1. **Erişilebilirlik**:
|
||||
* Harici depolamadaki dosyalar **genel olarak okunabilir ve yazılabilir**. Bu, herhangi bir uygulamanın veya kullanıcının bu dosyalara erişebileceği anlamına gelir.
|
||||
2. **Güvenlik Endişeleri**:
|
||||
* Erişim kolaylığı göz önüne alındığında, **hassas bilgileri harici depolamada saklamamanız önerilir**.
|
||||
* Harici depolama, herhangi bir uygulama tarafından çıkarılabilir veya erişilebilir, bu da onu daha az güvenli hale getirir.
|
||||
* Erişim kolaylığı göz önüne alındığında, **hassas bilgileri** harici depolamada saklamamanız önerilir.
|
||||
* Harici depolama, herhangi bir uygulama tarafından çıkarılabilir veya erişilebilir, bu da güvenliğini azaltır.
|
||||
3. **Harici Depolamadan Veri İşleme**:
|
||||
* Harici depolamadan alınan veriler üzerinde her zaman **giriş doğrulaması yapın**. Bu, verilerin güvenilir bir kaynaktan gelmediği için kritik öneme sahiptir.
|
||||
* Harici depolamadan alınan veriler üzerinde her zaman **giriş doğrulaması** yapın. Bu, verilerin güvenilir olmayan bir kaynaktan geldiği için kritik öneme sahiptir.
|
||||
* Dinamik yükleme için harici depolamada yürütülebilir veya sınıf dosyaları saklamak kesinlikle önerilmez.
|
||||
* Uygulamanız harici depolamadan yürütülebilir dosyaları almak zorundaysa, bu dosyaların **imzalanmış ve kriptografik olarak doğrulanmış** olduğundan emin olun. Bu adım, uygulamanızın güvenlik bütünlüğünü korumak için hayati öneme sahiptir.
|
||||
* Uygulamanız harici depolamadan yürütülebilir dosyalar alması gerekiyorsa, bu dosyaların dinamik olarak yüklenmeden önce **imzalanmış ve kriptografik olarak doğrulanmış** olduğundan emin olun. Bu adım, uygulamanızın güvenlik bütünlüğünü korumak için hayati öneme sahiptir.
|
||||
|
||||
Harici depolama, `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard` konumlarında **erişilebilir**.
|
||||
|
||||
|
@ -174,18 +174,18 @@ A good way to test this is to try to capture the traffic using some proxy like B
|
|||
|
||||
**Zayıf Anahtar Yönetim Süreçleri**
|
||||
|
||||
Bazı geliştiriciler hassas verileri yerel depolamada saklar ve bunu kodda hardcoded/tahmin edilebilir bir anahtar ile şifreler. Bu yapılmamalıdır çünkü bazı tersine mühendislik çalışmaları, saldırganların gizli bilgileri çıkarmasına olanak tanıyabilir.
|
||||
Bazı geliştiriciler hassas verileri yerel depolamada saklar ve bunu kodda hardcoded/tahmin edilebilir bir anahtar ile şifreler. Bu yapılmamalıdır çünkü bazı tersine mühendislik saldırıları, saldırganların gizli bilgileri çıkarmasına olanak tanıyabilir.
|
||||
|
||||
**Güvensiz ve/veya Kullanımdan Kaldırılmış Algoritmaların Kullanımı**
|
||||
|
||||
Geliştiriciler, yetkilendirme **kontrolleri** yapmak, **veri saklamak** veya **göndermek** için **kullanımdan kaldırılmış algoritmalar** kullanmamalıdır. Bu algoritmalardan bazıları: RC4, MD4, MD5, SHA1... Örneğin, şifreleri saklamak için **hash** kullanılıyorsa, tuz ile birlikte brute-force **dayanıklı** hash'ler kullanılmalıdır.
|
||||
Geliştiriciler, yetkilendirme **kontrolleri**, **veri saklama** veya **veri gönderme** işlemleri için **kullanımdan kaldırılmış algoritmalar** kullanmamalıdır. Bu algoritmalardan bazıları: RC4, MD4, MD5, SHA1... Örneğin, şifreleri saklamak için **hash** kullanılıyorsa, tuz ile birlikte **brute-force saldırılarına dayanıklı** hash'ler kullanılmalıdır.
|
||||
|
||||
### Diğer Kontroller
|
||||
|
||||
* **APK'yı obfuscate etmek** saldırganların tersine mühendislik çalışmalarını zorlaştırmak için önerilir.
|
||||
* Uygulama hassas ise (banka uygulamaları gibi), **mobilin köklenip köklenmediğini kontrol etmek için kendi kontrollerini** gerçekleştirmelidir ve buna göre hareket etmelidir.
|
||||
* Uygulama hassas ise (banka uygulamaları gibi), bir **emülatör** kullanılıp kullanılmadığını kontrol etmelidir.
|
||||
* Uygulama hassas ise (banka uygulamaları gibi), **çalıştırmadan önce kendi bütünlüğünü kontrol etmelidir**.
|
||||
* Uygulama hassas ise (banka uygulamaları gibi), **çalıştırmadan önce kendi bütünlüğünü kontrol etmelidir** ve değiştirilip değiştirilmediğini kontrol etmelidir.
|
||||
* APK'yı oluşturmak için hangi derleyici/paketleyici/obfuscator kullanıldığını kontrol etmek için [**APKiD**](https://github.com/rednaga/APKiD) kullanın.
|
||||
|
||||
### React Native Uygulaması
|
||||
|
@ -210,7 +210,7 @@ Bu [**blog yazısına**](https://clearbluejar.github.io/posts/desuperpacking-met
|
|||
|
||||
### Otomatik Statik Kod Analizi
|
||||
|
||||
[**mariana-trench**](https://github.com/facebook/mariana-trench) aracı, uygulamanın **kodunu tarayarak** **zayıflıkları** bulma yeteneğine sahiptir. Bu araç, **kullanıcı tarafından kontrol edilen** **giriş** yerlerini gösteren bir dizi **bilinen kaynak** içerir, **sink** (kötü niyetli kullanıcı girişinin zarar verebileceği **tehlikeli** **yerleri** gösterir) ve **kurallar** içerir. Bu kurallar, bir zayıflığı gösteren **kaynak-sink** kombinasyonlarını belirtir.
|
||||
[**mariana-trench**](https://github.com/facebook/mariana-trench) aracı, uygulamanın **kodunu tarayarak** **zayıflıkları** bulma yeteneğine sahiptir. Bu araç, **kullanıcı tarafından kontrol edilen** **giriş** yerlerini gösteren bir dizi **bilinen kaynak** içerir, **sink** (kötü niyetli kullanıcı girişinin zarar verebileceği **tehlikeli** **yerleri** gösterir) ve **kurallar** içerir. Bu kurallar, bir zayıflığı gösteren **kaynak-sink kombinasyonlarını** belirtir.
|
||||
|
||||
Bu bilgiyle, **mariana-trench kodu gözden geçirecek ve olası zayıflıkları bulacaktır**.
|
||||
|
||||
|
@ -227,9 +227,9 @@ Bir uygulama, içinde keşfedebileceğiniz sırlar (API anahtarları, şifreler,
|
|||
### Diğer İlginç Fonksiyonlar
|
||||
|
||||
* **Kod yürütme**: `Runtime.exec(), ProcessBuilder(), native code:system()`
|
||||
* **SMS Gönderme**: `sendTextMessage, sendMultipartTestMessage`
|
||||
* `native` olarak tanımlanan **Yerel fonksiyonlar**: `public native, System.loadLibrary, System.load`
|
||||
* [**Yerel fonksiyonları tersine mühendislik yapmayı öğrenmek için bunu okuyun**](reversing-native-libraries.md)
|
||||
* **SMS gönderme**: `sendTextMessage, sendMultipartTestMessage`
|
||||
* `native` olarak tanımlanan **yerel fonksiyonlar**: `public native, System.loadLibrary, System.load`
|
||||
* [**yerel fonksiyonları tersine mühendislik yapmayı öğrenmek için bunu okuyun**](reversing-native-libraries.md)
|
||||
|
||||
### **Diğer Hileler**
|
||||
|
||||
|
@ -244,13 +244,13 @@ Bir uygulama, içinde keşfedebileceğiniz sırlar (API anahtarları, şifreler,
|
|||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
**Hacking İçgörüleri**\
|
||||
Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun.
|
||||
Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun
|
||||
|
||||
**Gerçek Zamanlı Hack Haberleri**\
|
||||
Hızla değişen hacking dünyasında gerçek zamanlı haberler ve içgörülerle güncel kalın.
|
||||
Hızla değişen hacking dünyasında gerçek zamanlı haberler ve içgörülerle güncel kalın
|
||||
|
||||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi sahibi olun.
|
||||
Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
|
@ -264,39 +264,39 @@ Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize kat
|
|||
|
||||
[https://appetize.io/](https://appetize.io) adresinde **ücretsiz bir hesap** oluşturabilirsiniz. Bu platform, APK'ları **yüklemenize** ve **çalıştırmanıza** olanak tanır, bu nedenle bir apk'nın nasıl davrandığını görmek için faydalıdır.
|
||||
|
||||
Uygulamanızın **loglarını** webde görebilir ve **adb** üzerinden bağlanabilirsiniz.
|
||||
Ayrıca, uygulamanızın **loglarını** webde görebilir ve **adb** üzerinden bağlanabilirsiniz.
|
||||
|
||||
![](<../../.gitbook/assets/image (831).png>)
|
||||
|
||||
ADB bağlantısı sayesinde emülatörler içinde **Drozer** ve **Frida** kullanabilirsiniz.
|
||||
ADB bağlantısı sayesinde, emülatörler içinde **Drozer** ve **Frida** kullanabilirsiniz.
|
||||
|
||||
### Yerel Dinamik Analiz
|
||||
|
||||
#### Bir emülatör kullanarak
|
||||
|
||||
* [**Android Studio**](https://developer.android.com/studio) ( **x86** ve **arm** cihazlar oluşturabilirsiniz ve [**bu**](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html)**en son x86** sürümleri **ARM kütüphanelerini** yavaş bir arm emülatörüne ihtiyaç duymadan destekler).
|
||||
* [**Android Studio**](https://developer.android.com/studio) ( **x86** ve **arm** cihazlar oluşturabilirsiniz ve [**bu**](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html)**son x86** sürümleri **ARM kütüphanelerini** yavaş bir arm emülatörüne ihtiyaç duymadan destekler).
|
||||
* Bunu ayarlamayı öğrenmek için bu sayfayı okuyun:
|
||||
|
||||
{% content-ref url="avd-android-virtual-device.md" %}
|
||||
[avd-android-virtual-device.md](avd-android-virtual-device.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
* [**Genymotion**](https://www.genymotion.com/fun-zone/) **(Ücretsiz sürüm:** Kişisel Sürüm, bir hesap oluşturmanız gerekir. _Potansiyel hataları önlemek için **VirtualBox** ile **sürümü indirmek** önerilir._)
|
||||
* [**Nox**](https://es.bignox.com) (Ücretsiz, ancak Frida veya Drozer'ı desteklemiyor).
|
||||
* [**Genymotion**](https://www.genymotion.com/fun-zone/) **(Ücretsiz sürüm:** Kişisel Sürüm, bir hesap oluşturmanız gerekir. _Potansiyel hatalardan kaçınmak için **VirtualBox** ile **sürümü indirmek** önerilir._)
|
||||
* [**Nox**](https://es.bignox.com) (Ücretsiz, ancak Frida veya Drozer'ı desteklemez).
|
||||
|
||||
{% hint style="info" %}
|
||||
Yeni bir emülatör oluştururken, ekranın ne kadar büyük olursa, emülatörün o kadar yavaş çalışacağını unutmayın. Bu nedenle mümkünse küçük ekranlar seçin.
|
||||
Yeni bir emülatör oluştururken, ekranın ne kadar büyük olursa, emülatörün o kadar yavaş çalışacağını unutmayın. Bu nedenle, mümkünse küçük ekranlar seçin.
|
||||
{% endhint %}
|
||||
|
||||
Genymotion'da **Google hizmetlerini** (AppStore gibi) yüklemek için aşağıdaki resmin kırmızı ile işaretlenmiş butonuna tıklamanız gerekir:
|
||||
|
||||
![](<../../.gitbook/assets/image (277).png>)
|
||||
|
||||
Ayrıca, **Genymotion'daki Android VM yapılandırmasında** **Bridge Network mode** seçeneğini seçebileceğinizi unutmayın (bu, Android VM'ye farklı bir VM'den bağlanıyorsanız faydalı olacaktır).
|
||||
Ayrıca, Genymotion'daki **Android VM yapılandırmasında** **Bridge Network mode** seçeneğini seçebileceğinizi unutmayın (bu, Android VM'ye farklı bir VM'den bağlanıyorsanız faydalı olacaktır).
|
||||
|
||||
#### Fiziksel bir cihaz kullanma
|
||||
|
||||
**hata ayıklama** seçeneklerini etkinleştirmeniz gerekir ve cihazı **root** edebilirseniz harika olur:
|
||||
**hata ayıklama** seçeneklerini etkinleştirmeniz gerekir ve eğer **root** yapabiliyorsanız harika olur:
|
||||
|
||||
1. **Ayarlar**.
|
||||
2. (Android 8.0'dan itibaren) **Sistem**'i seçin.
|
||||
|
@ -304,14 +304,14 @@ Ayrıca, **Genymotion'daki Android VM yapılandırmasında** **Bridge Network mo
|
|||
4. **Build numarasına** 7 kez basın.
|
||||
5. Geri dönün ve **Geliştirici seçeneklerini** bulacaksınız.
|
||||
|
||||
> Uygulamayı yükledikten sonra yapmanız gereken ilk şey, onu denemek ve ne yaptığını, nasıl çalıştığını araştırmak ve onunla rahat olmaktır.\
|
||||
> Uygulamayı yükledikten sonra, yapmanız gereken ilk şey onu denemek ve ne yaptığını, nasıl çalıştığını araştırmak ve onunla rahat olmaktır.\
|
||||
> **Bu ilk dinamik analizi MobSF dinamik analizi + pidcat kullanarak gerçekleştirmeyi** öneririm, böylece **uygulamanın nasıl çalıştığını öğrenebiliriz** ve MobSF **ilginç** **verileri** toplarken daha sonra gözden geçirebiliriz.
|
||||
|
||||
### İstenmeyen Veri Sızıntısı
|
||||
|
||||
**Günlükleme**
|
||||
|
||||
Geliştiriciler, **hata ayıklama bilgilerini** kamuya açık bir şekilde ifşa etmekten kaçınmalıdır, çünkü bu hassas veri sızıntılarına yol açabilir. Uygulama günlüklerini izlemek ve hassas bilgileri korumak için [**pidcat**](https://github.com/JakeWharton/pidcat) ve `adb logcat` araçları önerilir. **Pidcat**, kullanım kolaylığı ve okunabilirliği nedeniyle tercih edilmektedir.
|
||||
Geliştiriciler, **hata ayıklama bilgilerini** kamuya açık bir şekilde ifşa etme konusunda dikkatli olmalıdır, çünkü bu hassas veri sızıntılarına yol açabilir. Uygulama günlüklerini izlemek ve hassas bilgileri korumak için [**pidcat**](https://github.com/JakeWharton/pidcat) ve `adb logcat` araçları önerilir. **Pidcat**, kullanım kolaylığı ve okunabilirliği nedeniyle tercih edilmektedir.
|
||||
|
||||
{% hint style="warning" %}
|
||||
**Android 4.0'dan daha yeni** sürümlerden itibaren, **uygulamalar yalnızca kendi günlüklerine erişebilir**. Yani uygulamalar diğer uygulamaların günlüklerine erişemez.\
|
||||
|
@ -320,11 +320,11 @@ Yine de, **hassas bilgileri günlüğe kaydetmemek** önerilir.
|
|||
|
||||
**Kopyala/Yapıştır Tamponu Önbellekleme**
|
||||
|
||||
Android'in **panoya dayalı** çerçevesi, uygulamalarda kopyala-yapıştır işlevselliği sağlar, ancak **diğer uygulamalar** panoya **erişebileceğinden** hassas verilerin açığa çıkma riski taşır. Hassas bölümler için kopyala/yapıştır işlevlerini devre dışı bırakmak, kredi kartı bilgileri gibi, veri sızıntılarını önlemek için kritik öneme sahiptir.
|
||||
Android'in **panoya dayalı** çerçevesi, uygulamalarda kopyala-yapıştır işlevselliği sağlar, ancak **diğer uygulamalar** panoya **erişebileceğinden** hassas verilerin açığa çıkma riski taşır. Hassas bölümler için, kredi kartı bilgileri gibi, **kopyala/yapıştır** işlevlerini devre dışı bırakmak kritik öneme sahiptir.
|
||||
|
||||
**Çökme Günlükleri**
|
||||
|
||||
Bir uygulama **çökerse** ve **günlükleri kaydederse**, bu günlükler saldırganlara yardımcı olabilir, özellikle uygulama tersine mühendislik yapılamıyorsa. Bu riski azaltmak için, çökme durumunda günlüğe kaydetmekten kaçının ve eğer günlükler ağ üzerinden iletilmesi gerekiyorsa, güvenlik için SSL kanalı üzerinden gönderildiğinden emin olun.
|
||||
Bir uygulama **çökerse** ve **günlükleri kaydederse**, bu günlükler saldırganlara yardımcı olabilir, özellikle uygulama tersine mühendislik ile çözülemezse. Bu riski azaltmak için, çökme durumunda günlüğe kaydetmekten kaçının ve eğer günlükler ağ üzerinden iletilmesi gerekiyorsa, güvenlik için SSL kanalı üzerinden gönderildiğinden emin olun.
|
||||
|
||||
Pentester olarak, **bu günlükleri gözden geçirmeye çalışın**.
|
||||
|
||||
|
@ -337,34 +337,34 @@ Uygulamalar genellikle Google Adsense gibi hizmetleri entegre eder, bu da geliş
|
|||
Çoğu uygulama, bilgileri saklamak için **içsel SQLite veritabanları** kullanır. Pentest sırasında oluşturulan **veritabanlarına**, **tabloların** ve **sütunların** adlarına ve saklanan tüm **verilere** bir **göz atın** çünkü **hassas bilgiler** bulabilirsiniz (bu bir zayıflık olacaktır).\
|
||||
Veritabanları `/data/data/the.package.name/databases` gibi `/data/data/com.mwr.example.sieve/databases` konumunda bulunmalıdır.
|
||||
|
||||
Eğer veritabanı gizli bilgileri saklıyorsa ve **şifrelenmişse** ancak uygulama içinde **şifreyi bulabiliyorsanız**, bu hala bir **zayıflıktır**.
|
||||
Eğer veritabanı gizli bilgileri saklıyorsa ve **şifrelenmişse** ancak uygulama içinde **şifreyi** bulabiliyorsanız, bu hala bir **zayıflıktır**.
|
||||
|
||||
Tabloları `.tables` ile listeleyin ve tabloların sütunlarını `.schema <table_name>` ile listeleyin.
|
||||
|
||||
### Drozer (Sömürü Faaliyetleri, İçerik Sağlayıcıları ve Hizmetler)
|
||||
### Drozer (Sömürü Faaliyetleri, İçerik Sağlayıcılar ve Hizmetler)
|
||||
|
||||
[Drozer Belgeleri](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf)'nden: **Drozer**, bir Android uygulamasının rolünü üstlenmenizi ve diğer uygulamalarla etkileşimde bulunmanızı sağlar. Yüklü bir uygulamanın yapabileceği her şeyi yapabilir, örneğin Android’in Araçlar Arası İletişim (IPC) mekanizmasını kullanabilir ve temel işletim sistemi ile etkileşimde bulunabilir.\
|
||||
Drozer, **dışa aktarılan faaliyetleri, dışa aktarılan hizmetleri ve İçerik Sağlayıcıları** sömürmek için faydalı bir araçtır, bunu aşağıdaki bölümlerde öğreneceksiniz.
|
||||
[Drozer Belgeleri](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf)'nden: **Drozer**, bir Android uygulamasının rolünü üstlenmenizi ve diğer uygulamalarla etkileşimde bulunmanızı sağlar. Yüklenmiş bir uygulamanın yapabileceği **her şeyi** yapabilir, örneğin Android’in Araçlar Arası İletişim (IPC) mekanizmasını kullanabilir ve temel işletim sistemi ile etkileşimde bulunabilir.\
|
||||
Drozer, **ihracat yapılmış aktiviteleri, ihracat yapılmış hizmetleri ve İçerik Sağlayıcıları** sömürmek için yararlı bir araçtır, bunu aşağıdaki bölümlerde öğreneceksiniz.
|
||||
|
||||
### Dışa Aktarılan Faaliyetleri Sömürme
|
||||
### İhracat Yapılmış Aktiviteleri Sömürme
|
||||
|
||||
[**Bir Android Faaliyeti'nin ne olduğunu tazelemek istiyorsanız bunu okuyun.**](android-applications-basics.md#launcher-activity-and-other-activities)\
|
||||
Ayrıca, bir faaliyetin kodunun **`onCreate`** metodunda başladığını unutmayın.
|
||||
[**Bir Android Aktivitesinin ne olduğunu tazelemek istiyorsanız bunu okuyun.**](android-applications-basics.md#launcher-activity-and-other-activities)\
|
||||
Ayrıca, bir aktivitenin kodunun **`onCreate`** metodunda başladığını unutmayın.
|
||||
|
||||
**Yetkilendirme atlatma**
|
||||
|
||||
Bir Faaliyet dışa aktarıldığında, ekranını harici bir uygulamadan çağırabilirsiniz. Bu nedenle, **hassas bilgileri** içeren bir faaliyet **dışa aktarıldıysa**, **kimlik doğrulama** mekanizmalarını **atlatabilirsiniz**.
|
||||
Bir Aktivite ihracat yapıldığında, dış bir uygulamadan ekranını çağırabilirsiniz. Bu nedenle, **hassas bilgileri** içeren bir aktivite **ihracat** edilmişse, **ona erişmek için** **kimlik doğrulama** mekanizmalarını **atlatabilirsiniz.**
|
||||
|
||||
[**Drozer ile dışa aktarılan faaliyetleri nasıl sömüreceğinizi öğrenin.**](drozer-tutorial/#activities)
|
||||
[**Drozer ile ihracat yapılmış aktiviteleri nasıl sömüreceğinizi öğrenin.**](drozer-tutorial/#activities)
|
||||
|
||||
Ayrıca adb'den dışa aktarılan bir faaliyeti başlatabilirsiniz:
|
||||
Ayrıca adb'den ihracat yapılmış bir aktivite başlatabilirsiniz:
|
||||
|
||||
* Paket Adı com.example.demo
|
||||
* Dışa Aktarılan Faaliyet Adı com.example.test.MainActivity
|
||||
* İhracat Yapılmış Aktivite Adı com.example.test.MainActivity
|
||||
```bash
|
||||
adb shell am start -n com.example.demo/com.example.test.MainActivity
|
||||
```
|
||||
**NOT**: MobSF, bir aktivitede `android:launchMode` olarak _**singleTask/singleInstance**_ kullanımını kötü niyetli olarak tespit edecektir, ancak [buna](https://github.com/MobSF/Mobile-Security-Framework-MobSF/pull/750) göre, bu görünüşte yalnızca eski sürümlerde (API sürümleri < 21) tehlikelidir.
|
||||
**NOT**: MobSF, bir aktivitede `android:launchMode` olarak _**singleTask/singleInstance**_ kullanımını kötü niyetli olarak tespit edecektir, ancak [buna](https://github.com/MobSF/Mobile-Security-Framework-MobSF/pull/750) göre, bu durum görünüşe göre yalnızca eski sürümlerde (API sürümleri < 21) tehlikelidir.
|
||||
|
||||
{% hint style="info" %}
|
||||
Bir yetkilendirme atlamanın her zaman bir zafiyet olmadığını unutmayın, bu atlamanın nasıl çalıştığına ve hangi bilgilerin açığa çıktığına bağlıdır.
|
||||
|
@ -376,14 +376,14 @@ Bir yetkilendirme atlamanın her zaman bir zafiyet olmadığını unutmayın, bu
|
|||
|
||||
#### Tapjacking
|
||||
|
||||
Eğer tapjacking engellenmezse, dışa aktarılmış aktiviteyi **kullanıcının beklenmedik eylemler gerçekleştirmesi** için kötüye kullanabilirsiniz. Daha fazla bilgi için [**tapjacking nedir bağlantısını takip edin**](./#tapjacking).
|
||||
Eğer tapjacking önlenmezse, dışa aktarılmış aktiviteyi **kullanıcının beklenmedik eylemler gerçekleştirmesi** için kötüye kullanabilirsiniz. Daha fazla bilgi için [**Tapjacking nedir, bağlantıyı takip edin**](./#tapjacking).
|
||||
|
||||
### İçerik Sağlayıcılarını Sömürme - Hassas bilgilere erişim ve manipülasyon
|
||||
|
||||
[**Bir İçerik Sağlayıcının ne olduğunu tazelemek istiyorsanız bunu okuyun.**](android-applications-basics.md#content-provider)\
|
||||
İçerik sağlayıcıları temelde **veri paylaşmak** için kullanılır. Eğer bir uygulamanın mevcut içerik sağlayıcıları varsa, onlardan **hassas** verileri **çıkartma** imkanınız olabilir. Ayrıca olası **SQL enjeksiyonlarını** ve **Path Traversals**'ı test etmek de ilginçtir çünkü bunlar zayıf olabilir.
|
||||
İçerik sağlayıcıları temelde **veri paylaşmak** için kullanılır. Eğer bir uygulamada mevcut içerik sağlayıcılar varsa, onlardan **hassas** verileri **çıkartma** imkanınız olabilir. Ayrıca, olası **SQL enjeksiyonlarını** ve **Path Traversals** test etmek de ilginçtir çünkü bunlar zayıf olabilir.
|
||||
|
||||
[**Drozer ile İçerik Sağlayıcıları nasıl sömüreceğinizi öğrenin.**](drozer-tutorial/#content-providers)
|
||||
[**Drozer ile İçerik Sağlayıcılarını nasıl sömüreceğinizi öğrenin.**](drozer-tutorial/#content-providers)
|
||||
|
||||
### **Hizmetleri Sömürme**
|
||||
|
||||
|
@ -398,7 +398,7 @@ Servis, temelde **veri alabilen**, **işleyebilen** ve **bir yanıt döndüren**
|
|||
[**Bir Yayın Alıcısının ne olduğunu tazelemek istiyorsanız bunu okuyun.**](android-applications-basics.md#broadcast-receivers)\
|
||||
Bir Yayın Alıcısının eylemlerinin `onReceive` metodunda başladığını unutmayın.
|
||||
|
||||
Bir yayın alıcısı bir tür mesaj bekleyecektir. Alıcının mesajı nasıl işlediğine bağlı olarak zayıf olabilir.\
|
||||
Bir yayın alıcısı bir tür mesaj bekleyecektir. Alıcının mesajı nasıl işlediğine bağlı olarak, zayıf olabilir.\
|
||||
[**Drozer ile Yayın Alıcılarını nasıl sömüreceğinizi öğrenin.**](./#exploiting-broadcast-receivers)
|
||||
|
||||
### **Şemaları / Derin bağlantıları Sömürme**
|
||||
|
@ -412,7 +412,7 @@ adb shell am start -a android.intent.action.VIEW -d "scheme://hostname/path?para
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
_Dikkat edin ki **paket adını atlayabilirsiniz** ve mobil otomatik olarak o bağlantıyı açması gereken uygulamayı çağıracaktır._
|
||||
_Paket adını **atlayabileceğinizi** unutmayın ve mobil, o bağlantıyı açması gereken uygulamayı otomatik olarak çağıracaktır._
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```markup
|
||||
|
@ -425,7 +425,7 @@ _Dikkat edin ki **paket adını atlayabilirsiniz** ve mobil otomatik olarak o ba
|
|||
|
||||
**Kod çalıştırıldı**
|
||||
|
||||
**Uygulamada çalıştırılacak kodu** bulmak için, derin bağlantıyla çağrılan aktiviteye gidin ve **`onNewIntent`** fonksiyonunu arayın.
|
||||
Uygulamada **çalıştırılacak kodu bulmak için**, derin bağlantıyla çağrılan aktiviteye gidin ve **`onNewIntent`** fonksiyonunu arayın.
|
||||
|
||||
![](<../../.gitbook/assets/image (436) (1) (1) (1).png>)
|
||||
|
||||
|
@ -435,7 +435,7 @@ Her derin bağlantı bulduğunuzda, **URL parametreleri aracılığıyla hassas
|
|||
|
||||
**Yolda parametreler**
|
||||
|
||||
**URL'nin yolunda bir parametre kullanıp kullanmadığını da kontrol etmelisiniz**; örneğin: `https://api.example.com/v1/users/{username}`. Bu durumda, `example://app/users?username=../../unwanted-endpoint%3fparam=value` gibi bir yol geçişi zorlayabilirsiniz.\
|
||||
**URL'nin yolunda bir parametre kullanılıp kullanılmadığını da kontrol etmelisiniz**: `https://api.example.com/v1/users/{username}` , bu durumda bir yol geçişi zorlayarak şuna erişebilirsiniz: `example://app/users?username=../../unwanted-endpoint%3fparam=value` .\
|
||||
Uygulama içinde doğru uç noktaları bulursanız, **Açık Yönlendirme** (eğer yolun bir kısmı alan adı olarak kullanılıyorsa), **hesap ele geçirme** (eğer kullanıcı detaylarını CSRF token olmadan değiştirebiliyorsanız ve zayıf uç nokta doğru yöntemi kullanıyorsa) ve diğer zayıflıkları tetikleyebilirsiniz. Daha fazla [bilgi burada](http://dphoeniixx.com/2020/12/13-2/).
|
||||
|
||||
**Daha fazla örnek**
|
||||
|
@ -444,13 +444,13 @@ Bağlantılar hakkında [ilginç bir hata ödül raporu](https://hackerone.com/r
|
|||
|
||||
### Taşıma Katmanı İncelemesi ve Doğrulama Hataları
|
||||
|
||||
* **Sertifikalar her zaman düzgün bir şekilde incelenmez**. Android uygulamalarının bu uyarıları göz ardı etmesi ve kendinden imzalı sertifikaları kabul etmesi yaygındır veya bazı durumlarda HTTP bağlantılarına geri dönmesi mümkündür.
|
||||
* **Sertifikalar her zaman düzgün bir şekilde incelenmez** Android uygulamaları tarafından. Bu uygulamaların uyarıları göz ardı etmesi ve kendinden imzalı sertifikaları kabul etmesi yaygındır veya bazı durumlarda HTTP bağlantılarına geri dönmesi.
|
||||
* **SSL/TLS el sıkışması sırasında müzakereler bazen zayıftır**, güvensiz şifreleme takımları kullanır. Bu zayıflık, bağlantıyı adam ortada (MITM) saldırılarına karşı savunmasız hale getirir ve saldırganların verileri şifrelerini çözmesine olanak tanır.
|
||||
* **Özel bilgilerin sızması**, uygulamalar güvenli kanallar kullanarak kimlik doğrulaması yaparken, diğer işlemler için güvensiz kanallar üzerinden iletişim kurmaları durumunda bir risk oluşturur. Bu yaklaşım, oturum çerezleri veya kullanıcı detayları gibi hassas verilerin kötü niyetli varlıklar tarafından ele geçirilmesini koruyamaz.
|
||||
* **Özel bilgilerin sızması**, uygulamalar güvenli kanallar kullanarak kimlik doğrulaması yaparken ancak diğer işlemler için güvenli olmayan kanallar üzerinden iletişim kurduğunda bir risk oluşturur. Bu yaklaşım, oturum çerezleri veya kullanıcı detayları gibi hassas verilerin kötü niyetli varlıklar tarafından ele geçirilmesini korumaz.
|
||||
|
||||
#### Sertifika Doğrulama
|
||||
|
||||
**Sertifika doğrulama** üzerine odaklanacağız. Sunucunun sertifikasının bütünlüğü, güvenliği artırmak için doğrulanmalıdır. Bu, güvensiz TLS yapılandırmaları ve şifrelenmemiş kanallar üzerinden hassas verilerin iletilmesi önemli riskler oluşturabileceğinden kritik öneme sahiptir. Sunucu sertifikalarını doğrulama ve zayıflıkları giderme ile ilgili ayrıntılı adımlar için, [**bu kaynak**](https://manifestsecurity.com/android-application-security-part-10/) kapsamlı rehberlik sağlamaktadır.
|
||||
**Sertifika doğrulama** üzerine odaklanacağız. Sunucunun sertifikasının bütünlüğü, güvenliği artırmak için doğrulanmalıdır. Bu, güvensiz TLS yapılandırmaları ve hassas verilerin şifrelenmemiş kanallar üzerinden iletilmesi önemli riskler oluşturabileceğinden kritik öneme sahiptir. Sunucu sertifikalarını doğrulama ve zayıflıkları giderme ile ilgili ayrıntılı adımlar için, [**bu kaynak**](https://manifestsecurity.com/android-application-security-part-10/) kapsamlı rehberlik sağlamaktadır.
|
||||
|
||||
#### SSL Pinning
|
||||
|
||||
|
@ -458,35 +458,35 @@ SSL Pinning, uygulamanın sunucunun sertifikasını uygulama içinde saklanan bi
|
|||
|
||||
#### Trafik İncelemesi
|
||||
|
||||
HTTP trafiğini incelemek için, **proxy aracının sertifikasını yüklemek** gereklidir (örneğin, Burp). Bu sertifikayı yüklemeden, şifrelenmiş trafik proxy üzerinden görünmeyebilir. Özel CA sertifikası yükleme rehberi için, [**buraya tıklayın**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine).
|
||||
HTTP trafiğini incelemek için, **proxy aracının sertifikasını yüklemek** gereklidir (örneğin, Burp). Bu sertifikayı yüklemeden, şifreli trafik proxy üzerinden görünmeyebilir. Özel CA sertifikası yükleme rehberi için, [**buraya tıklayın**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine).
|
||||
|
||||
**API Seviye 24 ve üzeri** hedefleyen uygulamalar, proxy'nin CA sertifikasını kabul etmek için Ağ Güvenliği Yapılandırmasında değişiklikler gerektirir. Bu adım, şifrelenmiş trafiği incelemek için kritik öneme sahiptir. Ağ Güvenliği Yapılandırmasını değiştirme talimatları için, [**bu eğitime başvurun**](make-apk-accept-ca-certificate.md).
|
||||
**API Seviye 24 ve üzeri** hedefleyen uygulamalar, proxy'nin CA sertifikasını kabul etmek için Ağ Güvenliği Yapılandırmasında değişiklikler gerektirir. Bu adım, şifreli trafiği incelemek için kritik öneme sahiptir. Ağ Güvenliği Yapılandırmasını değiştirme talimatları için, [**bu eğitime başvurun**](make-apk-accept-ca-certificate.md).
|
||||
|
||||
#### SSL Pinning'i Atlatma
|
||||
#### SSL Pinning'i Aşma
|
||||
|
||||
SSL Pinning uygulandığında, HTTPS trafiğini incelemek için bunu atlatmak gerekli hale gelir. Bu amaçla çeşitli yöntemler mevcuttur:
|
||||
SSL Pinning uygulandığında, HTTPS trafiğini incelemek için bunu aşmak gerekli hale gelir. Bu amaçla çeşitli yöntemler mevcuttur:
|
||||
|
||||
* **apk'yi otomatik olarak değiştirerek** SSL Pinning'i [**apk-mitm**](https://github.com/shroudedcode/apk-mitm) ile **atlatabilirsiniz**. Bu seçeneğin en iyi yanı, SSL Pinning'i atlatmak için root'a ihtiyacınız olmamasıdır, ancak uygulamayı silip yeni olanı yeniden yüklemeniz gerekecek ve bu her zaman işe yaramayabilir.
|
||||
* Bu korumayı atlatmak için **Frida** kullanabilirsiniz (aşağıda tartışılmıştır). Burp+Frida+Genymotion kullanma rehberiniz burada: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
|
||||
* **SSL Pinning'i otomatik olarak atlatmayı** [**objection**](frida-tutorial/objection-tutorial.md)** ile deneyebilirsiniz:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
|
||||
* **MobSF dinamik analizi** kullanarak da **SSL Pinning'i otomatik olarak atlatmayı** deneyebilirsiniz (aşağıda açıklanmıştır).
|
||||
* Otomatik olarak **apk'yi değiştirerek** SSLPinning'i **aşmak için** [**apk-mitm**](https://github.com/shroudedcode/apk-mitm) kullanabilirsiniz. Bu seçeneğin en iyi yanı, SSL Pinning'i aşmak için root'a ihtiyacınız olmamasıdır, ancak uygulamayı silip yeni olanı yeniden yüklemeniz gerekecek ve bu her zaman işe yaramayabilir.
|
||||
* Bu korumayı aşmak için **Frida** kullanabilirsiniz (aşağıda tartışılmıştır). Burp+Frida+Genymotion kullanma kılavuzunuz burada: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
|
||||
* **SSL Pinning'i otomatik olarak aşmayı** denemek için [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
|
||||
* **MobSF dinamik analizi** kullanarak da **SSL Pinning'i otomatik olarak aşmayı** deneyebilirsiniz (aşağıda açıklanmıştır).
|
||||
* Hala yakalamadığınız bazı trafiğin olduğunu düşünüyorsanız, trafiği **iptables kullanarak burp'a yönlendirmeyi** deneyebilirsiniz. Bu blogu okuyun: [https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62](https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62)
|
||||
|
||||
#### Yaygın Web Zayıflıklarını Arama
|
||||
|
||||
Uygulama içinde yaygın web zayıflıklarını da aramak önemlidir. Bu zayıflıkları tanımlama ve hafifletme ile ilgili ayrıntılı bilgiler bu özetin kapsamının ötesindedir, ancak başka yerlerde kapsamlı bir şekilde ele alınmaktadır.
|
||||
Uygulama içinde yaygın web zayıflıklarını da aramak önemlidir. Bu zayıflıkları tanımlama ve hafifletme ile ilgili ayrıntılı bilgiler bu özetin kapsamının ötesindedir ancak başka yerlerde kapsamlı bir şekilde ele alınmaktadır.
|
||||
|
||||
### Frida
|
||||
|
||||
[Frida](https://www.frida.re), geliştiriciler, ters mühendisler ve güvenlik araştırmacıları için dinamik enstrümantasyon araç takımıdır.\
|
||||
**Çalışan uygulamaya erişebilir ve çalışma zamanında yöntemleri bağlayarak davranışları değiştirebilir, değerleri değiştirebilir, değerleri çıkarabilir, farklı kodlar çalıştırabilirsiniz...**\
|
||||
[Frida](https://www.frida.re), geliştiriciler, ters mühendisler ve güvenlik araştırmacıları için dinamik bir enstrümantasyon aracıdır.\
|
||||
**Çalışan uygulamaya erişebilir ve çalışma zamanında yöntemleri bağlayarak davranışı değiştirebilir, değerleri değiştirebilir, değerleri çıkarabilir, farklı kodlar çalıştırabilirsiniz...**\
|
||||
Android uygulamalarını pentest etmek istiyorsanız, Frida'yı nasıl kullanacağınızı bilmelisiniz.
|
||||
|
||||
* Frida'yı nasıl kullanacağınızı öğrenin: [**Frida eğitimi**](frida-tutorial/)
|
||||
* Frida ile eylemler için bazı "GUI": [**https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security**](https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security)
|
||||
* Ojection, Frida kullanımını otomatikleştirmek için harika: [**https://github.com/sensepost/objection**](https://github.com/sensepost/objection) **,** [**https://github.com/dpnishant/appmon**](https://github.com/dpnishant/appmon)
|
||||
* Burada bazı harika Frida betikleri bulabilirsiniz: [**https://codeshare.frida.re/**](https://codeshare.frida.re)
|
||||
* Frida'yı yükleyerek anti-debugging / anti-frida mekanizmalarını atlatmayı deneyin, [https://erfur.github.io/blog/dev/code-injection-without-ptrace](https://erfur.github.io/blog/dev/code-injection-without-ptrace) (araç [linjector](https://github.com/erfur/linjector-rs))
|
||||
* Frida'yı yükleyerek anti-debugging / anti-frida mekanizmalarını aşmayı deneyin, [https://erfur.github.io/blog/dev/code-injection-without-ptrace](https://erfur.github.io/blog/dev/code-injection-without-ptrace) (araç [linjector](https://github.com/erfur/linjector-rs))
|
||||
|
||||
### **Belleği Dökme - Fridump**
|
||||
|
||||
|
@ -511,7 +511,7 @@ strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a
|
|||
|
||||
### **Keystore'daki Hassas Veriler**
|
||||
|
||||
Android'de Keystore, hassas verileri saklamak için en iyi yerdir, ancak yeterli ayrıcalıklara sahip olunduğunda **erişmek mümkündür**. Uygulamalar burada genellikle **hassas verileri düz metin olarak** sakladığından, pentestler bunun için root kullanıcı olarak kontrol edilmelidir veya cihaza fiziksel erişimi olan birisi bu verileri çalabilir.
|
||||
Android'de Keystore, hassas verileri saklamak için en iyi yerdir, ancak yeterli ayrıcalıklara sahip olunduğunda **erişmek mümkündür**. Uygulamalar burada **hassas verileri düz metin olarak** saklama eğiliminde olduğundan, pentestler bunun için root kullanıcı olarak kontrol edilmelidir veya cihaza fiziksel erişimi olan birisi bu verileri çalabilir.
|
||||
|
||||
Bir uygulama verileri keystore'da saklasa bile, verilerin şifrelenmiş olması gerekir.
|
||||
|
||||
|
@ -521,7 +521,7 @@ frida -U -f com.example.app -l frida-scripts/tracer-cipher.js
|
|||
```
|
||||
### **Parmak İzi/Biyometrik Bypass**
|
||||
|
||||
Aşağıdaki Frida scriptini kullanarak, Android uygulamalarının **belirli hassas alanları korumak için** gerçekleştirebileceği **parmak izi kimlik doğrulamasını atlamak** mümkün olabilir:
|
||||
Aşağıdaki Frida scriptini kullanarak, Android uygulamalarının **belirli hassas alanları korumak için** gerçekleştirebileceği **parmak izi kimlik doğrulamasını atlamak** mümkün olabilir:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -531,13 +531,13 @@ frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app
|
|||
|
||||
### **Arka Plan Görüntüleri**
|
||||
|
||||
Bir uygulamayı arka plana aldığınızda, Android **uygulamanın bir anlık görüntüsünü** saklar, böylece ön plana geri döndüğünde, uygulama yüklenmeden önce görüntüyü yüklemeye başlar, bu da uygulamanın daha hızlı yüklendiği izlenimini verir.
|
||||
Bir uygulamayı arka plana aldığınızda, Android **uygulamanın bir anlık görüntüsünü** saklar, böylece uygulama ön plana geri döndüğünde, uygulama yüklenmeden önce görüntüyü yüklemeye başlar, böylece uygulamanın daha hızlı yüklendiği izlenimi verir.
|
||||
|
||||
Ancak, bu anlık görüntü **hassas bilgiler** içeriyorsa, anlık görüntüye erişimi olan biri bu bilgileri **çalıp alabilir** (erişim için root gereklidir).
|
||||
|
||||
Anlık görüntüler genellikle şurada saklanır: **`/data/system_ce/0/snapshots`**
|
||||
Anlık görüntüler genellikle şu konumda saklanır: **`/data/system_ce/0/snapshots`**
|
||||
|
||||
Android, **FLAG\_SECURE** düzen parametresini ayarlayarak ekran görüntüsü alımını **önlemenin** bir yolunu sağlar. Bu bayrağı kullanarak, pencere içeriği güvenli olarak kabul edilir, bu da ekran görüntülerinde görünmesini veya güvenli olmayan ekranlarda görüntülenmesini engeller.
|
||||
Android, **FLAG\_SECURE** düzen parametresini ayarlayarak ekran görüntüsü alımını **önlemenin** bir yolunu sunar. Bu bayrağı kullanarak, pencere içeriği güvenli olarak kabul edilir, bu da ekran görüntülerinde görünmesini veya güvenli olmayan ekranlarda görüntülenmesini engeller.
|
||||
```bash
|
||||
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
|
||||
```
|
||||
|
@ -547,9 +547,9 @@ Bu araç, dinamik analiz sırasında farklı araçları yönetmenize yardımcı
|
|||
|
||||
### Intent Enjeksiyonu
|
||||
|
||||
Geliştiriciler genellikle bu Intents'i işleyen ve `startActivity(...)` veya `sendBroadcast(...)` gibi yöntemlere ileten proxy bileşenleri, aktiviteleri, hizmetleri ve yayın alıcıları oluştururlar; bu da riskli olabilir.
|
||||
Geliştiriciler genellikle bu Intents'leri işleyen ve `startActivity(...)` veya `sendBroadcast(...)` gibi yöntemlere ileten proxy bileşenleri, aktiviteleri, hizmetleri ve yayın alıcıları oluştururlar; bu da riskli olabilir.
|
||||
|
||||
Tehlike, saldırganların bu Intents'i yanlış yönlendirerek dışa aktarılmamış uygulama bileşenlerini tetiklemelerine veya hassas içerik sağlayıcılarına erişmelerine izin vermekte yatmaktadır. Dikkate değer bir örnek, URL'leri `Intent` nesnelerine dönüştüren `WebView` bileşenidir; bu, kötü niyetli Intent enjeksiyonlarına yol açabilir.
|
||||
Tehlike, saldırganların bu Intents'leri yanlış yönlendirerek dışa aktarılmamış uygulama bileşenlerini tetiklemelerine veya hassas içerik sağlayıcılarına erişmelerine izin vermekte yatmaktadır. Dikkate değer bir örnek, URL'leri `Intent` nesnelerine dönüştüren `WebView` bileşenidir; bu, kötü niyetli Intent enjeksiyonlarına yol açabilir.
|
||||
|
||||
### Temel Çıkarımlar
|
||||
|
||||
|
@ -560,12 +560,12 @@ Tehlike, saldırganların bu Intents'i yanlış yönlendirerek dışa aktarılma
|
|||
|
||||
### Android İstemci Tarafı Enjeksiyonları ve Diğerleri
|
||||
|
||||
Bu tür zafiyetler hakkında Web'den bilgi sahibi olmalısınız. Android uygulamasında bu zafiyetlere karşı özellikle dikkatli olmalısınız:
|
||||
Bu tür zafiyetler hakkında webden haberdar olmalısınız. Bir Android uygulamasında bu zafiyetlere karşı özellikle dikkatli olmalısınız:
|
||||
|
||||
* **SQL Enjeksiyonu:** Dinamik sorgular veya İçerik Sağlayıcılarla çalışırken, parametreli sorgular kullandığınızdan emin olun.
|
||||
* **JavaScript Enjeksiyonu (XSS):** Herhangi bir WebView için JavaScript ve Eklenti desteğinin devre dışı olduğundan emin olun (varsayılan olarak devre dışı). [Buradan daha fazla bilgi](webview-attacks.md#javascript-enabled).
|
||||
* **Yerel Dosya Dahil Etme:** WebView'lerin dosya sistemine erişimi devre dışı olmalıdır (varsayılan olarak etkin) - `(webview.getSettings().setAllowFileAccess(false);)`. [Buradan daha fazla bilgi](webview-attacks.md#javascript-enabled).
|
||||
* **Sonsuz çerezler**: Android uygulaması oturumu bitirdiğinde çerez iptal edilmez veya hatta diske kaydedilebilir.
|
||||
* **JavaScript Enjeksiyonu (XSS):** Herhangi bir WebView için JavaScript ve Eklenti desteğinin devre dışı olduğundan emin olun (varsayılan olarak devre dışıdır). [Buradan daha fazla bilgi](webview-attacks.md#javascript-enabled).
|
||||
* **Yerel Dosya Dahil Etme:** WebView'lerin dosya sistemine erişimi devre dışı olmalıdır (varsayılan olarak etkindir) - `(webview.getSettings().setAllowFileAccess(false);)`. [Buradan daha fazla bilgi](webview-attacks.md#javascript-enabled).
|
||||
* **Sonsuz çerezler**: Birçok durumda, android uygulaması oturumu bitirdiğinde çerez iptal edilmez veya hatta diske kaydedilebilir.
|
||||
* [**Çerezlerde Güvenli Bayrak**](../../pentesting-web/hacking-with-cookies/#cookies-flags)
|
||||
|
||||
***
|
||||
|
@ -575,13 +575,13 @@ Bu tür zafiyetler hakkında Web'den bilgi sahibi olmalısınız. Android uygula
|
|||
Deneyimli hackerlar ve hata ödülü avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
**Hacking İçgörüleri**\
|
||||
Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun
|
||||
Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun.
|
||||
|
||||
**Gerçek Zamanlı Hack Haberleri**\
|
||||
Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında güncel kalın
|
||||
Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında güncel kalın.
|
||||
|
||||
**Son Duyurular**\
|
||||
Yeni başlayan hata ödülleri ve önemli platform güncellemeleri hakkında bilgi sahibi olun
|
||||
Yeni başlayan hata ödülleri ve kritik platform güncellemeleri hakkında bilgi sahibi olun.
|
||||
|
||||
**Bize katılın** [**Discord**](https://discord.com/invite/N3FrSbmwdy) ve bugün en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
|
@ -593,7 +593,7 @@ Yeni başlayan hata ödülleri ve önemli platform güncellemeleri hakkında bil
|
|||
|
||||
![](<../../.gitbook/assets/image (866).png>)
|
||||
|
||||
**Uygulamanın zafiyet değerlendirmesi**, güzel bir web tabanlı ön yüz kullanarak yapılır. Dinamik analiz de gerçekleştirebilirsiniz (ancak ortamı hazırlamanız gerekir).
|
||||
**Uygulamanın zafiyet değerlendirmesi**, güzel bir web tabanlı ön yüz kullanarak yapılır. Ayrıca dinamik analiz de gerçekleştirebilirsiniz (ancak ortamı hazırlamanız gerekir).
|
||||
```bash
|
||||
docker pull opensecurity/mobile-security-framework-mobsf
|
||||
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
|
||||
|
@ -601,25 +601,25 @@ docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
|
|||
Notice that MobSF can analyse **Android**(apk)**, IOS**(ipa) **and Windows**(apx) applications (_Windows uygulamaları, Windows ana bilgisayarında kurulu bir MobSF'den analiz edilmelidir_).\
|
||||
Ayrıca, bir **Android** veya **IOS** uygulamasının kaynak koduyla bir **ZIP** dosyası oluşturursanız (uygulamanın kök klasörüne gidin, her şeyi seçin ve bir ZIP dosyası oluşturun), bunu da analiz edebilecektir.
|
||||
|
||||
MobSF ayrıca **diff/Compare** analizine ve **VirusTotal** entegrasyonuna izin verir (API anahtarınızı _MobSF/settings.py_ dosyasına ayarlamanız ve etkinleştirmeniz gerekecek: `VT_ENABLED = TRUE` `VT_API_KEY = <API anahtarınız>` `VT_UPLOAD = TRUE`). `VT_UPLOAD`'ı `False` olarak ayarlayabilirsiniz, böylece **hash** dosya yerine **yüklenir**.
|
||||
MobSF ayrıca **diff/Compare** analizine ve **VirusTotal** entegrasyonuna izin verir (API anahtarınızı _MobSF/settings.py_ dosyasında ayarlamanız ve etkinleştirmeniz gerekecek: `VT_ENABLED = TRUE` `VT_API_KEY = <API anahtarınız>` `VT_UPLOAD = TRUE`). Ayrıca `VT_UPLOAD`'ı `False` olarak ayarlayabilirsiniz, bu durumda **hash** dosya yerine **yüklenir**.
|
||||
|
||||
### MobSF ile Yardımlı Dinamik Analiz
|
||||
|
||||
**MobSF**, **Android**'de **dinamik analiz** için de çok yardımcı olabilir, ancak bu durumda MobSF ve **genymotion**'ı ana bilgisayarınıza kurmanız gerekecek (bir VM veya Docker çalışmayacaktır). _Not: Öncelikle **genymotion'da bir VM başlatmalısınız** ve **sonra MobSF'yi başlatmalısınız.**_\
|
||||
**MobSF dinamik analizörü** şunları yapabilir:
|
||||
|
||||
* **Uygulama verilerini dökme** (URL'ler, günlükler, panoya kopyalananlar, sizin yaptığınız ekran görüntüleri, "**Exported Activity Tester**" tarafından yapılan ekran görüntüleri, e-postalar, SQLite veritabanları, XML dosyaları ve diğer oluşturulan dosyalar). Tüm bunlar otomatik olarak yapılır, ekran görüntüleri için istediğinizde basmanız veya tüm dışa aktarılan etkinliklerin ekran görüntülerini elde etmek için "**Exported Activity Tester**" butonuna basmanız gerekir.
|
||||
* **Uygulama verilerini dökme** (URL'ler, günlükler, panoya kopyalananlar, sizin yaptığınız ekran görüntüleri, "**Exported Activity Tester**" tarafından yapılan ekran görüntüleri, e-postalar, SQLite veritabanları, XML dosyaları ve diğer oluşturulan dosyalar). Tüm bunlar otomatik olarak yapılır, ekran görüntüleri için istediğinizde basmanız veya tüm dışa aktarılan etkinliklerin ekran görüntülerini almak için "**Exported Activity Tester**" butonuna basmanız gerekir.
|
||||
* **HTTPS trafiğini yakalama**
|
||||
* **Çalışma zamanı** **bilgilerini** elde etmek için **Frida** kullanma
|
||||
* **Runtime** **bilgilerini elde etmek için Frida kullanma**
|
||||
|
||||
Android **sürümleri > 5**'ten itibaren, **Frida**'yı **otomatik olarak başlatacak** ve trafiği **yakalamak** için global **proxy** ayarlarını ayarlayacaktır. Sadece test edilen uygulamadan gelen trafiği yakalayacaktır.
|
||||
|
||||
**Frida**
|
||||
|
||||
Varsayılan olarak, SSL pinning, **root tespiti** ve **hata ayıklayıcı tespiti** atlamak ve **ilginç API'leri** izlemek için bazı Frida Script'lerini de kullanacaktır.\
|
||||
MobSF ayrıca **dışa aktarılan etkinlikleri** çağırabilir, bunların **ekran görüntülerini** alabilir ve rapor için **kaydedebilir**.
|
||||
Varsayılan olarak, SSL pinning, **root tespiti** ve **hata ayıklayıcı tespiti** atlamak ve **ilginç API'leri izlemek** için bazı Frida Script'lerini de kullanacaktır.\
|
||||
MobSF ayrıca **dışa aktarılan etkinlikleri çağırabilir**, bunların **ekran görüntülerini** alabilir ve rapor için **kaydedebilir**.
|
||||
|
||||
Dinamik testi **başlatmak** için yeşil butona basın: "**Start Instrumentation**". Frida script'leri tarafından üretilen günlükleri görmek için "**Frida Live Logs**" butonuna basın ve bağlı yöntemlere yapılan tüm çağrıları, geçirilen argümanları ve döndürülen değerleri görmek için "**Live API Monitor**" butonuna basın (bu, "Start Instrumentation" butonuna bastıktan sonra görünecektir).\
|
||||
Dinamik testi **başlatmak** için yeşil butona basın: "**Start Instrumentation**". Frida script'leri tarafından üretilen günlükleri görmek için "**Frida Live Logs**" butonuna basın ve tüm bağlı yöntemlere yapılan çağrıları, geçirilen argümanları ve döndürülen değerleri görmek için "**Live API Monitor**" butonuna basın (bu, "Start Instrumentation" butonuna bastıktan sonra görünecektir).\
|
||||
MobSF ayrıca kendi **Frida script'lerinizi** yüklemenize izin verir (Frida script'lerinizin sonuçlarını MobSF'ye göndermek için `send()` fonksiyonunu kullanın). Ayrıca yükleyebileceğiniz **birçok önceden yazılmış script** vardır (daha fazlasını `MobSF/DynamicAnalyzer/tools/frida_scripts/others/` dizinine ekleyebilirsiniz), sadece **seçin**, "**Load**" butonuna basın ve "**Start Instrumentation**" butonuna basın (o script'lerin günlüklerini "**Frida Live Logs**" içinde görebileceksiniz).
|
||||
|
||||
![](<../../.gitbook/assets/image (419).png>)
|
||||
|
@ -627,13 +627,13 @@ MobSF ayrıca kendi **Frida script'lerinizi** yüklemenize izin verir (Frida scr
|
|||
Ayrıca, bazı Yardımcı Frida işlevsellikleriniz var:
|
||||
|
||||
* **Yüklenen Sınıfları Sayma**: Yüklenen tüm sınıfları yazdırır
|
||||
* **Dizeleri Yakalama**: Uygulama kullanılırken tüm yakalanan dizeleri yazdırır (çok gürültülü)
|
||||
* **Dizeleri Yakalama**: Uygulamayı kullanırken tüm yakalanan dizeleri yazdırır (çok gürültülü)
|
||||
* **Dize Karşılaştırmalarını Yakalama**: Çok faydalı olabilir. **Karşılaştırılan 2 dizeyi** gösterecek ve sonucun True veya False olup olmadığını belirtecektir.
|
||||
* **Sınıf Yöntemlerini Sayma**: Sınıf adını (örneğin "java.io.File") girin ve sınıfın tüm yöntemlerini yazdıracaktır.
|
||||
* **Sınıf Deseni Arama**: Desene göre sınıfları arama
|
||||
* **Sınıf Yöntemlerini İzleme**: **Bütün bir sınıfı izleme** (sınıfın tüm yöntemlerinin giriş ve çıkışlarını görme). Varsayılan olarak MobSF, birkaç ilginç Android API yöntemini izler.
|
||||
* **Sınıf Yöntemlerini İzleme**: **Bütün bir sınıfı izleme** (sınıfın tüm yöntemlerinin giriş ve çıkışlarını görme). Unutmayın ki varsayılan olarak MobSF, birkaç ilginç Android API yöntemini izler.
|
||||
|
||||
Kullanmak istediğiniz yardımcı modülü seçtikten sonra "**Start Instrumentation**" butonuna basmanız gerekir ve tüm çıktıları "**Frida Live Logs**" içinde göreceksiniz.
|
||||
Kullanmak istediğiniz yardımcı modülü seçtikten sonra "**Start Intrumentation**" butonuna basmanız gerekir ve tüm çıktıları "**Frida Live Logs**" içinde göreceksiniz.
|
||||
|
||||
**Shell**
|
||||
|
||||
|
@ -648,22 +648,22 @@ receivers
|
|||
```
|
||||
**HTTP araçları**
|
||||
|
||||
HTTP trafiği yakalandığında, "**HTTP(S) Trafiği**" altındaki yakalanan trafiğin çirkin bir görünümünü veya "**HTTP Araçlarını Başlat**" yeşil butonundaki daha güzel bir görünümünü görebilirsiniz. İkinci seçenekten, **yakalanan istekleri** Burp veya Owasp ZAP gibi **proxy'lere** **gönderebilirsiniz**.\
|
||||
HTTP trafiği yakalandığında, "**HTTP(S) Trafiği**" altında yakalanan trafiğin çirkin bir görünümünü veya "**HTTP Araçlarını Başlat**" yeşil butonunda daha güzel bir görünümünü görebilirsiniz. İkinci seçenekten, **yakalanan istekleri** Burp veya Owasp ZAP gibi **proxy'lere** **gönderebilirsiniz**.\
|
||||
Bunu yapmak için, _Burp'ı açın -->_ _Intercept'i kapatın --> MobSB HTTP Araçları'nda isteği seçin_ --> "**Fuzzer'a Gönder**" butonuna basın --> _proxy adresini seçin_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080)).
|
||||
|
||||
MobSF ile dinamik analizi tamamladıktan sonra, **http isteklerini fuzz** yapmak ve güvenlik açıklarını aramak için "**Web API Fuzzer'ı Başlat**" butonuna basabilirsiniz.
|
||||
MobSF ile dinamik analizi tamamladıktan sonra, **http isteklerini fuzzlamak** ve güvenlik açıklarını aramak için "**Web API Fuzzer'ı Başlat**" butonuna basabilirsiniz.
|
||||
|
||||
{% hint style="info" %}
|
||||
MobSF ile dinamik bir analiz gerçekleştirdikten sonra proxy ayarları yanlış yapılandırılmış olabilir ve bunları GUI'den düzeltemezsiniz. Proxy ayarlarını düzeltmek için:
|
||||
MobSF ile dinamik analiz gerçekleştirdikten sonra proxy ayarları yanlış yapılandırılmış olabilir ve bunları GUI'den düzeltemezsiniz. Proxy ayarlarını düzeltmek için:
|
||||
```
|
||||
adb shell settings put global http_proxy :0
|
||||
```
|
||||
{% endhint %}
|
||||
|
||||
### Inspeckage ile Yardımlı Dinamik Analiz
|
||||
### Assisted Dynamic Analysis with Inspeckage
|
||||
|
||||
Aracı [**Inspeckage**](https://github.com/ac-pm/Inspeckage) adresinden edinebilirsiniz.\
|
||||
Bu araç, **dinamik analiz** yaparken **uygulamada neler olduğunu** anlamanızı sağlamak için bazı **Hooks** kullanır.
|
||||
Bu araç, **dinamik analiz** gerçekleştirirken **uygulamada neler olduğunu** anlamanızı sağlamak için bazı **Hooks** kullanır.
|
||||
|
||||
### [Yaazhini](https://www.vegabird.com/yaazhini/)
|
||||
|
||||
|
@ -673,7 +673,7 @@ Bu, **GUI ile statik analiz yapmak için harika bir araçtır.**
|
|||
|
||||
### [Qark](https://github.com/linkedin/qark)
|
||||
|
||||
Bu araç, **kaynak kodunda** veya **paketlenmiş APK'larda** çeşitli **güvenlik ile ilgili Android uygulama zafiyetlerini** aramak için tasarlanmıştır. Araç ayrıca, bulunan bazı zafiyetleri (Açık aktiviteler, niyetler, tapjacking...) istismar etmek için **"Proof-of-Concept" dağıtılabilir APK** ve **ADB komutları** oluşturma yeteneğine de sahiptir. Drozer ile olduğu gibi, test cihazını rootlamaya gerek yoktur.
|
||||
Bu araç, **kaynak kodunda** veya **paketlenmiş APK'larda** çeşitli **güvenlik ile ilgili Android uygulama zafiyetlerini** aramak için tasarlanmıştır. Araç ayrıca, bulunan bazı zafiyetleri (Açık aktiviteler, intentler, tapjacking...) istismar etmek için **"Proof-of-Concept" dağıtılabilir APK** ve **ADB komutları** oluşturma yeteneğine de sahiptir. Drozer ile olduğu gibi, test cihazını rootlamaya gerek yoktur.
|
||||
```bash
|
||||
pip3 install --user qark # --user is only needed if not using a virtualenv
|
||||
qark --apk path/to/my.apk
|
||||
|
@ -705,7 +705,7 @@ super-analyzer {apk_file}
|
|||
|
||||
![](<../../.gitbook/assets/image (297).png>)
|
||||
|
||||
StaCoAn, mobil uygulamalar üzerinde [statik kod analizi](https://en.wikipedia.org/wiki/Static\_program\_analysis) gerçekleştiren geliştiricilere, bugbounty avcılarına ve etik hackerlara yardımcı olan **çapraz platform** bir araçtır.
|
||||
StaCoAn, mobil uygulamalar üzerinde [statik kod analizi](https://en.wikipedia.org/wiki/Static\_program\_analysis) gerçekleştiren geliştiricilere, bugbounty avcılarına ve etik hackerlara yardımcı olan **çoklu platform** bir araçtır.
|
||||
|
||||
Kavram, mobil uygulama dosyanızı (bir .apk veya .ipa dosyası) StaCoAn uygulamasına sürükleyip bırakmanız ve bunun için size görsel ve taşınabilir bir rapor oluşturmasıdır. Özelleştirilmiş bir deneyim elde etmek için ayarları ve kelime listelerini değiştirebilirsiniz.
|
||||
|
||||
|
@ -748,7 +748,7 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
|
|||
|
||||
### Koodous
|
||||
|
||||
Kötü amaçlı yazılımları tespit etmek için yararlıdır: [https://koodous.com/](https://koodous.com)
|
||||
Kötü amaçlı yazılımları tespit etmek için kullanışlı: [https://koodous.com/](https://koodous.com)
|
||||
|
||||
## Kodun Obfuscation/Deobfuscation'ı
|
||||
|
||||
|
@ -762,19 +762,19 @@ ProGuard, Android SDK'nın bir parçası olarak dağıtılır ve uygulama yayın
|
|||
|
||||
### [DexGuard](https://www.guardsquare.com/dexguard)
|
||||
|
||||
APK'yı deobfuscate etmek için adım adım bir kılavuzu [https://blog.lexfo.fr/dexguard.html](https://blog.lexfo.fr/dexguard.html) adresinde bulabilirsiniz.
|
||||
APK'yı deobfuscate etmek için adım adım bir kılavuz bulabilirsiniz: [https://blog.lexfo.fr/dexguard.html](https://blog.lexfo.fr/dexguard.html)
|
||||
|
||||
(Bu kılavuzdan) En son kontrol ettiğimizde, Dexguard çalışma modu şuydu:
|
||||
|
||||
* Bir kaynağı InputStream olarak yüklemek;
|
||||
* Sonucu deşifre etmek için FilterInputStream'den türetilen bir sınıfa beslemek;
|
||||
* Bir tersine mühendislik uzmanının birkaç dakikasını boşa harcamak için gereksiz obfuscation yapmak;
|
||||
* Bir tersleyiciden birkaç dakikalık zaman kaybetmek için gereksiz obfuscation yapmak;
|
||||
* Deşifre edilmiş sonucu bir ZipInputStream'e besleyerek bir DEX dosyası almak;
|
||||
* Son olarak, elde edilen DEX'i `loadDex` yöntemi kullanarak bir Kaynak olarak yüklemek.
|
||||
|
||||
### [DeGuard](http://apk-deguard.com)
|
||||
|
||||
**DeGuard, Android obfuscation araçları tarafından gerçekleştirilen obfuscation sürecini tersine çevirir. Bu, kod incelemesi ve kütüphaneleri tahmin etme gibi birçok güvenlik analizini mümkün kılar.**
|
||||
**DeGuard, Android obfuscation araçları tarafından gerçekleştirilen obfuscation sürecini tersine çevirir. Bu, kod denetimi ve kütüphaneleri tahmin etme gibi birçok güvenlik analizini mümkün kılar.**
|
||||
|
||||
Obfuscate edilmiş bir APK'yı platformlarına yükleyebilirsiniz.
|
||||
|
||||
|
@ -788,7 +788,7 @@ APKiD, **bir APK'nın nasıl yapıldığını** hakkında bilgi verir. Birçok *
|
|||
|
||||
### Manual
|
||||
|
||||
[Özel obfuscation'ı nasıl tersine mühendislik yapacağınızı öğrenmek için bu eğitimi okuyun](manual-deobfuscation.md)
|
||||
[Özel obfuscation'ı nasıl tersine çevireceğinizi öğrenmek için bu eğitimi okuyun](manual-deobfuscation.md)
|
||||
|
||||
## Laboratuvarlar
|
||||
|
||||
|
@ -834,7 +834,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
|
|||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
|
|
Loading…
Reference in a new issue