Mart 2019'da, OceanLotus siber grubuna ait yeni bir macOS kötü amaçlı yazılım örneği, popüler bir çevrimiçi tarama hizmeti olan VirusTotal'a yüklendi. Arka kapı çalıştırılabilir dosyası, incelediğimiz macOS kötü amaçlı yazılımının önceki sürümüyle aynı yeteneklere sahip ancak yapısı değişti ve tespit edilmesi daha zor hale geldi. Ne yazık ki bu örnekle ilişkili bir damlalık bulamadık, dolayısıyla enfeksiyon vektörünü henüz bilmiyoruz.
Yakın zamanda yayınladık
analizi
Sonraki üç bölüm, SHA-1 karmasına sahip bir numunenin analizini açıklamaktadır E615632C9998E4D3E5ACD8851864ED09B02C77D2
. Dosya denir el feneriESET antivirüs ürünleri bunu OSX/OceanLotus.D olarak algılar.
Hata ayıklamayı önleme ve sanal alan koruması
Tüm macOS OceanLotus ikili dosyaları gibi örnek de UPX ile paketlenmiştir ancak çoğu paketleyici tanımlama aracı bunu bu şekilde tanımaz. Bunun nedeni muhtemelen çoğunlukla "UPX" dizisinin varlığına bağlı bir imza içermeleridir; ayrıca Mach-O imzaları daha az yaygındır ve o kadar sık güncellenmez. Bu özellik statik algılamayı zorlaştırır. İlginçtir ki, paketi açtıktan sonra giriş noktası bölümün başındadır __cfstring
segmentte .TEXT
. Bu bölüm aşağıdaki resimde gösterildiği gibi bayrak özelliklerine sahiptir.
Şekil 1. MACH-O __cfstring bölüm özellikleri
Şekil 2'de gösterildiği gibi bölümdeki kod konumları __cfstring
kodu dizeler halinde görüntüleyerek bazı sökme araçlarını kandırmanıza olanak tanır.
Şekil 2. IDA tarafından veri olarak tespit edilen arka kapı kodu
Çalıştırıldığında, ikili dosya, tek amacı sürekli olarak bir hata ayıklayıcının varlığını kontrol etmek olan bir anti-hata ayıklayıcı olarak bir iş parçacığı oluşturur. Bu akış için:
— Herhangi bir hata ayıklayıcının kancasını kaldırmaya çalışır ve çağırır ptrace
с PT_DENY_ATTACH
istek parametresi olarak
- Bir işlevi çağırarak bazı özel bağlantı noktalarının açık olup olmadığını kontrol eder task_get_exception_ports
- Bayrağın varlığını kontrol ederek aşağıdaki şekilde gösterildiği gibi hata ayıklayıcının bağlı olup olmadığını kontrol eder. P_TRACED
mevcut süreçte
Şekil 3. Sysctl işlevini kullanarak hata ayıklayıcı bağlantısını kontrol etme
Watchdog bir hata ayıklayıcının varlığını tespit ederse, işlev çağrılır exit
. Ayrıca örnek, iki komutu çalıştırarak ortamı denetler:
ioreg -l | grep -e "Manufacturer" и sysctl hw.model
Örnek daha sonra dönüş değerini bilinen sanallaştırma sistemlerinden gelen sabit kodlanmış bir dize listesine göre kontrol eder: açı, vmware, virtualbox veya paralellikler. Son olarak bir sonraki komut, makinenin aşağıdaki “MBP”, “MBA”, “MB”, “MM”, “IM”, “MP” ve “XS”lerden biri olup olmadığını kontrol eder. Bunlar sistem modeli kodlarıdır; örneğin, “MBP” MacBook Pro anlamına gelir, “MBA” MacBook Air anlamına gelir vb.
system_profiler SPHardwareDataType 2>/dev/null | awk '/Boot ROM Version/ {split($0, line, ":");printf("%s", line[2]);}
Temel eklemeler
Trend Micro'nun araştırmasından bu yana arka kapı komutları değişmemiş olsa da birkaç değişiklik daha fark ettik. Bu örnekte kullanılan C&C sunucuları oldukça yenidir ve 22.10.2018 tarihinde oluşturulmuştur.
- daff.faybilodeau[.]com
- sarc.onteagleroad[.]com
- au.charlineopkesston[.]com
Kaynak URL'si şu şekilde değiştirildi: /dp/B074WC4NHW/ref=gbps_img_m-9_62c3_750e6b35
.
C&C sunucusuna gönderilen ilk paket, aşağıdaki tabloda yer alan komutlar tarafından toplanan tüm veriler de dahil olmak üzere, ana makine hakkında daha fazla bilgi içerir.
Bu yapılandırma değişikliğine ek olarak örnek, ağ filtreleme için bir kitaplık kullanmaz gFjMXBgyXWULmVVVzyxy
, sıfırlarla doldurulmuş. Her dosyanın şifresi çözülür ve kaydedilir. /tmp/store
ve bu işlev kullanılarak kitaplık olarak yüklenmeye çalışılır. dlopen
, arka kapı dışa aktarılan işlevleri çıkarır Boriry
и ChadylonV
Görünüşe göre sunucuyla ağ iletişiminden sorumlular. Numunenin orijinal konumundan damlalık veya diğer dosyalara sahip olmadığımız için bu kitaplığı ayrıştıramıyoruz. Üstelik bileşen şifrelendiğinden bu dizelere dayalı bir YARA kuralı, diskte bulunan dosyayla eşleşmeyecektir.
Yukarıdaki makalede açıklandığı gibi, oluşturur Müşteri Kimliği. Bu kimlik, aşağıdaki komutlardan birinin dönüş değerinin MD5 karmasıdır:
- ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformSerialNumber/ { split($0, line, """); printf("%s", line[4]); }'
- ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformUUID/ { split($0, line, """); printf("%s", line[4]); }'
- ifconfig en0 | awk '/ether /{print $2}'
(MAC adresini al)
- bilinmeyen takım ("x1ex72x0a
"), önceki örneklerde kullanılan
Karma işleminden önce, kök ayrıcalıklarını belirtmek için dönüş değerine "0" veya "1" eklenir. Bu Müşteri Kimliği içinde depolanan /Library/Storage/File System/HFS/25cf5d02-e50b-4288-870a-528d56c3cf6e/pivtoken.appex
, diğer tüm durumlarda kod root olarak veya ~/Library/SmartCardsServices/Technology/PlugIns/drivers/snippets.ecgML konumunda çalıştırılıyorsa. Dosya genellikle işlev kullanılarak gizlenir touch –t
rastgele bir değerle.
Dizelerin kodunu çözme
Önceki seçeneklerde olduğu gibi dizeler AES-256-CBC (onaltılık anahtar: 9D7274AD7BCEF0DED29BDBB428C251DF8B350B92
işlev aracılığıyla sıfırlarla doldurulmuş ve IV sıfırlarla doldurulmuş)
Fonksiyon prototipini bilmek şifresini, komut dosyası bu işleve yapılan tüm çapraz referansları, tüm argümanları bulur, ardından verilerin şifresini çözer ve düz metni çapraz referans adresindeki bir yorumun içine yerleştirir. Komut dosyasının düzgün çalışması için, base64 kod çözme işlevi tarafından kullanılan özel alfabeye ayarlanmalı ve anahtarın uzunluğunu içeren genel bir değişken tanımlanmalıdır (bu durumda bir DWORD, bkz. Şekil 4).
Şekil 4. Global değişken key_len'in tanımı
İşlev penceresinde, şifre çözme işlevine sağ tıklayıp "Argümanları çıkar ve şifresini çöz" seçeneğine tıklayabilirsiniz. Komut dosyası, şifresi çözülmüş satırları Şekil 5'te gösterildiği gibi yorumlara yerleştirmelidir.
Şekil 5. Şifresi çözülmüş metin yorumlara yerleştirilmiştir
Bu şekilde şifresi çözülmüş dizeler IDA penceresine uygun bir şekilde bir araya yerleştirilir. xref'ler Bu işlev için Şekil 6'da gösterildiği gibi.
Şekil 6. f_decrypt işlevine yönelik Xref'ler
Son komut dosyası şu adreste bulunabilir:
Aviator apk
Daha önce de belirtildiği gibi OceanLotus araç setini sürekli olarak geliştiriyor ve güncelliyor. Bu kez siber grup, kötü amaçlı yazılımı Mac kullanıcılarıyla çalışacak şekilde geliştirdi. Kod pek değişmedi, ancak birçok Mac kullanıcısı güvenlik ürünlerini göz ardı ettiğinden, kötü amaçlı yazılımların tespit edilmesini önlemek ikinci derecede önem taşıyor.
ESET ürünleri araştırma sırasında bu dosyayı zaten tespit ediyordu. C&C iletişimi için kullanılan ağ kitaplığı artık diskte şifrelendiğinden, saldırganların kullandığı ağ protokolü henüz bilinmiyor.
Uzlaşma göstergeleri
Uzlaşma göstergelerinin yanı sıra MITRE ATT&CK özellikleri de şu adreste mevcuttur:
Kaynak: habr.com