ozztech_logo_white

SparrowDoor Nedir

SparrowDoor, DLL yükleme saldırısı ile yüklenir. DLL hijacking host bilgisayarı olarak kullanılan yasal bir K7 Computing yürütülebilir dosyası (Indexer.exe), kötü amaçlı DLL (K7UI.dll) ve şifreli shellcode (MpSvc.dll) olmak üzere üç öğe kullanarak bunların tümü %PROGRAMDATA%\Software\ dizinine bırakılır. Sistemde kalıcılığı sağlamak için ilk SparrowDoor yürütmesiyle birlikte kullanılan komut satırı parametreleri -i, -k veya -d dışında kullanıldığı varsayılır. Kalıcılığı sağladıktan sonra, SparrowDoor -i komut satırı parametresi ile yürütülür.

SparrowDoor

Indexer.exe, K7UI.dll’i çalıştırmak için kütüphane gerektirir. Bundan dolayı, işletim sistemi belirtilen yükleme sırasına göre dizinlerde DLL dosyasını arar. Indexer.exe dosyasının depolandığı dizin, yükleme sırasında yüksek önceliğinden dolayı ilk sırada olduğu için, DLL arama sırası saldırısına uğrar. Sonuç olarak kötü amaçlı yazılım bu şekilde yüklenmiş olur. Indexer.exe kötü amaçlı K7UI.dll dosyasını yükler ve Indexer.exe’deki kodları bunu yayar (WinMain’den jmp K7UI.0x100010D0’a) ve ardından Indexer.exe’ye geri döner. Bu işlemin sonucu olarak Indexer.exe WinMain’in yerine K7UI.dll’de alt program çalıştırır. Bu alt program Başlatıcı olarak adlandırılır.

Başlatıcının görevi; MpSvc.dll’yi (şifreli shellcode) Indexer.exe’yi depolayan dizinden belleğe yüklemek, içeriğin şifresini çözmek ve devamında shellcodu yürütmektir.

Kabuk kodu (MpSvc.dll), anahtar dosyanın ilk dört baytı olacak şekilde dört baytlık XOR kullanılarak şifrelenir.

MpSvc.dll shellcode, bir PE (Portable executable) oluşturan çeşitli kitaplıkları yükler ve kullanılacak işlevlerin adreslerini bulur. Ardından, RWX belleği ayırır ve PE (Portable executable) oluşturmak için shellcode’daki çeşitli yerleri içine kopyalar. Ayrıca, bu sırada farklı kitaplıklardan çeşitli işlevlerin içe aktarılmasını çözer. Son olarak, yeni oluşturulan arka kapı PE’yi giriş noktasından yürütür. Yeniden oluşturulmuş yürütülebilir görüntünün, PE (Portable executable) başlığı yoktur. Bundan dolayı yükleyici, ayrılan bellek içinde sabit kodlanmış bir ofsetteki giriş noktasından arka kapıyı yürütür.

MpSvc.dll shellcode üzerinden yeni oluşturulmuş arka kapıda PE (Portable executable) başlığı eksiktir.

MpSvc.dll shellcode üzerinden yeni oluşturulmuş arka kapıda PE (Portable executable) başlığı eksiktir.
SparrowDoor

Arka kapı

Arka kapıya iletilen bağımsız değişkenler, Indexer.exe’ye veya enjekte edilen shellcodu/arka kapıyı alan diğer herhangi bir ikili dosyaya iletilen bağımsız değişkenlerden kaynak alır.

Aşağıdaki tabloda SparrowDoor’a sağlanan komut dizinleri parametrelerine dayanarak yapılan işlemler belirtilmiştir.

Parametreİşlem/Eylem
Parametre yok veya aşağıdakilerle eşleşmiyorKalıcılık, kayıt defteri Run key ve ikili dosyada sabit kodlanmış konfigürasyon verilerini kullanarak oluşturulan ve başlatılan bir hizmet aracılığıyla ayarlanır. Son olarak, -i anahtarı ile arka kapı yeniden başlatılır.
-iArka kapı -k anahtarıyla yeniden başlatılır .
-kArka kapı yorumlayıcısı bir kill anahtarı ile çağrılır .
-dArka kapı yorumlayıcısı, bir kill anahtarı olmadan çağrılır .

Not:

  1. Kill anahtarı, arka kapıya SparrowDoor’u kaldırma veya yeniden başlatma ayrıcalığı verir.
  2. Arka kapı yorumlayıcısı, kullanılan parametreden bağımsız olarak çağrılır çünkü her zaman bir -k veya -d parametresi ile biter.

Yapılandırma verileri

İkili dosyada konfigürasyon bulunur ve multi-byte XOR anahtarı ^&32yUgf kullanılarak şifresi çözülür. Konfigürasyon detayları aşağıda belirtilmiştir:

struct config
{
     char domain[64];
     char user [64];
     char pass[64];
     char ip[64];
     char port[2];
     char serviceName[64];
     char serviceDisplayName[128];
     char serviceDescription[128];
};

Amaçlarıyla birlikte Anahtar/değer ikilileri aşağıda verilmiştir.

AnahtarDeğerAmaç
domaincredits.offices-analytics[.]comC&C server domain
useruserC&C serverına bağlanmak için kullanılan proxy ayarları
passpass
ip127.1.1.1
port8080
service NameWSearchIndexKalıcılığı sağlamak, hizmet oluşturmak için kullanılan bilgilerdir. Unutmayın ki ayrıca, serviceName’in kayıt defterindeki Run anahtarının altında değer adı olarak kullanılır.
serviceDisplayNameWindows Search Index
serviceDescriptionDosyalar, e-posta ve diğer içerikler için içerik indeksleme, özellik önbelleğe alma ve arama sonuçları sağlar.

Bağlantılar bir proxy üzerinden olabilir ve C&C (komuta kontrol) serverına 443 numaralı HTTPS bağlantı noktasında bağlanırlar. Bu yüzden, iletişim TLS kullanılarak şifrelenmelidir. C&C serverıyla ilk bağlantı kurma denemesi sırasında SparrowDoor, proxy kullanmadan bağlantının kurulup kurulamayacağını kontrol eder. Eğer bağlantı kurulmayacak olursa veriler bir proxy aracılığıyla gönderilir. Tüm giden veriler, hH7@83#mi XOR anahtarı kullanılarak şifrelenir. Ayrıca gelen tüm verilerin şifresi, h*^4hFa XOR anahtarı ile çözülür. Veriler, bir Komut ID ile başlayan, ardından gelen şifrelenmiş verilerin uzunluğu ve şifrelenmiş verilerden oluşan bir yapıdan oluşmaktadır.

Aşağıdaki görsel verilerin C&C serverına gönderilmesine dair bir örnektir.

SparrowDoor
SparrowDoor

Böyle bir durumda mağdurun Local IP adresi, 192.168.42.1 ile ondalık sayıya dönüştürülebilir.

Oturum ID, ProcessIdToSessionId Windows API kullanılarak bulunan, arka kapı işlemiyle ilişkili Remote Desktop Services oturum kimliğidir.

systemInfoHash, kullanıcı adı, bilgisayar adı, ana bilgisayar adresleri ve oturum kimliği kullanılarak sdbm karma algoritması aracılığıyla hesaplanır.

Arka kapı Interpreter Function

Bu fonksiyonda, SeDebugPrivilege’i etkinleştirmek için SparrowDoor işleminin erişim işaretleyicisinin ayarlanmasıyla birlikte yetki yükseltme işlemi gerçekleştirilir. Bu işlemden sonra bir sokette gönderme ve almaların devre dışı bırakılmasını önlemek için kapatma işlevi ( Ws2_32.dll ) yamalanır ve Closesocket işlevi (Ws2_32.dll), bekleyen verilerin gönderilmesini veya alınmasını beklemeden önce DONT_LINGER seçeneğinin soketi kapatması için yama yapılır. Son olarak, sistem bilgileri karşılığında verileri geri almak için C&C serverına gönderilir.

C&C sunucusundan alınan verilerdeki Komut ID alanına bağlı olarak, arka kapı farklı kötü amaçlı işlemler gerçekleştirebilir.

Komut ID alınarak SparrowDoor tarafından gerçekleştirilen eylemler

Komut IDEylem
0x1C615632Mevcut süreç kapanmıştır.
0x1DE15F35Bir alt svchost.exe işlemi, C&C serverı tarafından -d parametresi belirtilen işlemin sürecin processToken bilgisi (Process ID) ile oluşturulur ve ardından shellcode işleme yüklenir.
0x1A6B561AC&C sunucusu tarafından sağlanan ad kullanılarak bir dizin oluşturulur.
0x18695638Dosya yeniden adlandırılır. C&C serverı tarafından yeniden adlandırılacak dosya ve yeni ad sağlanır.
0x196A5629Gelen verilerde belirtildiği gibi bir dosya silinir.
0x17685647Verinin boyutu 1 ise ve veriler $ ile eşleşiyorsa, systemInfoHash’in uzunluğu ve bir dizi sürücü türü gönderilir.

Verinin boyutu 2’den büyükse ve verinin ilk 2 baytı $\ ile eşleşiyorsa, belirtilen dizindeki dosyalar hakkında bilgi gönderilir. Bunlar; dosya öznitelikleri, boyutu ve yazım süresi
0x15665665Belirtilen bir dosyanın içeriğini sızdırmak için yeni bir thread oluşturulur.
0x16675656Kill anahtarı etkinleştirilirse, geçerli kalıcılık ayarları (kayıt defteri ve hizmet) kaldırılır ve Indexer.exe dosyası yürütülür (damlalığı yeniden başlatmak için). Değilse, arka kapı döngüsü yeniden başlatılır.
0x14655674Verileri belirtilen bir dosyaya yazmak için yeni bir thread oluşturulur.
0x12635692Eğer kill anahtarı etkinleştirildiğinde, kalıcılık ayarları kaldırılır. SparrowDoor (tarafından kullanılan tüm dosyaları Indexer.exe , K7UI.dll ve MpSvc.dll ) çıkarılır. Eğer kill anahtarı etkinelştirilmezse, arka kapı süreci tekrardan başlatılır.
0x13645683Veriler “anahtar” ile eşleşirse, arka kapı -d anahtarı ile yeniden başlatılır. Eşleşmezse, bir cmd.exe shell oluşturur ve interaktif ters shell oluşturmak için (C&C sunucusu tarafından kullanılan) giriş ve çıkış için adlandırılan bağlantıları kurar.
Veriler Exit\r\n ile eşleşirse, ortaya çıkan shell sonlandırılır.
DiğerArka kapı döngüsünü yeniden başlatır.

İlginizi Çekebilecek Makaleler​

LLM (Large Language Models) Nedir?

Günümüzde yapay zeka ve makine öğrenmesi, teknolojinin birçok alanında devrim niteliğinde ilerlemeler kaydetmiştir. Bu ilerlemelerin merkezinde yer alan büyük dil modelleri (LLM – Large Language

Devamı »
Message Broker Nedir?

Message broker, birçok farklı uygulama veya sistem arasında iletişim kurmak için kullanılan bir yazılım aracıdır. Bu araç, bir uygulama tarafından gönderilen mesajları bir veya daha

Devamı »
Loglama Nedir?

Loglama, bilgisayar sistemlerindeki olayları, hataları ve diğer önemli durumları kaydetme işlemidir. Bu kayıtlar, sistem yöneticileri ve geliştiriciler tarafından, sistemlerin işleyişini anlamak, hataları tespit etmek ve

Devamı »
Vcenter Üzerinden ESXI Upgrade’i Nasıl Yapılır?

Öncelikle herkese merhaba arkadaşlar, sizlere Vcenter üzerinde ESXI hostunuzu nasıl upgrade edeceğinizi anlatacağım. Öncelikle hangi versiyona yükselteceksek o versiyonun ISO dosyasını indiriyoruz. Ardından Vcenter’ımızı açıyoruz.

Devamı »