[Aporte] Rastrear información de otra PC con un simple link

Iniciado por Skali, 21 Diciembre 2015, 17:22 PM

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

Skali

Hola que tal muy buenas a todos! Éste va a ser mi primer aporte ya que el resto de los posts eran solo para sacarme dudas yo... Ya me ayudaron bastante asi que merecen algún aporte por más pequeño que sea de mi parte jaja...

ACLARACIÓN: esta información como cualquier otra que encontremos en ésta web puede ser utilizada tanto para bien como para mal. Mi intención es mostrarles los métodos que suelen usar los hackers para rastrear información. Experimenten con sus propios dispositivos...

Bueno empecemos! La idea básica es entender uno de los métodos de rastreo de IP, puertos, versiones de navegador, geolocalización, pluggins instalados, etc,etc más usados y efectivos. Básicamente con enviar un enlace (que va a corresponderse a nuestro propio servidor web) ya estamos recibiendo toda la información de la persona a atacar. Una vez que la otra persona acceda a nuestro enlace, a nosotros automáticamente se nos abrira el navegador mostrando un archivo .htm con el siguiente contenido:



Piensen en las miles de utilidades que nos puede dar el hecho de tener nuestro propio servidor web... Cada vez que alguien se conectaría a nosotros, siempre se almacena información del cliente en distintas variables, una de ellas es $_SERVER , un array que almacena version del navegador, sistema operativo del cliente, etc, etc... Éstos datos pueden ser útiles para tomar determinadas desiciones en la web, es decir, el programador que implemento la web podría utilizar algún campo de la variable $_SERVER para tomar una decisión u otra sobre lo que se va a mostrar en nuestro cliente. En nuestro caso solo usaríamos esa información para nuestro beneficio, una vez obtenida la ip, podemos hacer un escaneo con nmap, o muchas otras cosas...

Bueno, basta con la introducción, arranquemos con los pasos a seguir!

1 - En mi caso prefiero correr el servidor en Apache, sobre Kali Linux. Tipeamos
netstat -l -p

Netstat nos muestra información sobre las distintas conexiones que tenemos (el estado de los sockets), con la opción -l listamos todos los puertos en escucha y con la opción -p mostramos los PID (process ID) asociados con los sockets. Buscamos al principio si tenemos debajo de la columna Local Adress:  
[::]:http
Y si encontramos algo, utilizamos el comando:
kill PID
siendo PID el Process ID de la misma fila en la que encontramos [::]:http

Ésto quiere decir que tenemos ocupado nuestro puerto 80... A mi lo que me pasaba es que Kali arrancaba con el daemon del servidor nginx, y prefiero usar Apache, por ello todas éstas vueltas, si ustedes prefieren usar nginx, siéntanse libres de usarlo... El kill es para matar el proceso que estaba utilizando ese puerto para poder liberarlo...

2 - Vamos a crearnos una cuenta en NO-IP:

http://www.noip.com/

Ésto sirve para asociar nuestra ip con un nombre de dominio, para que la persona atacada acceda a través de un enlace como www.enlace.ddns.net y no directamente por nuestra dirección IP. Sería el servidor DNS el que terminaría devolviendo nuestra IP...

Okey, una vez que crearon la cuenta van a la sección que dice AddHost y agregan un dominio que a ustedes les guste y lo asocian a su IP pública extraída de éste sitio:

www.cualesmiip.com

3 - Vamos a configurar el router. Accedemos a nuestro router tipeando la dirección de la puerta de enlace predeterminada sobre nuestro navegador. Puede ser 192.168.0.1, 192.168.1.1, ustedes ya lo sabrán... Accedemos con las credenciales necesarias, si nunca le cambiaron el nombre/password, usen los que vienen por defecto que suelen ser ADMIN ADMIN... Una vez adentro vamos a la sección para abrir puertos, ésto ya depende de que marca de router esten utilizando. Ésta sección puede estar en la sección Forwarding, Virtual Servers, si tienen un TP-LINK o sino traten de encontrarla ustedes. Lo que hacemos es básicamente asociar lo que llega al puerto 80 a la IP local de la PC en la que tengamos corriendo el Apache, para obtenerla como sabrán se puede con ipconfig (windows) o ifconfig (linux)....

Okey, resumiendo... Éstas son cosas básicas que todos deberían de saber, pero de todas formas lo aclaro. Hasta ahora tenemos nuestro nombre de dominio, cuando alguien lo abra, el navegador va a tener que hacer una consulta al servidor DNS para que resuelva en nuestra IP pública... Luego llega el paquete del cliente a nuestro router, y el mismo es el que decide a cuál de todas las máquinas que tenemos en la red LAN se lo va a llevar. Nosotros en el paso 2 dijimos que todo lo que llegue al puerto 80, lo dirija a la máquina en la que tenemos corriendo Apache... Okey, prosigamos.


4 - Ejecutar apache:
service apache2 start

Una vez ejecutado ésto, tenemos nuestro servidor web Apache abierto escuchando en el puerto 80 (http) y 443 (https), eso quiere decir que si alguien se conecta a nosotros a traves del dominio que creamos, automáticamente pasaría a ejecutarse el index.php que se encuentre en el directorio /var/www/hml, ahora en el siguiente punto lo van a entender mejor.

5 - Descargar el script PHP creado por Redtoor desde el siguiente sitio:

https://github.com/RedToor/GetDataReport/blob/master/GetdataReport.php

Si tienen una web éste PHP lo pueden utilizar en el sitio que deseen, en nuestro caso vamos a renombrarlo index.php y localizarlo en la carpeta /var/www/html
En ésta última carpeta se almacenan los archivos a los cuales podemos acceder desde la web. index.php es lo primero que se ejecuta cuando alguien abre nuestra web.

Pueden ver la explicación del código fuente desde el siguiente enlace:
https://www.youtube.com/watch?v=ExzrVs6cnJQ

LISTO! Ahora dentro de nuestra carpeta /var/www/html se irán generando reportes de la información de las PC's que se conectaron a nosotros a través del dominio que creamos...

6 - Por su puesto todo ésto no tendría tanto sentido si no contribuyera con un script propio para añadir una nueva funcionalidad. Lo que hace el script hecho en bash que les voy a mostrar es esperar a que se cree el archivo de reporte, una vez creado se abre automáticamente con el iceweasel... Básicamente es eso, pero para lograrlo tuve que hacer un par de artimañas, para entenderlas les recomendaría leer mi código fuente y entender también el código fuente del PHP de Redtoor...
Aquí va el script:

Código (bash) [Seleccionar]
#!/bin/bash
#     ___         ______        ___
#    / _ )__ __  / __/ /_____ _/ (_)
#   / _  / // / _\ \/  '_/ _ `/ / /
#  /____/\_, / /___/_/\_\\_,_/_/_/  
#       /___/                      
# _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _  
#  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
#
#  Éste script trabaja en conjunto con una modificación de la herramienta
#  de reporte GetDataReport escrita en PHP por RedToor.
#  Básicamente, espera a que exista el archivo generado para abrirlo automáticamente.
#
#  Link de la herramienta: https://github.com/RedToor/GetDataReport/blob/master/GetdataReport.php
#
#  Para que funcione es necesario comentar la linea 177 de la herramienta    //$n=rand(0,9000);
#  Y modificar la línea 182  $open=fopen("Report-".$n.".htm",'w') or die ('Failed');
#                      por:  $open=fopen("/var/www/html/Report/Report.htm",'w') or die ('Failed');
#
#  Con ésto evitamos que el PHP almacene el archivo con un número aleatorio para poder localizarlo
#  univocamente con nustro script y que ésto sirva de disparador para poder abrirlo automáticamente.
#  Una vez localizado, nuestro script es el que se encarga de cambiarle el nombre por otro aleatorio
#  para almacenarlo, y finalmente se ejecuta el archivo con el iceweasel.
#
#  Se necesita tener un direcorio llamado Report dentro de /var/www/html, el script lo hace por vos:
#
pathFolder="/var/www/html/Report"; #Almacena el path de la carpeta para los reportes
if [ ! -d $pathFolder ]; then #Si no existe la carpeta, la crea y le da todos los permisos
mkdir $pathFolder;
chmod 777 $pathFolder;
fi
#
#
############# INTRODUZCA EL PATH DE SU REPORTE HTM AQUÍ ################
path="/var/www/html/Report/Report.htm";
# Éste path debe corresponderse con el que modificaron en:
# $open=fopen("/var/www/html/Report/Report.htm",'w') or die ('Failed');
########################################################################

pathBegin=`echo $path | cut -d "." -f1`; #Almacena el principio del path hasta el "." (punto)
pathExtension=`echo $path | cut -d "." -f2`; #Almacena la extensión del archivo

while [ 1 ]; do #Para dejarlo como daemon de forma persistente

pathRandom=`echo $pathBegin-$RANDOM.$pathExtension`; #Almacena el principio del path + un numero aleatorio + extención

if [ -f $path ]; then #Si ya existe un Reporte.htm , cambiarle el nombre por un Reporte + numero aleatorio
mv $path $pathRandom;
fi

while [ ! -f $path ]; do #Espera a que se cree el archivo llamado Reporte.htm en el path indicado
sleep 1;
done

mv $path $pathRandom; #Le cambia el nombre por un Reporte + numero aleatorio

iceweasel file://$pathRandom & #Se ejecuta automáticamente iceweasel en background abriendo el archivo generado

done;


P.D.: Si tienen algún método para identificar también las versiones de los pluggins y podrían aportarlo se los agradecería mucho!

San Miguel Arkngel

Gracias por tu aporte. Esta interesante.

No pares de compartir lo que aprendes, aunque parezca poco (todos pensamos que casi sabemos nada).