SpookFlare Nedir ?
SpookFlare, güvenlik önlemlerini atlatma konusunda pentest uzmanlarına büyük bir kolaylık sağlayan araçlarından birisidir.
Windows popüler işletim sistemi olarak pazar payını devam ettiriyor. Diğer bir yandan güvenlik ürünlerin kurulduğu sunucu tabanlı işletim sistemlerinde etkin bir pazar payına sahip. Bu sebeple saldırganların da Windows işletim sistemini hedef alması kaçınılmaz bir durum haline geliyor.
Meterpreter ise, Windows işletim sistemine sızmak için güvenlik uzmanlarınca sıkça kullanılan RATlardan bir tanesidir ve güvenlik ürünleri tarafından zararlı yazılım olarak tanımlanır. Bu durum sızma testlerinde Meterpreter’i kullanabilmek için farklı bir ihtiyaç doğurmaktadır.
SpookFlare ile bu noktadan sonra İşletim sistemlerinde uygulanan güvenlik önlemlerinin üç aşamada değerlendirebiliriz. İlki imza tabanlı tespit, ikincisi davranışsal tespit ve üçüncüsü reputasyon tabanlı tespittir.
Literatürde imza tabanlı tespiti atlamak için ilk akla gelen ve kullanılan ilk şey (obfuscation) karmaşıklaştırmadır.
İkincisi, davranışsal tespittir ve atlamak için zararlı yazılımınızın davranışını değiştirmeniz gerekir. Hedef sistemdeki yerel kullanıcıların parola özetlerini almak için Mimikatz kullandığınızda yaklanıyorsanız, SysInternals araçlarından olan procdump aracını kullanabilirsiniz. Procdump otoriteler tarafından imzalanmış ve genelde legal amaçlar için kullanıldığından davranışsal algılamayı atlatmayı kolaylaştırır.
Son olarak reputasyon tabanlı tespittir ve bu noktada işler biraz karmaşıklaşıyor. Çünkü güvenlik ürünlerinin perspektifleri farklı olabilir. Bazen uygulamanızın özellikleri bazı güvenlik ürünleri tarafından kötü amaçlı olarak tanımlanabilir. Reputasyona dayalı tespit algoritmaları güvenlik ürününden güvenlik ürününe tamamen değişir. Bu noktada, güvenlik ürününü atlamak için tecrübe ön plana çıkmaktadır. Güvenlik ürünleri, günün sonunda “bildikleri” saldırı vektörlerini tespit edip önleyebilir. Yani, bilinmeyen teknikleriniz veya yönteminiz varsa hedef sistemdeki önlemlerini atlatabilirsiniz.
Güvenlik ürünlerini bypass etmek için birden fazla yol vardır. SpookFlare, güvenlik önlemlerini atlamak için farklı bir bakış açısına sahiptir. Pentest uzmanlarına istemci tarafında tespit ve ağ tarafında tespit konusunda son kullanıcı sistemlerinde alınan önlemleri atlamak için fırsat sunar.
SpookFlare, Meterpreter Reverse HTTP ve HTTPS Stage’leri için yükleyici oluşturur. SpookFlare, karmaşıklaştırma (obfuscation) ve çalışma zamanında (runtime code compling) kod derleme ve kaynak kod şifreleme özelliklerine sahiptir; bu sayede güvenlik ürünleri SpookFlare tarafından oluşturulan payloadların imzalarını ve davranış algoritmalarını geliştirene kadar hedef sistemlerdeki önlemleri hem istemci tarafında hem de ağ tarafında atlatabilirsiniz.
Alttaki belirtilen kaynak linklerden görseldeki şekilde tüm materyalleri Download edebilirsiniz.
using System;
using System.Text;
using Microsoft.CSharp;
using System.CodeDom.Compiler;
using System.Reflection;
namespace compileTest
class Program {
static void main () {
string code = -@"
using System;
namespace runtimeCode {
public class compile {
public static void Main() {
Console.WriteLine(""Hello from runtime compiled code!"");
Console.ReadKey();
}
}
}" ;
CSharpCodeProvider provider = -new- CSharpCodeProvider();
CompilerParameters parameters = -new- CompilerParameters();
parameters.ReferencedAssemblies.Add("-System.dll-");
parameters.GenerateInMemory = -true-;
parameters.GenerateExecutable = -true-;
CompilerResults results = provider.-CompileAssemblyFromSource-(parameters, code);
if (results.Errors.HasErrors) {
StringBuilder sb = -new- StringBuilder();
foreach (CompilerError error in results.Errors) {
sb.AppendLine(String.Format("-Error ({0}): {1}-", error.ErrorNumber, error.ErrorText));
}
throw -new- InvalidOperationException(sb.ToString());
}
Assembly assembly = results.CompiledAssembly;
Type program = assembly.GetType("runtimeCode.compile");
MethodInfo main = program.GetMethod("-main-");
main.Invoke(-null, null-);
}
}
}
Yukarıda anlaşıldığı üzere; SpookFlare verileri derleme kodu ve yürütmeyi kullanır. Her oluşturulan SpookFlare veri döngüsü, kendi veri kodunu içerir ve çalıştırıldığında veri kodunu bize verir.
Döngü içinde stage’i oluşturmak Metasploit’deki meterpreter_loader.rb dosyasına girdi iznini verip SecureRandon kısmına sanal rastgele BYTE değeri girmemiz gerekir.
SpookFlare, güvenlik önlemlerini atlatma konusunda pentest uzmanlarına büyük bir kolaylık sağlayan araçlarından birisidir.
Windows popüler işletim sistemi olarak pazar payını devam ettiriyor. Diğer bir yandan güvenlik ürünlerin kurulduğu sunucu tabanlı işletim sistemlerinde etkin bir pazar payına sahip. Bu sebeple saldırganların da Windows işletim sistemini hedef alması kaçınılmaz bir durum haline geliyor.
Meterpreter ise, Windows işletim sistemine sızmak için güvenlik uzmanlarınca sıkça kullanılan RATlardan bir tanesidir ve güvenlik ürünleri tarafından zararlı yazılım olarak tanımlanır. Bu durum sızma testlerinde Meterpreter’i kullanabilmek için farklı bir ihtiyaç doğurmaktadır.
SpookFlare ile bu noktadan sonra İşletim sistemlerinde uygulanan güvenlik önlemlerinin üç aşamada değerlendirebiliriz. İlki imza tabanlı tespit, ikincisi davranışsal tespit ve üçüncüsü reputasyon tabanlı tespittir.
Literatürde imza tabanlı tespiti atlamak için ilk akla gelen ve kullanılan ilk şey (obfuscation) karmaşıklaştırmadır.
İkincisi, davranışsal tespittir ve atlamak için zararlı yazılımınızın davranışını değiştirmeniz gerekir. Hedef sistemdeki yerel kullanıcıların parola özetlerini almak için Mimikatz kullandığınızda yaklanıyorsanız, SysInternals araçlarından olan procdump aracını kullanabilirsiniz. Procdump otoriteler tarafından imzalanmış ve genelde legal amaçlar için kullanıldığından davranışsal algılamayı atlatmayı kolaylaştırır.
Son olarak reputasyon tabanlı tespittir ve bu noktada işler biraz karmaşıklaşıyor. Çünkü güvenlik ürünlerinin perspektifleri farklı olabilir. Bazen uygulamanızın özellikleri bazı güvenlik ürünleri tarafından kötü amaçlı olarak tanımlanabilir. Reputasyona dayalı tespit algoritmaları güvenlik ürününden güvenlik ürününe tamamen değişir. Bu noktada, güvenlik ürününü atlamak için tecrübe ön plana çıkmaktadır. Güvenlik ürünleri, günün sonunda “bildikleri” saldırı vektörlerini tespit edip önleyebilir. Yani, bilinmeyen teknikleriniz veya yönteminiz varsa hedef sistemdeki önlemlerini atlatabilirsiniz.
Güvenlik ürünlerini bypass etmek için birden fazla yol vardır. SpookFlare, güvenlik önlemlerini atlamak için farklı bir bakış açısına sahiptir. Pentest uzmanlarına istemci tarafında tespit ve ağ tarafında tespit konusunda son kullanıcı sistemlerinde alınan önlemleri atlamak için fırsat sunar.
SpookFlare, Meterpreter Reverse HTTP ve HTTPS Stage’leri için yükleyici oluşturur. SpookFlare, karmaşıklaştırma (obfuscation) ve çalışma zamanında (runtime code compling) kod derleme ve kaynak kod şifreleme özelliklerine sahiptir; bu sayede güvenlik ürünleri SpookFlare tarafından oluşturulan payloadların imzalarını ve davranış algoritmalarını geliştirene kadar hedef sistemlerdeki önlemleri hem istemci tarafında hem de ağ tarafında atlatabilirsiniz.
Alttaki belirtilen kaynak linklerden görseldeki şekilde tüm materyalleri Download edebilirsiniz.
using System;
using System.Text;
using Microsoft.CSharp;
using System.CodeDom.Compiler;
using System.Reflection;
namespace compileTest
class Program {
static void main () {
string code = -@"
using System;
namespace runtimeCode {
public class compile {
public static void Main() {
Console.WriteLine(""Hello from runtime compiled code!"");
Console.ReadKey();
}
}
}" ;
CSharpCodeProvider provider = -new- CSharpCodeProvider();
CompilerParameters parameters = -new- CompilerParameters();
parameters.ReferencedAssemblies.Add("-System.dll-");
parameters.GenerateInMemory = -true-;
parameters.GenerateExecutable = -true-;
CompilerResults results = provider.-CompileAssemblyFromSource-(parameters, code);
if (results.Errors.HasErrors) {
StringBuilder sb = -new- StringBuilder();
foreach (CompilerError error in results.Errors) {
sb.AppendLine(String.Format("-Error ({0}): {1}-", error.ErrorNumber, error.ErrorText));
}
throw -new- InvalidOperationException(sb.ToString());
}
Assembly assembly = results.CompiledAssembly;
Type program = assembly.GetType("runtimeCode.compile");
MethodInfo main = program.GetMethod("-main-");
main.Invoke(-null, null-);
}
}
}
Yukarıda anlaşıldığı üzere; SpookFlare verileri derleme kodu ve yürütmeyi kullanır. Her oluşturulan SpookFlare veri döngüsü, kendi veri kodunu içerir ve çalıştırıldığında veri kodunu bize verir.
Döngü içinde stage’i oluşturmak Metasploit’deki meterpreter_loader.rb dosyasına girdi iznini verip SecureRandon kısmına sanal rastgele BYTE değeri girmemiz gerekir.
Moderatör tarafında düzenlendi:




