{"id":4869,"date":"2013-05-30T23:03:21","date_gmt":"2013-05-30T21:03:21","guid":{"rendered":"http:\/\/www.palentino.es\/blog\/?p=4869"},"modified":"2013-05-30T23:18:33","modified_gmt":"2013-05-30T21:18:33","slug":"pasos-para-recuperar-un-site-infectado-por-un-virus-el-ataque-php-eval","status":"publish","type":"post","link":"https:\/\/www.palentino.es\/blog\/pasos-para-recuperar-un-site-infectado-por-un-virus-el-ataque-php-eval\/","title":{"rendered":"Pasos para recuperar un site infectado por un virus. El ataque PHP eval"},"content":{"rendered":"<p>Esta semana estamos acudiendo a un ataque masivo de websites.<\/p>\n<p>El comportamiento existente una vez infectado se detecta con el err\u00f3neo funcionamiento de webs, creaci\u00f3n de archivos ocultos, substituci\u00f3n de index.php en distintas carpetas, etc &#8230;<\/p>\n<p>Estas son infectadas con archivos que poseen un c\u00f3digo en formato base 64 similar a este:<\/p>\n<p><!--more--><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #800000;\"><strong>&lt;?php eval(gzinflate(base64_decode(&#8220;BcFJkqRGlh5r6FqpbdycsNrLAHa9r1ieOyXoh6DlScu<\/strong><\/span><\/p>\n<p><span style=\"color: #800000;\"><strong>kUfck7NtypWurirga7AzkszOheMNnXE580GtTczomgrodw<\/strong><\/span><\/p>\n<p><span style=\"color: #800000;\"><strong>vPQTKZAT7j2heuFvv27JREPUyvyL3bMa0+lgtr1wdrB3SmEU3ebvhdlMx\/\/19\/fz8\/P4H&#8221;))); ?&gt;<\/strong><\/span><\/p>\n<p>Con una herramienta como esta podremos decodificar el contenido del c\u00f3digo:<\/p>\n<p><a href=\"http:\/\/www.tareeinternet.com\/scripts\/decrypt.php\" target=\"_blank\">http:\/\/www.tareeinternet.com\/scripts\/decrypt.php<\/a><\/p>\n<p>Vemos los pasos necesarios para desinfectar la web, \u00a0como funciona este ataque, y como &#8220;prevenirse&#8221;.<\/p>\n<p><strong>1)<\/strong> \u00a0Lo m\u00e1s importante. Disponer de una <strong>copia de seguridad previa, limpia<\/strong>. Recuerdo la importancia de realizar copias de forma peri\u00f3dica.<\/p>\n<p><strong>2) Apagar o desconectar el sitio.<\/strong><\/p>\n<p>Necesitaremos cerrar b\u00e1sicamente la puerta al sitio antes de hacer el trabajo de recuperaci\u00f3n. Esto evitar\u00e1 que los visitantes se infecten con el c\u00f3digo malicioso, ver los mensajes de error, etc.<\/p>\n<p>Para realizarlo es necesario crear un \u00a0archivo .htaccess en el ra\u00edz del sitio o webroot. (Sustituir con nuestra propia direcci\u00f3n IP<\/p>\n<p>Para conocer la ip podemos consultar webs como esta:<\/p>\n<p><a href=\"http:\/\/icanhazip.com\" target=\"_blank\">http:\/\/icanhazip.com<\/a><\/p>\n<p><strong><\/p>\n<div class=\"codecolorer-container text mac-classic\" style=\"overflow:auto;white-space:nowrap;width:635px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/><\/div><\/td><td><div class=\"text codecolorer\">order deny,allow<br \/>\n&lt;code&gt;deny from all<br \/>\n&lt;code&gt;allow from !!Tu direcci\u00f3n ip aqui!!<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p><\/code><\/code><\/strong><\/p>\n<p>El c\u00f3digo del .htaccess funciona en servidores con Apache.<\/p>\n<p>Para crear un archivo similar en <strong>IIS<\/strong> es necesario crear un web.config<\/p>\n<pre><strong>&lt;security&gt;\r\n&lt;ipSecurity allowUnlisted=\"false\"&gt; \r\n&lt;!-- this line blocks everybody, except those listed below --&gt;\r\n&lt;clear\/&gt; &lt;!\u2014removes all parent restrictions --&gt;\r\n&lt;add ipAddress=\"127.0.0.1\" allowed=\"true\"\/&gt; \r\n&lt;!-- allow requests from the local machine --&gt;\r\n&lt;add ipAddress=\"83.116.19.53\" allowed=\"true\"\/&gt; \r\n&lt;!-- allow the specific IP of 83.116.19.53 --&gt;\r\n&lt;add ipAddress=\"83.116.119.0\" subnetMask=\"255.255.255.0\" allowed=\"true\"\/&gt;<\/strong>\r\n<strong> &lt;!--allow network 83.116.119.0 to 83.116.119.255--&gt;\r\n&lt;add ipAddress=\"83.116.0.0\" subnetMask=\"255.255.0.0\" allowed=\"true\"\/&gt;<\/strong>\r\n<strong> &lt;!--allow network 83.116.0.0 to 83.116.255.255--&gt;\r\n&lt;add ipAddress=\"83.0.0.0\" subnetMask=\"255.0.0.0\" allowed=\"true\"\/&gt;<\/strong>\r\n<strong> &lt;!--allow entire \/8 network of 83.0.0.0 to 83.255.255.255--&gt;\r\n&lt;\/ipSecurity&gt;\r\n&lt;\/security&gt;<\/strong>\r\n\r\nVer m\u00e1s ejemplos aqu\u00ed:\r\n<a href=\"http:\/\/www.michaels.me.uk\/post.cfm\/restricting-access-to-your-website-admin-by-ip-address\" target=\"_blank\">http:\/\/www.michaels.me.uk\/post.cfm\/restricting-access-to-your-website-admin-by-ip-address<\/a><\/pre>\n<p>&nbsp;<\/p>\n<p>3)<strong>\u00a0Descargar una copia de todos los ficheros del servidor remoto<\/strong> al ordenador local. Recuerda disponer de antivirus actualizado.<\/p>\n<p>Descarga todo en una carpeta separada de los backups limpios. Esto puede llevar tiempo, dependiendo de la velocidad de conexi\u00f3n, tama\u00f1o del site, numero de ficheros, etc.<\/p>\n<p>4) <strong>Descargar e instalar una utilidad de comparaci\u00f3n de archivos \/ carpetas<\/strong><\/p>\n<p>En un equipo Windows, podemos utilizar WinMerge &#8211;<a href=\" http:\/\/winmerge.org\/\" target=\"_blank\"> http:\/\/winmerge.org\/<\/a> &#8211; es gratis y bastante potente.<\/p>\n<p>En una m\u00e1quina de MacOS, echa un vistazo a la lista de posibles alternativas de <a href=\"http:\/\/Alternative.to\" target=\"_blank\">Alternative.to<\/a><\/p>\n<p>Necesitaremos comprobar los siguientes elementos:<\/p>\n<p>Si los archivos son id\u00e9nticos &#8211; El archivo actual es el mismo que la copia de seguridad, por lo que no se ve afectada.<\/p>\n<p>Archivos diferentes, pueden estar perfectamente infestados por el virus.<\/p>\n<p>Resolver diferencias en cuanto al numero, tama\u00f1o, versi\u00f3n, fechas, etc.<\/p>\n<p><strong>5) Cambiar passwords, de FTP, panel de control, etc.<\/strong><\/p>\n<p><strong>6) Comprobar el perfecto funcionamiento.<\/strong><\/p>\n<p>7) Abrir el site al publico eliminando las restricciones de IP<\/p>\n<p>8) Crear backups peri\u00f3dicos programados.<\/p>\n<p>9) Ejecutar tareas cron para comprobar el estado y cambio de ficheros. Mediante scripts.<\/p>\n<p>Herramientas:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/lucanos\/Tripwire\" target=\"_blank\">Tripwire &#8211; \u00a0un script en PHP \u00a0para detectar, analizar y reportar ficheros nuevos, borrados o modificados<\/a><\/li>\n<li><a href=\"http:\/\/forums.asmallorange.com\/topic\/13649-shell-script-to-monitor-file-changes\/%20Shell%20script%20to%20monitor%20file%20changes\" target=\"_blank\">Shell script \u00a0para monitorizar cambios en los ficheros<\/a><\/li>\n<li><a href=\"http:\/\/www.webdigi.co.uk\/blog\/2009\/how-to-detect-if-your-webserver-is-hacked-and-get-alerted\/\" target=\"_blank\">Como detectar si tu servidor web ha sido hackeado y estar alerta<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong>Mecanismos de prevenci\u00f3n.<\/strong><\/p>\n<p>Empleo de conexiones FTP seguras.<\/p>\n<p>Cambio de contrase\u00f1a de FTP y panel de control.<\/p>\n<p>Empleo de antivirus actualizado y anti troyanos.<\/p>\n<p>Cambio de contrase\u00f1as peri\u00f3dicamente.<\/p>\n<p>Contrataci\u00f3n de servidores VPS o dedicados. Sin ser multidominio.<\/p>\n<p>Actualizaci\u00f3n del sistema.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Trucos<\/strong><\/p>\n<p>Empleo de scripts autoeliminaci\u00f3n de PHP encode autom\u00e1ticamente desde el servidor.<br \/>\n<a href=\"http:\/\/blog.criticalpixel.com\/\" target=\"_blank\">http:\/\/blog.criticalpixel.com\/<\/a><\/p>\n<p>Para decodificar los encriptados scripts php podremos usar esta herramienta:<br \/>\n<a href=\"http:\/\/www.opinionatedgeek.com\/dotnet\/tools\/base64decode\/\" target=\"_blank\" rel=\"nofollow\">http:\/\/www.opinionatedgeek.com\/dotnet\/tools\/base64decode\/<\/a><\/p>\n<p>Para formatear los resultados, esta otra:<br \/>\n<a href=\"http:\/\/beta.phpformatter.com\/\" target=\"_blank\" rel=\"nofollow\">http:\/\/beta.phpformatter.com\/<\/a><\/p>\n<p>Otro codificador, decodificador.<\/p>\n<p><a href=\"http:\/\/www.motobit.com\/util\/base64-decoder-encoder.asp\" target=\"_blank\">http:\/\/www.motobit.com\/util\/base64-decoder-encoder.asp\u00a0<\/a><\/p>\n<p>Hasta luego &#8211;\u00a0SGFzdGEgbHVlZ28=<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Esta semana estamos acudiendo a un ataque masivo de websites. El comportamiento existente una vez infectado se detecta con el err\u00f3neo funcionamiento de webs, creaci\u00f3n de archivos ocultos, substituci\u00f3n de index.php en distintas carpetas, etc &#8230; Estas son infectadas con archivos que poseen un c\u00f3digo en formato base 64 similar a este:<\/p>\n","protected":false},"author":1,"featured_media":4887,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[413,50,7,14],"tags":[420,419],"class_list":["post-4869","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hosting-2","category-seguridad","category-software","category-varios","tag-eliminar","tag-virus"],"_links":{"self":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/4869","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/comments?post=4869"}],"version-history":[{"count":25,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/4869\/revisions"}],"predecessor-version":[{"id":4901,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/4869\/revisions\/4901"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media\/4887"}],"wp:attachment":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media?parent=4869"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/categories?post=4869"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/tags?post=4869"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}