jueves, 7 de junio de 2007

Webscanner v1.0

Bueno, al fin ya hay algo un poco elaborado de ese script que escanea los servidores web. Hubiese sido mejor si lo hubiesemos tenido a dispocicion unos dias atras pero bueno... ahora lo tenemos para la proxima vez que lo necesitemos.

-------------------------scanWS.php-------------------------
/******************************************************
# Scaner de servidores web v.1.0 #
#_____________________________________________________#
# by elvispresley,pepepistola,m..c.s..p and musashi #
# #
# USO: en la variable $OBJ[ip] se indica la ip #
# inicial. #
# en $OBJ[endip] la final #
# en $webserver la cadena que se usara para #
# hacer el match. #
******************************************************/

/*************************
Variables de configuracion
**************************/
// Objetivo 186
$OBJ = array("puerto" => "80",
"ip" => "72.3.239.186",
"endip" => "72.3.239.220");

$webserver = "IIS"; // El script usa esta variable para hacer un preg_match
// para q se muestren todos los resultados dejar en blanco


error_reporting(E_ALL);


/****************************************************
No sabemos cuanto tiempo se pueda llegar a demorar
por lo que desactivamos el timeout.
****************************************************/
set_time_limit(0);




/**********************************************
(-: Ahora si a escanear!!! :-)
**********************************************/
$start=explode('.',$OBJ['ip']);
$end =explode('.',$OBJ['endip']);

$keeplooping=true;

for($i=$start[3]; $keeplooping==true ;$i++){

$resp="";
$finalip = $start[0].".".$start[1].".".$start[2].".".$i;

//Creamos el socket y nos conectamos
$socket = @socket_create(AF_INET,SOCK_STREAM,SOL_TCP);

// muy importante ponerle timeout al read
socket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,array( "sec"=>1, "usec"=>0));
socket_set_option($socket,SOL_SOCKET,SO_SNDTIMEO,array( "sec"=>1, "usec"=>0));

if(!($result = @socket_connect($socket,$finalip,$OBJ['puerto'])))
{
@socket_close($socket);
$resp="timeout";
}

$paquete = "HEAD / HTTP/1.0\n\n";

@socket_write($socket, $paquete, strlen($paquete));



while ($out=@socket_read($socket,2048)){
if(preg_match("/Server:/",$out)){
$out = explode("Server: ",$out);
$out = explode("\n",chop($out[1]));
$resp = $out[0];
}
}

if($resp==NULL) $resp= "desconocido\n";

if(preg_match("/$webserver/",$resp)){
echo "$finalip ... ";
echo "$resp\n";
}

@socket_close($socket);

//echo "$start[0].$start[1].$start[2].$i" . " - " .$OBJ['endip'];
if(("$start[0].$start[1].$start[2].$i")==$OBJ['endip']) die ("Terminator!\n");

if ($i==254 AND $start[2]==254 AND $start[1]==254){
$i=0;
$start[2]=0;
$start[1]=0;
$start[0]++;
}else if ($i==254 AND $start[2]==254){
$i=0;
$start[2]=0;
$start[1]++;
} else if($i==254) {
$i=0;
$start[2]++;
}
}
?>

--------------------------------------------------------------------

Cualquier correccion o modificacion que le haga falta al script avisenme asi o tanto yo lo corrijo o actualizo mi version.
El script esta hecho para correr en consola no para verse por internet. Pero sientanse libres de modificarlo si asi lo desean.

Saludos

2 comentarios:

Pepepistola dijo...

by elvispresley,pepepistola,m..c.s..p and musashi

ajajjaja :P :P :P esos .... xD

lo voy a probar con el bamcompile aver como funciona y cuento =)

Luján Nistal dijo...

mmmmmm........aguanten los chicos del p1mp4m mmmmm.... son tan lindos xD y ese pepepistola ufff ni les cuento x'DDDDDDDD