
Con este artículo, comenzamos una serie de publicaciones sobre el esquivo malvari. Los programas de piratería que no dejan marcas de ataque, también conocidos como sin archivos, generalmente usan PowerShell en los sistemas Windows para ejecutar comandos de forma encubierta para buscar y recuperar contenido valioso. Detectar actividad de hackers sin archivos maliciosos es una tarea difícil, porque los antivirus y muchos otros sistemas de detección funcionan en función del análisis de firmas. Pero la buena noticia es que ese software existe. Por ejemplo,
sistemas UBA que pueden detectar actividad maliciosa en sistemas de archivos.
Cuando comencé a estudiar el tema de los hackers geniales que
no usaban métodos tradicionales de infección , sino solo herramientas y software disponibles en la computadora de la víctima, no sospechaba que pronto se convertiría en un método de ataque popular. Los profesionales de seguridad
dicen que esto se está convirtiendo en una tendencia, y los
títulos de artículos aterradores son prueba de ello. Por lo tanto, decidí hacer una serie de publicaciones sobre este tema.
Gran y terrible PowerShell
Escribí sobre algunas de estas ideas anteriormente en
la serie de ofuscación de PowerShell , pero más en teoría. Más tarde me encontré con un
sitio para análisis híbrido , donde puedes encontrar muestras de malvari, "capturadas" en la naturaleza. Decidí intentar usar este sitio para buscar muestras de malware sin archivos. Y lo hice Por cierto, si desea realizar su propia expedición para buscar malware, tendrá que pasar un chequeo en este sitio para que sepan que está haciendo el trabajo como especialista de sombrero blanco. Como blogger que escribe sobre seguridad, lo revisé sin dudarlo. Estoy seguro de que tú también puedes.
Además de las muestras en sí, puede ver en el sitio lo que hacen estos programas. El análisis híbrido lanza malware en su propia caja de arena y rastrea las llamadas del sistema, ejecuta procesos y acciones en la red, y también extrae cadenas de texto sospechosas. Para archivos binarios y otros ejecutables, es decir Donde ni siquiera puede mirar el código real de alto nivel, el análisis híbrido decide si el software es malicioso o simplemente sospechoso en función de su actividad en tiempo de ejecución. Y después de eso, la muestra ya está evaluada.
En el caso de PowerShell y otros scripts de muestra (Visual Basic, JavaScript, etc.), pude ver el código en sí. Por ejemplo, me encontré con una instancia de PowerShell:

También puede ejecutar PowerShell codificado en base64 para evitar la detección. Preste atención al uso de parámetros no interactivos y ocultos.
Si lees mis entradas de ofuscación, entonces sabes que la opción -e indica que el contenido está codificado en base64. Por cierto, el análisis híbrido también ayuda con esto, decodificando todo de nuevo. Si desea intentar decodificar usted mismo PowerShell base64 (en adelante, PS), debe ejecutar este comando:
[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($EncodedText))
Ir más profundo
Decodifiqué nuestro script PS usando este método, el texto del programa se presenta a continuación, aunque lo modifiqué un poco:

Tenga en cuenta que el crujido estaba vinculado a la fecha del 4 de septiembre de 2017 y aprobó las cookies de sesión.
Escribí sobre este estilo de ataque en
la serie de ofuscación de PS , en la que el script codificado en base64 descarga el malware
faltante de otro sitio, usando el objeto WebClient de la biblioteca .Net Framework para hacer todo el trabajo duro.
¿Para qué es esto?
Para el software de seguridad que escanea los registros de eventos de Windows o los firewalls, la codificación base64 evita la detección de la cadena de WebClient mediante un patrón de texto simple para proteger contra dicha solicitud web. Y dado que todo el malware "malvado" se descarga y transfiere a nuestro PowerShell, este enfoque le permite evitar por completo la detección. Más bien, eso pensé al principio.
Resulta que con la inclusión del registro avanzado de los registros de Windows PowerShell (consulte mi artículo), puede ver la línea cargada en el registro de eventos. Yo (como
otros ) creo que Microsoft debería habilitar este nivel de registro de forma predeterminada. Por lo tanto, cuando se activa el registro extendido, veremos en el registro de eventos de Windows una solicitud completa para cargar desde un script PS de acuerdo con el ejemplo que examinamos anteriormente. Por lo tanto, tiene sentido activarlo, ¿de acuerdo?
Agregar scripts adicionales
Los hackers ocultan hábilmente un ataque de PowerShell en las macros de Microsoft Office escritas en Visual Basic y otros lenguajes de secuencias de comandos. La idea es que la víctima reciba un mensaje, por ejemplo, de un servicio de entrega, con un informe adjunto en formato .doc. Abre este documento, que contiene una macro, y finalmente lanza el mismo PowerShell malicioso.
A menudo, el script de Visual Basic se ofusca para evadir libremente los antivirus y otros escáneres de malware. En el espíritu de lo anterior, decidí como ejercicio codificar el PowerShell anterior en JavaScript. A continuación se muestran los resultados de mi trabajo:

JavaScript ofuscado que oculta nuestro PowerShell. Los verdaderos hackers lo hacen una o dos veces.
Esta es otra de las técnicas que he encontrado en la red: usar Wscript.Shell para ejecutar PowerShell codificado. Por cierto, JavaScript en sí mismo es un
medio para entregar malware. Muchas versiones de Windows tienen un
Windows Script Host incorporado, que puede ejecutar JS.
En nuestro caso, el script JS malicioso se adjunta como un archivo con la extensión .doc.js. Normalmente, Windows solo muestra el primer sufijo, por lo que aparecerá a la víctima como un documento de Word.

El icono JS se muestra solo en el icono de desplazamiento. No es sorprendente que muchas personas abran este archivo adjunto, pensando que es un documento de Word.
En mi ejemplo, modifiqué el PowerShell anterior para descargar el script de mi sitio web. El script remoto de PS simplemente imprime Evil Malware. Como puede ver, él no es del todo malo. Por supuesto, los hackers reales están interesados en obtener acceso a una computadora portátil o servidor, por ejemplo, a través de un shell de comandos. En el siguiente artículo, mostraré cómo hacer esto usando PowerShell Empire.
Espero que para el primer artículo introductorio no profundicemos demasiado en el tema. Ahora te dejaré tomar un respiro, y la próxima vez comenzaremos a analizar ejemplos de ataques de la vida real usando malvari sin archivos sin palabras introductorias adicionales y preparación.