Este artículo incluirá una breve historia sobre lo que podemos contarle a algo tan familiar como
NetBIOS . ¿Qué información puede proporcionar para un posible atacante / pentester?
El área de aplicación demostrada de las técnicas de reconocimiento se relaciona con redes internas, es decir, aisladas e inaccesibles desde el exterior. Como regla general, tales redes existen incluso para las empresas más pequeñas.
NetBIOS en sí se usa, como regla, para obtener un nombre de red. Y eso será suficiente para hacer al menos 4 cosas.
Descubrimiento de host
Debido al hecho de que NetBIOS puede usar UDP como transporte, su velocidad hace posible detectar hosts en redes muy grandes. Entonces, por ejemplo, la herramienta
nbtscan incluida en el paquete del mismo nombre solo puede resolver direcciones de red del tipo 192.168.0.0/16 en 2 segundos (puede poner una red), mientras que el escaneo TCP tradicional tomará decenas de minutos. Esta característica se puede utilizar como una técnica de barrido de host en redes muy grandes que no se conocen antes de iniciar nmap. Aunque el resultado no garantiza una detección del 100%, dado que los hosts de Windows responderán principalmente y no todos, aún le permitirá determinar aproximadamente en qué rangos se encuentran los hosts en vivo.
Identificación del anfitrión
Usando los resultados de obtener nombres de direcciones IP:

puede ver: además del hecho de que el nombre revela al propietario de la estación de trabajo (aunque esto, por cierto, está lejos de ser siempre el caso), una de las direcciones se destaca claramente de las demás. Podemos ver que se recibió el nombre
KALI . Este comportamiento es típico, por regla general, para la implementación
unix de
SMB / NetBIOS como parte del paquete de software
samba o
Windows 2000 muy antiguo.
Obteniendo el nombre
KALI , mientras que en otros hosts esto <
desconocido > indica la presencia de la llamada
sesión nula . Con la configuración predeterminada, el servidor
SMB en
Linux es propenso a ello.
La sesión nula solo le permite obtener una gran cantidad de información adicional, como una política de contraseña local, una lista de usuarios locales, grupos y una lista de recursos compartidos (bola), absolutamente anónima (y no ingresamos ninguna contraseña, como puede ver en la pantalla):

A menudo, en los servidores
Linux SMB hay pelotas de acceso público, no solo para leer, sino incluso para escribir. La presencia de ambos conlleva varias amenazas, cuyo uso está más allá del alcance de este artículo.
NetBIOS también le permite obtener los nombres de todos los tipos que almacena la estación de trabajo:

en este caso, le permite descubrir que el host también es un
controlador de dominio
ARRIVA .
También vale la pena prestar atención adicional a que
NetBIOS le permite obtener una dirección
mac . Además, a diferencia de las solicitudes arp, las solicitudes de NetBIOS pueden ir más allá de la subred. Esto puede ser útil si, por ejemplo, necesita encontrar una computadora portátil o hardware específico en la red, conociendo a su fabricante. Dado que los primeros tres octetos de la dirección
mac identifican al fabricante, puede enviar solicitudes
NetBIOS similares a todas las subredes conocidas para tratar de encontrar el dispositivo que necesita (http://standards-oui.ieee.org/oui.txt).
Determinación de membresía de dominio
A menudo, cuando se mueve a través de redes corporativas internas, es necesario atacar la estación de trabajo incluida en el dominio (por ejemplo, elevar los privilegios al nivel de un administrador de dominio) o viceversa. En este caso,
NetBIOS puede ayudar nuevamente:

En este caso, utilizando
NetBIOS , se obtuvieron todos los nombres de todos los tipos. Entre ellos, puede ver, además del nombre de la PC (lo que ya se ha recibido antes), el nombre del grupo de trabajo. De forma predeterminada, para
Windows suele ser algo así como
WORKGROUP o
IVAN-PC , pero si la estación de trabajo está en un dominio, entonces su grupo de trabajo es el nombre de dominio.
Por lo tanto, utilizando
NetBIOS, puede averiguar si una estación de trabajo está en un dominio y, de ser así, en cuál.
Si desea obtener una lista de hosts de dominio dentro de la subred, una solicitud de difusión con el nombre del dominio que necesita es suficiente:

Como resultado, todos los hosts en este dominio responderán.
Descubrimiento de hosts múltiples
Y finalmente, otra técnica probablemente muy poco conocida, que es simplemente indispensable para
encontrar formas de proteger, posiblemente incluso redes físicamente aisladas. Puede ser una red de talleres de empresas llenas de controladores. Para un atacante, el acceso a esta red significa una oportunidad para influir en el proceso tecnológico, y para una empresa existe el riesgo de grandes pérdidas.
Por lo tanto, la conclusión es que, incluso si la red está aislada de la red corporativa, a menudo algunos administradores, ya sea por su pereza, o de alguna manera, desean levantar otra tarjeta de red en sus PC para acceder a esta misma red. Además, todo esto sucede, por supuesto, sin pasar por todo tipo de reglas de firewalls corporativos. Conveniente, sí, pero no muy seguro, si es pirateado, se convertirá en un puente hacia esta red y asumirá la responsabilidad.
Sin embargo, para el atacante hay un problema: encontrar al administrador que se unió a la red segura de manera ilegal similar. Además, este no es un problema fácil para el personal de seguridad de la red. En las grandes empresas, esta es realmente una tarea difícil, como encontrar una aguja en un pajar.
En esta situación, habría dos opciones obvias para un atacante:
- intente usar cada PC en la subred corporativa como puerta de entrada a la red deseada. Sería muy conveniente, pero esto rara vez se ve, porque en Windows hosts el reenvío de IP casi siempre está deshabilitado. Además, dicha verificación solo es posible dentro de su propia subred, y también requiere que el atacante conozca exactamente la dirección de destino de la red aislada
- intente iniciar sesión de forma remota en cada host y ejecutar el comando banal ipconfig / ifconfig . Y aquí no todo es tan suave. Incluso si un atacante aseguró los derechos de un administrador de dominio, nadie canceló los firewalls y los firewalls locales. Entonces esta tarea no está 100% automatizada. Como resultado, sigue siendo doloroso ir a cada host, superando los firewalls (a menudo bloqueando exactamente el puerto 445 / tcp), con la esperanza de ver finalmente la codiciada interfaz de red.
Sin embargo, todo es mucho más simple. Hay un truco extremadamente simple que le permite obtener una lista de interfaces de red de un host determinado. Digamos que tenemos un cierto host:

Esta es la dirección IP de resolución inversa → nombre de red. Si ahora intentamos hacer un nombre de red de resolución directa → dirección IP:

entonces descubriremos que este host también es una puerta de enlace (aparentemente) en alguna otra red. Vale la pena señalar que en este caso la solicitud fue transmitida. En otras palabras, los hosts solo lo escucharán desde la subred del atacante.
Si el host de destino está fuera de la subred, puede enviar una solicitud dirigida:

En este caso, se puede ver que el objetivo está fuera de la subred del atacante. Usando el modificador -B, se indicó que la solicitud debería enviarse a una dirección específica, y no a la de transmisión.
Ahora solo queda recopilar rápidamente información de toda la subred de interés, y no de una sola dirección. Para hacer esto, puede usar un pequeño script de
Python :

Y después de unos segundos:

Era un host dedicado, en este caso improvisado, que se convertiría en el primer objetivo del atacante si perseguía la red 172.16.1 / 24.

Los nombres duplicados en diferentes ip indican que el host también tiene dos tarjetas de red, pero en la misma subred. Vale la pena señalar que
NetBIOS no revela
alias (que puede calcularse fácilmente a través de solicitudes arp como ip con el mismo
mac ). En este caso, las direcciones IP tienen diferentes
Mac .
Otro ejemplo de uso de esta técnica es el wifi público. A veces es posible enfrentar una situación cuando entre los dispositivos invitados, el personal que trabaja en el segmento corporativo cerrado está conectado a la red pública. Luego, con la ayuda de esta técnica de reconocimiento, un atacante podrá determinar rápidamente un camino para pasar a una red cerrada:

En este caso, entre 65 clientes públicos de Wi-Fi, había dos estaciones de trabajo con una interfaz adicional, probablemente relacionada con la red corporativa.
Si a veces se observa el filtrado del tráfico al puerto 445 / tcp entre segmentos de red o directamente en las estaciones de trabajo, lo que impide el inicio de sesión remoto en el sistema (ejecución remota de código), en este caso el puerto 137 / udp se usa para resolver nombres en
NetBIOS , que casi nunca se bloquea conscientemente ocurre, porque la usabilidad de la red sufrirá mucho de esto, por ejemplo, el entorno de red puede desaparecer, etc.
Como dicen, la
enumeración es la clave¿Hay alguna protección contra esto? No lo es, porque no es una vulnerabilidad en todo. Esta es solo la funcionalidad estándar de lo poco que
Windows tiene por defecto (en
Linux, el comportamiento es ligeramente diferente). Y si de repente, de manera inconsistente, eludiendo las reglas de enrutamiento de la red se unió a un segmento cerrado, entonces el atacante seguramente lo encontrará y lo hará muy rápidamente.