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

Process injection without RWX

Пожалуйста, обратите внимание, что пользователь заблокирован
Есть ли метод инжекта в удаленный процесс без создания rwx памяти (без RW -> RX)?
Я уже не один раз писал тут, что всегда можно создать разделяемую между процессами секцию и в свой процесс отобразить ее как RW, а в чужой процесс отобразить ее как RX.
 
Я уже не один раз писал тут, что всегда можно создать разделяемую между процессами секцию
Я не знаю почему так мало примеров использования секций, но они по сути недооценённый топ) Я вроде только раз видел как их используют для мапа dll в память в профессиональном софте, но не более. Так они ещё и почти не палятся.
 
Есть ли метод инжекта в удаленный процесс без создания rwx памяти (без RW -> RX)?
Статья про инжект через создание двух отображений секции https://phasetw0.com/malware/section-code-injection/
 
Пожалуйста, обратите внимание, что пользователь заблокирован
С такой протекцией (PAGE_EXECUTE), получается, отображение секции в удаленном процессе вообще нельзя будет прочитать(аверу)?
Такой говоришь аверу: "бро, не читай, плизь, мою память", а он берет и не читает, вот это был бы идеальный мир для малвари...
 
C++:
// Process 1 (RW access)
#include <windows.h>
#include <iostream>

int main()
{
    HANDLE hSection = CreateFileMappingW(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(int), L"SharedSectionName");
    if (hSection == NULL)
    {
        // Обработка ошибки
        return 1;
    }

    int* pData = (int*)MapViewOfFile(hSection, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(int));
    if (pData == NULL)
    {
        // Обработка ошибки
        CloseHandle(hSection);
        return 1;
    }

    // Использование разделяемой секции с RW доступом
    *pData = 42;

    std::cout << "Variable used successfully. Value: " << *pData << std::endl;

    UnmapViewOfFile(pData);
    system("pause");

    CloseHandle(hSection);

    return 0;
}

C++:
// Process 2 (RX access)
#include <windows.h>
#include <iostream>

int main()
{
    HANDLE hSection = OpenFileMappingW(FILE_MAP_READ, FALSE, L"SharedSectionName");
    if (hSection == NULL)
    {
        // Обработка ошибки
        return 1;
    }

    int* pData = (int*)MapViewOfFile(hSection, FILE_MAP_READ, 0, 0, sizeof(int));
    if (pData == NULL)
    {
        // Обработка ошибки
        CloseHandle(hSection);
        return 1;
    }

    // Использование разделяемой секции с RX доступом
    int value = *pData;

    std::cout << "Variable used successfully. Value: " << value << std::endl;

    UnmapViewOfFile(pData);
    system("pause");
    CloseHandle(hSection);

    return 0;
}


работает метода )
 
Вы используете Windows или Linux? Вам стоит учитывать ROP-цепи. Вы будете использовать существующий законный код только путем написания в виртуальную память процесса, без необходимости использования VirtualAllocEx/VirtualProtectEx/CreateRemoteThread.
 
Вы используете Windows или Linux? Вам стоит учитывать ROP-цепи. Вы будете использовать существующий законный код только путем написания в виртуальную память процесса, без необходимости использования VirtualAllocEx/VirtualProtectEx/CreateRemoteThread.
а подробнее можно
 


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