Situación (a.k.a.: problema): estás conectado a una red, por ejemplo, la de la Universidad del Mar, con una máquina con Linux, y quieres obtener funcionalidad como la que ofrece la utilidad de Mis Sitios de Red en Windows, por ejemplo:
pr0n
que uno de tus compañeros de curso tiene en un share desprotegido (iré yo a saber, pero diría que es Pancho).Solución: usar algunas aplicaciones que ya vienen con la mayoría de las distribuciones de Linux o que son en su defecto fácilmente obtenibles.
A lo largo de estos ejercicios suponemos que eres el usuario usuario
de tu máquina llamada maquina
, y que al menos formas parte del grupo de usuarios adm
(si no lo eres, considera usar sudo
).
Para determinar qué otras máquinas están en la red, es necesario saber en qué red estamos nosotros. Fire up una terminal (si eres un informático decente estarás usando rxvt
o xterm
en vez de Konsole), y escribe lo siguiente (suponiendo que tienes los privilegios adecuados):
[usuario@maquina ~] ifconfig eth0 Link encap:Ethernet HWaddr 00:11:2F:91:24:37 inet addr:192.168.20.133 Bcast:192.168.20.255 Mask:255.255.255.0 UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1492 Metric:1 ...
Desde aquí obtenemos tu dirección IP (192.168.20.133
) y lo más importante, la dirección red de broadcast (192.168.20.255
). Con esta información es posible enviar una petición de reconocimiento (ACK) a toda la red de modo que nos respondan las máquinas que estén encendidas.
Se hace lo siguiente, esta vez con privilegios de administrador:
[usuario@maquina ~] ping -b direccion.de.broadcast 56 bytes from 192.168.20.141 icmp_seq=1 ttl=57 time=38.2 ms 56 bytes from 192.168.20.231 icmp_seq=1 ttl=57 time=32.7 ms 56 bytes from 192.168.20.156 icmp_seq=1 ttl=57 time=31.2 ms 56 bytes from 192.168.20.141 icmp_seq=2 ttl=57 time=31.3 ms 56 bytes from 192.168.20.200 icmp_seq=1 ttl=57 time=30.8 ms ...
Podemos presionar CTRL+C
cuando nos hartemos de ve direcciones IP. Hemos de anotar las direcciones diferentes que nos responden pues son éstas las direcciones IP de las máquinas que están conectadas a la red. Si no tienes idea de lo que estoy hablando debieras tomar un curso de Redes I o mirar este documento: cidr-segmentacion-redes.
Con esto, ya tenemos las direcciones de algunas máquinas conectadas a nuestra misma red. ¿Qué podemos hacer con esto?
Paquetes necesarios: xprobe
, nbtscan
.
Ya sabemos qué IPS están disponibles, pero, ¿quiénes son?
Por medio de sencillas herramientas disponibles en casi toda distribución Linux es posible averiguar mucho de las máquinas presentes en la red. Lo primero que haremos será escoger una dirección IP del listado obtenido anteriormente, digamos 192.168.20.141
, y le pediremos a algunas herramientas de Linux que analicen esta máquina:
Lo primero es instalar xprobe, una aplicación de red que realiza un escaneo de puertos y respuestas TCP/UDP con el fin de determinar el sistema operativo y servicios que corre una máquina. Si tienes un gestor de paquetes como apt o smart, simplemente le pides que instale el programa con un comando como el siguiente:
sudo apt-get install xprobe
Algunas dependencias a considerar: libpcap
, libpcap-devel
, gtk2-devel
.
Una vez instalado el programa, es tan sencillo como ejecutar y pedir que analice una IP en particular:
TODO: por completar
A continuación podemos preguntar directamente a la IP para que se identifique, si esta IP tiene habilitado NetBIOS, podemos utilizar la utilidad nbtscan
para obtener su “nombre de red”. Pidamos esta utilidad a nuestro Gestor de Paquetes:
sudo atp-get install nbtscan
Y utilizamos la utilidad del siguiente modo:
Nota de interés, NetBIOS no funciona sobre todos los protocolos de TCP—over—Transport, como por ejemplo conexiones Wireless. Por tanto a veces no es posible utilizar este método.
Si la máquina en cuestión es un Microsoft™ Windows ™ compartiendo carpetas, es posible determinar rápida y fácilmente cuáles son las carpetas compartidas y cuáles sus privilegios de acceso provisto que tengamos las utilidades adecuadas de Samba. Lo que buscamos es smbclient
, el paquete de conexión y búsqueda de Samba.
Vamos a nuestra terminal y en caso de no tener instalado smbclient, ejecutamos el gestor de paquetes para obtenerlo:
sudo apt-get install smbclient
Ya con el programa es tan fácil como pedirle al programa que nos liste (opción -L
) los identificadores, shares y servicios disponibles:
[usuario@maquina ~] smbclient -L 192.168.20.141
Desde aquí obtenemos algo de información:
TODO: por completar
Paquetes necesarios: smbclient
.
Paquetes necesarios: kpopup
, smbclient
, tcp-utils
entre otros.