LuchoWiki

Cosas que debería hacer más a menudo

User Tools

Site Tools


desarrollo:informatica:contenidos:descubriendo-shares-en-red

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
desarrollo:informatica:contenidos:descubriendo-shares-en-red [20080119 07:05]
manager
desarrollo:informatica:contenidos:descubriendo-shares-en-red [20120526 10:54] (current)
Line 1: Line 1:
 +====== Descubriendo Shares de Red con Linux ======
 +
 +**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:
 +  * buscar una impresora en la red.
 +  * saber qué otros hosts están conectados, aparte del tuyo propio.
 +  * encontrar //shares// (carpetas compartidas) en la red.
 +  * copiar los 80 GiB de ''​pr0n''​ que uno de tus compañeros de curso tiene en un share desprotegido (//iré yo a saber, pero diría que es **Pancho**//​).
 +  * (sólo si eres __muy__ malo) remotamente reiniciar la desprotegida PC de un compañero que usa Windows.
 +
 +**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.
 +
 +===== Paso 1: Encontrar Máquinas en la Red =====
 +
 +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):
 +
 +<code bash | Propiedades de Red>
 +[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
 +          ...
 +
 +</​code>​
 +
 +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__:​
 +
 +<code bash | Ping en Modo Broadcast>​
 +[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
 +...
 +</​code>​
 +
 +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: [[:​proyectos:​taller-redes:​contenidos:​cidr-segmentacion-redes]].
 +
 +
 +<note warning>
 +No todas las máquinas presentes responderán a una petición ICMP broadcast. En particular máquinas con firewall restrictivos optarán por quedar en silencio previniendo que se trate de un ataque maligno.
 +</​note>​
 +
 +Con esto, ya tenemos las direcciones de algunas máquinas conectadas a nuestra misma red. **¿Qué podemos hacer con esto?**
 +
 +===== Paso 2: Averiguar Quiénes corren las Máquinas =====
 +
 +**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 [[wp>​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 [[wpes>​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.
 +
 +===== Paso 3: Descubriendo Shares e Impresoras de Red =====
 +
 +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:​
 +
 +<code bash>
 +[usuario@maquina ~] smbclient -L 192.168.20.141
 +
 +</​code>​
 +
 +Desde aquí obtenemos algo de información:​
 +
 +//TODO: por completar//
 +
 +==== Paso 4: Tratando de Abrir un Share ====
 +
 +**Paquetes necesarios**:​ ''​smbclient''​.
 +
 +
 +==== Paso 5: Enviando Mensajes a «winpopup» ====
 +
 +**Paquetes necesarios**:​ ''​kpopup'',​ ''​smbclient'',​ ''​tcp-utils''​ entre otros.
 +
 +==== Paso 6: Más cosas que se pueden hacer ====
 +
 +
 +
 +
 +
 +
 +
 +{{tag>​miscelaneo universidad redes por_hacer}}
 +
 +
 +
 +
  
desarrollo/informatica/contenidos/descubriendo-shares-en-red.txt · Last modified: 20120526 10:54 (external edit)