Fethi Polat 1
Fethi Polat
TuZaKK 1
TuZaKK
xranzei 1
xranzei
Agresifizm 1
Agresifizm
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Hikaye Ekle

HardMT2 Client'ında Aktif Keylogger , Ekran izleme ?

  • Konuyu başlatan Konuyu başlatan PekerAHMED
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 17
  • Görüntüleme Görüntüleme 898

Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!

Selamlar arkadaşlar,



HardMT2 sunucusunun dosyaları arasında bulunan granny2_d.dll dosyasını tersine mühendislik yöntemleriyle analiz ettim.



Dosya içerisinde gizlenmiş, verilerinizi çalan spyware/stealer kodları tespit edilmiştir. Fonksiyonlar ve yaptıkları işler doğrudan koddaki akışıyla aşağıdadır:



1. Sisteme Kayıt Adımı (Enrollment) - Fonksiyon: sub_1001CB20

Oyunu açtığınızda arka planda şu işlemleri gerçekleştirir:



GetComputerNameA ile bilgisayar adınızı çeker.

GetAdaptersInfo API'si ile ağ kartınızın fiziksel MAC adresini alır.

adresine istek atarak dış IP adresinizi sorgular.

Elde ettiği MAC, IP ve Bilgisayar Adı bilgilerini adresine POST isteğiyle gönderir. Gelen yanıtta sunucu izni doğrulanırsa casus modülleri aktif edilir.



2. Klavye ve Pano Takibi (Keylogger) - Fonksiyon: sub_10014D90

Sürekli bir döngü içerisinde GetAsyncKeyState ve GetKeyState API'lerini çağırarak bastığınız her tuşu anlık olarak izler ve bellekte depolar.

GetClipboardData API'sini kullanarak kopyaladığınız (Ctrl+C yaptığınız) metinleri/şifreleri panodan çeker.

Toplanan klavye kayıtlarını WinINet API'lerini (HttpSendRequestA) kullanarak adresine sızdırır.



3. Arka Planda Ekran Görüntüsü Alma - Fonksiyon: sub_10020060

Haberiniz olmadan ekran görüntünüzü yakalamak için şu akışı izler:



GetSystemMetrics (76, 77, 78, 79 parametreleriyle) çağrılarak ekranınızın çözünürlük sınırları öğrenilir.

GetDC(nullptr) ile tüm masaüstünün ekran görüntüsü bağlamı yakalanır.

BitBlt API'si ile ekranın o anki görüntüsü bellekte açılan geçici bir alana kopyalanır.

GdipCreateBitmapFromHBITMAP ve GdipSaveImageToStream API'leri kullanılarak bu ekran görüntüsü JPEG formatına sıkıştırılır ve bir bellek akışına (IStream) yazılır.



4. Ekran Görüntüsü ve Discord Bilgisi Sızdırma - Fonksiyon: sub_10020570

sub_10020060 fonksiyonunun belleğe sıkıştırdığı JPEG verisini alır.

Bilgisayarınızdaki Discord istemcisinin verilerini tarayarak kullanıcı adınızı (discord_usernames) ve Discord hesap ID'nizi (discord_ids) çeker.

WinINet kütüphanesinin internet bağlantı API'leri (InternetConnectA, HttpOpenRequestA, HttpSendRequestA) aracılığıyla hem JPEG ekran görüntüsünü hem de Discord hesap bilgilerinizi tek bir HTTP POST isteğiyle adresine yükler.



5. Şifreli Stringleri Çözme Mantığı (XOR Algoritması)

Analizi zorlaştırmak adına tüm kritik adresler XOR ile şifrelenmiştir. Her karakterin sırasına (indeksine) göre dinamik bir anahtar üretilir ve karakter bu anahtarla XOR'lanır. Formül şu şekildedir:



Orijinal Karakter = Şifreli_Karakter XOR Anahtar

Kullanılan Anahtar Formülleri:



C2 Sunucu Adresi için ( ): Anahtar = (Karakter_İndeksi % 58) + 52

IP Sorgu Adresi için ( ): Anahtar = (Karakter_İndeksi % 49) + 53

Bu basit formülü CyberChef veya herhangi bir programlama dilinde kullanarak DLL içerisindeki tüm şifreli stringleri saniyeler içinde çözebilirsiniz.







Kanıt Linkleri (Web Archive):





















İncelemek istiyen arkadaşlar sunucuyu indirebilirler veya direkt DLL üzerindne bakmak istiyenler için :


Dllmain tetiklenmesi: Oyun istemcisi (metin2client.bin) çalıştırıldığında granny2_d. Dll yüklenir ve dllmain tetiklenir.

Kopya oluşturma: Dllmain arka planda hemen sub_100030b0 (startrundll32host) fonksiyonunu çağırır. Bu fonksiyon, kendisini windows'un geçici klasörüne (%temp%) kopyalar.

Rundll32 ile çalıştırma: Ardından createprocessa apı'si ile meşru windows süreci olan rundll32.exe üzerinden kopyaladığı dll'i şu komutla çalıştırır:

rundll32.exe "%temp%\granny2_d. Dll",_dllhostentry@16



Oyun kapansa bile kapanmaz, bu işlem oyunun dışında bağımsız yeni bir windows süreci olarak başlatıldığı için, oyunu kapatsanız dahi cASUS yazılım arka planda çalışmaya devam eder.



Kapanmayı engelleyen kod kanıtı (dllhostentry):



While ( 1 )

Sleep(60000); // süreci sürekli ayakta tutar, bilgisayar kapanana kadar veri sızdırır.







Öncelikle konuda bulunan webarşiv aracılığıyla sunucunun patcher ile indirdiği .lz dosyasını (bunu değişeceklerini bildiğimiz için yedeklemiştik) indirerek paylaştıgım .py aracılığıyla kolaylıkla .DLL çevirebilirisiniz ve analizlerinizi bunun üzerinden de yapabilirsiniz.Böylelikle bizden bağımsız gerçekten oyunun indirdiği DLL'yi analiz ederekte karara varabilirsiniz ya da dosya.co ile paylaştıgım dll ile de bakabilirisiniz bu tamamen sizin kararınızdır.



.lz yi dll çevirmeye üşenen arkadaşlar için :


Star are us !
 
Son düzenleme:

En Çok Reaksiyon Alan Mesajlar

HardMt2 bir kaç ay öncesine kadar kendi Anti-Hile yazılımını geliştirmekle uğraşıyordu. Ancak bu konuda istediği yanıtı alamadığı için Mart ayında Rascal ile çalışmaya başladı diye biliyorum.

valkac.dll olması lazım hatta. Ancak bu granny2_d.dll bambaşka bir şey.

Doğrulamak için HardMt2'yi indirerek DLL'i edindim ve inceledim.
DLL'e sahte versiyon bilgileri eklenmiş:

Kod:
"Granny 3D Animation Runtime Library"
"RAD Game Tools, Inc."
"Copyright (C) 2000-2024 RAD Game Tools, Inc.

Yani normal biri anlamasın diye saklamaya çalışmışlar.

PDB Yolu : C:\Users\pcofi\OneDrive\Masaüstü\granny_reader\bin\Release\granny2.9.pdb

Net olarak şunları yapabilir :

  • Klavye ve Tuş takibi,
    Clipboard hırsızlığı
    Screen Capture
    HTTP C2 İletişimi
    Sistem Bilgisi Toplama
    Anti-Debug
    Payload İndirme ve İndirdiği Dosyayı Çalıştırma
    Ağ Keşfi
Kabaca incelediğimde ise mac_address, modem_mac, ip_address, filename, discord_id bilgileriniz HTTP POST ile gönderilmekte.
Mac adresinizi, Modem adresinizi, IP ve Discord ID'nizi zaten RASCAL'da alıyor. Yasal olarak Discord ID almak doğru olmasa da diğerlerinde problem var mı bilmiyorum. Discord ID'nizi de discord sdk dll'i üzerinden kendi discord developer portal applicationu üzerinden çekiyorlar zaten. Bunu engellemek istiyorsanız internette her yerde nasıl engelleyeceğinizin bilgisi var.

Ancak burada sinirleneceğimiz şey filename yani ekran görüntünüz.

Ayrıca ekran görüntüzünün alınması hem TCK tarafında hem KVKK açısından büyük suç teşkil ediyor.
Para kazandıkları bir ortam, kimse PvP sunucu olup olmadığını umursamaz.


İlgili kişiler kendini istedikleri gibi savunabilirler. Ancak HttpSendRequestA'da açıkça filename olarak .jpg görsel upload ettiğiniz gözüküyor.

APTAL yerine koymak için DLL'i Granny kütüphanesi gibi gösterip, utanmadan bir de sahte versiyon bilgileri eklemişler. Ben bile buna sinirlendim. Diğer türlü banane yani isterlerse giydiğim donun ayıcıklarını saysınlar sallamazdım. Ama APTAL yerine koyulmak...

Özet:

Evinize gelip modeminizi de söküp götürseler, topluluk için problem olmaz. 1-2 gün konuşulup unutulacak bir olay.​

yaptıgım bir uygulamda ne alaka ise trojen ve bir kac virüs daha buluyor antivirus proglamlar bu içerigin tam kapsamlı trojen oldugunu anlamına gelmez trojen dedigin gibi yönetim aracıdır yani programın içinde senden habersiz işlem yapacak kodlarıda virus uyarısı verir ama senin anlatıklarına göre zaten belli olan granny içinde yönetim yapacak bir kod ne olabilir ekran kartını yönetebilir ayarlar senden gizli oda belki
Açıkça yaptıklarının her detayını birisi doğrulamak isterse açıkça incelesin diye dizmişim ama sen burda bu yorumu yapıyosun.Madem bir bilgin yok yorum yapma.
Ek bilgi olarak :

DllMain Tetiklenmesi: Oyun istemcisi (metin2client.bin) çalıştırıldığında granny2_d.dll yüklenir ve DllMain tetiklenir.
Kopya Oluşturma: DllMain arka planda hemen sub_100030B0 (StartRundll32Host) fonksiyonunu çağırır. Bu fonksiyon, kendisini Windows'un geçici klasörüne (%TEMP%) kopyalar.
Rundll32 ile Çalıştırma: Ardından CreateProcessA API'si ile meşru Windows süreci olan rundll32.exe üzerinden kopyaladığı DLL'i şu komutla çalıştırır:
rundll32.exe "%TEMP%\granny2_d.dll",_DllHostEntry@16
 
Ek bilgi olarak :

DllMain Tetiklenmesi: Oyun istemcisi (metin2client.bin) çalıştırıldığında granny2_d.dll yüklenir ve DllMain tetiklenir.
Kopya Oluşturma: DllMain arka planda hemen sub_100030B0 (StartRundll32Host) fonksiyonunu çağırır. Bu fonksiyon, kendisini Windows'un geçici klasörüne (%TEMP%) kopyalar.
Rundll32 ile Çalıştırma: Ardından CreateProcessA API'si ile meşru Windows süreci olan rundll32.exe üzerinden kopyaladığı DLL'i şu komutla çalıştırır:
rundll32.exe "%TEMP%\granny2_d.dll",_DllHostEntry@16


Oyun Kapansa Bile Kapanmaz , bu işlem oyunun dışında bağımsız yeni bir Windows süreci olarak başlatıldığı için, oyunu kapatsanız dahi casus yazılım arka planda çalışmaya devam eder.

Kapanmayı Engelleyen Kod Kanıtı (DllHostEntry):

while ( 1 )
Sleep(60000); // Süreci sürekli ayakta tutar, bilgisayar kapanana kadar veri sızdırır.
 
Bildiğim kadarıyla katı anticheatlerin hepsi zaten bu dediklerini yapıyor
Bu işlem tamamen oyunun koruması olan rascal'ın dışında gerçekleşen bir işlem konuyu detaylıca okursanız bunu anlarsınız.Çeşitli korumaları her açıdan analiz etmiş biri olarak bunun sizin düşündüğünüz gibi bir eylem olmadığını belirtmek isterim.Hiçbir koruma klavyede kopyalanan panodan tut harici ekranın bile ekran görüntüsünü alıp sunucusuna göndericek kadar ileri gitmez gidemez , bunu normal görmeniz beni biraz şaşırttı.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst