Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Leer 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.

0 de 5 · 0%

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.

Inicia sesión para registrar tus puntos y progreso en el ranking.

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