Cobalt Strike'ın default payload'ları neredeyse tüm AV ürünleri tarafından tespit ediliyor. Çünkü yıllardır aynı byte pattern'larını kullanıyor ve her AV vendor'ı bu imzaları veritabanına eklemiş. Peki bunu nasıl bypass ederiz? CS bize 3 kit sunuyor ve bir de alternatif olarak custom loader yaklaşımı var.

AV Nasıl Tespit Eder?

Signature-based detection — dosyanın içindeki bilinen byte pattern'larını arar. Sandbox analysis — dosyayı sanal ortamda çalıştırır, davranışını izler. Memory scanning — çalışan process'in memory'sinde bilinen pattern arar. Her kit bunlardan birini bypass etmeye odaklanıyor.


Artifact Kit

Cobalt strike kendi çalıştırılabilir dosyalar ve dll’ler (executable and DLLs)oluşturmak için Artifact Kit kullanır.Artifact Kit de bütün kitleri içeren Arsenal Kit’in bir parçasıdır.

Çoğu anti-virus ürünleri bir executable içerisine gömülmüş shellcode’u algılamak için signature kullanır , bunlar signature based antivirus ürünleridir.Tabi bunlar executable dosyasının içerisindeki shellcode bakacaklar ve bunu tanıyacakları için direkt olarak bu dosyayı zararlı olarak algılayacaklardır.

Bu tespit edilmeyi atlatabilmek için shellcode obfuscate işlemi kullanmaktır.Bu sayede simple string search işlemi yapan anti-virus ürünlerini bypass edebiliriz.

Tabi bazı anti-virus ürünleri daha da ileri gider bunlar bir virtual sanbox içerisinde executable dosyanın çalıştırılmış bir halini simule ederler.Bu çalışmanın her adımıyla birlikte , çalıştırılan process space’nde herhangi bir kötü hareket var mı yok mu onu tespit ederler.Eğer ki varsa , anti-virüs ürünü direkt olarak executable yada DLL’i zararlı olarak işaretler.Tabi bu teknik sayesinden çoğu encoders işlemleri patlamış olur yani siz eğer ki encode etseniz bile çok bi değişiklik olmayacağı için sonucunda (decode) zararlı olarak flag edilmiş olacak yazılmış kodumuz.

Peki bu Cobalt Strike’ın yaklaşımı bu antivirüs ürünlerine karşı nasıl , çok basit , anti-virus sandboxları kısıtlamalara sahiptir yani tamamıyla bir virtual machine olmadığı için executable yada DLL’in bazı davranışlarını emulate edemez.Artifact kit de executable ve DLL templatelerinin bir collectionunu içerir ve bizim binary dosyamızın içerisinde bulunan shellcode’nu almaya çalışan anti-virüs ürünlerine bu kodu vermememiz için birkaç işlem yapmamız gerek yani anti-virüs bu binary code’u nasıl alacak bunu düşünür ve bizde bu ürün böyle alıyorsa o zaman bu shellcode’muzu vermememiz için ne yapmalıyız gibi bir şey düşünüp kodlarız işte Artifact Kit de bu işe yarar.Örneğin bu tekniklerden bir tanesi de src-common/bypass-pipe.c dosyasıdır.Eğer ki bir anti-virus sandbox named pipeleri emulate edemezse , zararlı bilinen shellcode bulamayacak.


Burda bypass-pipe içerisinde yapacağınız değişiklikler sonucunda “.cna” uzantılı kiti , artifact.cna dosyasını aggressor script içerisinde load ettiğinizde artık create ettiğiniz payloadlarınız o içeriğe göre oluşturulmuş olacak.

Resource Kit

Resource Kit Cobalt Strike'ın kullandığı HTA, PowerShell, Python, VBA ve script templatelerini değiştirme aracıdır.

Herhangi bir anti-virüs ürününü atlatmak için , bu scriptlerin behavior ve scriptlerini değiştirebiliriz.

Cobalt Strikeda bizim resource kit templatelerini kullanmasını istiyorsak,

Script Manager’dan -> dist/arsenal_kit.cna yada dist/resource/resources.cna script eklemeliyiz.



Sleep Mask Kit

Beaconu’muzun sleep (uyumadan) önce , Beacon’ı bellekte gizlemek için execute edilen sleep mask functionunun kaynak kodudur.Bu obfuscation tekniği Beaconu tanımak içni kullanılabilir.Tabi bu detection yöntemini bypass etmek için, Cobalt Strike sleep mask function’nunun bellekte nasıl olması için modify edebilmek için bir aggressor script sağlar.

Arsenal-kit/kits/sleepmask/README.ME’den daha fazla bilgi elde edilebilir.

Yukarıda görüldüğü üzere çok fazla detayına inilmedi çünkü C dilinde bilgi orta-üst düzey bilinmesi gerekiyor.Eğer ki C dili hakkında çok fazla bilginiz yoksa , Community Kitlerini kullanabilirsiniz , ki artık çok fazla yukarıda yazdığım kitleri kimse kullanmıyor işler Communit Kitler üzerinde yürütülüyor yada isterseniz kendiniz bir kit oluşturup Cobalt Strike da kullanabilirsiniz.Link’i aşağı bırakıyorum.

CommunityKit

Artık cobalt hakkında büyük bir bilgi sahibi olduk artık hacklediğimiz host üzerinden biraz daha post exploitation aşamasına geçip bundan sonra hacklediğimiz sistem hakkında neler yapabiliriz , diğer yerlere nasıl sıçrayabiliriz onları inceleyelim.


Artifact Kit'i customize etmek yerine tamamen farklı bir yaklaşım var. CS'den sadece raw shellcode export edin (Attacks → Packages → Payload Generator → Raw). Bu shellcode'u kendi C# loader'ınıza gömün. Loader shellcode'u AES ile decrypt edip, AMSI bypass yapıp, memory'ye inject eder. Bu yaklaşım Artifact Kit'ten daha etkili çünkü tamamen custom ve hiçbir AV'nin imzası yok.


Artifact Kit'i customize etmek yerine tamamen farklı bir yaklaşım var. CS'den sadece raw shellcode export edin (Attacks → Packages → Payload Generator → Raw). Bu shellcode'u kendi C# loader'ınıza gömün. Loader shellcode'u AES ile decrypt edip, AMSI bypass yapıp, memory'ye inject eder. Bu yaklaşım Artifact Kit'ten daha etkili çünkü tamamen custom ve hiçbir AV'nin imzası yok.


C bilmiyorsanız veya hızlı çözüm istiyorsanız GitHub'daki cobalt-strike/community_kit repo'sunu kullanın. Hazır customize edilmiş kit'ler, Aggressor script'ler ve tool'lar mevcut. Profesyonel red teamer'ların çoğu Community Kit'ten başlayıp kendi ihtiyaçlarına göre modify eder. Link: https://cobalt-strike.github.io/community_kit