Listado de recursos compartidos de NetBIOS con NBTScan y Nmap Script Engine
NetBIOS es un servicio que proporciona conectividad de red y a menudo se usa para unir aplicaciones de dominio y heredadas. Esta es una tecnología bastante antigua, pero todavía se usa en algunos entornos de software. Y dado que es un protocolo inseguro, a menudo puede ser un punto de partida para un ataque en una red. Un buen comienzo es escanear recursos compartidos de NetBIOS con NBTScan y Nmap Script Engine.
Para llevar a cabo esta tarea, utilizaremos Metasploitable 2 , una máquina virtual con vulnerabilidades creadas intencionalmente en ella , como nuestra máquina de destino . Lo atacaremos con Kali Linux, el kit de distribución para hackers y pentesters.
Descripción general de NetBIOS
NetBIOS significa literalmente «Sistema básico de entrada / salida de red». Es un servicio que permite que las computadoras se comuniquen entre sí a través de una red. Sin embargo, NetBIOS no es un protocolo de red, sino una API. Funciona por encima de los protocolos TCP / IP utilizando NBT, lo que le permite trabajar en redes modernas.
NetBIOS proporciona dos métodos de comunicación principales. El servicio de datagramas le permite comunicarse a través de la red sin establecer una conexión, lo cual es ideal para situaciones donde la transferencia rápida de datos es importante, por ejemplo, al generar errores. El servicio de sesión, por otro lado, permite que dos computadoras establezcan una conexión para proporcionar una conexión más confiable. NetBIOS también proporciona servicios de nombres que se ocupan de la resolución de nombres y el registro en la red.
La principal forma en que los hackers de NetBIOS explotan es con ataques de veneno. Su esencia radica en el hecho de que el atacante, que está en la red, se hace pasar por otra máquina para controlar y redirigir el tráfico. En este punto, el pirata informático también puede obtener credenciales de usuario hash para que posteriormente puedan ser descifradas.
Escanear con NBTScan
NBTScan es una herramienta de línea de comandos utilizada para escanear redes en busca de recursos compartidos de NetBIOS e información de nombres. Puede funcionar tanto en Unix como en Windows y está incluido en la distribución estándar de Kali Linux de forma predeterminada.
Lo primero que podemos hacer es imprimir un certificado que nos dará una idea de todas las opciones para usarlo y algunos ejemplos para escanear redes. Simplemente escriba nbtscan en la terminal.
nbtscan
NBTscan version 1.5.1. Copyright (C) 1999-2003 Alla Bezroutchko.
This is a free software and it comes with absolutely no warranty.
You can use, distribute and modify it under terms of GNU GPL.
Usage:
nbtscan [-v] [-d] [-e] [-l] [-t timeout] [-b bandwidth] [-r] [-q] [-s separator] [-m retransmits] (-f filename)|(<scan_range>)
-v verbose output. Print all names received
from each host
-d dump packets. Print whole packet contents.
-e Format output in /etc/hosts format.
-l Format output in lmhosts format.
Cannot be used with -v, -s or -h options.
-t timeout wait timeout milliseconds for response.
Default 1000.
-b bandwidth Output throttling. Slow down output
so that it uses no more that bandwidth bps.
Useful on slow links, so that ougoing queries
don't get dropped.
-r use local port 137 for scans. Win95 boxes
respond to this only.
You need to be root to use this option on Unix.
-q Suppress banners and error messages,
-s separator Script-friendly output. Don't print
column and record headers, separate fields with separator.
-h Print human-readable names for services.
Can only be used with -v option.
-m retransmits Number of retransmits. Default 0.
-f filename Take IP addresses to scan from file filename.
-f - makes nbtscan take IP addresses from stdin.
<scan_range> what to scan. Can either be single IP
like 192.168.1.1 or
range of addresses in one of two forms:
xxx.xxx.xxx.xxx/xx or xxx.xxx.xxx.xxx-xxx.
Examples:
nbtscan -r 192.168.1.0/24
Scans the whole C-class network.
nbtscan 192.168.1.25-137
Scans a range from 192.168.1.25 to 192.168.1.137
nbtscan -v -s : 192.168.1.0/24
Scans C-class network. Prints results in script-friendly
format using colon as field separator.
Produces output like that:
192.168.0.1:NT_SERVER:00U
192.168.0.1:MY_DOMAIN:00G
192.168.0.1:ADMINISTRATOR:03U
192.168.0.2:OTHER_BOX:00U
...
nbtscan -f iplist
Scans IP addresses specified in file iplist.
La opción más fácil (y principal) para ejecutar esta gran herramienta es proporcionarle un rango de direcciones IP. En nuestro caso, solo hay una computadora en la red, por lo que, como ejemplo, le daremos su dirección IP.
nbtscan 172.16.1.102
IP address NetBIOS Name Server User MAC address
------------------------------------------------------------------------------
172.16.1.102 METASPLOITABLE <server> METASPLOITABLE 00:00:00:00:00:00
Aquí vemos la dirección IP, el nombre para mostrar de NetBIOS, el servidor (si corresponde), el usuario y la dirección MAC de destino. Tenga en cuenta que las máquinas que ejecutan Samba a veces devuelven ceros como direcciones MAC en respuesta a dicha solicitud.
Podemos obtener un poco más de información si establecemos el indicador de salida detallado -v.
nbtscan 172.16.1.102 -v
Doing NBT name scan for addresses from 172.16.1.102
NetBIOS Name Table for Host 172.16.1.102:
Incomplete packet, 335 bytes long.
Name Service Type
----------------------------------------
METASPLOITABLE <00> UNIQUE
METASPLOITABLE <03> UNIQUE
METASPLOITABLE <20> UNIQUE
METASPLOITABLE <00> UNIQUE
METASPLOITABLE <03> UNIQUE
METASPLOITABLE <20> UNIQUE
__MSBROWSE__ <01> GROUP
WORKGROUP <00> GROUP
WORKGROUP <1d> UNIQUE
WORKGROUP <1e> GROUP
WORKGROUP <00> GROUP
WORKGROUP <1d> UNIQUE
WORKGROUP <1e> GROUP
Adapter address: 00:00:00:00:00:00
----------------------------------------
En este caso, vemos algunos servicios y una indicación de su tipo. Este hash nos lleva al siguiente caso de uso, que mostrará los servicios de forma legible. Para hacer esto, use la bandera -h junto con la bandera -v.
nbtscan 172.16.1.102 -vh
Doing NBT name scan for addresses from 172.16.1.102
NetBIOS Name Table for Host 172.16.1.102:
Incomplete packet, 335 bytes long.
Name Service Type
----------------------------------------
METASPLOITABLE Workstation Service
METASPLOITABLE Messenger Service
METASPLOITABLE File Server Service
METASPLOITABLE Workstation Service
METASPLOITABLE Messenger Service
METASPLOITABLE File Server Service
__MSBROWSE__ Master Browser
WORKGROUP Domain Name
WORKGROUP Master Browser
WORKGROUP Browser Service Elections
WORKGROUP Domain Name
WORKGROUP Master Browser
WORKGROUP Browser Service Elections
Adapter address: 00:00:00:00:00:00
----------------------------------------
Ahora vemos un poco más de información que nos puede ser útil. También podemos configurar el indicador -d para volcar (guardar) el contenido de todo el paquete.
nbtscan 172.16.1.102 -d
Doing NBT name scan for addresses from 172.16.1.102
Packet dump for Host 172.16.1.102:
Incomplete packet, 335 bytes long.
Transaction ID: 0x00a0 (160)
Flags: 0x8400 (33792)
Question count: 0x0000 (0)
Answer count: 0x0001 (1)
Name service count: 0x0000 (0)
Additional record count: 0x0000 (0)
Question name: CKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Question type: 0x0021 (33)
Question class: 0x0001 (1)
Time to live: 0x00000000 (0)
Rdata length: 0x0119 (281)
Number of names: 0x0d (13)
Names received:
METASPLOITABLE Service: 0x00 Flags: 0x0004
METASPLOITABLE Service: 0x03 Flags: 0x0004
METASPLOITABLE Service: 0x20 Flags: 0x0004
METASPLOITABLE Service: 0x00 Flags: 0x0004
METASPLOITABLE Service: 0x03 Flags: 0x0004
METASPLOITABLE Service: 0x20 Flags: 0x0004
__MSBROWSE__ Service: 0x01 Flags: 0x0084
WORKGROUP Service: 0x00 Flags: 0x0084
WORKGROUP Service: 0x1d Flags: 0x0004
WORKGROUP Service: 0x1e Flags: 0x0084
WORKGROUP Service: 0x00 Flags: 0x0084
WORKGROUP Service: 0x1d Flags: 0x0004
WORKGROUP Service: 0x1e Flags: 0x0084
...
Este comando nos proporciona los datos por lotes que se utilizaron en esta solicitud. Tenga en cuenta que esta opción no se puede usar con las opciones -v o -h.
Si desea escanear la lista de direcciones IP que están escritas en algún archivo, puede usar el indicador -f para especificar dicho archivo como entrada y leer estas direcciones IP. En nuestro caso, solo hay una computadora en la red, por lo que en el proceso de escaneo solo vemos una.
nbtscan -f addresses.txt
Doing NBT name scan for addresses from addresses.txt
IP address NetBIOS Name Server User MAC address
------------------------------------------------------------------------------
172.16.1.102 METASPLOITABLE <server> METASPLOITABLE 00:00:00:00:00:00
Por el contrario, si desea guardar los resultados de cualquier análisis, solo necesita agregar el nombre del archivo en el que desea escribir estos datos al final del comando.
nbtscan 172.16.1.102 > scan.txt
Escanear con el motor de scripts Nmap
Nmap como parte del motor de secuencias de comandos de Nmap tiene una pequeña secuencia de comandos muy conveniente, que también podemos usar para descubrir los recursos compartidos de NetBIOS. Este método tiene una ligera ventaja sobre el anterior: se puede ejecutar con otros scripts NSE (Nmap Scripting Engine), lo que en última instancia ahorra tiempo al mostrar muchas cosas diferentes en la red.
Iniciaremos Nmap de la manera habitual, y el script nbstat saldrá al final. Aquí usamos la opción -sV para verificar puertos, servicios en ejecución y sus versiones, así como el indicador -v para resultados detallados. Indique el script que desea usar y estamos listos para trabajar.
nmap -sV 172.16.1.102 --script nbstat.nse -v
Starting Nmap 7.70 ( https://nmap.org ) at 2019-02-14 14:12 CST
NSE: Loaded 44 scripts for scanning.
NSE: Script Pre-scanning.
Initiating NSE at 14:12
Completed NSE at 14:12, 0.00s elapsed
Initiating NSE at 14:12
Completed NSE at 14:12, 0.00s elapsed
Initiating ARP Ping Scan at 14:12
Scanning 172.16.1.102 [1 port]
Completed ARP Ping Scan at 14:12, 0.05s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 14:12
Completed Parallel DNS resolution of 1 host. at 14:12, 13.00s elapsed
Initiating SYN Stealth Scan at 14:12
Scanning 172.16.1.102 [1000 ports]
...
Host script results:
| nbstat: NetBIOS name: METASPLOITABLE, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
| Names:
| METASPLOITABLE<00> Flags: <unique><active>
| METASPLOITABLE<03> Flags: <unique><active>
| METASPLOITABLE<20> Flags: <unique><active>
| \x01\x02__MSBROWSE__\x02<01> Flags: <group><active>
| WORKGROUP<00> Flags: <group><active>
| WORKGROUP<1d> Flags: <unique><active>
|_ WORKGROUP<1e> Flags: <group><active>
Nmap comienza y comienza un escaneo regular, y luego hacia el final finalmente vemos los resultados del script. Esto es similar a los resultados de la exploración que realizamos anteriormente, pero de hecho nunca está de más saber que hay diferentes formas de realizar la misma tarea.
Cómo evitar el escaneo compartido de NetBIOS
Afortunadamente para todos los administradores, existe una solución bastante simple para proteger contra el escaneo no autorizado de los recursos compartidos de NetBIOS, a saber, un cierre simple del propio NetBIOS. Hay situaciones en las que deshabilitarlo puede provocar un mal funcionamiento en el sistema, por ejemplo, cuando algunas aplicaciones desactualizadas dependen completamente de él, pero en la mayoría de los casos, en lugar de estas aplicaciones desactualizadas, ya existen soluciones más avanzadas y deshabilitar NetBIOS no causará daños.
Si debe tener NetBIOS, tenga cuidado con el uso de nombres predeterminados. En algunas versiones de Windows, C $ o ADMIN $ son nombres conocidos y deben evitarse siempre que sea posible.
Conclusión
En este tutorial, aprendimos sobre NetBIOS y cómo se puede usar para atacar. Usando NBTScan, una herramienta simple basada en consola, escaneamos y enumeramos recursos compartidos, y luego descubrimos cómo usar el script Nmap para el mismo propósito. NetBIOS puede ser una tecnología desactualizada, pero aún se encuentra en entornos empresariales. Y a menudo, después del reconocimiento, su operación puede ser un buen punto de partida para comenzar, por lo que es útil saber cómo se puede identificar.