elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Temas
Páginas: [1]
1  Programación / Scripting / Bot sencillo de conexión inversa vía peticiones POST [Python / PHP] en: 9 Enero 2018, 15:28 pm
Buenas, gente!

Este es mi primer post en la comunidad, y quería compartir con uds. un bot de conexión inversa, con la peculiaridad de que sólo es necesario tener un servidor web, ya que los comandos a ejecutar se van a pasar vía peticiones POST.

Si ya tienen un servidor web en la nube, mejor. Si no es así, pueden instalar XAMPP o LAMP y abrir el puerto 80 (recomiendo contratar un servidor web).

El archivo PHP que deben subir al servidor, es el siguiente:


Código
  1. <?php
  2.  
  3. $task = "task.txt";
  4.  
  5. if (!file_exists($task))
  6. {
  7. $handle = fopen($task, "a");
  8. fwrite($handle, "");
  9. fclose($handle);
  10. }
  11.  
  12. if (isset($_POST["send"]))
  13. {
  14. $handle = fopen($task, "w");
  15. fwrite($handle, date("Y-m-d H:i:s") . ";" . $_POST["send"]);
  16. fclose($handle);
  17. }
  18.  
  19. ?>
  20.  
  21. <form method="post" action="#">
  22. <input type="text" name="send" autocomplete="off">
  23. </form>

Una vez subido ese archivo al servidor, pasamos a crear el bot (en Python), el cual se va a conectar a nuestro servidor y va a buscar la tarea a ejecutar, siempre verificando que la fecha y hora de la misma no esté dentro de la lista de tareas ejecutadas.

Código
  1. import requests
  2. import time
  3.  
  4. tasks = []
  5.  
  6. def getTask():
  7. url = "http://localhost/task.txt"
  8. task = requests.get(url).text.split(";")
  9. if len(task) > 1:
  10. if task[0] in tasks:
  11. return None
  12. else:
  13. tasks.append(task[0])
  14. return task[1]
  15. else:
  16. return None
  17.  
  18. while True:
  19.  
  20. task = getTask()
  21. if task != None:
  22. if task == "status":
  23. print("Bot status: Online.\n")
  24.  
  25. time.sleep(1)
  26.  

Recuerden que la dirección http://localhost/ se debe reemplazar por la dirección del servidor al que queremos que el bot se conecte.

Para agregar más comandos al bot, simplemente se deben agregar más condiciones if, verificando el contenido string en la variable task.

Espero que les guste.
Adios!
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines