Desempaquetar i analitzar el programari maliciós desconegut

· 4min · Juicecat

Tinc un fitxer de misteri per analitzar. A la superfície, només és un fitxer executable de Windows no amenaçador. El seu nom és malware.exeindex.md-1.png

Executar -lo aparentment no fa res, excepte obrir una finestra de consola en blanc durant uns segons, cosa que indica almenys alguna cosa. Com és habitual amb el programari maliciós, suposo que aquesta mostra està envasada. Tot i això, el millor és assegurar -se i també saber què es va utilitzar Packer. Per fer -ho, l’obrim amb la matriu i visualitzem l’entropia del fitxer: index.md-2.png La part que cal mirar aquí és l’entropia molt alta (~ 8) per a la majoria del fitxer. L’entropia és simplement una mesura de l’atzar de les dades dins d’un fitxer. Pot oscil·lar entre 0 i 8. Una puntuació de 8 suposaria una aleatorietat completa, que és habitual en el xifrat (idealment). Un fitxer típic fluctuaria així: index.md-3.png

Ara que sabem que està envasat, també hauríem de descobrir quin Packer s’utilitzava. Hi ha moltes maneres de trobar -ho, però el més fàcil és mirar les capçaleres de les seccions a la primera imatge d’entropia. Veiem que existeix una capçalera del nom UPX2. UPX és un dels empaquetadors més habituals disponibles. S'utilitza per a moltes aplicacions legítimes, però el programari maliciós de baix grau també l'utilitza perquè és gratuït i fàcil d'utilitzar.

Els empaquetadors s'utilitzen per reduir la mida dels fitxers executables. Essencialment, quan un programa vulgui reduir la seva mida, comprimirà tot el fitxer i, a continuació, adjuntarà un petit programa a l’adreça d’inici de si mateix que el descomprimirà en temps d’execució. És com cremar un fitxer per enviar -lo a Internet i també enviar una còpia de 7Zip amb ell perquè l’usuari desempaqués el contingut. Aquesta és la raó per la qual les aplicacions envasades sovint tenen entropia molt elevada i estable. El contingut are xifrat.

Mirar el codi empaquetat seria inútil, per la qual cosa hem de desembalar -lo abans de fer qualsevol altra cosa. Hi ha algunes maneres de desempaquetar el programari maliciós, però vaig a desempaquetar -la manualment amb l’objectiu de tenir una publicació al bloc més fresca. Començo adjunt el meu depurador, x32dbg al programa. El depurador fa una pausa automàtica. index.md-4.png

El primer que fem és executar el programa fins al punt d’entrada, i després fer una pausa de nou.index.md-5.png

Ara que estem aturat, comencem a buscar el final de la part del Codi Unpacker dins del binari. En aquest cas, es trobava a prop del final del codi: una instrucció final jmp abans que l'espai s'ompli amb operacions de zero. index.md-6.png

El salt final abans de les operacions de zero indica que el programa s'ha desempaquetat i ara serà saltant a l'execució de les dades no empaquetades. Així, després de fer una pausa abans del salt, tornem a avançar una instrucció i tornem a fer una pausa. Això ens portarà a l’inici del programa “real”. index.md-7.png

Podem utilitzar un complement anomenat Scylla per tallar el nou programa desembalat. Utilitzem la IAT Autosearch i obtenim funcions d’importacions per crear les taules d’importació per a nosaltres, i després deixar el programa a l’escriptori. index.md-8.png

Ara tenim un abocament del programa desembalat, així que comprovem que ho hem fet correctament comprovant l’entropia de nou.

Així doncs, hem comprovat que hem desempaquetat amb èxit el programari maliciós. El següent pas seria analitzar les seves activitats i fer un informe.index.md-9.png