Aprende hacking en AWS de cero a héroe con htARTE (Experto en Red Team de AWS de HackTricks)! Otras formas de apoyar a HackTricks: * Si quieres ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)! * Obtén el [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com) * Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos * **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Comparte tus trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
Encuentra vulnerabilidades que importan más para que puedas solucionarlas más rápido. Intruder rastrea tu superficie de ataque, ejecuta escaneos proactivos de amenazas, encuentra problemas en toda tu pila tecnológica, desde APIs hasta aplicaciones web y sistemas en la nube. [**¡Pruébalo gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) hoy. {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %} *** # Genérico ## Redes | Raw Sockets | WinAPI Sockets | | ------------- | -------------- | | socket() | WSAStratup() | | bind() | bind() | | listen() | listen() | | accept() | accept() | | connect() | connect() | | read()/recv() | recv() | | write() | send() | | shutdown() | WSACleanup() | ## Persistencia | Registro | Archivo | Servicio | | ---------------- | ------------- | ---------------------------- | | RegCreateKeyEx() | GetTempPath() | OpenSCManager | | RegOpenKeyEx() | CopyFile() | CreateService() | | RegSetValueEx() | CreateFile() | StartServiceCtrlDispatcher() | | RegDeleteKeyEx() | WriteFile() | | | RegGetValue() | ReadFile() | | ## Encriptación | Nombre | | --------------------- | | WinCrypt | | CryptAcquireContext() | | CryptGenKey() | | CryptDeriveKey() | | CryptDecrypt() | | CryptReleaseContext() | ## Anti-Análisis/VM | Nombre de la Función | Instrucciones de Ensamblaje | | --------------------------------------------------------- | --------------------------- | | IsDebuggerPresent() | CPUID() | | GetSystemInfo() | IN() | | GlobalMemoryStatusEx() | | | GetVersion() | | | CreateToolhelp32Snapshot \[Verificar si un proceso está en ejecución] | | | CreateFileW/A \[Verificar si un archivo existe] | | ## Sigilo | Nombre | | | ------------------------ | -------------------------------------------------------------------------- | | VirtualAlloc | Asignar memoria (empaquetadores) | | VirtualProtect | Cambiar permisos de memoria (empaquetador dando permiso de ejecución a una sección) | | ReadProcessMemory | Inyección en procesos externos | | WriteProcessMemoryA/W | Inyección en procesos externos | | NtWriteVirtualMemory | | | CreateRemoteThread | Inyección de DLL/proceso... | | NtUnmapViewOfSection | | | QueueUserAPC | | | CreateProcessInternalA/W | | ## Ejecución | Nombre de la Función | | ----------------------- | | CreateProcessA/W | | ShellExecute | | WinExec | | ResumeThread | | NtResumeThread | ## Varios * GetAsyncKeyState() -- Registro de teclas * SetWindowsHookEx -- Registro de teclas * GetForeGroundWindow -- Obtener nombre de la ventana en ejecución (o el sitio web desde un navegador) * LoadLibrary() -- Importar biblioteca * GetProcAddress() -- Importar biblioteca * CreateToolhelp32Snapshot() -- Listar procesos en ejecución * GetDC() -- Captura de pantalla * BitBlt() -- Captura de pantalla * InternetOpen(), InternetOpenUrl(), InternetReadFile(), InternetWriteFile() -- Acceder a Internet * FindResource(), LoadResource(), LockResource() -- Acceder a recursos del ejecutable # Técnicas de Malware ## Inyección de DLL Ejecutar una DLL arbitraria dentro de otro proceso 1. Localizar el proceso para inyectar la DLL maliciosa: CreateToolhelp32Snapshot, Process32First, Process32Next 2. Abrir el proceso: GetModuleHandle, GetProcAddress, OpenProcess 3. Escribir la ruta de la DLL dentro del proceso: VirtualAllocEx, WriteProcessMemory 4. Crear un hilo en el proceso que cargará la DLL maliciosa: CreateRemoteThread, LoadLibrary Otras funciones a utilizar: NTCreateThreadEx, RtlCreateUserThread ## Inyección de DLL Reflectante Cargar una DLL maliciosa sin llamar a las llamadas normales de la API de Windows.\ La DLL se mapea dentro de un proceso, resolverá las direcciones de importación, corregirá las reubicaciones y llamará a la función DllMain. ## Secuestro de Hilo Encontrar un hilo de un proceso y hacer que cargue una DLL maliciosa 1. Encontrar un hilo objetivo: CreateToolhelp32Snapshot, Thread32First, Thread32Next 2. Abrir el hilo: OpenThread 3. Suspender el hilo: SuspendThread 4. Escribir la ruta de la DLL maliciosa dentro del proceso víctima: VirtualAllocEx, WriteProcessMemory 5. Reanudar el hilo cargando la biblioteca: ResumeThread ## Inyección PE Inyección de Ejecución Portátil: El ejecutable se escribirá en la memoria del proceso víctima y se ejecutará desde allí. ## Vaciamiento de Proceso El malware desmapeará el código legítimo de la memoria del proceso y cargará un binario malicioso 1. Crear un nuevo proceso: CreateProcess 2. Desmapear la memoria: ZwUnmapViewOfSection, NtUnmapViewOfSection 3. Escribir el binario malicioso en la memoria del proceso: VirtualAllocEc, WriteProcessMemory 4. Establecer el punto de entrada y ejecutar: SetThreadContext, ResumeThread # Enganche * La **SSDT** (**Tabla de Descriptores de Servicios del Sistema**) apunta a funciones del kernel (ntoskrnl.exe) o controlador GUI (win32k.sys) para que los procesos de usuario puedan llamar a estas funciones. * Un rootkit puede modificar estos punteros a direcciones que él controla * **IRP** (**Paquetes de Solicitud de E/S**) transmiten fragmentos de datos de un componente a otro. Casi todo en el kernel utiliza IRPs y cada objeto de dispositivo tiene su propia tabla de funciones que se pueden enganchar: DKOM (Manipulación Directa de Objetos del Kernel) * La **IAT** (**Tabla de Direcciones de Importación**) es útil para resolver dependencias. Es posible enganchar esta tabla para secuestrar el código que se llamará. * **EAT** (**Tabla de Direcciones de Exportación**) Hooks. Estos ganchos se pueden hacer desde el **espacio de usuario**. El objetivo es enganchar funciones exportadas por DLLs. * **Ganchos en línea**: Este tipo es difícil de lograr. Esto implica modificar el código de las funciones en sí. Tal vez poniendo un salto al principio de esto.
Encuentra vulnerabilidades que importan más para que puedas solucionarlas más rápido. Intruder rastrea tu superficie de ataque, ejecuta escaneos proactivos de amenazas, encuentra problemas en toda tu pila tecnológica, desde APIs hasta aplicaciones web y sistemas en la nube. [**¡Pruébalo gratis**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) hoy. {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
Aprende hacking en AWS de cero a héroe con htARTE (Experto en Red Team de AWS de HackTricks)! Otras formas de apoyar a HackTricks: * Si quieres ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)! * Obtén el [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com) * Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos * **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Comparte tus trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.