theHarvester: recolectando correos (y algo más)

***************************************************
*                                                 *
*    /\  /\__ _ _ ____   _____  ___| |_ ___ _ __  *
*   / /_/ / _` | '__\ \ / / _ \/ __| __/ _ \ '__| *
*  / __  / (_| | |   \ V /  __/\__ \ ||  __/ |    *
*  \/ /_/ \__,_|_|    \_/ \___||___/\__\___|_|    *
*                                                 *
***************************************************

theHarvester es un programa escrito en Python para recolectar cuentas de correo, subdominios, virtual hosts… y algunas cosas más que pueden utilizarse para un uso dañino. La herramienta es popular al estar incluida en la distribución destinada a la seguridad Kali Linux. A mi me ha resultado útil para completar e identificar un pequeño listado de contactos que he perdido, todos de una misma organización: compartían el dominio en sus direcciones de correo (@organización.com). Y ese va a ser el uso que aquí se expone.

Si no estamos utilizando una distribución que incluya el programa, lo descargamos desde GitHub (botón verde “Clone or Download”), y posteriormente descomprimimos el archivo. Modificaremos los permisos del programa desde un terminal:

sudo chmod 755 theHarvester.py

La sintaxis para ejecutar el programa es la siguiente:

python theHarvester.py -d ORGANIZACIÓN.COM -l 500 -b SERVICIO -f /RUTA/ARCHIVO-DE-SALIDA.HTM

La opción -d es para indicar el dominio a buscar. En el ejemplo he puesto “organización.com”.

La opción -l limita el número de resultados con los que el programa trabaja a la vez. Propongo 500, aunque algunos de los servicios tienen su propio límite.

La opción -b indica el servicio con el que realizar la búsqueda: google, googleCSE (es el “Custom Search” del buscador), bing, bingapi, pgp, linkedin, google-profiles, jigsaw, twitter, googleplus. Con la opción -b all buscamos en todos ellos, aunque me ha dado algún problema y he tenido que probar uno por uno.

Por último, la opción -f permite indicar la ruta y el nombre de archivo, con extensión htm, que genera un documento web con los resultados.

· Solucionar el error Request library not found, please install it before proceeding

Si obtenemos este error al ejecutar el programa, debemos instalar la librería Request. Descargamos este script desde este enlace, y lo ejecutamos con los siguientes comandos:

sudo python get-pip-py

sudo pip install requests

Fuente: Instalación PIP

Detectando memoria RAM dañada

Los problemas que ocasiona una RAM dañada pueden dar muchos dolores de cabeza, al ser variados y de difícil diagnóstico. Sirvan como ejemplos sistemas que se reinician, sin lograr encontrar un error de software que produzca tal efecto.

Para poder detectar si la RAM se encuentra dañada contamos con Memtest86+ que, a diferencia de otras herramientas similares, es de código abierto.

14310866_1239345202782871_1302168633_n

Es probable que puedas acceder a Memtest86+ desde tu gestor de arranque (GRUB, BURG, LILO…): entre los diferentes sistemas operativos / kernels a elegir, puedes encontrar una línea para ejecutarlo.

Pero si no es así, o tienes problemas para acceder al gestor de arranque, puedes descargar Memtest86+ desde su web, en la que encontrarás imágenes ISO para pasarlas a un CD o USB, e incluso un instalador (solo para Windows) que grabará la imagen en un USB.

El programa ejecuta pruebas de estrés a los módulos de memoria RAM. Cada vez que finaliza un paquete de pruebas lo contabiliza (Pass). Pueden ser necesarios varios Pass hasta que se detecta si la memoria está dañada, por lo que podemos dejar una noche entera ejecutándose el programa.

Añadir diccionarios a WPS Office

googleplay_wps-office_originalLe estoy dando una oportunidad a WPS Office, por si me permitiera un trabajo más cómodo del que llevo haciendo estos años con Libre Office.

Cambiar el idioma de la suite ofimática es sumamente sencillo, desde el icono que incluye una letra “A” en la parte superior derecha. Algo más laborioso es incluir diccionarios de idiomas, para poder corregir mientras escribimos.

Los diferentes paquetes de diccionario los descargamos de la siguiente URL:

http://wps-community.org/download/dicts

Encontramos, por ejemplo, es_ES para “Español – España”o ca-ES para “Catalán – España”. Una vez descargados, descomprimimos los archivos y copiamos su contenido en la siguiente ruta:

/opt/kingsoft/wps-office/office6/dicts

Podemos hacerlo desde una terminal, o más cómodamente abriendo nuestro explorador de archivos como superusuario. Por ejemplo:

gksudo thunar

En todo caso, substituimos “thunar” por nuestro explorador: Nautilus, PcManFM, Rox

Cerrar sesión gráfica desde terminal

El escenario es bastante peculiar: necesito cerrar la sesión gráfica para volver a la pantalla de login, en la que poder seleccionar usuario y entorno de escritorio. Esto suele ser fácil al venir integrados en los menús las opciones cerrar sesión o cambiar usuario. En mi caso, al no realizar nunca esta tarea, tengo eliminada esta entrada del menú para ser lo más productivo posible eliminando elementos innecesarios.

Si abrimos un terminal y ejecutamos los comandos logout o exit, no vamos a conseguir nada. Como mucho cerrar la misma terminal, pero seguiremos en la misma sesión y entorno de escritorio. Conseguimos nuestro fin matando todos los procesos del usuario en activo, puesto esto también mata la sesión iniciada. Por lo tanto, podemos escribir desde un terminal, indicando el nombre de usuario en cada caso:

pkill -KILL -u nombredeusuario

Fuente: foros de Ubuntu-ES

Aumentar el rendimiento de PCs con vídeo integrado

stamps_ram

Según el uso que le demos a máquinas antiguas podemos distribuir la RAM dedicada al sistema o bien a la tarjeta gráfica integrada (GPU).

Si utilizamos la máquina para estrujar antiguos juegos, nos puede interesar asignar más memoria RAM a la GPU. En cambio, si las tareas son dirigidas a la ofimática o navegar por la red nos resulta más beneficioso disminuir la RAM dedicada a la GPU y poder así hacer uso de ella.

Este parámetro se modifica desde la BIOS, a la que accedemos justo al iniciar el ordenador presionando la tecla DEL (o SUPRIMIR). En muchos casos es visible el mensaje “Press DEL to enter SETUP“, o similar.

Una vez en la BIOS, accedemos a la opción “Advanced Chipset Features“, para cambiar los valores de “Frame Buffer Size“. Si aumentamos el valor (64, 128, 256…) se asignará más memoria RAM a la GPU. En caso contrario esta memoria se verá liberada para otras tareas. El valor más adecuado dependerá del uso que hagamos de nuestra máquina y de la cantidad de RAM disponible. Si contamos con 1GB de RAM y dedicamos 512 MB a la GPU, nos quedaremos con una RAM libre bastante pobre e insuficiente para muchas tareas. Por otro lado, si nuestro sistema operativo es liviano y no sacamos partido a las opciones gráficas, puede beneficiarnos el utilizar toda la RAM para el sistema en los casos en que tengamos poca memoria.

Onedrive-d: “setup script does not support your distro token”

driveMe veo obligado a cambiar de servicio de copia en la nube, puesto que Copy.com será discontinuado en mayo. Por ello estoy configurando onedrive-d que funciona como cliente para la nube OneDrive de Microsoft: no proporcionan un cliente oficial para Linux, pero en mi trabajo me facilitan una cuenta con muchísimo espacio disponible. Teniendo en cuenta el espacio que necesito, no me quedan muchas más opciones. [Actualización: las cuentas business no están soportadas por este cliente].

Para instalarlo desde un terminal apuntamos al repositorio para descargar los archivos:

git clone https://github.com/xybu92/onedrive-d.git

Ahora sólo queda acceder al directorio que hemos descargado (cd onedrive-d) y ejecutar el script de instalación: ./install.sh

Entre otras cosas, el script installa python3 detectando previamente qué distribución tenemos, y así poder ejecutar el comando de instalación que corresponda: apt-get, yum, pacman… Si tenemos instalada una distribución medianamente popular, será detectada sin problemas e iniciará la instalación. De no ser así, aparecerá el siguiente mensaje: “setup script does not support your distro token“. Al final de este output se indica el nombre con el que reconoce a nuestra distribución. En mi caso, añade “mx” al final del mensaje al tratarse de Antix – MX.

Para solucionar el problema editamos el script con nuestro programa favorito (Leafpad, Nano, Medit…) y buscamos la sección “case $DISTRIB_ID in“. Veremos como recoge diferentes métodos de instalación. Para distribuciones basadas en Debian se indica el nombre (o token) de estas: elementaryos|debian|ubuntu|linuxmint|raspbian. Del mismo modo que se diferencian métodos para Fedora, Opensuse, Arch y Manjaro. Simplemente tenemos que añadir el token de nuestra distribución que el mensaje de error nos ha indicado no soportar, y lo haremos junto a aquellas distribuciones de las que nuestro sistema es familia.

En mi caso Antix – MX está basado en Debian, y por ello me basta con añadir “mx” en el listado de distribuciones de la misma familia o rama: “elementaryos|debian|ubuntu|linuxmint|raspbian|mx“.

Hecho este cambio, guardamos el archivo y podemos ejecutar nuevamente desde la consola el script install.sh, esta vez sin mensaje de error.

Tethering con Android y desde el terminal

android-wifi

Mediante tethering podemos compartir la conexión wifi que recibe Android con nuestro ordenador. Esta conexión puede ser de la propia tarifa de datos del móvil, o bien de la que recibe vía wifi. En este último caso, el móvil funcionaria a modo de receptor usb.

Es necesario tener Android con el acceso a internet ya configurado, conectarlo mediante usb al equipo, e indicar desde la pantalla de ajustes que queremos compartir esa conexión.

Si estamos ejecutando un entorno gráfico con un gestor de redes, esto será suficiente para que podamos navegar. De no ser así, la solución es tan sencilla como pedir a dhcpcd que asigne la dirección al interfaz de red correspondiente. Lo más probable es que, al ser una conexión por usb, este interfaz sea usb0. Lo podemos comprobar con el siguiente comando:

ip link

Si aparece en el listado es que hemos conectado correctamente el móvil. Ahora solo queda indicarle a dhcpcd que haga su faena con esta interfaz:

dhcpcd usb0

Ahora ya contamos con conexión desde el ordenador. Y si el móvil va a convertirse en el receptor habitual, podemos plantearnos añadir este último comando al listado de aplicaciones que arrancan con el inicio del sistema.