Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: Feedeex en 19 Febrero 2011, 05:12 AM

Título: ¿Telnet en php?
Publicado por: Feedeex en 19 Febrero 2011, 05:12 AM
Buenas a todos. Voy a ser rápido y conciso, quiero saber si hay alguna libreria o forma de conectar a telnet mediante php. La sintáxis que uso es así:

Citar
telnet xxx.xxx.xxx.xxx zzzz

Donde "x" son números de IP y "z" el puerto. Una vez que conecto me dice:

CitarPassword:

Es decir, necesaria saber si hay alguna librería o algo que se pueda adaptar a lo que yo necesito. Muchas gracias.
Título: Re: ¿Telnet en php?
Publicado por: Diabliyo en 19 Febrero 2011, 05:22 AM
Sockets... busca en: php.net sobre fsockopen()
Título: Re: ¿Telnet en php?
Publicado por: Feedeex en 22 Febrero 2011, 17:56 PM
Estuve averiguando...
Cuando yo lo hago manualmente hago lo siguiente:

• Abro el CMD.
• Ingreso "telnet IP PUERTO"
• Me dice "Password:". Ingreso password y luego me dice "Bienvenido a la consola del D2GS".

Y ahí me aparece:

CitarD2GS>

Si yo ingreso kick Fede la función que cumple es la de expulsar al jugador "Fede" de la partida donde se encuentre (es un juego online).

Ahora, con mi código:

<html>
<head><title>Telnet de D2Nemesis</title></head>
<body>
<?php
$direccion 
IP";
$puerto = NUMEROPUERTO;
$tiempo_colapsa = 30;
$password_telnet = "CONTRASEÑA";
$conecta_telnet = fsockopen($direccion$puerto$errno$errstr$tiempo_colapsa);
 if (!
$conecta_telnet) {
  echo "
$errstr ($errno)";
  echo "
<br>";
  } else {
   fputs(
$conecta_telnet,$password_telnet);
   echo "
&iexcl;Conectado satisfactoriamente!";
   }
?>

<div align="Center">
<form method="GET" action="telnet.php">
<b>Kickear usuario</b>:&nbsp;<input type="text" name="usuario_kick" id="usuario_kick" maxlength="15" style="text-align: center">
<input type="submit" value="Kickear usuario">
</form>
<?php
if (isset($_GET['usuario_kick'])) {
 
$usuario_kick trim($_GET['usuario_kick']);
  
$kickear fputs($conecta_telnet"kick $usuario_kick");
  if (!
$kickear) {
   echo 
"Error al kickear al usuario $usuario_kick";
   } else {
  echo 
"El usuario $usuario_kick ha sido kickeado satisfactoriamente.";
  }
 }
?>


Me devuelve:

Citar¡Conectado satisfactoriamente!
Kickear usuario:  <TEXTBOX ACA>

Es decir, estaría conectado ya al telnet de forma correcta. Pero el problema está en cuando le indico el usuario a kickear, me devuelve:

Citar¡Conectado satisfactoriamente!
Kickear usuario: 
El usuario Ari ha sido kickeado satisfactoriamente.

Es decir, yo hubiese ejecutado por la consola "kick Ari". El problema está en que desde la página me dice que lo hizo correctamente, pero nunca lo kickea al usuario de la partida, sin embargo, en el cmd siguiendo los mismos pasos SI lo kickea.


Espero que puedan ayudarme, gracias.
Título: Re: ¿Telnet en php?
Publicado por: Diabliyo en 22 Febrero 2011, 18:26 PM
en este caso cuando te encuentras con estos problemas, siempre es conveniente verificar las tramas mediante Wireshark... Te recomiendo abras Wireshark ejecutes el comando en consola (de la forma en que si te funciona) después detienes wireshark y verifica las tramas para confirmar si es solo un paquete el que envía para realizar el kick. Tambien verificar si el nombre del usuario se envia con salto de linea o sin salto de linea, eso tal vez influya.

Necesitas analizarlo a nivel de tramas !

Saludos !
Título: Re: ¿Telnet en php?
Publicado por: Feedeex en 23 Febrero 2011, 02:43 AM
Siguiendo este tutorial: http://www.youtube.com/watch?v=O1JMQfbHFaI intento ver los packetes que se envían. El programa me dice que estoy recibiendo paquetes (aumentan cada ves mas) en la barra de tareas, pero la lista se queda en blanco. ¿Qué sucede?.
Título: Re: ¿Telnet en php?
Publicado por: Diabliyo en 23 Febrero 2011, 03:46 AM
Mira el minuto 3:26 del video !...

Y explicate mejor, no se que es la "barra de tareas", entiendo que aparecen....
Título: Re: ¿Telnet en php?
Publicado por: Feedeex en 23 Febrero 2011, 17:53 PM
Gracias, he conseguido ver los paquetes que entran desde la IP donde conecto al telnet pero.. ¿ahora que hago? (me mire por completo el videotutorial que explica sobre las peticiones). Siempre utiliza el protocolo TCP,  acá un pequeño ejemplo de cuando hago la petición:

Citar1   0.000000   192.168.1.100   190.224.163.23   TCP   58127 > ddi-tcp-1 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=8 SACK_PERM=1
2   0.059510   190.224.163.23   192.168.1.100   TCP   ddi-tcp-1 > 58127 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1452 WS=0 SACK_PERM=1
3   0.059559   192.168.1.100   190.224.163.23   TCP   58127 > ddi-tcp-1 [ACK] Seq=1 Ack=1 Win=66560 Len=0
4   0.117303   190.224.163.23   192.168.1.100   TCP   ddi-tcp-1 > 58127 [PSH, ACK] Seq=1 Ack=1 Win=65535 Len=6
5   0.117413   192.168.1.100   190.224.163.23   TCP   58127 > ddi-tcp-1 [PSH, ACK] Seq=1 Ack=7 Win=66560 Len=3

Y falta mucho más pero.. estoy desconcertado. ¿Qué debo hacer ahora?, ¿qué es lo que "especificamente" debo buscar?. Muchas gracias.
Título: Re: ¿Telnet en php?
Publicado por: Feedeex en 26 Febrero 2011, 05:33 AM
¿Nadie? :-(
Título: Re: ¿Telnet en php?
Publicado por: Lunfardo en 26 Febrero 2011, 20:03 PM
http://php.net/manual/es/function.shell-exec.php



espero que te ayude , saludos =)
Título: Re: ¿Telnet en php?
Publicado por: Feedeex en 2 Marzo 2011, 00:11 AM
Cita de: SmogMX en 26 Febrero 2011, 20:03 PM
http://php.net/manual/es/function.shell-exec.php



espero que te ayude , saludos =)

Si pero eso trabaja con datos y me los devuelve. Si yo uso:

shell_exec("IP, PUERTO");

y el sistema me devuelve:

CitarPassword:

No tengo forma de responderle, ¿o si?.