Tareas #5876

Sitio web vulnerado

Añadido por Daniel Viñar Ulriksen hace alrededor de 1 mes. Actualizado hace 12 días.

Estado:En cursoFecha de inicio:2017-12-16
Prioridad:NormalFecha fin:
Asignado a:Daniel Viñar Ulriksen% Realizado:

80%

Categoría:-Tiempo dedicado:5.50 horas
Versión prevista:-

Descripción

Jorge, uno de los administradores de los sitios www.creativecommons.uy, http://musicalibre.uy y http://festival.creativecommons.uy, así como de las listas de correo correspondientes, nos avisó ayer:

El 16/12/17 a las 12:27, Jorge Gemetto escribió:

Con respecto a la lista de correo, te cuento que desde ayer a la tarde está teniendo problemas. Al parecer, están mandando spam con las direcciones de la lista, y llegan a moderación avisos de rebotes. Desde ayer llegaron unos 2000 correos que, si no me equivoco, parecen rebotes de mails con esa dirección. Además, cuando intento mandar correos a la dirección no están llegando.

Top_scripts_suspect_11-40-04.png - top en davinci (91,9 KB) Daniel Viñar Ulriksen, 2017-12-17 18:26

ProcesoSospechoso2017-12-18_22-56-30.png (73 KB) Daniel Viñar Ulriksen, 2017-12-18 22:59

CPUDavinci.png (51,8 KB) Daniel Viñar Ulriksen, 2017-12-18 23:01

Davinci_top_2017-12-21_12-35-23.png (215 KB) Daniel Viñar Ulriksen, 2017-12-21 14:37

Davinci_top_2017-12-21_12-35-58.png (218 KB) Daniel Viñar Ulriksen, 2017-12-21 14:37

3714
3715
3716
3717
3718

Peticiones relacionadas

relacionada con Sitios web - Errores #5885: Bug en importación de datos phpmyadmin/alternc Nueva 2017-12-30

Histórico

#1 Actualizado por Daniel Viñar Ulriksen hace alrededor de 1 mes

  • Estado cambiado Nueva por En curso
  • % Realizado cambiado 0 por 10

Verificado rápidamente en los logs, vemos que los mensajes provienen esencialmente de davinci, el servidor de hospedaje:

root@russell:~# grep "connect from davinci.csic.edu.uy\[164.73.68.37\]" /var/log/mail.log | wc -l
6944
root@russell:~# grep "connect from" /var/log/mail.log | wc -l
6956

Por lo cual revisamos también el servidor davinci, que es el servidor de hospedaje de los sitios web.

#2 Actualizado por Daniel Viñar Ulriksen hace alrededor de 1 mes

  • Proyecto cambiado Sitio web de la CCI por Sitios web

#3 Actualizado por Daniel Viñar Ulriksen hace alrededor de 1 mes

También podíamos ver que el problema esta en Davinci a partir de los rebotes que llegan a la lista, que Jorge me renvió ulteriormente:

---------- Mensaje reenviado ----------
De: <cc-request@creativecommons.uy>
Fecha: 17 de diciembre de 2017, 12:10
Asunto: Mensaje de mailer-daemon@davinci.csic.edu.uy para la lista cc en espera de aprobación
Para: cc-editor@creativecommons.uy

Llegó un nuevo mensaje de mailer-daemon@davinci.csic.edu.uy para la lista cc.

Hay 7638 menajes en espera de aprobación.
Para ver la lista de mensajes en espera, debería consultar este enlace:
<https://listas.softwarelibre.edu.uy/sympa/ticket/82115918976591>

Para distribuir el mensaje adjunto por la lista cc:
<mailto:sympa@listas.softwarelibre.edu.uy?subject=DISTRIBUTE%20cc%2043ccb93b51a1bdd26b2aa8ab4c164b1d>
O envía un mensaje a sympa@listas.softwarelibre.edu.uy con el siguiente tema:
DISTRIBUTE cc 43ccb93b51a1bdd26b2aa8ab4c164b1d

Para rechazarlo (el mensaje será borrado) :
<mailto:sympa@listas.softwarelibre.edu.uy?subject=REJECT%20cc%2043ccb93b51a1bdd26b2aa8ab4c164b1d>
O envía un mensaje a sympa@listas.softwarelibre.edu.uy con el siguiente tema:
REJECT cc 43ccb93b51a1bdd26b2aa8ab4c164b1d

Documentación relativa a la moderación de mensajes:
<https://listas.softwarelibre.edu.uy/sympa/help/admin#moderate>

---------- Mensaje reenviado ----------
From: Mail Delivery System <MAILER-DAEMON@davinci.csic.edu.uy>
To: cc@davinci.csic.edu.uy
Cc: 
Bcc: 
Date: Sun, 17 Dec 2017 12:10:24 -0300 (-03)
Subject: Undelivered Mail Returned to Sender
This is the mail system at host DaVinci.csic.edu.uy.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

                   The mail system

<gypsy007@shaw.ca>: host smtp.glb.shawcable.net[64.59.136.136] said: 550 5.1.1
    <gypsy007@shaw.ca> recipient rejected (in reply to RCPT TO command)

Final-Recipient: rfc822; gypsy007@shaw.ca
Action: failed
Status: 5.1.1
Remote-MTA: dns; smtp.glb.shawcable.net
Diagnostic-Code: smtp; 550 5.1.1 <gypsy007@shaw.ca> recipient rejected

---------- Mensaje reenviado ----------
From: "Jayden W." <jayden.w@creativecommons.uy>
To: gypsy007@shaw.ca
Cc: 
Bcc: 
Date: Sun, 17 Dec 2017 13:10:18 -0200
Subject: You are the most handsome at our work
There is a base of cuddly-bunnies in your town
Gives for free, cheating on their husbands and boyfriends
If you are free and have no girl enter the site and enjoy

Es un rebote e un spam a la casilla , la cual está redirigida a , que es una lista, por lo cual se ve interceptado para moderación. Pero el rebote, por ende probablemente también el envío, suceden en davinci.

#4 Actualizado por Daniel Viñar Ulriksen hace alrededor de 1 mes

En davinci encuentro procesos con nombres raros, corriendo con el mismo usuario unix que alternc atribuye a CC (2022):

top en davinci

En la carpeta raíz del sitio musicalibre encuentro varios scripts, que muevo a una carpeta fuera de línea:

root@davinci:/var/alternc/html/c/cc/hackeo# ls -la
total 14540
drwxrws---+ 5 root 2022    4096 dic 17 17:38 .
drwxrws---+ 5 2022 2022    4096 dic 17 11:53 ..
-rw-rw----+ 1 2022 2022  146801 dic 16 05:49 3321ae07459.php.suspected
-rw-rw----+ 1 2022 2022  150396 dic 16 19:49 34c1c02f70.php
-rw-rw----+ 1 2022 2022  150367 dic 16 21:11 5780fbbc884.php
-rw-rw----+ 1 2022 2022  169755 dic 15 16:53 85034072ce.php.suspected
drwxrws---+ 4 2022 2022    4096 dic 16 13:43 blsnyw
-rw-rw----+ 1 2022 2022   43347 dic 15 19:39 blsnyw.zip
-rw-r--r--+ 1 2022 2022   25177 dic 16 19:13 inl.php
-rwxrws---+ 1 2022 2022 6321767 abr 27  2015 latest.tar.gz
drwxrwx---+ 4 2022 2022    4096 dic 16 19:49 oprisw
-rw-rw----+ 1 2022 2022   28814 dic 16 21:11 oprisw.zip
-rw-rw----+ 1 2022 2022     160 dic 17 16:57 php4Sm2iJ.c
-rwxr-xr-x+ 1 2022 2022 3876568 jun 11  2017 php4Sm2iJ_i6ptqemmtugmjept
-rw-rw----+ 1 2022 2022     160 dic 17 16:59 phpOK4ulE.c
-rwxr-xr-x+ 1 2022 2022 3876568 ago  4 22:14 phpOK4ulE_i6ptqemmtugmjept
drwxrwx---+ 4 2022 2022    4096 dic 16 13:43 vlnoeiw
-rw-rw----+ 1 2022 2022   26138 dic 16 05:49 vlnoeiw.zip

#5 Actualizado por Daniel Viñar Ulriksen hace 30 días

Después de descubrir y retirar de las carpetas en línea por web los scripts raros, en las carpetas de http://www.creativecommons.uy y http://musicalibre.uy/, la actividad baja en davinci.

Jorge me indica por chat:

El Wordpress de CC estaba actualizado. El de música libre estaba en 4.9 y lo actualicé a 4.9.1

He aquí las vulnerabilidades de Wp 4.9 que se corrigen en la 4.91.: https://wpvulndb.com/wordpresses/49

2017-11-30     WordPress 3.7-4.9 - 'newbloguser' Key Weak Hashing     fixed in version 4.9.1
2017-11-30     WordPress 4.3.0-4.9 - HTML Language Attribute Escaping     fixed in version 4.9.1
2017-11-30     WordPress 1.5.0-4.9 - RSS and Atom Feed Escaping     fixed in version 4.9.1
2017-11-30     WordPress 2.8.6-4.9 - Authenticated JavaScript File Upload     fixed in version 4.9.1

Una de ellas, la última, puede haber permitido a un atacante subir archivos. Con eso, se obtienen todos los derechos del usuario que ejecuta el wordpress (acceso a la base, ejecución de php, etc.).

Aparentemente, lo utilizaron para subir scripts que permiten mandar spam.

#6 Actualizado por Daniel Viñar Ulriksen hace 30 días

Aunque los limpiemos, lo scripts vuelven:

root@davinci:/var/alternc/html/c/cc/www/musicalibre.uy# ls
25818fe7d32.php  error_log        licencia.txt     wordpressmusicalibre.tar.gz  wp-config.php         wp-links-opml.php  wp-signup.php
3153101640d.php  index.php        license.txt      wp-activate.php              wp-config-sample.php  wp-load.php        wp-trackback.php
access-logs      knoriw           musicalibre2013  wp-admin                     wp-content            wp-login.php       xmlrpc.php
alvoie           knoriw.zip       radio            wp-blog-header.php           wp-cron.php           wp-mail.php        zohoverify
alvoie.zip       licencia-es.txt  readme.html      wp-comments-post.php         wp-includes           wp-settings.php

Aparentemente queda abierto una manera para usurpadores de subir archivos.

#7 Actualizado por Daniel Viñar Ulriksen hace 29 días

  • % Realizado cambiado 10 por 20

Volvieron y volvieron los procesos y las colas de miles de mails.

Encontré scripts en otros lugares (./wp-content) borré todo comparando con los últimos respaldos antes del hackeo.

También, cuando actualicé los temas de musicalibre, se rompió el sitio, quedando en página blanca (aunque mirando la fuente, algo de encabezado tenía). Lo único que me resultó fue cambiar el tema. Aparentemente surgió una incompatibilidad con el tema de Musica Libre Uruguay. Lo dejo con el tema "canard".

#8 Actualizado por Daniel Viñar Ulriksen hace 29 días

Bloqueamos el puerto saliente, haciendo una versión modificada del script fwbuilder (agregar la regla a mano no alcanza, porque antes hay una regla que permite todo el tráfico saliente). Ahora hay 2 versiones de ese script, y bloqueamos el puerto 25 con:

root@davinci:~# /usr/local/etc/davinci.csic.edu.uy.fw stop
root@davinci:~# /usr/local/etc/davinci.csic.edu.uy-sinSMTPsaliente.fw

Pese a que suprimimos todas las instancias de scripts del hackeo encontradas, se siguen inyectando mails en la cola SMTP.

#9 Actualizado por Daniel Viñar Ulriksen hace 29 días

Los SPAM son inyectados via el demonio pickup de postfix, con el usuario unix 2022, que es el de la cuenta CC en AlternC:

root@davinci:~# less /var/log/mail.log
...
 Dec 18 11:04:37 davinci postfix/pickup[3330]: 721D9838E4: uid=2022 from=<cc@davinci.csic.edu.uy>
Dec 18 11:04:37 davinci postfix/cleanup[21207]: 721D9838E4: message-id=<13deb9521c5ab0e4c93e39edae46d62c@www.creativecommons.uy>
Dec 18 11:04:37 davinci postfix/qmgr[3331]: 721D9838E4: from=<cc@davinci.csic.edu.uy>, size=1829, nrcpt=1 (queue active)
Dec 18 11:04:37 davinci postfix/pickup[3330]: 84EAE838E6: uid=2022 from=<cc@davinci.csic.edu.uy>
Dec 18 11:04:37 davinci postfix/cleanup[21207]: 84EAE838E6: message-id=<3fba80610214c9b33ed6695e7e51fc1d@www.creativecommons.uy>
Dec 18 11:04:37 davinci postfix/qmgr[3331]: 84EAE838E6: from=<cc@davinci.csic.edu.uy>, size=1830, nrcpt=1 (queue active)
Dec 18 11:04:37 davinci postfix/pickup[3330]: 90FC4838E8: uid=2022 from=<cc@davinci.csic.edu.uy>
Dec 18 11:04:37 davinci postfix/cleanup[21207]: 90FC4838E8: message-id=<7648c38640870f31347aaa0d1f47bfd5@www.creativecommons.uy>
Dec 18 11:04:37 davinci postfix/qmgr[3331]: 90FC4838E8: from=<cc@davinci.csic.edu.uy>, size=1803, nrcpt=1 (queue active)
Dec 18 11:04:37 davinci postfix/pickup[3330]: 9BDE7838E9: uid=2022 from=<cc@davinci.csic.edu.uy>
Dec 18 11:04:37 davinci postfix/cleanup[21207]: 9BDE7838E9: message-id=<7432170a4deffd871cf30665c6fc2d41@www.creativecommons.uy>
Dec 18 11:04:37 davinci postfix/qmgr[3331]: 9BDE7838E9: from=<cc@davinci.csic.edu.uy>, size=1813, nrcpt=1 (queue active)
Dec 18 11:04:37 davinci postfix/pickup[3330]: A85EB838EA: uid=2022 from=<cc@davinci.csic.edu.uy>
Dec 18 11:04:37 davinci postfix/cleanup[21207]: A85EB838EA: message-id=<e2b38f96f983d0dff5a84aadc4921319@www.creativecommons.uy>
Dec 18 11:04:37 davinci postfix/qmgr[3331]: A85EB838EA: from=<cc@davinci.csic.edu.uy>, size=1786, nrcpt=1 (queue active)
....

Los únicos procesos con ese usuario son procesos apache:
root@davinci:~# ps alx | grep 2022
5  2022 23680 23178  20   0 274260 14636 -      S    ?          0:00 /usr/sbin/apache2 -k start
5  2022 23684 23144  20   0 302108 44460 -      S    ?          0:00 /usr/sbin/apache2 -k start
0     0 23690  3709  20   0  10916   840 -      S+   pts/0      0:00 grep 2022

Por ende, a priori el código del mismo wordpress fue modificado (ya no son inyectados por los procesos phpXXXX que veíamos al principio).

Ponemos el sitio musicalibre en modo mantenimiento (desde el AlternC).

#10 Actualizado por Daniel Viñar Ulriksen hace 29 días

Pese a haber puesto en mantenimiento http://musicalibre.uy/, siguen siendo inyectados mails de spam.

Probamos poner en mantenimiento el sitio http://www.creativecommons.uy/, que también tuvo scripts del hackeo.

#11 Actualizado por Daniel Viñar Ulriksen hace 29 días

Luego de haber puesto off-line el weordpress de musicalibre.uy y creativecommons.uy, cesó la inyección de mails:

root@davinci:~# postqueue -p
Mail queue is empty

Ahora hay que analizar la integridad del código de los sitios, o reconstruirlos a partir de los respaldos.

#12 Actualizado por Daniel Viñar Ulriksen hace 29 días

La reputación de Russell no fue comprometida: http://multirbl.valli.org/lookup/164.73.68.14.html

pero la de DaVinci sí: http://multirbl.valli.org/lookup/164.73.68.37.html

Emprendmos las solicitudes de de-listing.

#13 Actualizado por Andrés Pías hace 29 días

Convendría poner en Davinci en el futuro un script similar al que estamos usando en Godel.

#14 Actualizado por Andrés Pías hace 29 días

La reputación de Godel si fue comprometida http://multirbl.valli.org/lookup/164.73.68.19.html. Esto habrá tenido algo que ver?
Se removió la ip de una RBL chilena y también de Barracuda:

We have removed 164.73.68.19 (Please wait 24-48 hours) from our blocklist for 30 days, at which time it will be re-evaluated.

Habrá que esperar.

#15 Actualizado por Daniel Viñar Ulriksen hace 29 días

http://festival.creativecommons.uy/ está en la versión 4.8.4, la última actualización de seguridad menor de la 4.8 (Ver: https://codex.wordpress.org/WordPress_Versions)

Y, aparentemente, por omisión tiene las actualizaciones menores automáticas activadas. No es indispensable actualizarlo (aunque oportuno).

#16 Actualizado por Daniel Viñar Ulriksen hace 29 días

  • % Realizado cambiado 20 por 50

La reputación de Godel si fue comprometida http://multirbl.valli.org/lookup/164.73.68.19.html. Esto habrá tenido algo que ver?

No creo que tenga que ver. El spam por esto salió directamente de Davinci.

#17 Actualizado por Daniel Viñar Ulriksen hace 29 días

Reactivamos creativecommons.uy (con el puerto 25 saliente bloqueado) y vuelven a haber inyecciones de mails.

En los logs (grep creativecommons.uy /var/log/apache2/other_vhosts_access.log | less), vemos muchas tentativas de accesos a /wp-login.

Al principio del archivo, vemos los accesos a los scripts: "GET /mqaytw/dqnjbdlsseb.php?qvt=turf-grass-pavers HTTP/1.1"

Luego encontramos otro script, no detetado hasta ahora: "POST /wp-includes/SimplePie/Net/ishfkmsj.php HTTP/1.0" 200 279 "http://www.cr
eativecommons.uy/wp-includes/SimplePie/Net/ishfkmsj.php"

Aparentemente, SimplePie es el nombre de un soft legítimo (RSS/Atom) pero también de un exploit. Lo borramos. (quizás sea un error...)

#18 Actualizado por Daniel Viñar Ulriksen hace 29 días

Surgieron nuevamente rocesos phpXXX sospechosos:

A priori, no está provocando spam:

root@davinci:~# postqueue -p
Mail queue is empty

Pero los indicadores de uso de la CPU no volvieron a sus valores de antes del hackeo:

#19 Actualizado por Daniel Viñar Ulriksen hace 26 días

Nuevamente un hackeo... el o los sitios siguen vulnerables.

Con "c" podemos ver el comando que lanzó el proceso php que surgió ahí con el usuario 2022 (no hay razón que haya otra cosa que un apache2):

Pero cuando vamos a mirar el ./tmp, no hay nada...

#20 Actualizado por Daniel Viñar Ulriksen hace 26 días

Procuramos re-construir los sitios web, verificando lo que pasamos de uno a otro. Vamos a instalar nuevos sitios: http://nuevo.musicalibre.uy/ y http://nuevo.creativecommons.uy/. Hubiera sido bueno hacerlo en otro usuario alternc, de manera a compartimentar verdaderamente los sitios (dos usuarios unix diferentes, sin permisos cruzados), pero en AlternC es complejo manejar un mismo dominio en dos usuarios diferentes... Probemos primero con el mismo usuario: cuando los sitios comprometidos estén off-line, no habrá problema.

Para evitar "contaminación" migrando, sería bueno procurar limitarse a transferir datos (archivos o bases) verificando en lo posible su contenido. Sería mejor no usar plugins de migración/exportación/importación.

Jorge recomendaba esta referencia, pero siempre es bueno ir a la fuente.

#21 Actualizado por Daniel Viñar Ulriksen hace 23 días

  • % Realizado cambiado 50 por 80

Recontruimos el sitio web musicalibre.uy, primero en una nueva url, http://nuevo.musicalibre.uy/, decargando el wordpress 4.9.1 en español, instalándolo con una base creada en alternC. Luego exportamos por phpmyadmin la base del sitio original. y la importamos en el nuevo sitio. Hubo que activar los plugin, que modificar la URL en la configuración. Luego reactivamos el tema musicalibre dese los respalods, y en esta instancia anduvo.

Constatamos que todo estaba ahí, y pusimos el nuevo sitio en http://musicalibre.uy/ desde alternc.

Veremos como se comporta el sitio creativecommons.uy

#22 Actualizado por Daniel Viñar Ulriksen hace 18 días

  • Añadido relacionada con Errores #5885: Bug en importación de datos phpmyadmin/alternc

#23 Actualizado por Daniel Viñar Ulriksen hace 18 días

Para reconstruir un sitio, en razón de un bug en el phpmyadmin/alternc (#5885) es necesario pasar a consola para migrar los datos de una base a otra. (Esto le quita a alternc/phpmyadmin su gestión completa de despliegues LAMP).

Descargamos desde phpmyadmin una exportación cc.sql.bz2 de la base cc del stio http:://creativecommons.uy/. Lo hacemos llegar por scp a davinci y descomprimimos. Debemos pasar a consola:

mysql -u cc_nuevocc -p < cc.sql

e ingresamos la contraseña de base que nos da el backend de alternc. (es más seguro esto que trabajar con un usuario mysql administrador)

#24 Actualizado por Daniel Viñar Ulriksen hace 18 días

Por phpmyadmin, modificamos en la tabl wp_options la opción siteurl para que sea http://nuevo.creativecommons.uy/

Así podemos entrar al backend http://nuevo.creativecommons.uy/wp-admin

Desde el backend, también vamos a la configuración, a modificar http://nuevo.creativecommons.uy/ como dirección del sitio.

Activamos todos los mismos plugins que en el sitio original, cambiamos temporariamente el tema, y el nuevo sitio funciona.

#25 Actualizado por Daniel Viñar Ulriksen hace 12 días

Jorge instaló el plugin Wordfence, que detectó varias infecciones.

A partir de este artículo Andrés blindó el .htaccess del Wordpress, con este script.

Exportar a: Atom PDF