- 5 Şub 2022
- 17
- 25
Yukarıdaki resimde göründüğü üzere “Zararlı” sekmesinden hedef makinada amacımızı gerçekleştirecek yazılımın kodları bulunmakta. Ben oraya temel olması açısından MSFramework’te bulunan
Reverse TCP/HTTPS/HTPP payloadlarını koydum. Tabi ki bu hedef sisteme sadece payload yerleştirilebilir demek değil. C# & VB & Microsoft Jscript dillerinde aklınıza gelebilecek ve yeteneğinizin yetebileceği her kodu yerleştirebilirsiniz. Örnek olması açısından C#’ta olan Reverse Tcp kodlarını VB için dönüştürdüm. Visual Studio 2015’te derlenip çalışıyor ama yazılım içerisinde Reverse Tcp VisualBasic kodları derlenemiyor. Bu kodlar içerisine biraz sonra görebileceğiniz etiketleri yerleştirebilir veya üzerlerinde değişikliğe gidebilirsiniz. Tabi birde zararlı kodlarınızda :
"System.dll", "System.Drawing.dll", "System.Net.Sockets.dll", "System.Windows.Forms.dll",
"System.Threading.Tasks.dll", "System.Net.dll","System.Net.Sockets.dll",
"System.Runtime.InteropServices.dll", "System.Threading.dll"
Yukarıdaki kütüphaneler dışında kütüphane kullanamazsınız. Program lokasyonu Additions\Interface içerisindeki Code Compiler dosyasında bu kütüphanelerin bulunduğu satırda değişikliğe gidilerek değiştirilebilir ama ! bazı kütüphaneler test edilen makinelerde olmasına rağmen çalışmada derlenmede sorun çıkartıyor. Ekranın altındaki Payloadı derle seçeneği arayüzden önce payload’ı derleyip hataları size bildiriyor ama dikkatli olmalısınız. Zararlı kodlarınız tehlikeli olabilir. Farklı bir payload yada kod kullanılacak ise IP veya Port bilgilerini el ile giriniz yada ikisinide aynı satırda kullanıcıdan isteyerek IP’nin bulunduğu alana {0} Port içinde {1} isteyiniz. Mevcut payloadları inceleyerek bahsi geçen kullanımı görebilirsiniz. Bir payload kodunun başına // değişkenIsim1,değişkenIsim2 şeklinde içerideki değişkenlerin isimlerini verirseniz program derlemeden önce tüm değişken isimlerini değiştirir ve böylece payload’ınız veya ara yüz yazılımlarını Hash’leri sürekli değişir. Tabi şart değil başına hiçbir şey yapmadan bırakırsanız içeriği değişmez. (Yapılan değişiklikler kaydedilmemektedir). İki slash sonra bir boşluk bırakarak değişken ve sınıf isimlerini yazın. Her isim bir kere listeye eklensin.Aralarında virgül kullanın. Alt satıra inerek tekrar “// ” koyup diğer sınıf ve isimleri yazılabilir. Bir örneği reverse tcp.cs dosyasında mevcut. Arayüz içinde bu işlemi gerçekleştirebilirsiniz.
İkinci bölüm ise “Arayüz” zararlı kodları içeriye fark ettirmeden yerleştirmek için kullanıcıyı meşgul edeceğimiz yazılım. İster çalışsın ister çalışmasın sizlerde oluşturup bu sekmeye yeni arayüzler ekleyebilirsiniz. Bunun için Program lokasyonu altında Interface klasörüne gidiniz ve oraya çalışan bir form uygulamasını tek sınıf içerisinde olacak şekilde kodlarını kaydediniz veya anlık olarak Custom seçerek orada oluşturunuz. Yazılımın çalışma prensibini anlamanız açısından Console(Hello World).cs dosyasını inceleyiniz. Form Ara yüzleri geliştirmek için CrackMe dosyası incelenmeye değer. Zaten komplike bir çalışma prensibi yok. Ağır söz dizimi yok. Eklenti ekranına eklenen yazılımların Flag’larını mantık çerçevesinde kodu bütünleyecek şekilde kullanılması bu programın prensibidir. Farklı bir ara yüz geliştirdiğinizde çalışması size kalır ama bence kullanıcının fark etmemesi açısından mevcut arayüzler işlemlerini yerine getirsin.
Yukarıdaki notepad uygulaması üzerinde yaptığım testler neticesinde. Ara yüz kendini yayabiliyor.
Açıklamak gerekirse Notepad uygulaması her çalıştığında bulunduğu lokasyondaki *.txt uzantılı dosyaların içeriğini kendi kodlarına gömerek kendini aynı isimde derliyor. Arada *.txt dosyasını siliyor.
3 “Eklentiler” Program lokasyonu altında Additions kısmı şimdilik sadece C# için geliştirildi ve diğer dillere eklenti getirmediğimden listelenen lokasyon Additions içerisinde C#.Bu sebepten dolayı payload ve arayüz kodlarınıda C# yapmak zorundasınız. Eklentilerin Flag’larını yani etiketlerini görüyorsunuz alt kısımda kodlarını ve açıklamasını görüyorsunuz Additions altındaki *.cs dosyalarını incelerseniz nasıl bir eklenti geliştirebileceğiniz görebilirsiniz.
4. alan olan çıktı derlenen kodun kendisi etiketler yerleştirilmiş bir ara yüz kodları. Buradan çıktıyı alıp tekrar ara yüz kısmına yerleştirip tekrar etiket koyarak yeni kod üretebilirsiniz. Yayılma özelliği gösteren virüs derlenen basit not defteri ara yüzünde birkaç değişiklik ile çıktı kodlarının Şifreleme sekmesinde şifrelenip tekrar ara yüz kodlarına eklenmesinden oluşuyor.
Son kısım olan Derleme ise programı ve payload’ı derlerken(1. Kısımdaki seçenek işaretli ise) çıkan hataları size gösteriyor.
Proje açık kaynaklı. Program neticesinde çıkan virüsler virüsTotalden çoğunlukla temiz sonuç alıyor.
Şifreli payload kodlarıyla beraber derlenmiş bir matrix kodunun vTotal sonucu.
VirusTotal
Programın derleyip dışarıya çıkardığı payload’ın vTotal sonucu
VirusTotal
Not : Derleme kodları ve işlem başlatma kodundaki virüs.exe değiştirilebilir. Farklı lokasyonlara kaydettirilebilir ve orada çalıştırılabilir.
Derlenmiş çalışabilir yazılım:
GitHub : GitHub - Yusefuyn-14/YK-47CustomProject