What's new
Runion

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Process injection without RWX

cppjunior

Light Weight
Депозит
$0
Есть ли метод инжекта в удаленный процесс без создания rwx памяти (без RW -> RX)?
 
cppjunior сказал(а):
Есть ли метод инжекта в удаленный процесс без создания rwx памяти (без RW -> RX)?

Я уже не один раз писал тут, что всегда можно создать разделяемую между процессами секцию и в свой процесс отобразить ее как RW, а в чужой процесс отобразить ее как RX.
 
DildoFagins сказал(а):
Я уже не один раз писал тут, что всегда можно создать разделяемую между процессами секцию

Я не знаю почему так мало примеров использования секций, но они по сути недооценённый топ) Я вроде только раз видел как их используют для мапа dll в память в профессиональном софте, но не более. Так они ещё и почти не палятся.
 
DildoFagins сказал(а):
Я уже не один раз писал тут, что всегда можно создать разделяемую между процессами секцию и в свой процесс отобразить ее как RW, а в чужой процесс отобразить ее как RX.

Действительно... Даже больше скажу - в чужом процессе можно отобразить секцию просто как X (PAGE_EXECUTE), а потом, после memcpy поменять протекцию в своем процессе на PAGE_NOACCESS Только что протестировал на шеллкоде - так работает) С такой протекцией (PAGE_EXECUTE), получается, отображение секции в удаленном процессе вообще нельзя будет прочитать(аверу)?
Последнее редактирование: 24.12.2023
 
Kernel32dll сказал(а):
С такой протекцией (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;
}


работает метода )
 
Пожалуйста, обратите внимание, что пользователь заблокирован
I Don't this can work How can you execute the code if its does not have execute permission i does not make sense
 
DripLoader/DripLoader/DripLoader.cpp at master · xuanxuan0/DripLoader
Evasive shellcode loader for bypassing event-based injection detection (PoC) - xuanxuan0/DripLoader
github.com

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

а подробнее можно
 
Top