Miniscanner de puertos en PHP

Iniciado por arthusu, Marzo 29, 2013, 11:10:20 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Marzo 29, 2013, 11:10:20 PM Ultima modificación: Marzo 27, 2014, 05:33:38 PM por Expermicid
Bueno siguiendo la idea de Sanko en su post: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
pues entonces pense que se podia hacer en php y pues aqui lo dejo, no soy muy bueno programando pero a lo mejor  alguien le sirve....




Código: php
<title>Escaner puertos</title>
<style>
body{
background-color: black;
color:white;
}
</style>
<?php
//no se cuantos puertos escanearemos entonces dejo que el script pueda ejecutarse y se tome su tiempo :P
set_time_limit(0);
//si existe enviar entonces.... que realice los siguientes procesos
if(isset($_POST['enviar'])){
//atrapo todos los parametros del formulario y les quito xss :P
$url=htmlentities($_POST['url'],ENT_QUOTES);
$pi=htmlentities($_POST['pi'],ENT_QUOTES);
$pf=htmlentities($_POST['pf'],ENT_QUOTES);
//si no esta vacio ninguno de los campos Nota: Esto se puede validar mucho mas tanto como tu quieras...
if(!empty($url) && !empty($pi) && !empty($pf)){
//le muestro un mensaje con el objetivo y uno que espere mientras esta escaneando...
echo '<h3>Objetivo:<font color="red">'.$url."</font></h3><br />";
echo 'Espere mientras se esta escaneando puede tardar.<blink>.</blink><blink>.</blink><br />';
//le asigno a $i el valor de pi que es el puerto inicial y mientras el puerto inicial sea menor al puerto final va aumentar de 1 a 1
for($i=$pi;$i<=$pf;$i++){
//si la coneccion se realizo existosamente entonces el puerto esta abierto
//los parametros de fsockopen son la url,puerto,error coneccion,error coneccion,tiempo limite
if($connect=@fsockopen($url,$i,$errno,$errstr,5)){
echo '<font color="#30E319">Puerto abierto:'.$i."</font><br />";
//cierro la coneccion
@fclose($connect);
//borro la variable connect se creara arriba
unset($connect);
}else{
//si no se realizo la coneccion no devuelvo nada
echo NULL;
//echo 'Puerto cerrado:'.$i."<br />"
}
//libero el buffer
flush();
}
}else{
//si los campos estan vacios muestra un mensaje y el formulario
echo '<b>Rellena los campos correctamente</b><br />';
echo '
<h1>MiniScanner de Puertos:</h1>
<form action="" method="post">
<b>Ingresa la url:</b><input name="url" type="text" value="www."><br />
<b>Ingresa el puerto inicial:</b><input name="pi" type="text"><br />
<b>Ingresa el puerto final:</b><input name="pf" type="text"><br />
<input name="enviar" type="submit">
</form>
';
}
}else{
//sino existe enviar que me muestre el formulario
echo '
<h1>MiniScanner de Puertos:</h1>
<form action="" method="post">
<b>Ingresa la url:</b><input name="url" type="text" value="www."><br />
<b>Ingresa el puerto inicial:</b><input name="pi" type="text"><br />
<b>Ingresa el puerto final:</b><input name="pf" type="text"><br />
<input name="enviar" type="submit">
</form>
';
}

?>


Nota: Antes de que que me troleen pueden hacerme criticas constructivas :P xD salu2
Pentest - Hacking & Security Services

Contact me: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Yo también hice uno cuando leí sobre sockets en php jeje

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Nota: Antes de que que me troleen pueden hacerme criticas constructivas :P xD salu2

No soy bueno troleando, así que me paso a las criticas constructivas xD...


  • Deberías empezar a usar funciones para una mejor "Programación estructurada"
  • Te recomiendo usar Operaciones Ternarias, así es más legíble el código ;)

Y en:

Código: PHP

if(!empty($url) && !empty($pi) && !empty($pf)){...


Puedes hacerlo más "simple":

Código: PHP

if(!empty($url)&&($pi)&&($pf)){...
8)

Zalu2!  ;D
Sólo el conocimiento te hace libre.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Yo también hice uno cuando leí sobre sockets en php jeje

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Nota: Antes de que que me troleen pueden hacerme criticas constructivas :P xD salu2

No soy bueno troleando, así que me paso a las criticas constructivas xD...


  • Deberías empezar a usar funciones para una mejor "Programación estructurada"
  • Te recomiendo usar Operaciones Ternarias, así es más legíble el código ;)

Y en:

Código: PHP

if(!empty($url) && !empty($pi) && !empty($pf)){...


Puedes hacerlo más "simple":

Código: PHP

if(!empty($url)&&($pi)&&($pf)){...
8)

Zalu2!  ;D
Gracias bro :D salu2
Pentest - Hacking & Security Services

Contact me: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Muy bueno tu aporte, lo único es que concuerdo con 2facer, deberías comenzar a usar funciones; Es más sencillo y mucho más ordenado.
Saludos hermano.
Underc0de Manager!

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Muy bueno tu aporte, lo único es que concuerdo con 2facer, deberías comenzar a usar funciones; Es más sencillo y mucho más ordenado.
Saludos hermano.
Gracias por la sugerencia la tomare en cuenta bro salu2
Pentest - Hacking & Security Services

Contact me: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Esta bueno.
Saludos.
Tener éxito no es aleatorio, es una variable dependiente del esfuerzo.

Está bien bueno, pero podrias potenciarlo un poco mas, por ejemplo utilizando hilos de proceso para escanear de 5 en 5 puertos y la posibilidad de establecer manualmente el tiempo limite de conección del socket ya que talves queremos detectar algo que se demora en abrir.

¿Como se pueden hacer hilos o threads en php?, no se puede :P a menos que lo hagas desde la consola con forks o alguna librería especial, pero si se puede simular desde javascript.

Por ejemplo... tienes la vista en html con los botones, al hacer click javascript llamará 5 veces a una misma función no sincronizada, por ejemplo usando setTimeOut(function(){ ... }, 0) esto hará que se hagan 5 peticiones web al mismo archivo del escaneador pero con variables, donde pueden ser por ejemplo, ip, timeout del socket, puerto, etc.

Despues el retorno de este script que lo vaya mostrando en la vista de html con un cargador por cada socket.

Si lo haces no utilices gif animados porque si pones varios mas el settimeout vas a causar que se queden pegados, mejor usa css3:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Ahi hay buenas animaciones.

Saludos.
- No tienes permitido ver los links. Registrarse o Entrar a mi cuenta - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta