🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónLeer un script de PowerShell bloque a bloque
5 tareas · 40 min · Principiante
Un script es texto, y el texto se puede leer sin ejecutarlo. En Imprenta Sibaté el antivirus apartó un archivo de PowerShell que llegó adjunto a un correo de cobranza. Aquí aprendes el método con el que se lee: bloques de pocas líneas, una frase por bloque, y tres columnas siempre separadas, lo que el texto dice, lo que dejaría en un equipo y lo que no se puede saber. El script no se ejecuta nunca: se lee su texto, ya copiado a la estación.
Objetivo de la sala
Un script es texto, y el texto se puede leer sin ejecutarlo. En Imprenta Sibaté el antivirus apartó un archivo de PowerShell que llegó adjunto a un correo de cobranza. Aquí aprendes el método con el que se lee: bloques de pocas líneas, una frase por bloque, y tres columnas siempre separadas, lo que el texto dice, lo que dejaría en un equipo y lo que no se puede saber. El script no se ejecuta nunca: se lee su texto, ya copiado a la estación.Leer un script no es buscar «la palabra mala». Es recorrerlo de arriba abajo en bloques de tres a cinco líneas y escribir al lado de cada bloque una frase que empiece por «este bloque...». Así el script deja de ser una pared de texto y se vuelve una secuencia de pasos: esperar, preparar una carpeta, pedir algo por la red, guardarlo, dejarlo para el próximo arranque, usarlo.
El método no necesita ejecutar nada, y por eso es el primero: ejecutar un script desconocido «para ver qué pasa» cambia la evidencia y puede hacer lo que el script hace en un equipo de la empresa. La lectura, en cambio, es repetible: cualquier colega lee el mismo texto y llega a las mismas frases.
Responde para continuar
Te dan el texto de un script desconocido. ¿Cuál es el primer paso del método?
Ver pista de ayuda
Un script se lee. La lectura se puede repetir y no cambia la evidencia; ejecutarlo, sí.
En PowerShell, una descarga se reconoce por cmdlets y clases que piden algo a una dirección: Invoke-WebRequest, Invoke-RestMethod o System.Net.WebClient con su método DownloadString. Lo que importa al leer es la dirección que reciben, porque es el primer indicador de red que deja el script. Una dirección se anota completa, y de ella se separa el nombre del servidor.
Abre el script del caso SIB-IR-0216 en la estación de lectura y localiza el bloque que pide algo a internet.
Responde para continuar
Escribe el nombre del servidor (sin http ni ruta) al que pide algo el script.
Ver pista de ayuda
Ejecuta `cat /casos/sib-0216/factura-envio.ps1` y mira la línea donde se guarda la dirección de origen.
La clave de registro HKCU\Software\Microsoft\Windows\CurrentVersion\Run es una lista de programas que Windows lanza cuando el usuario inicia sesión. Que un script escriba ahí es lo que se llama dejar persistencia: lo que hace hoy volverá a ocurrir mañana sin que nadie lo abra. Escribir en esa clave no es malicioso por sí mismo —muchos programas legítimos lo hacen—; lo que dice algo es quién escribe, qué nombre le pone y a qué apunta.
El nombre del valor es un indicador útil: es el texto que un analista buscaría después en otros equipos para saber si el script llegó a más sitios.
Responde para continuar
Escribe el nombre del valor que el script crea en la clave de arranque.
Ver pista de ayuda
Busca la línea con Set-ItemProperty. El nombre va después de -Name.
Invoke-Expression (a veces abreviado iex) toma un texto y lo ejecuta como si fueran órdenes de PowerShell. No cambia el texto: solo lo convierte de «datos» a «instrucciones». Por eso, cuando delante hay un texto que vino de la red, la lectura se detiene ahí: lo que ocurra después depende de algo que el script todavía no tiene en el archivo.
Es un patrón que se anota en el informe como comportamiento, no como veredicto: un administrador también puede usarlo. Lo que lo vuelve preocupante es la combinación: texto descargado de un servidor externo más ejecución inmediata.
Responde para continuar
En la última línea del script aparece Invoke-Expression sobre el texto descargado. ¿Qué significa?
Ver pista de ayuda
Convierte un texto en instrucciones. Piensa en qué quedó decidido de antemano y qué quedó en manos del servidor.
Muchos scripts esperan antes de hacer nada con Start-Sleep. La pausa no es un daño: es un comportamiento que se anota porque cambia lo que ve un análisis corto. Un entorno que observa un archivo durante unos segundos puede no ver nunca la parte que ocurre después de esperar, y quien lee el texto sí la ve.
La unidad de -Seconds son segundos. Si el valor está guardado en una variable, se busca dónde se asignó.
Responde para continuar
¿Cuántos segundos espera el script antes de hacer nada?
Ver pista de ayuda
La espera se guarda en una variable en las primeras líneas y se usa en Start-Sleep.
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.