OzzTech - SparrowDoor Nedir

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, [email protected]#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
FortiGate ACME Sertifika Desteği
Siber Güvenlik

FortiGate ACME Sertifika Desteği

Ocak 24, 2022 1:22

Otomatik Sertifika Yönetim Ortamı (ACME), RFC 8555’te tanımlandığı üzere, ücretsiz SSL sunucu sertifikaları sağlamak için genel Let’s...

Android Reverse Mühendisliği Araçları Örnek Vakalar
Siber Güvenlik

Android Reverse Mühendisliği Araçları Örnek Vakalar

Ocak 24, 2022 12:39

Bir önceki yazıda yeni çıkan android reverse mühendisliği araçları hakkında bilgi vermiştim. Bu yazımda...

Emotet Artık Alışılmadık IP Adreslerini Kullanıyor
Siber Güvenlik

Emotet Artık Alışılmadık IP Adreslerini Kullanıyor

Ocak 24, 2022 9:44

Emotet kötü amaçlı yazılım botnetinin dağıtımını içeren sosyal mühendislik kampanyaları, güvenlik çözümlerinin tespitinden kaçınmak...

FortiWeb Kurulumu 5-Operation Modu
Siber Güvenlik

FortiWeb Kurulumu 5-Operation Modu

Ocak 24, 2022 7:49

FortiWeb kurulumunu anlattığımız beşinci yazımızda operation modu ve FortiWeb cihazı açıldıktan sonra, FortiWeb cihazını...

FortiWeb Kurulumu 4- Admin Şifresi Değiştirme
Siber Güvenlik

FortiWeb Kurulumu 4- Admin Şifresi Değiştirme

Ocak 23, 2022 10:21

FortiWeb kurulumunu anlattığımız serinin dördüncü yazısında Admin şifresi nasıl değiştirceğinizi, saat ve günü nasıl...

Metasploittable 2
Siber Güvenlik

Metasploittable 2

Ocak 22, 2022 11:57

Metasploittable 2 Nedir? Neden Kullanılır? Nasıl Kurulur? Metasploittable 2 Metasploit firması tarafından bizlerin güvenli...

FortiWeb Kurulumu 3- Firmware Güncellenmesi
Siber Güvenlik

FortiWeb Kurulumu 3- Firmware Güncellenmesi

Ocak 22, 2022 11:56

FortiWeb kurulumunu anlattığımız serinin üçüncü yazısında Firmware güncellemesini anlatacağız. FortiWeb cihazınız gönderildiğinde en son...

FortiWeb Kurulumu 2- Web UI ve CLI Bağlama
Siber Güvenlik

FortiWeb Kurulumu 2- Web UI ve CLI Bağlama

Ocak 21, 2022 7:50

FortiWeb kurulumu yazımızın ikinci serisinde Web UI veya CLI bağlamanın nasıl yapılacağını anlatacağız. Eğer...

Yapay Zeka Nedir?
Yazılım Geliştirme

Yapay Zeka Nedir?

Ocak 20, 2022 10:57

Sürekli olarak değişen, gelişen ve oldukça hızlı bir şekilde boyut atlayan, günümüze kadar gelen...

İletişim
OZZTECH Bilgi Teknolojileri olarak siber güvenlik danışmanlığı ve bilgi güvenliği eğitimleri alanlarında 10 yılı aşkın bir süredir ülkemizin önde gelen kurumlarına hizmet vermeye devam etmektedir. Detaylı bilgi ve danışmanlık hizmetlerimiz için aşağıdaki formu kullanarak veya [email protected] adresimiz üzerinden bizlerle iletişime geçebilirsiniz.