Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1
Yakın zamanda Avrupalı ​​bir elektrik tesisatı ekipmanı üreticisi Group-IB ile temasa geçti; çalışanı, kötü niyetli bir ek içeren şüpheli bir posta aldı. Ilya PomerantsevCERT Group-IB'de kötü amaçlı yazılım analiz uzmanı olan bu dosya üzerinde ayrıntılı bir analiz gerçekleştiren AgentTesla casus yazılımını orada keşfetti ve bu tür kötü amaçlı yazılımlardan ne beklenmesi gerektiğini ve ne kadar tehlikeli olduğunu anlattı.

Bu yazımızla bu tür potansiyel olarak tehlikeli dosyaların nasıl analiz edileceğine dair bir dizi makalenin açılışını yapıyoruz ve en meraklılarını 5 Aralık'ta konuyla ilgili ücretsiz interaktif bir web seminerine bekliyoruz. “Kötü Amaçlı Yazılım Analizi: Gerçek Durumların Analizi”. Tüm detaylar kesimin altında.

Dağıtım mekanizması

Kötü amaçlı yazılımın kurbanın makinesine kimlik avı e-postaları yoluyla ulaştığını biliyoruz. Mektubun alıcısı muhtemelen BCC'liydi.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1
Başlıkların analizi, mektubu gönderenin sahte olduğunu gösteriyor. Aslında bıraktığı mektup vps56[.]oneworldhosting[.]com.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1
E-posta eki bir WinRar arşivi içeriyor qoute_jpeg56a.r15 kötü amaçlı bir yürütülebilir dosyayla QOUTE_JPEG56A.exe içeri.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

Kötü amaçlı yazılım ekosistemi

Şimdi incelenen kötü amaçlı yazılımın ekosisteminin nasıl göründüğüne bakalım. Aşağıdaki diyagram yapısını ve bileşenlerin etkileşim yönlerini göstermektedir.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1
Şimdi kötü amaçlı yazılım bileşenlerinin her birine daha ayrıntılı olarak bakalım.

yükleyici

Orijinal dosya QOUTE_JPEG56A.exe derlenmiş bir AutoIt v3 senaryo.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1
Orijinal metni karartmak için benzer özelliklere sahip bir karartıcı PELock AutoIT-Gizleyici özellikleri.
Gizleme giderme üç aşamada gerçekleştirilir:

  1. Gizlemenin kaldırılması İçin eğer

    İlk adım, betiğin kontrol akışını geri yüklemektir. Kontrol Akışı Düzleştirme, uygulama ikili kodunu analizden korumanın en yaygın yollarından biridir. Kafa karıştırıcı dönüşümler, algoritmaların ve veri yapılarının çıkarılması ve tanınmasının karmaşıklığını önemli ölçüde artırır.

    Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

  2. Satır kurtarma

    Dizeleri şifrelemek için iki işlev kullanılır:

    • gdorizabegkvfca - Base64 benzeri kod çözme gerçekleştirir

      Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

    • xgacyukcyzxz - ikinci dizenin uzunluğuyla birlikte ilk dizenin basit bayt-bayt XOR'u

      Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

    Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

  3. Gizlemenin kaldırılması BinaryToString и Gerçekleştirmek

    Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

Ana yük dizinde bölünmüş bir biçimde saklanır Yazı tipleri dosyanın kaynak bölümleri.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1
Yapıştırma sırası aşağıdaki gibidir: TIEQHCXWFG, IME, SPDGUHIMPV, KQJMWQQAQTKTFXTUOSW, AOCHKRWWSKWO, JSHMSJPS, NHHWXJBMTTSPXVN, BFUTIFWWXVE, HWJHO, AVZOUMVFRDWFLWU.

Çıkarılan verilerin şifresini çözmek için WinAPI işlevi kullanılır Şifre Çözmeve değere göre oluşturulan oturum anahtarı, anahtar olarak kullanılır. fZgFiZlJDxvuWatFRgRXZqmNCIyQgMYc.

Şifresi çözülmüş yürütülebilir dosya işlev girişine gönderilir ÇalıştırPEhangisi yapar ProcessInject в RegAsm.exe yerleşik kullanarak Kabuk Kodu (Ayrıca şöyle bilinir PE ShellCode'u Çalıştır). Yazarlık İspanyol forumunun kullanıcısına aittir. tespit edilemeyenler[.]net Wardow takma adı altında.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1
Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1
Ayrıca bu forumun başlıklarından birinde, bir kafa karıştırıcı olduğunu da belirtmekte fayda var. AutoIt Numune analizi sırasında belirlenen benzer özelliklere sahip.

Kendisi Kabuk Kodu oldukça basit ve yalnızca hacker grubu AnunakCarbanak'tan ödünç alınmış ve dikkat çekiyor. API çağrısı karma işlevi.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1
Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

Ayrıca kullanım durumlarının da farkındayız Fransız Kabuk Kodu farklı versiyonlar.
Açıklanan işlevselliğe ek olarak, etkin olmayan işlevleri de belirledik:

  • Görev yöneticisinde manuel işlem sonlandırmayı engelleme

    Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

  • Bir alt süreci sonlandırıldığında yeniden başlatmak

    Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

  • UAC'yi atla

    Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

  • Yükü bir dosyaya kaydetme

    Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

  • Kalıcı pencerelerin gösterimi

    Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

  • Fare imleci konumunun değişmesi bekleniyor

    Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

  • AntiVM ve AntiSandbox

    Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

  • Kendini imha

    Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

  • Ağdan yük pompalanıyor

    Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

Bu tür bir işlevselliğin koruyucu için tipik olduğunu biliyoruz. CypherIT, görünüşe göre söz konusu önyükleyici.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

Yazılımın ana modülü

Daha sonra, kötü amaçlı yazılımın ana modülünü kısaca açıklayacağız ve ikinci makalede daha ayrıntılı olarak ele alacağız. Bu durumda bir uygulamadır . NET.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1
Analiz sırasında, bir gizleme aracının kullanıldığını keşfettik. Kafa karıştırıcıEX.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

IELibrary.dll

Kitaplık bir ana modül kaynağı olarak depolanır ve iyi bilinen bir eklentidir. ajan TeslaInternet Explorer ve Edge tarayıcılarından çeşitli bilgilerin çıkarılmasına yönelik işlevsellik sağlayan.

Ajan Tesla, meşru bir keylogger ürünü kisvesi altında hizmet olarak kötü amaçlı yazılım modeli kullanılarak dağıtılan modüler bir casusluk yazılımıdır. Ajan Tesla, tarayıcılardan, e-posta istemcilerinden ve FTP istemcilerinden kullanıcı kimlik bilgilerini alıp sunucuya saldırganlara aktarma, pano verilerini kaydetme ve cihaz ekranını yakalama yeteneğine sahiptir. Analiz sırasında geliştiricilerin resmi web sitesi mevcut değildi.

Giriş noktası fonksiyondur KaydedilenŞifreleri Alın sınıf InternetExplorer.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1
Genel olarak kod yürütme doğrusaldır ve analize karşı herhangi bir koruma içermez. Yalnızca gerçekleştirilmemiş işlev dikkati hak ediyor KaydedilmişÇerezler Alın. Görünüşe göre eklentinin işlevselliğinin genişletilmesi gerekiyordu, ancak bu asla yapılmadı.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

Önyükleyiciyi sisteme takma

Önyükleyicinin sisteme nasıl bağlandığını inceleyelim. İncelenmekte olan örnek çapalanmamaktadır ancak benzer olaylarda aşağıdaki şemaya göre meydana gelmektedir:

  1. Klasöründe C:KullanıcılarHerkese Açık senaryo oluşturuldu Visual Basic

    Örnek komut dosyası:

    Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 1

  2. Önyükleyici dosyasının içeriği boş bir karakterle doldurulur ve klasöre kaydedilir. %Temp%<Özel klasör adı><Dosya adı>
  3. Komut dosyası dosyası için kayıt defterinde bir otomatik çalıştırma anahtarı oluşturulur HKCUSoftwareMicrosoftWindowsCurrentVersionRun<Komut dosyası adı>

Böylece, analizin ilk bölümünün sonuçlarına dayanarak, incelenen kötü amaçlı yazılımın tüm bileşenlerinin ailelerinin adlarını belirleyebildik, bulaşma düzenini analiz edebildik ve ayrıca imza yazmak için nesneler elde edebildik. Bu nesneyle ilgili analizimize ana modüle daha detaylı bakacağımız bir sonraki yazımızda devam edeceğiz. ajan Tesla. Kaçırma!

Bu arada, 5 Aralık'ta tüm okuyucuları, bir CERT-GIB uzmanı olan bu makalenin yazarının ilk aşamayı çevrimiçi olarak göstereceği "Kötü amaçlı yazılım analizi: gerçek vakaların analizi" konulu ücretsiz etkileşimli bir web seminerine davet ediyoruz. kötü amaçlı yazılım analizi - uygulamadaki üç gerçek mini vaka örneğini kullanarak örneklerin yarı otomatik olarak açılması ve analize katılabilirsiniz. Web semineri, kötü amaçlı dosyaları analiz etme konusunda halihazırda deneyimi olan uzmanlar için uygundur. Kayıt kesinlikle kurumsal e-posta yoluyla yapılır: kayıt. Seni bekliyor!

Yara

rule AgentTesla_clean{
meta:
    author = "Group-IB"
    file = "78566E3FC49C291CB117C3D955FA34B9A9F3EEFEFAE3DE3D0212432EB18D2EAD"
    scoring = 5
    family = "AgentTesla"
strings:
    $string_format_AT = {74 00 79 00 70 00 65 00 3D 00 7B 00 30 00 7D 00 0D 00 0A 00 68 00 77 00 69 00 64 00 3D 00 7B 00 31 00 7D 00 0D 00 0A 00 74 00 69 00 6D 00 65 00 3D 00 7B 00 32 00 7D 00 0D 00 0A 00 70 00 63 00 6E 00 61 00 6D 00 65 00 3D 00 7B 00 33 00 7D 00 0D 00 0A 00 6C 00 6F 00 67 00 64 00 61 00 74 00 61 00 3D 00 7B 00 34 00 7D 00 0D 00 0A 00 73 00 63 00 72 00 65 00 65 00 6E 00 3D 00 7B 00 35 00 7D 00 0D 00 0A 00 69 00 70 00 61 00 64 00 64 00 3D 00 7B 00 36 00 7D 00 0D 00 0A 00 77 00 65 00 62 00 63 00 61 00 6D 00 5F 00 6C 00 69 00 6E 00 6B 00 3D 00 7B 00 37 00 7D 00 0D 00 0A 00 73 00 63 00 72 00 65 00 65 00 6E 00 5F 00 6C 00 69 00 6E 00 6B 00 3D 00 7B 00 38 00 7D 00 0D 00 0A 00 5B 00 70 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 73 00 5D 00}
    $web_panel_format_string = {63 00 6C 00 69 00 65 00 6E 00 74 00 5B 00 5D 00 3D 00 7B 00 30 00 7D 00 0D 00 0A 00 6C 00 69 00 6E 00 6B 00 5B 00 5D 00 3D 00 7B 00 31 00 7D 00 0D 00 0A 00 75 00 73 00 65 00 72 00 6E 00 61 00 6D 00 65 00 5B 00 5D 00 3D 00 7B 00 32 00 7D 00 0D 00 0A 00 70 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 5B 00 5D 00 3D 00 7B 00 33 00 7D 00 00 15 55 00 52 00 4C 00 3A 00 20 00 20 00 20 00 20 00 20 00 20 00 00 15 55 00 73 00 65 00 72 00 6E 00 61 00 6D 00 65 00 3A 00 20 00 00 15 50 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 3A 00}
condition:
     all of them
}

rule  AgentTesla_obfuscated {
meta:
    author = "Group-IB"
    file = "41DC0D5459F25E2FDCF8797948A7B315D3CB075398D808D1772CACCC726AF6E9"
    scoring = 5
    family = "AgentTesla"
strings:
    $first_names = {61 66 6B 00 61 66 6D 00 61 66 6F 00 61 66 76 00 61 66 79 00 61 66 78 00 61 66 77 00 61 67 6A 00 61 67 6B 00 61 67 6C 00 61 67 70 00 61 67 72 00 61 67 73 00 61 67 75 00}
    $second_names = "IELibrary.resources"
condition:
     all of them
}

rule AgentTesla_module_for_IE{
meta:
    author = "Group-IB"
    file = "D55800A825792F55999ABDAD199DFA54F3184417215A298910F2C12CD9CC31EE"
    scoring = 5
    family = "AgentTesla_module_for_IE"
strings:
    $s0 = "ByteArrayToStructure" 
    $s1 = "CryptAcquireContext" 
    $s2 = "CryptCreateHash" 
    $s3 = "CryptDestroyHash" 
    $s4 = "CryptGetHashParam" 
    $s5 = "CryptHashData"
    $s6 = "CryptReleaseContext" 
    $s7 = "DecryptIePassword" 
    $s8 = "DoesURLMatchWithHash" 
    $s9 = "GetSavedCookies" 
    $s10 = "GetSavedPasswords" 
    $s11 = "GetURLHashString"  
condition:
     all of them
}

rule RunPE_shellcode {
meta:
    author = "Group-IB"
    file = "37A1961361073BEA6C6EACE6A8601F646C5B6ECD9D625E049AD02075BA996918"
    scoring = 5
    family = "RunPE_shellcode"
strings:
    $malcode = {
      C7 [2-5] EE 38 83 0C // mov     dword ptr [ebp-0A0h], 0C8338EEh
      C7 [2-5] 57 64 E1 01 // mov     dword ptr [ebp-9Ch], 1E16457h
      C7 [2-5] 18 E4 CA 08 // mov     dword ptr [ebp-98h], 8CAE418h
      C7 [2-5] E3 CA D8 03 // mov     dword ptr [ebp-94h], 3D8CAE3h
      C7 [2-5] 99 B0 48 06 // mov     dword ptr [ebp-90h], 648B099h
      C7 [2-5] 93 BA 94 03 // mov     dword ptr [ebp-8Ch], 394BA93h
      C7 [2-5] E4 C7 B9 04 // mov     dword ptr [ebp-88h], 4B9C7E4h
      C7 [2-5] E4 87 B8 04 // mov     dword ptr [ebp-84h], 4B887E4h
      C7 [2-5] A9 2D D7 01 // mov     dword ptr [ebp-80h], 1D72DA9h
      C7 [2-5] 05 D1 3D 0B // mov     dword ptr [ebp-7Ch], 0B3DD105h
      C7 [2-5] 44 27 23 0F // mov     dword ptr [ebp-78h], 0F232744h
      C7 [2-5] E8 6F 18 0D // mov     dword ptr [ebp-74h], 0D186FE8h
      }
condition:
    $malcode 
}

rule AgentTesla_AutoIT_module{
meta:
    author = "Group-IB"
    file = "49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08C05B5E3BD36FD52668D196AF"
    scoring = 5
    family = "AgentTesla"
strings:                                    
    $packedexeau = {55 ED F5 9F 92 03 04 44 7E 16 6D 1F 8C D7 38 E6 29 E4 C8 CF DA 2C C4 E1 F3 65 48 25 B8 93 9D 66 A4 AD 3C 39 50 00 B9 60 66 19 8D FC 20 0A A0 56 52 8B 9F 15 D7 62 30 0D 5C C3 24 FE F8 FC 39 08 DF 87 2A B2 1C E9 F7 06 A8 53 B2 69 C3 3C D4 5E D4 74 91 6E 9D 9A A0 96 FD DB 1F 5E 09 D7 0F 25 FB 46 4E 74 15 BB AB DB 17 EE E7 64 33 D6 79 02 E4 85 79 14 6B 59 F9 43 3C 81 68 A8 B5 32 BC E6}
condition:
     all of them
}

Hash'ler

Name qoute_jpeg56a.r15
MD5 53BE8F9B978062D4411F71010F49209E
SHA1 A8C2765B3D655BA23886D663D22BDD8EF6E8E894
SHA256 2641DAFB452562A0A92631C2849B8B9CE880F0F8F

890E643316E9276156EDC8A

Tip WinRAR'ı arşivle
beden 823014
Name QOUTE_JPEG56A.exe
MD5 329F6769CF21B660D5C3F5048CE30F17
SHA1 8010CC2AF398F9F951555F7D481CE13DF60BBECF
SHA256 49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08

C05B5E3BD36FD52668D196AF

Tip PE (Derlenmiş AutoIt Komut Dosyası)
beden 1327616
Orjinal isim Bilinmiyor
Tarih damgası 15.07.2019
bağlantılar Microsoft Bağlayıcı(12.0)[EXE32]
MD5 C2743AEDDADACC012EF4A632598C00C0
SHA1 79B445DE923C92BF378B19D12A309C0E9C5851BF
SHA256 37A1961361073BEA6C6EACE6A8601F646C5B6ECD

9D625E049AD02075BA996918

Tip Kabuk Kodu
beden 1474

Kaynak: habr.com

Yorum ekle