Skip to content

galile0ff/galileoff-AndroidSpy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

GALILEOFF ANDROID SPY FRAMEWORK

Platform: Android Code: Java C&C: Telegram Build: Gradle

galileoff-AndroidSpy

*galileoff ayrıcalıkları kapsamında geliştirilmiştir:)*

Galileoff Android Spy, Telegram API aracılığıyla uzaktan yönetilen, genişletilmiş veri hasat yeteneklerine sahip devasa bir uzak yönetim ve gözlem konseptidir (PoC). Cihaz arka planında istikrarlı ve gizli çalışacak şekilde yapılandırılmış olup, ağ sorunlarında veri kaybını önlemek amacı ile kendi içinde dahili bir çevrimdışı arşivleme mekanizması işletir.

Caution

YASAL UYARI VE SORUMLULUK REDDİ BEYANI

Bu proje, güvenlik araştırmacılarının, siber güvenlik öğrencilerinin ve sızma testi uzmanlarının, Android işletim sistemindeki izin yönetimi limitlerini, arka plan servis mimarisini ve "C&C (Komuta Kontrol) Zafiyetlerini" analiz etmeleri için salt zafiyet analizi ve eğitim amacıyla hazırlanmıştır.

  • Bu yazılım kodlarının herhangi bir cihaza rıza dışı, kasten veya takip/casusluk amacıyla entegre edilmesi kesin suretle yasa dışıdır.
  • Proje kodunun yasa dışı kullanımından dogacak kanuni yaptırımlardan bütünüyle kodları sisteme derleyip kuran veya yaydığı tespit edilen kullanıcı sorumludur.
  • Geliştirici(ler) ve açık kaynak sağlayıcılar, bu yazılımın amacının dışına çıkarak farklı hedeflerde kullanılmasından doğan hiçbir yasal, hukuki veya idari bir mesuliyet taşımaz. Repoyu klonlayan kişi bu şartları kanunen peşinen kabul etmiş sayılır.

1. Sistem Mimarisi ve Asenkron Veri Akış Modeli

Uygulamanın temel veri iletim dinamiği üç ana ayağa dayanır: Gelen HTTP Payload isteklerini çözümleyen denetleyici sistem, cihaz üzerinden veri emen sınıflar ve çevrimdışı (offline) depolanan verileri sunucuyla senkronize eden WorkManager iş parçacıkları.

1.1 Aktif Sistem Akış Ağacı (Mermaid DAG)

Sistemin Komuta Kontrol sunucusuyla haberleşme trafiğini ve veriyi işleme sırasını modelleyen akış şeması:

graph TD
    A[Komuta Merkezi / Telegram] <-->|JSON Polling API| B(TelegramApiManager)
    
    B -->|Komut Deşifre Analizi| C{CommandExecutor}
    
    C -->|Örn: /konum, /sms_kaydi| D[Veri Hasat Sınıfları]
    C -->|Örn: /kilitle, /yok_et| E[Sistem Önlemi Sınıfları]

    D -.->|Ağ Başarısızlıkları ve Timeout| F[(OfflineStorageHelper)]
    E -.->|Geri Bildirim Log Kayıtları| F
    
    H[Pasif İşletim Sistemi Dinleyicileri] -->|Sms, Çağrı, Root Check| D
    H -->|Bağlantının Tekrar Kurulması| I[ImmediateUploadWorker]
    I -->|En Eski Log'un Derlenmesi| F
    I -->|Datayı Senkronize Etme| B
Loading

1.2 Hedef İstek ve Tepki Senaryosu (Sequence Diagram)

Uzaktan gönderilen bir veri çekme emrinin (Örneğin: /arama_kaydi) uygulama içi seyahatinde çalışan modüllerin zaman çizelgesi:

sequenceDiagram
    participant Telegram as Telegram Bot
    participant Executor as CommandExecutor
    participant Helper as Hasat Sınıfı
    participant Offline as OfflineBellek
    
    Telegram->>Executor: /arama_kaydi komutunu POST eder
    Executor->>Helper: Veritabanından SQL okuma işlevini tetikler
    Helper-->>Executor: Formatlanmış logları string döner
    
    alt Ağ İletişimi Aktif ve Kararlı
        Executor->>Telegram: Veriyi HTTP üzerinden sunucuya teslim eder
    else Ağ İletişimi Pasif / Kopma veya Uçuş Modu
        Executor->>Offline: Veriyi ön belleğe aktarır (Maks 5MB FIFO kuralı ile)
        Offline-->>Executor: Başarılı şekilde diske yazıldı ibaresi döner
    end
Loading

2. Çekirdek Bileşen Kataloğu ve Kaynak Yönetimi

Uygulama bütünlüğünü korumak ve Solid prensiplerine uymak (Sınıf Bağımsızlığı) adına her Java servisi farklı bir amaca ve sistem ayrıcalığına hitap etmektedir.

Veri Hasat ve Algılama Birimleri

Bu sınıf kümesi, kullanıcı hareketlerini donanım ve yazılım API'larından çekmekle görevlidir.

Dosya Dizini Altyapı Desteği ve Amacı
CallStateReceiver.java TelephonyManager aracılığıyla çalışarak EXTRA_STATE_RINGING (çalınma) ve EXTRA_STATE_OFFHOOK (görüşme) fazlarını gözler.
SmsHelper.java Yüksek düzey Android ContentResolver kullanarak content://sms URI adresini tarar; Gelen kutusu ve taslak verilerini asenkron çeker.
CallLogHelper.java Cihazın CallLog.Calls.CONTENT_URI veritabanından çağrı numarası, görüşme tarihi ve süresini alarak kategorize eder.
ContactsHelper.java ContactsContract kütüphanelerini saniye sekteye uğratmadan okuyarak rehber kayıtlarının kimliğini diziler.
BrowserHistoryHelper.java Yalnızca Root erişimi mevcutsa diğer tarayıcıların Protected Sandbox kısımlarına (.db, sqlite) müdahaleyle URL kayıtlarını deşifre eder.
WhatsAppMessageHandler.java Android'in devasa yetkiye sahip AccessibilityService (Erişilebilirlik) ağacına kanca mermi atar ve mesaj kutularını canlı olarak loglar.

Uygulama Kararlılığı ve Gizlilik Denetçileri

Sistemin kendini yenileyebilmesi ve standart şartlar altında cihazdan kaldırılmasını önlemeyi hedefleyen çekirdek yapı taşlarıdır.

Dosya Dizini Hayatta Kalma ve Görev Mekaniği
GuardianReceiver.java AlarmManager ile kurulan saatli bombadır. Her 3 saatte bir aktifleşir, paket gizliliğini doğrular, ikon durumunu onarır (Self-Healing).
SystemAppManager.java Gerekli Root (SU) erişiminde APK gövdesini işletim sisteminin kalbine (system/app/) enjekte ederek fabrika ayarı bağışıklığı kazandırır.
ServiceRestartReceiver.java Intent donanım algılayıcısını takip ederek işletim sistemi başlatıldığında (Boot Phase) Background servisleri Foreground yetkisiyle diriltir.
MyDeviceAdminReceiver.java Standart ayarlardan kasti program temizliğine set çeker, sistem üstü "Device Policy" onayından kilitleme mekanizmalarını donanır.
ExceptionHandler.java Thread.UncaughtExceptionHandler protokolü uyarınca, olası "Fatal Error" çökmelerinde JVM kapanmadan önce işlemi loglayarak servisin dirilme döngüsüne zemin kurar.
SelfDestructManager.java Panik anında uzaktan /yok_et okunduğu an tüm Policy ve Yönetim bayraklarını devrederek yazılımı kendi elleriyle silme emri üretir.

Senkronizasyon İşçileri ve Arşiv Bellek Merkezi

Dosya Dizini Depo Akışı ve Gönderim Davranışı
OfflineStorageHelper.java Çevrimdışı veritabanıdır. Limitsiz boyutlanmayı (OutOfMemory) engellemek adına algoritma bazlı FIFO modeli benimser; boyut şişmesinde eski logu çiğneyerek temiz alanı garanti eder.
ImmediateUploadWorker.java Sistemin ağa tespiti anında "Trigger Action" alarak bağlantı kopana kadar biriken bütün veri dosyalarını HTTP kanallara şutlayan işçi parçasıdır.

3. Komuta Kontrol Terminali (C&C) İşlem ve İzin Matrisi

Sistemin uzaktan yönetim mekanizması Telegram platformu üzerinden gerçekleşmekle beraber; gönderilecek her JSON stringinin (komutun) çalışması belli başlı Android işletim izinleri onayına bağlıdır. İlgili yetkinin olmaması durumunda hedefe otonom şekilde Error Code basılacaktır.

Geçerli C&C Komutu İşlev Çıktısı Tablosu Zorunlu Android İzni (Manifest)
/durum Dalvik ortamındaki batarya, internet ve mevcut root bayraklarını derleyen acil durum raporudur. Gereksinim Yok
/konum FusedLocationProviderClient limitleri eşliğinde yüksek çözünürlüklü koordinatı ve harita bağlantısını iletir. ACCESS_FINE_LOCATION
/arama_kaydi Android çağrı sunucusundaki defter üzerinden tüm arama geçmişini analiz ederek kronolojik format döker. READ_CALL_LOG
/sms_kaydi Cihazın standart SMS mesaj servisini okuyarak güncel posta dökümlerini çeker. READ_SMS
/kisi_listesi Rehber listesini alfabetik string verisi olarak bloklar halinde parçalar ve sunucuya aktarır. READ_CONTACTS
/izin_listesi Mevcut uygulamaya verilmiş, sistem içindeki tehlikeli ve sıradan onayların anlık yetki röntgenini çeker. Gereksinim Yok
/kilitle Ekran şifrelerini sabote etme riskine dayanarak Android force-lock devresini bypass mantığında kilitler. BIND_DEVICE_ADMIN
/tarayici_gecmisi SU tespiti olursa SQL komut desteğiyle tarayıcıları deşifre ederek dizin history'lerini analiz eder. Cihaz Root Yetkisi (SUID)
/yok_et Sistem yöneticisi bayrağını düşürüp kendisini ana sunucudan kök klasörler de dahil silecek imha prosedürüdür. Uygulama İçi Tetikleme

4. Kaynak Kod Derleme ve Kurulum Protokolü

Projeyi eğitim laboratuvarınızda test etmek adına Gradle motorunu yapılandırmanız gerekir.

  1. Proje ana havuzunda bulunan gradle.properties.example yapılandırma taslağının birebir aynısını gradle.properties adıyla çoğaltınız.
  2. Oluşturduğunuz dosyanın içerisine kendi Bot Token ve Chat ID anahtarlarınızı ilave edin.
    BOT_TOKEN="SECRET_API_TOKEN"
    CHAT_ID="TARGET_CLIENT_ID"
    (Not: Ana gradle.properties dosyası, hassas veri zafiyetine karşı git platformuna asla gönderilmez)
  3. IDE (Örn: Android Studio) üzerinden Gradle projesini Sync ediniz.
  4. Uygulamayı Build APK veya Build Bundle metotları ile Debug/Release formatında derleyiniz.

İşlem sonucunda kurulum yapıldığında cihaz ekranına MainActivity bir karşılama arayüzü sunacaktır ve uygulama kurulum esnasındaki kritik izinler devralındığı an kendisini işletim sisteminin gövdesine gizleyecektir.


5. Bilinen İhtiyaçlar ve Geliştirme Yol Haritası (Roadmap)

Açık kaynak destekçilerinin veya mimariyi analiz eden zafiyet uzmanlarının bilgisine sunulan, projede halihazırda bulunan bazı mantıksal eksiklikler ve üzerine çalışılması beklenen yamalar aşağıda kategorize edilmiştir.

galileoff. Notu: Bu listede yer alan zafiyetler ve hata kayıtları benim tarafımdan kademeli olarak çözülmekte olup, pürüzleri giderilen her bir madde güncellemeler eşliğinde bu listeden kaldırılacaktır.

Geliştirme Bekleyen Zafiyetler Matrisi

Sistemin karakalem taslağından kurumsal mimariye geçiş sürecinde çözülmesi aciliyet arz eden problemler ve çözüm rotaları tabloyla görselleştirilmiştir:

Bileşen Kategorisi Karşılaşılan Sorun ve Zafiyet Anatomisi Uygulanacak Çözüm Mimarisi
Telegram C&C Term. Flood (Yığılma) ve Döngü Riski: İletişim altyapısında herhangi bir kısıtlama mekanizması bulunmadığı için peş peşe gönderilen komutlar asenkron kuyruğu doldurarak işlemciyi kitleyebilir ve uygulamanın sonsuz döngüye girmesine yol açabilir. Sunucu istekleri arasına eş zamanlı zaman damgaları konumlandırılarak her komuta özel bir Rate Limit (Bekleme süresi / Kısıt) algoritması kodlanacaktır.
Telegram C&C Term. API Limitasyonları ve Callback Eksikleri: /izin_listesi komutu güncel Android API güvenlik standartlarında veri döndürememektedir. Ek olarak, /yeniden_baslat isteği başarıyla sonuçlansa bile sunucuya işlemin bittiğine dair hiçbir onay (handler callback) yollanmamaktadır. Bozuk çıktı metotları yeni Java API standartlarına adapte edilecek ve her işlemin sonuna özel başarılı/başarısız dönüt mekanizmaları (Action Handlers) yerleştirilecektir.
Veri Hasat Motoru Mem-Leak ve Bellek Şişmesi: /sms_kaydi filtresiz ve sınırsız çekim yaptığından ötürü, kullanıcının şişik gelen kutularını tararken işletim sisteminin geçici hafızasını patlatabilmektedir (Out Of Memory Exception). SMS ve benzeri çok yüklü log çekim algoritmalarına sayfalama mantığı getirilerek yalnızca Son N Adet şeklinde sıkı miktar kotaları uygulanacaktır.
WhatsApp Manipülatörü İzinsiz Gönderim ve Hatalı DOM Analizi: Ekranda tespit edilen sohbet baloncukları okunurken, verinin karşıdan mı yoksa client'ten mi geldiği kesin ayıklanamamaktadır. Ayrıca mesajlar komut beklemeden otonom şekilde fırlatılıp kirlilik yaratmaktadır. Sistem, sohbeti izinsiz yakalamaktan vazgeçecek; yalnızca komut tetiklendiğinde özel NotificationListenerService yardımıyla son bildirimleri gizlice yansıtacaktır.
Arama & Ses Dinleme İki Yönlü (Two-Way) Kayıt Engelleri: Android OS tarafından getirilen katı donanım limitasyonları sebebiyle gerçekleştirilen çağrıların çift yönlü ses kaydı direkt olarak manipüle edilememekte ve çökmelere sebebiyet vermektedir. Alternatif medya kanalları ve ses bypass köprüleri (Audio Mixer revizyonları) kurularak çift mikrofon beslemeli donanımsal kod blokları test edilecektir.
Arama & Ses Dinleme Süre Loglarındaki Matematiksel Asimetriler: Cihaz karşıyı aradığında çalma süresi direkt olarak konuşma süresine eklenmekte; çağrı açılıp kapandığında ise baştan sayılarak hatalı bir matematik döndürmekte ve numarayı gizli göstermektedir. CallLog.Calls statüs algoritmaları tamamen değiştirilecek ve görüşmenin cevaplandığı anı (OffHook event) merkeze alan yeni bir olay (Event) izleyicisi yazılacaktır.
İmha ve Güvenlik Sistemde Anti-Ghosting (Zombileşme) Kalıntıları: Acil panik komutu olan /yok_et veya çevirmeli şifre kullanıldığında, yazılım sadece yetkilerini ezmektedir. Sistemin asıl APK dosyası kalıcı olarak silinmediği için ölü bir paket olarak kalmaktadır. Tüm bağları kopardıktan saniyeler sonra işletim sistemine tam donanımlı paket silme isteği Intent.ACTION_UNINSTALL_PACKAGE sekansını dayatacak kalıcı imha döngüsü kullanılacaktır.

6. Destek

Bu proje açık kaynaklıdır ve topluluk desteğiyle geliştirilebilir. Eğer işinize yaradıysa:

7. Katkıda Bulunma

  1. Fork'layın
  2. Branch oluşturun (git checkout -b feature/yeniozellik)
  3. Commit'leyin (git commit -m 'Yeni özellik: X eklendi')
  4. Push'layın (git push origin feature/yeniozellik)
  5. Pull Request açın

8. Star History

Star History Chart

9. Lisans

Bu proje MIT Lisansı ile lisanslanmıştır. Detaylar için LICENSE dosyasına bakınız.


Developed with 💜 by galileoff

About

galileoff-AndroidSpy Telegram API üzerinden uzaktan kontrol edilebilen, gelişmiş veri toplama (SMS, çağrı, konum, rehber) özelliklerine ve çevrimdışı arşivleme mekanizmasına sahip bir Android uzak yönetim ve gözlem (PoC) aracıdır.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages