miércoles, 21 de noviembre de 2012

Blackhole Exploit 2.0 - Analizado con Malzilla + peepdf.


Este análisis esta motivado por la siguiente investigación que me pareció muy interesante, la cual analiza un pdf de BHE con peepdf, en nuestro caso iremos mas allá y abordaremos el troyano que es descargado por BHE, esta de mas decir que compromete seriamente el sistema.

Análisis de la URL maliciosa en V.T, no tiene detecciones.


Cargamos la URL en Malzilla, vemos que nos redirige a otro sitio.



Nos carga un extenso Javascript, el cual nos abre un iframe con otro .php, que nos descarga un PDF maligno.




Detalle en V.T... vemos que se trata de un PDF con un Exploit para AcrobatReader.





El PDF lo analizaremos con la herramienta peepdf, que nos permitirá observar los objetos alojados dentro del el, en búsqueda de elementos maliciosos.

Esta herramienta esta programada en python y es muy fácil de utilizarla.


Comando para realizar una mirada amplia del PDF   peepdf.py -f -i XXXX.pdf

-f force para evitar errores 
-i interactivo, es decir queda cargado el pdf para mas cmds.

Vemos que hay 1 objeto con JavaScript y es el 43



Para ver el codigo del objeto 43, emitimos el comando object 43

Nos mostrara el siguiente código del Javascript:



Vemos que el código esta ofuscado y contiene basura. 
Por otro lado, un punto importante es que se hace mención a una cadena de strings llamada creationDate, estos strings están incluidos dentro de otro objeto del pdf, estimo que es para obstaculizar el análisis.

Para Buscar la cadena de creationDate emitimos el comando.

search "creation"



nos indica que se encuentra en el objeto 3 y 43, siendo este ultimo el que veníamos observando.

Lo bajamos a un txt con

Object 3 > salida.txt



A este nivel puedo juntar el Javascript del objeto 43 + el String del Objeto 3 y tratar de meterlo en malzilla para ver que hace..

Aquí el Javascript sin ofuscar: 

(ver script1.txt en la muestra que les dejo)

En la variable z cargamos el objeto 3 y con el ciclo for se ira cargando la variable s con los datos sin ofuscar.

(En estas dos imagenes vemos como queda el script para ser cargado en Malzilla)



Si observamos atentamente existe un separador "|" este divide en dos partes el string.... por ahora lo pasamos por alto este detalle.





Bueno, aquí lo cargamos en Malzilla, en el tab Decoder, y lo ejecutamos. Observamos que en la parte de abajo se genero otro Javascript, esto es por la función document.write(s) que agregue.




(ver script2.txt en la muestra que les dejo)


Copiamos este Script en otro tab Decoder y le damos click al boton Format Code, esto nos dejara mas prolijo el código.








 Podemos observar que la variables _l1 y _l2 se encuenta un codigo en HEX al cual le adjunta event.target.creationDate.split('|')[1]







Como vimos mas arriba el objeto3 esta dividido en dos partes, con la primera se armo el javscript 2 y con la segunda parte se arma el shellcode, que hará que se ejecute código arbitrario, seguramente cargando algún ejecutable que se encuentre en la nube.


Aquí estoy verificando la función split el cual divide el string del objeto 3.







Entonces puedo decir que el shellcode es, dependiendo de la versión de Adobe,  _l1 o _l2 + creationDate.split('|')[1]


Pasando de hex a texto veo la url a donde el shellcode se conecta para bajar un ejecutable.




Lo chequeamos en malzilla y nos descarga un ejecutable.



Verificando el binario en V.T. este tiene un indice muy bajo en detecciones.........




Analisis del Malware Descargado


Se trata de un binario programado en Visual C que se encuentra Ofuscado.




Lo cargamos en Olly Dbg y ponemos un BP en ZwResumeThread.

Podemos observar que intenta copiarse en 

C:\Documents and Settings\Administrador\gillefeanafq.exe




Luego se spawnea en la siguiente dirección de memoria en donde realizo un backup








Cargamos nuestro dump en OllyDbg y podemos encontrar los siguientes Strings:



Text strings referenced in File2:.text
Address    Disassembly                               Text string
0400108C   PUSH File2.04004138                       ASCII "software\microsoft\windows\currentversion\run"
0400114A   PUSH File2.04004174                       ASCII "USERPROFILE"
04001165   PUSH File2.04004168                       ASCII "%s\%s.exe"
04001359   PUSH File2.040041C4                       ASCII "===="
040014AC   PUSH File2.04009E60                       ASCII "4emails.de;4energia.ee;4ernila.de;4esport.de;0daymusic.biz;4dmobil.at;4dbenelux.be;4e-energiezentrale.de;4e-energiezentrale.de;8zaamarchitecten.nl;4enerchi.nl;4ergindl.at;0risiko.de;4darabians.nl;4dbenelux.be;0kommanix.de;4effect.ca;4ein"...
040017C6   PUSH File2.04004220                       ASCII ".reloc"
04001968   PUSH File2.04004240                       ASCII "SystemRoot"
04001973   PUSH File2.04004228                       ASCII "\system32\svchost.exe"
04001DBB   PUSH File2.04004250                       ASCII "TEMP"
04001DE3   PUSH File2.0400424C                       ASCII "msd"
04001E95   PUSH File2.0400427C                       ASCII "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
04001EDB   PUSH File2.04004278                       ASCII "1.1"
04001EE5   PUSH File2.04004270                       ASCII "GET"
04001F05   PUSH File2.04004264                       ASCII "https://%s"
04001F42   MOV ESI,File2.04004258                    ASCII "Accept: */*"
04002052   SUB EAX,10000                             UNICODE "=::=::\"
04002063   MOV ESI,File2.040042DC                    ASCII "LoadLibraryExA"
04002076   PUSH File2.040042CC                       ASCII "GetProcAddress"
04002202   PUSH File2.04009E40                       ASCII "gillefeanafq"
04002243   PUSH File2.040042FC                       ASCII "software\microsoft\windows\currentversion"
04002261   MOV ESI,File2.040042EC                    ASCII "AppManagement"
040022E4   PUSH File2.04009E40                       ASCII "gillefeanafq"
040022F6   PUSH File2.04004328                       ASCII "zap"
04002320   PUSH File2.040042FC                       ASCII "software\microsoft\windows\currentversion"
040023C3   PUSH File2.04009E40                       ASCII "gillefeanafq"
0400240D   PUSH File2.040042C0                       UNICODE "text"
04002412   PUSH File2.040042B4                       UNICODE "gzip"
04002476   PUSH File2.040042C0                       UNICODE "text"
0400247B   PUSH File2.040042B4                       UNICODE "gzip"
04002523   PUSH File2.04004338                       ASCII ":repeat
del %s
if exist %s goto :repeat
del %%0"
04002558   PUSH File2.04004138                       ASCII "software\microsoft\windows\currentversion\run"
0400256B   PUSH File2.04009E40                       ASCII "gillefeanafq"
0400259D   PUSH File2.04004250                       ASCII "TEMP"
040025C5   PUSH File2.04004334                       ASCII "slf"
040025D1   PUSH File2.0400432C                       ASCII ".bat"
0400276A   MOV EDI,File2.0400436C                    ASCII "http://%s"
04002A35   PUSH File2.04004250                       ASCII "TEMP"
04002A5C   PUSH File2.04004378                       ASCII "msl"
04002BCD   PUSH File2.04004250                       ASCII "TEMP"
04002BF4   PUSH File2.0400424C                       ASCII "msd"
04002C7E   PUSH EBP                                  (Initial CPU selection)
04002D0D   PUSH File2.04009E40                       ASCII "gillefeanafq"
04003158   MOV DWORD PTR SS:[EBP-20],File2.040043E8  ASCII "*/*"
040031A6   PUSH File2.0400427C                       ASCII "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
040031E9   PUSH File2.040043E0                       ASCII "POST"
0400320B   PUSH File2.04004388                       ASCII "Accept-Language: en-us
Content-Type: application/octet-stream
Content-Length: %d
"
0400357C   MOV EBX,File2.040043EC                    ASCII "PGltZyBzcmM9ImRhdGE6aW1hZ2UvanBlZztiYXNlNjQs"










Nuestro dump lo analizamos en VT con un indice medio de detenciones.






De acuerdo al comportamiento que hemos visto de nuestra muestra y cotejando con los siguientes reportes podemos asegurar que se trata de una versión de Phushdo


http://www.threatexpert.com/report.aspx?md5=71f1b366e289b94cc47181367be2bdae
http://www.threatexpert.com/report.aspx?md5=a8fdd070084681be072ad930b28c0aaf
http://www.microsoft.com/security/portal/Threat/Encyclopedia/Entry.aspx?Name=Backdoor%3AWin32%2FPushdo.A


Trafico de Red a múltiples sitios.




Muestras: (sea cuidadoso)



PDF+ Scripts                       =  http://www.mediafire.com/?66s8v4hl8oe8l4z

Troyano + Dump + pcaps   = http://www.mediafire.com/?hjlehy93h576kdd

password = infected


........................me fui a dormir..........................ZzzzzzzzzzzzzzzzzzzZzzzzzZzzzzz


@Dkavalanche 2012
 

sábado, 10 de noviembre de 2012

Como Dumpear una muestra de DorkBot que fue ofuscada con UPX + Crypter.


Hoy les voy a mostrar como Dumpear una muestra de DorkBot que fue ofuscada con una capa de un Crypter en VB, luego compactada con UPX, y este modificado, para hacer mas difícil el análisis.



Analizaremos una muestra que me enviaron esta mañana y afecta a entidades bancarias de Perú.

Comenzamos con el ya conocido correo phishing para infectar a los desprevenidos:





Análisis del ejecutable en VirusTotal con un indice bajo de detecciones.




Primero hacemos una inspección ocular del binario con un editor Hexadecimal, en este caso FlexHex, se puede utilizar Hex Workshop, pero ya estoy acostumbrado a FlexHex.

Vemos que tiene las secciones típicas de UPX pero modificadas, por lo que puedo deducir que esta compactado con UPX.




Lo analizo con PEID, para sacarme la duda.

Aquí vemos que no detecto ningún packer (Nothing Found *)
(vemos que una de las secciones es UPX1...)





Inspeccionando las secciones vemos que falta la sección UPX0


Puedo modificar a las secciones con el editor Hexadecimal para luego intentar desempaquetarlo con el comando upx -d, pero lo vamos a hacer con el Ollydbg.



Resumiendo, lo que haremos con esta muestra sera:


1) Desempaquetar el UPX
2) Correr el Crypter (poniendo BP en WriteProcessMemory o ZwWriteVirtualMemory)
3) Dump de la muestra.
4) Ejecutar la muestra en una maquina virtual.



1) Desempaquetar el UPX


Podemos desempaquetar el UPX a mano o utilizando el plugin OdbgScript


Desempaquetando a mano:



Cargamos el ejecutable en el OllyDbg y observamos que el EntryPoint de este programa apunta a un PUSHAD que es típico de UPX.






Buscamos, luego del PUSHAD, el primer POPAD y poner allí un BP,  luego buscar el ultimo JMP y poner allí otro BP.



0041774D   . 58             POP EAX
0041774E   . 61             POPAD
0041774F   . 8D4424 80      LEA EAX,DWORD PTR SS:[ESP-80]
00417753   > 6A 00          PUSH 0
00417755   . 39C4           CMP ESP,EAX
00417757   .^75 FA          JNZ SHORT VIDEOMMS.00417753
00417759   . 83EC 80        SUB ESP,-80
0041775C   .-E9 F799FEFF    JMP VIDEOMMS.00401158 ---> Salto al OEP 
00417761     00             DB 00
00417762     00             DB 00
00417763     00             DB 00



Ejecutamos con F9 y va a parar en el POPAD, aquí ya se habrá ejecutado el código del packer UPX, volvemos a ejecutar con F9 y se detendrá en el JMP.
En este punto avanzamos con F7 y encontraremos el OEP .



(aquí podemos pasar a 2) Correr el Crypter)



Desempaquetado con OdbgScript:

Utilizaremos el siguiente Script, que realiza automáticamente lo que hicimos arriba, sin tener que andar buscando el POPAD/JMP en el código.

(El script lo grabamos en un archivo que luego cargaremos con OdbgScript)



var BPforPOPAD
var BPforJMP
findop eip,#61#
mov BPforPOPAD,$RESULT
bp BPforPOPAD
run
findop eip,#E9????????#
mov BPforJMP,$RESULT
bp BPforJMP
run
sti
msg "OEP Dumpear proceso en memoria"




Carga del malware en Ollydbg






Plugins -> OdbgScript -> Run Script: Seleccionamos el Script.







Listo, en este momento ya se ejecuto el Packer y estamos en el OEP

(click en aceptar)




2) Correr el Crypter



Bueno, aquí con cualquiera de los dos métodos utilizados mas arriba ya estamos en el OEP del programa. 






Por lo que continuamos con un F7 y ponemos un BP a WriteProcessMemory




Ejecutamos con F9, cuando para estaremos listos para hacer un dump del proceso.


3) Dump de la muestra.




Estando en el BP seleccionamos la dirección donde esta el buffer y le hacemos un Follow in Dump



Podemos hacer un dump con OllyDump o hacemos un Backup del Buffer en memoria.

Quizás este no es el mejor método para los puristas.... pero a mi me sirve... :D

Backup -> Save data to File




Lo guardamos en el Escritorio.






Aquí vemos en esta parte de la memoria que se trata de DorkBot.








Luego abrimos con el FlexHex el backup _001F6000.mem y Buscamos el texto MZ  o 4D5A en hexa.





Una vez encontrado, tenemos que seleccionar desde MZ hasta el fin del archivo.








Copiamos.






Y pegamos en otro Nuevo y grabamos el ejecutable.




En este punto ya tenemos a Dorkbot sin ofuscar y listo para ejecutarlo en una maquina virtual y probar a donde se conecta.

4) Ejecutar la muestra en una maquina virtual.


Probamos la muestra en una maquina virtual y observamos el trafico de red.





Pharming.




Eso es todo por el momento, espero que les guste.


Muestra + dump + Script:   http://www.mediafire.com/?95m6du912g6aztb


Password = infected



@Dkavalanche   2012


martes, 6 de noviembre de 2012

Qhost -  FUD XOR :  Has Recibido un nuevo mensaje multimedia MMS de Anita!

Hoy les traigo un troyano Qhost que utiliza una rutina XOR para ofuscar los strings y evitar ser detectado por los A.V., evidentemente hace bien su trabajo, ante el análisis en Virustotal, este resulto ser in-detectable (FUD).
La configuración del pharming esta codificada (xor) dentro del troyano, es decir que no se actualiza vía Internet.

Actualmente realiza pharming a entidades Bancarias de Perú.




Correo phishing:





Descargando el troyano con Malzilla, vemos que es redirigido a otra URL.


Descarga.




Icono del Malware:








Análisis en V.T. que arroja un resultado de cero detecciones....






Aquí parte de la rutina del XOR











Con Ollydbg debemos poner un BP en 

0040B5C0   68 37B64000    PUSH Reproduc.0040B637                 


 Y luego ir ejecutando con F9








A medida que va parando la ejecución en el BP veremos en el STACK el código HEXA de los strings









Como dato adicional, aquí vemos la entrada de datos a rutina Xor




Con este método enumeramos los siguientes strings:


0012F800   001709EC  UNICODE "484B45595F4C4F43414C5F4D414348494E455C534F4654574152455"
HKEY_LOCAL_MACHINE\SOFTWARE

0012F800   0017073C  UNICODE "4D6963726F736F66745C57696E646F77735C43757272656E7456657273696F6E5C52756E5"
Microsoft\Windows\CurrentVersion\Run

(Servidores del Pharming)

0012F800   00170954  UNICODE "696E7465722E73736C2E6D794674702E6E616D65"
inter.ssl.myFtp.name

0012F800   00170B94  UNICODE "626276612E73736C2E6D794674702E6E616D65"
bbva.ssl.myFtp.name



0012E03C   00170B94  UNICODE "5C73797374656D33325C647269766572735C6574635C686F7374"

\system32\drivers\etc\hosts

0012F800   00170954  UNICODE "696E74657262616E6B2E636F6D2E706"

interbank.com.pe

0012F800   00170B94  UNICODE "7777772E696E74657262616E6B2E636F6D2E706"

www.interbank.com.pe


0012F800   00170CE4  UNICODE "6E6574696E74657262616E6B2E636F6D2E706"

netinterbank.com.pe

0012F800   00170954  UNICODE "6262766162616E636F636F6E74696E656E74616C2E636F6D"

bbvabancocontinental.com


0012F800   00170B94  UNICODE "7777772E6262766162616E636F636F6E74696E656E74616C2E636F6D"

www.bbvabancocontinental.com

0012F800   0018FC64  UNICODE "57696E6C6F676F6"

winlogon

0012FA84   00170FB4  UNICODE "77696E7570646174652E657865"

winupdate.exe



Si realizamos un Ping a los servidores nos dará el IP que sera colocada por el malware en el archivo host.





En un momento de la ejecución el malware ira a buscar una web de CLARO.PE, esto lo hace para despistar, igualmente pueden continuar con la ejecución  para buscar todos los strings.

Muestra + Codigo en http://www.mediafire.com/?3b4vjchni0o3r91

Password = infected


Eso es todo por el momento.


@Dkavalanche    2012










lunes, 5 de noviembre de 2012

vOlks Botnet :  Recibiste un nuevo mensaje multimedia (MMS) II  - P2P

En el día de hoy continua la Campaña de vOlks Botnet, afectando a entidades de Chile.

Utiliza la mismo phishing para el engaño y el mismo Crypter en VB que verifica si esta siendo Debugeado, con la función IsDebuggerPresent ver Aquí.
Por otro lado busca infectar los directorios compartidos en eMule para propagarse por P2P




Link: http://www.colegio-mexico.edu.mx/ENTEL/MMS/entel.php


Icono del Malware.

Dumpeando el troyano.


Icono del malware.



Strings interesantes:


00406724   UNICODE "*\AE:\[v"
00406734   UNICODE "Olk-Botn"
00406744   UNICODE "et]5.0.2"
00406754   UNICODE "\vb6 sou"
00406764   UNICODE "rce\Proy"
00406774   UNICODE "ecto1.vb"


C&C

687474703a2f2f656c2d77616368696d616e2e6e6574 http://el-wachiman.net (Online) 
687474703a2f2f656c2d77616368696d616e2e636f6d http://el-wachiman.com (no funciona)
687474703a2f2f656c2d77616368696d616e2e696e666f http://el-wachiman.info (no funciona)
687474703a2f2f656c2d77616368696d616e2e62697a http://el-wachiman.biz (no funciona)

2669SO3d &i=
&STLftps
26STL6d61696c733d &mails=

5a6f6d626965732e7068703f69N" Zombies.php?iName=



http://el-wachiman.net/System/Zombies.php?iName=3qeqwqw



User_Agent que utiliza el troyano para autentificar la conexión.   

QfH205c3Msk2+mAVLjb6Tgb6S4/9QfPqblc5LDgsSIQuQfPq05c3MsgsS2J6S41zKiT=+iHNMiTaOxu60/CC

si accedemos al URL de arriba sin utilizar este User_Agent, el C&C no nos entregara nada.





 Conectándonos con Malzilla y obteniendo la configuración del Pharming:





Utilización de programas como emule para propagarse por medio de redes P2P

0x0000A680 0x0000000B eMule


0x0000A690 0x00000017 IncomingDir
0x0000A6AC 0x0000009D Adobe Acrobat 9 Keygen, Adobe Photoshop CS4 Keygen, Adobe Photoshop CS5 Keygen
0x0000A750 0x00000091 Adobe Photoshop CS5 Extended Keygen, Adobe Photoshop Elements 9.0 Keygen
0x0000A7E8 0x000000B3 Aiseesoft DVD Ripper 5.0.22-Lz0 Keygen,Aiseesoft Total Video Converter (v5.1.1.10) Keygen
0x0000A8A0 0x00000099 Akvis ArtSuite 6.5.2121 Keygen,WinRAR 3.93 Keygen,Virtual DJ Home 7.0 Keygen
0x0000A940 0x00000091 Alcohol 120% 1.9.8.7612,Alcohol 120% 2.0.1.2033,AnyDVD HD 6.6.0.3 Keygen
0x0000A9D8 0x000000A1 Patch Windows 7,Aqualux Deluxe Keygen,Microsoft Office 2007 Professional Keygen 
0x0000AA80 0x000000B5 Malwarebytes Anti-Malware Keygen,Ashampoo Burning Studio Keygen,Ashampoo Movie Menu Keygen
0x0000AB3C 0x000000D9 Assasins Creed 2 (2010),Ashampoo Snap 4 4.1 Keygen,TuneUp Utilities Keygen ,Audio Edit Magic 7.6.0.34 Keygen
0x0000AC1C 0x00000047 Local\NTShell Taskman Startup Mutex
0x0000AC68 0x000000DD Auto Hide IP Keygen,Autodesk AutoCAD 2010 Keygen,Autodesk Mudbox 2011 (x64)Keygen,Autodesk Maya Unlimited 2011
0x0000AD4C 0x000000D7 Autodesk Sketchbook Designer 2011 Keygen,Internet Download Manager 5.19 Keygen,AV Voice Changer Gold 7.0.22
0x0000AE28 0x0000002B \SYSTEM32\TaskMgr.exe
0x0000AE5C 0x000000BD Avast AntiVirus 4 8,Avast Internet Security 5.0.545 Keygen,Avast! Pro Antivirus 5.0.677 Keygen
0x0000AF20 0x000000B1 Nero 9 Reloaded (9.4.26.0,AVG Anti-Virus Free Edition 2011,AVG Anti-Virus Pro 9.0 Keygen
0x0000AFD8 0x00000065 Local\TASKMGR.879e4d63-6c0e-4544-97f2-1244bd3f6de0
0x0000B044 0x00000095 AVG PC Tuneup 2011 10.0.0.20,Hex Workshop v6 Keygen,HyperCam 2 Full Keygen
0x0000B0E0 0x0000009F Avira AntiVir Premium 10.0.0.601 Keygen,Nero Multimedia Suite 10.0.13200 Keygen
0x0000B184 0x000000A1 Award Keylogger 1.30 (x86-x64),Backgammon HD 1.4.0 (iPhone),Battlefield 2 (2010)
0x0000B22C 0x000000A9 BitTorrent 7.1.22502 (Portable),Blu-ray to DVD II Pro 2.80 Keygen,Call of Duty Patch
0x0000B2DC 0x000000C5 Call of Duty 4 Modern Warfare Patch,Call of Juarez Bound In Blood Patch,Camtasia Studio 7.1.0.1631
0x0000B3A8 0x0000003B NTShell Taskman Startup Mutex
0x0000B3E8 0x00000091 Convert Genius 3.6.0.36 Keygen,WinZip 14.0.8708  Keygen,CorelDraw 10.412
0x0000B480 0x000000A1 CorelDRAW 10 10.410 Keygen,CorelDraw Graphics Suite X3 Keygen,Counter Strike 1.6
0x0000B528 0x00000073 SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
0x0000B5A0 0x00000013 EnableLUA
0x0000B5B8 0x00000015 SYSTEMROOT
0x0000B5D4 0x000000C3 Counter Strike 1.6 Non Steam Patch,Counter Strike Source Patch,Kaspersky Internet Security Keygen









Muestra + Dump : http://www.mediafire.com/?z8yv8kubedr81df
Password = infected



Eso es todo por el momento.

@Dkavalanche    2012

 Hola, me mudé a medium .... nos vemos!!! FELIZ 2022!!!