jueves, 3 de mayo de 2018


Web-Bot


Los robots web nos permiten ejecutar acciones como si se trataran de usuarios reales manipulando una página web común y corriente.

Algunas de las acciones que podemos realizar es la consulta y descarga de información de manera automática, posteo de contenido y manipulación de comentarios.



A continuación mostraremos un ejemplo de como configurar y lanzar nuestra primera web bot

Para realizarlo necesitamos:
  • Sistema Operativo  Host (Linux, Centos 7)
  • Selenium
  • Geckodriver
  • Phantomjs

Instalando dependencias


Una vez instalado nuestro sistema operativo debemos instalar python en caso de que no venga instalado por default e instalar pip.

[root@localhost ~]# yum install python
[root@localhost ~]# yum install python-pip
[root@localhost ~]# pip install --upgrade pip

Instalar Selenium

Instalamos el manejador web y sus dependencias.

[root@localhost ~]# pip install selenium

Descargamos el driver dependiendo si vamos a usar Firefox o Chrome. En este caso utilizaremos Firefox y la versión correspondiente a nuestro sistema operativode 32 o 64 bits.

https://github.com/mozilla/geckodriver/releases

Una vez descargado y extraido el contenido, debemos colocarlo en los binarios del sistema.

[root@localhost Descargas]# tar -xvf geckodriver-v0.20.1-linux64.tar.gz
[root@localhost Descargas]# cp geckodriver /usr/local/bin/
[root@localhost Descargas]# cp geckodriver /usr/bin/

Actuliza firefox

Hasta aqúi sería todo, pero si tu navegador firefox es el que viene por defaul obtendrás errores como el siguiente.


selenium.common.exceptions.WebDriverException: Message: connection refused

Para solucionarlo deberás contar con la versión de firefox más actualizada. descargálo de la fuente original.

https://www.mozilla.org/es-MX/firefox/new/

Una vez descargado,  descompríme el paquete descargado en  /usr/local/ y crea la liga al binario original.

[root@localhost Descargas]# cp firefox-59.0.3.tar.bz2 /usr/local/
[root@localhost Descargas]# cd /usr/local/
[root@localhost local]# tar -xvf firefox-59.0.3.tar.bz2
[root@localhost local]# ln -s /usr/local/firefox/firefox /usr/bin/firefox


Hasta aqui ya tenemos todo funcionando correctamente por lo que rest ahacer una prueba.

Mi primer web bot

Hagamos una prueba abriendo una página web e imprimiendo el código fuente.


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os 
from selenium import webdriver 
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox() driver.get("http://www.google.mx")
print driver.page_source.encode("utf-8")


El resultado debe ser similar al siguiente


Como podemos ver, abre una ventana de firefox nueva, con la url que solicitamos y en la consola se muestra el código fuente de la misma.

Ahora digamos que queremos hacer lo mismo pero no contamos con interfáz gráfica en nuestro sistema operativo, ¿cómo puedo hacerlo posible?.

Navegador web desde consola 


Podemos realizar lo mismo que en firefox, utilizando un navegador diferente, que soporta javascipt desde consola.

http://phantomjs.org/

Para ello descargamos el paquete, instalamos sus dependencias y lo colocamos en los binarios.

[root@localhost Descargas]# yum install fontconfig freetype freetype-devel fontconfig-devel libstdc++
[root@localhost Descargas]# tar -xvf phantomjs-2.1.1-linux-x86_64.tar.bz2
[root@localhost Descargas]# cp phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/
[root@localhost Descargas]# cp phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/bin/

Si todo funciona ok, ahora modificamos el archivo python agregando este driver web.


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os 
from selenium import webdriver 
from selenium.webdriver.common.keys import Keys

driver = webdriver.PhantomJS()
#driver = webdriver.Firefox() 

driver.get("http://www.google.mx")
print driver.page_source.encode("utf-8")



Obtendremos un resultado identico al de firefox con la diferencia de que no lanzara ninguna ventana y obtendremos el código fuente.

Conclusiones


Al utilizar los robots web podemos realizar muchas más cosas de manera automática que impliquen realizar alguna acción en una página de internet sin tener interacción humana.

Esto támbíen es una herramienta clave para todo aquel que desee concvertirse en un hacker ya sea para realizar pruebas de sistemas y estabilidad, así como para realizar ataques.

Un ejemplo serían los retos que aparecen en páginas de WarGames de seguridad informática como la siguiente.

https://www.hackthissite.org/

En el reto debes contestar antes de 15 segundos, decodificando una imagen de morse a caracteres.








Welcome to My Blog

Popular Post

Blogger templates

Páginas

Con tecnología de Blogger.

Sobre el blog

En este blog muestro la vida de un administrador de sistemas en especial con tareas de soporte técnico, administración de servidores, redes y seguridad informática.

- Copyright © K3y1and -Robotic Notes- Powered by Blogger - Designed by Johanes Djogan -