Cheatsheet
  • Introducción
    • 👾Ethical Hacking Cheatsheet
      • 📕Metodología OSSTMM
      • 📘MITRE ATT&CK
      • 🔢Proceso de Pentesting
      • 💻Instalación del entorno
        • 💻Instalación de VMWare
        • 💻Virtualizar Kali Linux
        • 🎨Personalización del entorno
        • 🕷️Máquinas Vulnerables
          • 💣Metasploitable 3
          • 🖖VPLE
          • 🟦Windows 11 Developer
      • 📔Organización y Notas
      • 👜Documentación e informes
        • 👜Documentos iniciales
        • 👜Toma de notas y organización
        • 👜Herramientas de documentación
        • 👜Tipos de informes
        • 👜Componentes de un informe
        • 👜Cómo redactar un hallazgo
        • 👜Consejos y trucos en la realización de informes
        • 👜Caso práctico: Informes
        • 👜CPTS Report
  • Sistemas básicos
    • 🐧Linux
    • 🪟Windows
    • 🔓Puertos y comprobaciones
    • Modos de Red
  • Recopilación de información
    • 🌐Google Hacking
      • 🌐Google Dorks
    • 💻Enumeración
      • 💻Metodología
      • 💻FTP
      • 💻SMB
      • 💻NFS
      • 💻DNS
      • 💻SMTP
      • 💻IMAP/POP3
      • 💻SNMP
      • 💻MySQL
      • 💻MSSQL
      • 💻Oracle TNS
      • 💻IPMI
      • 💻Protocolos de Administración Remota - Linux
      • 💻Protocolos de Administración Remota - Windows
      • 💻Footprinting Lab - Easy
      • 💻Footprinting Lab - Medium
      • 💻Footprinting Lab - Hard
    • 🔎Recopilación de información
      • 🔎Recopilación Pasiva
        • 🔎Subdominios - Pasiva
        • 🔎Identificar Tecnologías
        • 🔎Infraestructura - Pasiva
        • 🔎Fingerprinting
        • 🦭FOCA
      • 💻Recopilación Activa
        • 💻Reconocimiento automatizado
        • 💻Nmap
        • 💻Nmap Scripting Engine
        • 💻Subdominios - Activa
        • 💻Infraestructura - Activa
        • 💻Virtual Hosts
        • 💻Evasión de IDS
        • 💻Escaneo Avanzado
        • 💻Lab - Recopilación
      • 🧠OSINT
        • 🧠Herramientas Genéricas
        • 🧠OSINT a Usernames
        • 🧠OSINT a Teléfonos
        • 🧠OSINT a Emails
        • 🧠OSINT a Dominios
        • 🧠OSINT en Linkedin
        • 🧠OSINT en Instagram
    • 🕸️Fuzzing
      • 🕸️Gobuster
      • 🕸️Ffuf
      • 🕸️Dirsearch
    • 🕸️Crawling
      • 🕸️Web Crawlers
      • 🕸️Herramientas de Crawling
    • ☁️Hacking en CMS
    • 🍏Hacking en MacOS
  • Análisis de vulnerabilidades
    • 👾Análisis de vulnerabilidades
    • 👽Herramientas de Análisis
      • ⚙️Nmap: Análisis
      • ⚙️Nuclei
      • ⚙️OpenVAS
      • ⚙️Nessus
  • Explotación de vulnerabilidades
    • 💣Explotación en Hosts
      • 🔥Acceso básico
      • 🐚Shells y Payloads
        • 🐚Bind Shells
        • 🐚Reverse Shells
        • 🐚Payloads
        • 💣Metasploit Payloads
        • 🐚Tratamiento de la TTY
        • 🐚Webshells
          • 🐚Laudanum
          • 🐚PHP Webshell
        • 💣Lab de explotación
      • 🔎Buscador de exploits
      • 🔑Password Attacks
        • 🔑Cracking de Contraseñas
        • 🔑Bruteforce de Servicios
        • 🔑Login Bruteforce
          • 🔑Ataques de fuerza bruta
          • 🔑Ataques de diccionario
          • 🔑Ataques Híbridos
          • 🔑Bruteforce con Hydra
          • 🔑Autenticación HTTP básica
          • 🔑Formularios de Login
          • 🔑Medusa
        • 🔑Password Mutations
        • 🔑Contraseñas por defecto
        • 🔑Windows Attacks
          • 🔑Atacando a SAM
          • 🔑Atacando a LSASS
          • 🔑Atacando Active Directory
          • 🔑Credential Hunting - Windows
        • 🔑Linux Attacks
          • 🔑Credential Hunting - Linux
          • 🔑Passwd, Shadow y Opasswd
        • 🔑Archivos Protegidos
        • 🔑Archivos Comprimidos
        • 🔑Políticas de Contraseñas
        • 🔑Administradores de Contraseñas
        • 🔑Labs de contraseñas
          • 🔑Lab de contraseñas - Easy
          • 🔑Lab de contraseñas - Medium
          • 🔑Lab de contraseñas - Hard
      • 👾Atacando Servicios Comunes
        • 👾Ataques a FTP
        • 👾Ataques a SMB
        • 👾Ataques a Bases de Datos
        • 👾Ataques a RDP
        • 👾Ataques a DNS
        • 👾Ataques a Emails
        • 👾Labs - Common Services
          • 👾Lab - Easy
          • 👾Lab - Medium
          • 👾Lab - Hard
      • 🔁Pivoting, Tunelling y Port Forwarding
        • 🔁Redes en Pivoting
        • 🔁Port Forwarding
        • 🔁Remote/Reverse Port Forwarding con SSH
        • 🔁Meterpreter Tunneling & Port Forwarding
        • 🔁Pivoting con Socat
        • 🔁SSH para Windows: plink.exe
        • 🔁Pivoting SSH con Sshuttle
        • 🔁Web Server Pivoting con Rpivot
        • 🔁Port Forwarding con Windows Netsh
        • 🔁Túnel DNS con Dnscat2
        • 🔁SOCKS5 Tunneling con Chisel
        • 🔁ICMP Tunneling con SOCKS
        • 🔁RDP y SOCKS Tunneling con SocksOverRDP
        • 🔁Pivoting: Skills Assessment
        • 🔁Port Forwarding dinámico
      • 🧨Metasploit
        • 🧨Metasploit - Atacando Windows
      • ☠️Msfvenom
      • 🐍Hydra
      • ❌BruteX
      • 🔄File Transfers
      • 💿Buffer Overflow en Linux
    • 💣Explotación en Web
      • ⬆️Ataques de subida de archivos
        • ⬆️Ausencia de validación
        • ⬆️Explotación de subida
        • ⬆️Client-Side Validation
        • ⬆️Filtros de Blacklist
        • ⬆️Filtros de Whitelist
        • ⬆️Filtros de tipo
        • ⬆️Cargas de archivos limitadas
        • ⬆️Otros ataques de carga
        • ⬆️Prevención en carga de archivos
        • ⬆️File Uploads - Skills Assessment
      • 🕸️Ataques Web Modernos
        • 🕸️HTTP Verb Tampering
          • 🕸️Bypass de autenticación
          • 🕸️Bypass de Filtros
          • 🕸️Prevención de HTML Verb Tampering
        • 🕸️IDOR
          • 🕸️Identificación de IDOR
          • 🕸️Enumeración de IDOR
          • 🕸️Bypass de referencias codificadas
          • 🕸️IDOR en APIs Inseguras
          • 🕸️Encadenar vulnerabilidades IDOR
          • 🕸️Prevención de IDOR
        • 🕸️XML External Entity (XXE)
          • 🕸️Local File Disclosure
          • 🕸️Advanced File Disclosure
          • 🕸️Blind Data Exfiltration
          • 🕸️Prevención de XXE
        • 🕸️Ataques Web - Skills Assesment
      • 💣Ataques a Aplicaciones Web
        • 🔎Descubrimiento y enumeración de aplicaciones
        • 💣Ataques a CMS
          • 🔎Wordpress - Enumeración
          • 💣Wordpress - Ataques
          • 🔎Joomla - Enumeración
          • 💣Joomla - Ataques
          • 🔎Drupal - Enumeración
          • 💣Drupal - Ataques
        • 💣Ataques a Servlet Containers
          • 🔎Tomcat - Enumeración
          • 💣Tomcat - Ataques
          • 🔎Jenkins - Enumeración
          • 💣Jenkins - Ataques
        • 💣Ataques a herramientas de monitorización
          • 🔎Splunk - Enumeración
          • 💣Splunk - Ataques
          • 💣PTRG Network Monitor
        • 💣Ataques a aplicaciones varias
          • 💣osTicket
          • 🔎GitLab - Enumeración
          • 💣GitLab - Ataques
          • 💣Tomcat CGI
          • 💣Ataques a CGI - Shellshock
          • 💣Ataques a Aplicaciones de Cliente Pesado
          • 💣Vulnerabilidades Web en Aplicaciones de Cliente Pesado
          • 🔎ColdFusion - Enumeración
          • 💣Coldfusion - Ataques
          • 🔎IIS Tilde - Enumeración
          • 💣Asignación masiva de archivos web
          • 💣Ataques a aplicaciones que se conectan a servicios
          • 💣Otras aplicaciones notables
          • 🛡️Hardening de Aplicaciones
        • 💣Labs - Ataques a Aplicaciones
          • 💣Lab - Ataques a Aplicaciones I
          • 💣Lab - Ataques a Aplicaciones II
          • 💣Lab - Ataques a Aplicaciones III
      • 💉SQL Injection
        • 💉SQLMap
          • 💉Introducción a SQLMap
          • 💉SQLMap - HTTP Request
          • 💉SQLMap - Manejo de errores
          • 💉SQLMap - Ajuste del ataque
          • 💉SQLMap - Enumeración Básica
          • 💉SQLMap - Enumeración Avanzada
          • 💉SQLMap - Bypass de protección web
          • 💉SQLMap - Explotación de S.O.
          • 💉SQLMap - Skills Assessment
      • 💉Command Injection
        • 💉Detección
        • 💉Inyectando comandos
        • 💉Otros operadores de inyección
        • 💉Identificación de filtros
        • 💉Bypass de filtros de espacios
        • 💉Bypass de otros caracteres en Blacklist
        • 💉Bypass de comandos en Blacklist
        • 💉Ofuscación de comandos avanzada
        • 💉Herramientas de Ofuscación de comandos
        • 💉Prevención de Command Injection
        • 💉Command Injection - Skills Assesment
      • 📁Local File Inclusion
      • 💿Cross Site Scripting (XSS)
        • 💿XSS Stored
        • 💿XSS Reflected
        • 💿XSS DOM-Based
        • 💿XSS Discovery
        • 💿XSS Payloads
        • 💿Defacing con XSS
        • 💿Phising con XSS
        • 💿Session Hijacking
        • 💿Prevención de XSS
        • 💿XSS - Skills Assessment
      • 💻API Hacking
      • 🔻DDoS Attack
      • 💡Web Proxies
        • 💡Configuración
        • 💡Interceptando solicitudes
        • 💡Interceptar respuestas
        • 💡Modificación automática
        • 💡Solicitudes repetidas
        • 💡Encoding / Decoding
        • 💡Herramientas de Proxy
        • 💡Burp Intruder
        • 💡Zap Fuzzer
        • 💡Burp Scanner
        • 💡Zap Scanner
        • 💡Extensiones
        • 💡Proxy: Skills Assestment
      • 👨‍🍳Cyberchef
    • 💣Explotación en Redes
      • 😎Man in the middle
      • 🎣Phising
        • 🎣Herramientas de Phising
        • 🎣Seeker y Ngrok
        • 🎣Social Engineering Toolkit
        • 🎣Gophish
      • 🤼Ingeniería Social
      • 🔐Bruteforce a RRSS
      • 🌐Hacking WiFi
        • 🌐Conceptos básicos
        • 🌐Redes Básicas
        • 🌐Sniffing
        • 🌐Deauth
        • 🌐Redes ocultas
        • 🌐WEP Cracking
          • 🌐Ataque a WEP
          • 🌐Fake Autentication
          • 🌐Packet Injection
            • 🌐ARP Request Replay
            • 🌐Chop Chop
            • 🌐Fragmentation
          • 🌐Redes SKA
        • 🌐WPS Cracking
        • 🌐WPA/WPA2 Cracking
        • 🌐Wifite
        • 🌐Evil Portal
        • 🌐Rainbow Table
        • 🌐WPA/WPA2 Enterprise
    • 📕Diccionarios Custom
      • 📕Username Anarchy
      • 📕Cupp
      • 📕Crunch
      • 📕CeWL
      • 📕DyMerge
  • Post Explotación
    • 💻Post Explotación
      • 👾Meterpreter
      • 🐈Mimikatz
      • 🔐LaZagne
      • 📩Procdump y lsass.exe
      • ↔️Movimientos Laterales
        • ↔️Pass the Hash (PtH)
        • ↔️Pass the Ticket (PtT) - Windows
        • ↔️Pass the Ticket (PtT) - Linux
      • 🚪Backdoor en binarios
      • 🦅Covenant
      • ⚔️Koadic
      • 💾Bases de datos
        • 💾MySQL
        • 💾PostgreSQL
      • ⚙️P.E. Avanzada
      • 🧼Borrado de evidencias
    • 🌋Escalada de Privilegios
      • 🐧Escalada de privilegios en Linux
        • 🐧Enumeración del entorno
        • 🐧Enumeración de servicios y componentes internos
        • 🐧Búsqueda de credenciales en Linux
        • 🐧Abuso de PATH
        • 🐧Abuso de comodines
        • 🐧Shells restringidos
        • 🐧Permisos especiales
        • 🐧Abuso de permisos Sudo
        • 🐧Grupos privilegiados
        • 🐧Capabilities
        • 🐧Servicios vulnerables
        • 🐧Abuso de Cron
        • 🐧Contenedores
        • 🐧Docker
        • 🐧Kubernetes
        • 🐧Logrotate
        • 🐧Técnicas varias
        • 🐧Exploits del Kernel - Linux
        • 🐧Bibliotecas compartidas
        • 🐧Secuestro de objetos compartidos
        • 🐧Secuestro de librería de Python
        • 🐧Sudo Zeroday
        • 🐧Polkit Zeroday
        • 🐧Dirty Pipe
        • 🐧Netfilter
        • 🐧Hardening en Linux - Privesc
        • 🐧Escalada en Linux - Skills Assesment
        • ⬆️Linpeas
      • 📘Escalada de privilegios en Windows
        • 📘Herramientas útiles
        • 📘Conciencia situacional
        • 📘Enumeración inicial en Windows
        • 📘Enumeración inicial
        • 📘Comunicación con Procesos
        • 📘Privilegios de Usuario en Windows
          • 📘SeImpersonate y SeAssignPrimaryToken
          • 📘SeDebugPrivilege
          • 📘SeTakeOwnershipPrivilege
        • 📘Privilegios de Grupo en Windows
          • 📘Grupos Integrados en Windows
          • 📘Lectores de Registros de Eventos
          • 📘DnsAdmins
          • 📘Hyper-V Administrators
          • 📘Print Operators
          • 📘Server Operators
        • 📘Atacando el Sistema Operativo Windows
          • 📘User Account Control (UAC)
          • 📘Permisos débiles
          • 📘Exploits del Kernel - Windows
          • 📘Servicios vulnerables en Windows
          • 📘DLL Injection
        • 📘Robo de credenciales en Windows
          • 📘Búsqueda de credenciales en Windows
          • 📘Otros archivos interesantes en Windows
          • 📘Otros robos de credenciales en Windows
        • 📘Entornos restrictivos - Citrix
        • 📘Varias técnicas de escalada en Windows
          • 📘Interacción con usuarios
          • 📘Pillaging
          • 📘Técnicas varias
        • 📘Sistemas Operativos Obsoletos
          • 📘Sistemas operativos heredados
          • 📘Windows Server
          • 📘Windows Desktop
        • 📘Hardening en Windows
        • 📘Escalada de privilegios en Windows: Skills Assessment
          • 📘Escenario 1
          • 📘Escenario 2
      • 🔴GTFOBins
  • Evasión de defensas
    • 🛡️Detección y evasión de defensas
      • 🛡️Load Balancing Detector
      • 🛡️Evasión de WAFs
      • 🛡️Evasión de Antivirus
      • 🛡️Herramientas de Evasión
  • Active Directory
    • ☁️Active Directory
      • ☁️Enumeración en AD
        • ☁️AD: Enumeración inicial del dominio
        • ☁️AD: Enumeración de controles de seguridad
        • ☁️AD: Enumeración con credenciales: desde Linux
        • 👁️PowerView
        • ☁️AD: Enumeración con credenciales: desde Windows
        • ☁️AD: Enumeración nativa en Windows
      • ☄️Sniffing desde el Foothold
        • ☄️LLMNR/NBT-NS Poisoning - Desde Linux
        • ☄️LLMNR/NBT-NS Poisoning - Desde Windows
      • 🔫Password Spraying
        • 🔫AD: Políticas de contraseñas
        • 🔫AD: Crear lista de usuarios
        • 🔫Password Spraying Interno - Desde Linux
        • 🔫Password Spraying Interno - Desde Windows
      • 🐺Kerberos
        • ⚔️Hacking en Kerberos
        • ⚔️Kerberoasting desde Linux
        • ⚔️Kerberoasting desde Windows
        • 🗝️Acceso a Credenciales
        • 🗝️Volcado de LSASS y SAM
        • 🗝️Credenciales cacheadas
        • 🗝️Pass the Hash
        • 🪙Token Impersonation
        • 🎟️ASK-TGT
        • 🎫Golden y Silver Tickets
        • 🐺Kerberos "Double Hop"
      • 🦸‍♂️ACLs - Access Control Lists
        • 🦸‍♂️ACLs Vulnerables
        • 🦸‍♂️Enumeración de ACLs
        • 🦸‍♂️Tácticas de abuso de ACLs
      • 🔄DCSync
      • ⬆️Acceso Privilegiado
      • ❤️‍🩹Vulnerabilidades en AD
      • ⚙️Malas configuraciones en AD
      • 🤝Relaciones de confianza
        • 🤝Ataque de confianza de dominio - Desde Windows
        • 🤝Ataque de confianza de dominio - Desde Linux
        • 🤝Abuso de confianza entre bosques - Desde Windows
        • 🤝Abuso de confianza entre bosques - Desde Linux
      • ☁️Vulnerable AD
      • ⬇️SAM
      • 🔐LDAP
        • 🔐Atacando LDAP
      • 🔐NTDS
      • 🔐NTLM/SMB Relay
      • 🩸BloodHound
      • 🛡️Hardening en AD
      • 💻Técnicas adicionales de auditoría en AD
      • 💻AD - Skills Assessment I
      • 💻AD - Skills Assessment II
  • Hacking en entornos reales
    • 🏛️Enterprise Hacking
      • 🏛️Escenario y KickOff
      • 🏛️Enterprise Hacking Checklist
      • 🏛️Pruebas externas
        • 🏛️Recopilación de Información Externa
        • 🏛️Enumeración y explotación de servicios
        • 🏛️Enumeración y explotación web
        • 🏛️Acceso inicial
      • 🏛️Pruebas internas
        • 🏛️Persistencia Post-Explotación
        • 🏛️Recopilación de Información Interna
        • 🏛️Explotación y escalada de privilegios
      • 🏛️Movimiento lateral y escalada de privilegios
        • 🏛️Movimiento lateral
        • 🏛️Comprometiendo Active Directory
        • 🏛️Post Explotación en Active Directory
        • 🏛️Cierre del pentesting
    • ☁️AWS - Amazon Web Services
    • ⚔️Hacking en AWS
  • Anonimato y privacidad
    • 👹Anonimato y Privacidad
      • 🔒VPN
      • 🔒Proxy
      • 🔒Red TOR
      • 🔒Zero Knowledge Services
  • Machine Learning en Hacking
    • 🧠Machine Learning
      • 🧠Batea
      • 💀Pesidious
  • Hardware Hacking
    • 🐬Flipper Zero
      • 🐬Introducción
        • 🐬qFlipper
        • 🐬Instalar qFlipper en Kali Linux
        • 🐬Recuperación de Firmware
      • 📻Sub-GHz
        • 📻Lectura de señales
        • 📻Lectura de señales RAW
        • 📻Añadir nuevos controles remotos
        • 📻Frecuencias
      • ♒RFID de 125 kHz
        • ♒Lectura de tarjetas RFID
        • ♒Añadir tarjetas RFID manualmente
        • ♒Escritura de datos en tarjetas T5577
        • ♒Microchips para animales
      • 💳NFC
        • 💳Lectura de tarjetas NFC
        • 💳Extracción de claves con MFKey32
        • 💳Desbloqueo de tarjetas con contraseñas
        • 💳Escritura de datos en Magic Cards
        • 💳Añadir nuevas tarjetas NFC
      • 🔴Infrarrojos
        • 🔴Lectura de señales infrarrojas
        • 🔴Controles remotos universales
      • 👿Bad USB
        • 👿Script básico de Youtube
        • 👿Bruteforce de Pins
        • 👿RatLocker
      • 🎨Custom Firmwares
      • 🛜GPIO y Módulos
        • 🛜Marauder Firmware
        • 🛜Escaneo de Redes Wifi
        • 🛜Wifi Password Cracking
        • 🛜Evil Portal
      • 🔘iButton
        • 🔘Lectura de llaves iButton
        • 🔘Agregar llaves iButton manualmente
        • 🔘Escritura de datos en llaves iButton
  • Writeups
    • 🟢Hack the Box
      • 🟠Blurry
      • 🟠Hospital
      • 🟠Zipping
      • 🟢Analytics
      • 🟢Bizness
      • 🟢Boardlight
      • 🟢Broker
      • 🟢Chemistry
      • 🟢Codify
      • 🟢CozyHosting
      • 🟢Devvortex
      • 🟢GreenHorn
      • 🟢LinkVortex
      • 🟢PermX
    • 🐋Dockerlabs
      • 🟠Inclusion
      • 🟠Veneno
      • 🟢Hedgehog
      • 🟢Library
      • 🟢Move
      • 🟢Walking CMS
    • 🌩️TryHackMe
      • 🟠Attracktive Directory
    • 🌐Over The Wire
      • 🌐Bandit
      • 🌐Natas
Con tecnología de GitBook
En esta página
  • Pasos del pentesting
  • Recopilación de información
  • Ataques del lado del cliente
  • Ataques del lado de la red
  • Ataques del lado del servidor
  • Recuperación de credenciales codificadas de aplicaciones de cliente pesado
  • Caso práctico
  • Conexión por RDP
  • Análisis con x64dbg

¿Te fue útil?

  1. Explotación de vulnerabilidades
  2. Explotación en Web
  3. Ataques a Aplicaciones Web
  4. Ataques a aplicaciones varias

Ataques a Aplicaciones de Cliente Pesado

AnteriorAtaques a CGI - ShellshockSiguienteVulnerabilidades Web en Aplicaciones de Cliente Pesado

Última actualización hace 4 meses

¿Te fue útil?

Las aplicaciones de cliente pesado son las aplicaciones que se instalan localmente en nuestros equipos. A diferencia de las aplicaciones de cliente ligero que se ejecutan en un servidor remoto y a las que se puede acceder a través del navegador web, estas aplicaciones no requieren acceso a Internet para ejecutarse y tienen un mejor rendimiento en cuanto a potencia de procesamiento, memoria y capacidad de almacenamiento. Las aplicaciones de cliente pesado suelen ser aplicaciones que se utilizan en entornos empresariales creados para cumplir fines específicos. Entre estas aplicaciones se incluyen sistemas de gestión de proyectos, sistemas de gestión de relaciones con los clientes, herramientas de gestión de inventario y otro software de productividad. Estas aplicaciones suelen desarrollarse utilizando Java, C++, .NET o Microsoft Silverlight.

Una medida de seguridad crítica que, por ejemplo, Java tiene es una tecnología llamada sandbox. El sandbox es un entorno virtual que permite que el código no confiable, como el código descargado de Internet, se ejecute de forma segura en el sistema de un usuario sin representar un riesgo de seguridad. Además, aísla el código no confiable, impidiéndole acceder o modificar los recursos del sistema y otras aplicaciones sin la debida autorización. Además de eso, también existen Java API restrictions y Code Signing que ayudan a crear un entorno más seguro.

En un .NETentorno, un cliente thick client, también conocido como cliente rich fat, se refiere a una aplicación que realiza una cantidad significativa de procesamiento en el lado del cliente en lugar de depender únicamente del servidor para todas las tareas de procesamiento. Como resultado, los clientes pesados ​​pueden proporcionar un mejor rendimiento, más funciones y experiencias de usuario mejoradas en comparación con sus contrapartes thin client, que dependen en gran medida del servidor para el procesamiento y el almacenamiento de datos.

Algunos ejemplos de aplicaciones de cliente pesado son los navegadores web, los reproductores multimedia, el software de chat y los videojuegos. Algunas aplicaciones de cliente pesado suelen estar disponibles para comprar o descargar de forma gratuita a través de su sitio web oficial o de tiendas de aplicaciones de terceros, mientras que otras aplicaciones personalizadas que se han creado para una empresa específica se pueden entregar directamente desde el departamento de TI que ha desarrollado el software. La implementación y el mantenimiento de aplicaciones de cliente pesado puede ser más difícil que las aplicaciones de cliente ligero, ya que los parches y las actualizaciones deben realizarse localmente en la computadora del usuario.

Características

Algunas características de las aplicaciones de cliente pesado son:

  • Software independiente.

  • Trabajando sin acceso a internet.

  • Almacenamiento de datos localmente.

  • Menos seguro.

  • Consumiendo más recursos.

  • Más caro.

Las aplicaciones de cliente pesado se pueden clasificar en arquitectura de dos y tres niveles. En la arquitectura de dos niveles, la aplicación se instala localmente en el equipo y se comunica directamente con la base de datos. En la arquitectura de tres niveles, las aplicaciones también se instalan localmente en el equipo, pero para interactuar con las bases de datos, primero se comunican con un servidor de aplicaciones, generalmente mediante el protocolo HTTP/HTTPS.

En este caso, el servidor de aplicaciones y la base de datos pueden estar ubicados en la misma red o en Internet. Esto es algo que hace que la arquitectura de tres niveles sea más segura, ya que los atacantes no podrán comunicarse directamente con la base de datos. La siguiente imagen muestra las diferencias entre las aplicaciones de arquitectura de dos y tres niveles.

niveles de arquitectura

Dado que una gran parte de las aplicaciones de cliente pesado se descargan de Internet, no hay una forma suficiente de garantizar que los usuarios descarguen la aplicación oficial, lo que plantea problemas de seguridad. Las vulnerabilidades específicas de la Web, como XSS, CSRF y Clickjacking, no se aplican a las aplicaciones de cliente pesado. Sin embargo, se considera que las aplicaciones de cliente pesado son menos seguras que las aplicaciones web y se les pueden aplicar muchos ataques, entre ellos:

  • Manejo inadecuado de errores

  • Datos confidenciales codificados de forma rígida

  • Secuestro de DLL

  • Buffer Overflow

  • Inyección SQL

  • Almacenamiento inseguro

  • Gestión de sesiones


Pasos del pentesting

Las aplicaciones de cliente pesado se consideran más complejas que otras y la superficie de ataque puede ser grande. Las pruebas de penetración de aplicaciones de cliente pesado se pueden realizar tanto con herramientas automatizadas como de forma manual. Por lo general, se siguen los siguientes pasos al probar aplicaciones de cliente pesado.

Recopilación de información

Ataques del lado del cliente

Aunque los clientes pesados ​​realizan un procesamiento y almacenamiento de datos significativos en el lado del cliente, aún se comunican con los servidores para diversas tareas, como la sincronización de datos o el acceso a recursos compartidos. Esta interacción con servidores y otros sistemas externos puede exponer a los clientes pesados ​​a vulnerabilidades similares a las que se encuentran en las aplicaciones web, incluidas la inyección de comandos, el control de acceso débil y la inyección SQL.

La información confidencial, como nombres de usuario y contraseñas, tokens o cadenas para la comunicación con otros servicios, se puede almacenar en los archivos locales de la aplicación. Las credenciales codificadas y otra información confidencial también se pueden encontrar en el código fuente de la aplicación, por lo que el análisis estático es un paso necesario durante la prueba de la aplicación. Con las herramientas adecuadas, podemos realizar ingeniería inversa y examinar aplicaciones .NET y Java, incluidos EXE, DLL, JAR, CLASS, WAR y otros formatos de archivo. El análisis dinámico también se debe realizar en este paso, ya que las aplicaciones de cliente pesado también almacenan información confidencial en la memoria.

Ataques del lado de la red

Si la aplicación se comunica con un servidor local o remoto, el análisis del tráfico de red nos ayudará a capturar información confidencial que podría transferirse a través de una conexión HTTP/HTTPS o TCP/UDP, y nos permitirá comprender mejor cómo funciona esa aplicación. Los pentesters que realizan análisis de tráfico en aplicaciones de cliente pesado deben estar familiarizados con herramientas como:

Ataques del lado del servidor

Los ataques del lado del servidor en aplicaciones de cliente pesado son similares a los ataques a aplicaciones web, y los pentesters deben prestar atención a los más comunes, incluidos la mayoría de los diez principales de OWASP.


Recuperación de credenciales codificadas de aplicaciones de cliente pesado

El siguiente escenario nos muestra cómo enumerar y explotar una aplicación cliente pesada para poder movernos lateralmente dentro de una red corporativa durante una prueba de penetración. El escenario comienza después de haber obtenido acceso a un servicio SMB expuesto.

Al explorar el recurso compartido NETLOGON del servicio SMB se revelan RestartOracle-Service.exe, entre otros archivos, que al descargar el ejecutable localmente y ejecutarlo a través de la línea de comandos, parece que no se ejecuta o que ejecuta algo oculto.

C:\Apps>.\Restart-OracleService.exe
C:\Apps>

Para poder capturar los archivos, es necesario cambiar los permisos de la carpeta Temp para no permitir la eliminación de archivos. Para ello, hacemos clic derecho sobre la carpeta C:\Users\Matt\AppData\Local\Temp y en Properties-> Security-> Advanced-> cybervaca-> Disable inheritance-> Convert inherited permissions into explicit permissions on this object-> Edit-> Show advanced permissions, desmarcamos las casillas Delete subfolders and files, y .Delete

Finalmente, hacemos clic en OK-> Apply-> OK-> OK en las ventanas abiertas. Una vez aplicados los permisos de carpeta, simplemente ejecutamos nuevamente el Restart-OracleService.exe y verificamos la carpeta temp. El archivo 6F39.bat se crea bajo el nombre C:\Users\cybervaca\AppData\Local\Temp\2. Los nombres de los archivos generados son aleatorios cada vez que se ejecuta el servicio.

C:\Apps> dir C:\Users\cybervaca\AppData\Local\Temp\2

...SNIP...
04/03/2023  02:09 PM         1,730,212 6F39.bat
04/03/2023  02:09 PM                 0 6F39.tmp

Al enumerar el contenido del archivo 6F39 por lotes se revela lo siguiente.

@shift /0
@echo off

if %username% == matt goto correcto
if %username% == frankytech goto correcto
if %username% == ev4si0n goto correcto
goto error

:correcto
echo TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA > c:\programdata\oracle.txt
echo AAAAAAAAAAgAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4g >> c:\programdata\oracle.txt
<SNIP>
echo AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA >> c:\programdata\oracle.txt

echo $salida = $null; $fichero = (Get-Content C:\ProgramData\oracle.txt) ; foreach ($linea in $fichero) {$salida += $linea }; $salida = $salida.Replace(" ",""); [System.IO.File]::WriteAllBytes("c:\programdata\restart-service.exe", [System.Convert]::FromBase64String($salida)) > c:\programdata\monta.ps1
powershell.exe -exec bypass -file c:\programdata\monta.ps1
del c:\programdata\monta.ps1
del c:\programdata\oracle.txt
c:\programdata\restart-service.exe
del c:\programdata\restart-service.exe

Al inspeccionar el contenido del archivo, se revela que el archivo por lotes está eliminando dos archivos antes de que alguien pueda acceder a los que quedan. Podemos intentar recuperar el contenido de los dos archivos modificando el script por lotes y eliminando la eliminación.

@shift /0
@echo off

echo TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA > c:\programdata\oracle.txt
echo AAAAAAAAAAgAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4g >> c:\programdata\oracle.txt
<SNIP>
echo AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA >> c:\programdata\oracle.txt

echo $salida = $null; $fichero = (Get-Content C:\ProgramData\oracle.txt) ; foreach ($linea in $fichero) {$salida += $linea }; $salida = $salida.Replace(" ",""); [System.IO.File]::WriteAllBytes("c:\programdata\restart-service.exe", [System.Convert]::FromBase64String($salida)) > c:\programdata\monta.ps1

Después de ejecutar el script por lotes haciendo doble clic en él, esperamos unos minutos para localizar el archivo oracle.txt que contiene otro archivo lleno de líneas base64 y el script monta.ps1 que contiene el siguiente contenido, bajo el directorio c:\programdata\. Al enumerar el contenido del archivo monta.ps1, se revela el siguiente código.

C:\>  cat C:\programdata\monta.ps1

$salida = $null; $fichero = (Get-Content C:\ProgramData\oracle.txt) ; foreach ($linea in $fichero) {$salida += $linea }; $salida = $salida.Replace(" ",""); [System.IO.File]::WriteAllBytes("c:\programdata\restart-service.exe", [System.Convert]::FromBase64String($salida))

Este script simplemente lee el contenido del archivo oracle.txt y lo decodifica en un ejecutable restart-service.exe. Al ejecutar este script obtenemos un ejecutable final que podemos analizar más a fondo.

C:\>  ls C:\programdata\

Mode                LastWriteTime         Length Name
<SNIP>
-a----        3/24/2023   1:01 PM            273 monta.ps1
-a----        3/24/2023   1:01 PM         601066 oracle.txt
-a----        3/24/2023   1:17 PM         432273 restart-service.exe

Ahora al ejecutar restart-service.exe se nos presenta el banner Restart Oracle creado HelpDesk en el año 2010.

C:\>  .\restart-service.exe

    ____            __             __     ____                  __
   / __ \___  _____/ /_____ ______/ /_   / __ \_________ ______/ /__
  / /_/ / _ \/ ___/ __/ __ `/ ___/ __/  / / / / ___/ __ `/ ___/ / _ \
 / _, _/  __(__  ) /_/ /_/ / /  / /_   / /_/ / /  / /_/ / /__/ /  __/
/_/ |_|\___/____/\__/\__,_/_/   \__/   \____/_/   \__,_/\___/_/\___/

                                                by @HelpDesk 2010


PS C:\ProgramData>

Al inspeccionar la ejecución del ejecutable ProcMon64 se ve que está consultando varias cosas en el registro y no muestra nada sólido en qué basarse.

Comencemos con x64dbg, navegue hasta Options-> Preferences y desmarque todo excepto Exit Breakpoint:

Desmarcando el resto de opciones, la depuración comenzará directamente desde el punto de salida de la aplicación, y evitaremos pasar por cualquier archivo dll que se cargue antes de que se inicie la aplicación. Luego, podemos seleccionar file-> open y seleccionar el restart-service.exe para importarlo y comenzar la depuración. Una vez importado, hacemos clic derecho dentro de la vista CPUy Follow in Memory Map:

Al verificar los mapas de memoria en esta etapa de la ejecución, es de particular interés el mapa con un tamaño de 0000000000003000 con tipo MAP y protección establecida en -RW--.

Los archivos asignados a la memoria permiten que las aplicaciones accedan a archivos grandes sin tener que leer o escribir todo el archivo en la memoria a la vez. En cambio, el archivo se asigna a una región de la memoria que la aplicación puede leer y escribir como si fuera un búfer normal en la memoria. Este podría ser un lugar donde buscar credenciales codificadas.

Regresemos al panel Mapa de memoria y exportemos el elemento mapeado recientemente descubierto desde la memoria a un archivo de volcado haciendo clic derecho en la dirección y seleccionando Dump Memory to File. Al ejecutar strings en el archivo exportado se revela información interesante.

C:\> C:\TOOLS\Strings\strings64.exe .\restart-service_00000000001E0000.bin

<SNIP>
"#M
z\V
).NETFramework,Version=v4.0,Profile=Client
FrameworkDisplayName
.NET Framework 4 Client Profile
<SNIP>

La lectura del resultado revela que el volcado contiene un ejecutable .NET. Podemos usar De4Dot para revertir los ejecutables .NET al código fuente arrastrando restart-service_00000000001E0000.bin al ejecutable de de4dot.

de4dot v3.1.41592.3405

Detected Unknown Obfuscator (C:\Users\cybervaca\Desktop\restart-service_00000000001E0000.bin)
Cleaning C:\Users\cybervaca\Desktop\restart-service_00000000001E0000.bin
Renaming all obfuscated symbols
Saving C:\Users\cybervaca\Desktop\restart-service_00000000001E0000-cleaned.bin


Press any key to exit...

Ahora, podemos leer el código fuente de la aplicación exportada arrastrándolo y soltándolo en el ejecutable DnSpy.

Con el código fuente revelado, podemos entender que este binario es un archivo personalizado runas.exe con el único propósito de reiniciar el servicio de Oracle utilizando credenciales codificadas.


Caso práctico

Objetivo: 10.129.228.115 (ACADEMY-ACA-PIVOTAPI) 

RDP a 10.129.228.115 (ACADEMY-ACA-PIVOTAPI)
Usuario "cybervaca"
Contraseña "&aue%C)}6g-d{w"

Realiza un análisis de C:\Apps\Restart-OracleService.exe e identifica las credenciales ocultas en su código fuente. Envía la respuesta con el formato username:pasword.

Conexión por RDP

xfreerdp /v:10.129.228.115 /u:cybervaca /p:'&aue%C)}6g-d{w'

Analizando el ejecutable con procmon vemos que crea un archivo en la ruta:

C:\Users\cybervaca\AppData\Local\Temp\2\A5B3.tmp\A5B4.tmp\A5B5.bat

Para poder capturar los archivos, es necesario cambiar los permisos de la carpeta Temp para no permitir la eliminación de archivos. Para ello primero debemos permitir ver los archivos ocultos:

Ahora hacemos clic derecho sobre la carpeta C:\Users\cybervaca\AppData\Local\Temp y en Properties-> Security-> Advanced-> cybervaca-> Disable inheritance-> Convert inherited permissions into explicit permissions on this object-> Edit-> Show advanced permissions, desmarcamos las casillas Delete subfolders and files, y Delete

PS C:\Users\cybervaca\AppData\Local\Temp\2> dir

    Directory: C:\Users\cybervaca\AppData\Local\Temp\2

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        1/28/2025   1:18 AM                hsperfdata_cybervaca
-a----        1/28/2025   1:46 AM        1730212 6B8A.bat
-a----        1/28/2025   1:46 AM              0 6B8A.tmp
-a----        1/28/2025   1:18 AM          12330 jusched.log
-a----        1/28/2025   1:46 AM             80 __PSScriptPolicyTest_mzlr4et0.cjn.psm1
-a----        1/28/2025   1:46 AM             80 __PSScriptPolicyTest_zxtlr4pt.zvk.ps1

Al leer el archivo 6B8A.bat se revela que el archivo por lotes está eliminando dos archivos antes de que alguien pueda acceder a los que quedan.

echo AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA >> c:\programdata\oracle.txt
echo AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA >> c:\programdata\oracle.txt
echo AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA >> c:\programdata\oracle.txt

echo $salida = $null; $fichero = (Get-Content C:\ProgramData\oracle.txt) ; foreach ($linea in $fichero) {$salida += $linea }; $salida = $salida.Replace(" ",""); [System.IO.File]::WriteAllBytes("c:\programdata\restart-service.exe", [System.Convert]::FromBase64String($salida)) > c:\programdata\monta.ps1
powershell.exe -exec bypass -file c:\programdata\monta.ps1
del c:\programdata\monta.ps1
del c:\programdata\oracle.txt
c:\programdata\restart-service.exe
del c:\programdata\restart-service.exe

Podemos intentar recuperar el contenido de los dos archivos modificando el script por lotes y eliminando la eliminación. Podemos usar notepad por ejemplo.

6B8A.bat
@shift /0
@echo off

echo TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA > c:\programdata\oracle.txt
echo AAAAAAAAAAgAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4g >> c:\programdata\oracle.txt

<SNIP>

echo AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA >> c:\programdata\oracle.txt

echo $salida = $null; $fichero = (Get-Content C:\ProgramData\oracle.txt) ; foreach ($linea in $fichero) {$salida += $linea }; $salida = $salida.Replace(" ",""); [System.IO.File]::WriteAllBytes("c:\programdata\restart-service.exe", [System.Convert]::FromBase64String($salida)) > c:\programdata\monta.ps1

Después de ejecutar el script por lotes haciendo doble clic en él, esperamos unos minutos para localizar el archivo oracle.txt en C:\ProgramData que contiene otro archivo lleno de líneas en base64 y el script monta.ps1 eno el directorio c:\programdata\.

El archivo oracle.txt parece que contiene algún tipo de malware ofuscado y codificado en base64:

Al enumerar el contenido del archivo monta.ps1, se revela el siguiente código.

$salida = $null; $fichero = (Get-Content C:\ProgramData\oracle.txt) ; foreach ($linea in $fichero) {$salida += $linea }; $salida = $salida.Replace(" ",""); [System.IO.File]::WriteAllBytes("c:\programdata\restart-service.exe", [System.Convert]::FromBase64String($salida)) 

Este script simplemente lee el contenido del archivo oracle.txt y lo decodifica en un ejecutable restart-service.exe. Al ejecutar este script obtenemos un ejecutable final que podemos analizar más a fondo.

C: > ls C:\programdata\

    Directory: C:\programdata

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        1/30/2025   8:30 PM            273 monta.ps1
-a----        1/30/2025   8:30 PM        1202440 oracle.txt
-a----        1/30/2025   8:33 PM         864768 restart-service.exe

Al ejecutarlo solo muestra un banner:

PS C:\ProgramData> .\restart-service.exe

    ____            __             __     ____                  __
   / __ \___  _____/ /_____ ______/ /_   / __ \_________ ______/ /__
  / /_/ / _ \/ ___/ __/ __ `/ ___/ __/  / / / / ___/ __ `/ ___/ / _ \
 / _, _/  __(__  ) /_/ /_/ / /  / /_   / /_/ / /  / /_/ / /__/ /  __/
/_/ |_|\___/____/\__/\__,_/_/   \__/   \____/_/   \__,_/\___/_/\___/

                                                by @HelpDesk 2010

PS C:\ProgramData>

Análisis con x64dbg

Vamos hasta Options-> Preferences y desmarcamos todo excepto Exit Breakpoint:

Una vez importado el ejecutable, hacemos clic derecho dentro de la vista CPU y Follow in Memory Map:

Al verificar los mapas de memoria en esta etapa de la ejecución, es de particular interés el mapa con un tamaño de 0000000000003000 con tipo MAP y protección establecida en -RW--.

Hacemos click derecho sobre el y creamos un archivo de volcado:

Eso nos genera el archivo: restart-service_00000000009C0000.bin

PS C:\Users\cybervaca\AppData> dir

    Directory: C:\Users\cybervaca\AppData

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        3/22/2023  12:54 PM                Local
d-----        3/22/2023   2:12 PM                LocalLow
d-----        3/27/2023  11:00 AM                Roaming
-a----        1/30/2025   8:45 PM          12288 restart-service_00000000009C0000.bin

Al ejecutar strings en el archivo exportado se revela información interesante.

C:\> C:\TOOLS\Strings\strings64.exe .\restart-service_00000000009C0000.bin

<SNIP>
"#M
z\V
).NETFramework,Version=v4.0,Profile=Client
FrameworkDisplayName
.NET Framework 4 Client Profile
<SNIP>

La lectura del resultado revela que el volcado contiene un ejecutable .NET. Podemos usar De4Dot para revertir los ejecutables .NET al código fuente pasándole el archivo restart-service_00000000009C0000.bin al ejecutable de de4dot:

PS C:\TOOLS\de4dot> .\de4dot.exe 'C:\Users\cybervaca\AppData\restart-service_00000000009C0000.bin'

de4dot v3.1.41592.3405  
 
Detected Unknown Obfuscator (C:\Users\cybervaca\AppData\restart-service_00000000009C0000.bin)
Cleaning C:\Users\cybervaca\AppData\restart-service_00000000009C0000.bin                                                                       Renaming all obfuscated symbols
Saving C:\Users\cybervaca\AppData\restart-service_00000000009C0000-cleaned.bin

Press any key to exit... 

Ahora, podemos leer el código fuente de la aplicación exportada arrastrándolo y soltándolo en el ejecutable DnSpy, con lo que obtenemos las credenciales:

En este paso, los pentesters deben identificar la arquitectura de la aplicación, los lenguajes de programación y los marcos de trabajo que se han utilizado, y comprender cómo funcionan la aplicación y la infraestructura. También deben identificar las tecnologías que se utilizan en el lado del cliente y del servidor y encontrar los puntos de entrada y las entradas de los usuarios. Los evaluadores también deben intentar identificar vulnerabilidades comunes como las que mencionamos anteriormente al final de la sección . Las siguientes herramientas nos ayudarán a recopilar información.

Al descargar la herramienta ProcMon64 desde y monitorear el proceso se revela que el ejecutable efectivamente crea un archivo temporal en formato C:\Users\Matt\AppData\Local\Temp.

procmon
cambiar-permisos
reinicio del proceso
texto
Banner de GDB
mapas

Si hacemos doble clic sobre él, veremos los magic bytes MZ en la columna ASCII que indica que el archivo es un .

bytes mágicos_3
código fuente oculto
Banner de GDB
Acerca de
SysInternals
ejecutable DOS MZ
CFF Explorer
Detect It Easy
Process Monitor
Strings
Ghidra
IDA
OllyDbg
Radare2
dnSpy
x64dbg
JADX
Frida
Wireshark
tcpdump
TCPView
Burp Suite
💣
💣
💣
💣
Page cover image