Páginas

Mostrando entradas con la etiqueta Netsh. Mostrar todas las entradas
Mostrando entradas con la etiqueta Netsh. Mostrar todas las entradas

24 febrero, 2019

NETSH portproxy: Port forwarding local en Windows

Un método para crear túneles haciendo un reenvío de puertos usando un sistema Windows es el uso de la utilidad de comandos NETSH. Para hacer uso de este comando es necesario tener privilegios administrativos sobre la máquina.

Netsh tiene una propiedad llamada portproxy la cual actua como un proxy en las redes y aplicaciones IPv4 e IPv6.

Mostraré un ejemplo que podría ser típico, se trata de un reenvío de puertos local con el fin de establecer una conexión de Escritorio Remoto (RDP) entre dos máquinas Windows.

Si se trata de un reenvío de puertos entre redes IPv4 la sintaxis sería:
netsh interface portproxy add v4tov4 listenport=<Puerto-Local> listenaddress=<IP-Local> connectport=<Puerto-Remoto> connectaddress=<IP-Remota>
En siguiente ejemplo se reenvía desde la máquina local y puerto local de escucha 9090 a la máquina remota 10.0.0.19 y puerto remoto al que nos conectaremos 3389.
netsh interface portproxy add v4tov4 listenport=9090 listenaddress=localhost connectport=3389 connectaddress=10.0.0.19
  • listenport: Puerto IPv4 local en el que se escucha.
  • connectaddress: Dirección IPv4 local a la que conectarse.
  • connectport: Puerto IPv4 remoto al que conectarse.
  • listenaddress: Dirección IPv4 remota en la que se escucha.
Figura 1: Reenvío de puertos con Netsh estableciendo una conexión RDP entre dos máquinas Windows.

Para comprobar las reglas añadidas de reenvío de puertos con Netsh porproxy podemos consultar la tabla de reglas.
netsh interface portproxy show v4tov4  #Lista reglas en redes IPv4.
netsh interface portproxy show all     #Lista todas las reglas.
Para "romper" la conexión o eliminar las reglas establecidas.
netsh interface portproxy delete v4tov4 listenport=9090 listenaddress=localhost
Figura 2: Comprobar reglas añadidas y puertos de Netsh portproxy en una conexión RDP y eliminar reglas.

Saludos!

11 julio, 2018

Ver las passwords Wifis almacenadas a las que nos hemos conectado

Cada vez que desde nuestro equipo Windows nos conectamos a una red inalámbrica WiFi y recordamos la password de indentificación de la red, esta se alamacena en el sistema.

Con el uso de la utilidad de comandos netsh (en la sección de wlan) podemos visualizar las redes que tenemos almacenadas y también la password de acceso que en su momento le indicáramos para autenticarnos en dicha red.

Visualizar los nombres de las redes alamacenadas por Windows en el equipo.
netsh wlan show profile
Establecemos el nombre de la red (SSID - Service Set Identifier) y el valor clear para key.
netsh wlan show profile name=SSID key=clear
Para este ejemplo se usó la red con SSID "prueba".

Figura 1: Netsh - Ver perfiles wlan y obtención de password wifi almacenada.

Otra opción sería usar el "Centro de redes y recursos compartidos" del "Panel control". Una opción con entorno gráfico de Windows 7 es que podíamos ver las redes almacenadas y editar su configuración, en Windows 10 solo podemos ver las redes almacenadas pero no editar su configuración sino estamos conectados en ese momento a esa red. Por lo que hacerlo de una forma gráfica solo nos servirá para ver la password almacenada de la Wifi actual en la que estemos conectados.

Seleccionamos la red Wifi en la que actualmente estemos conectados. Propiedades inalámbricas > Pestaña Seguridad > Mostrar carácteres (nos saltará el UAC por seguridad, para ejecutar esto con privilegios administrativos).

Figura 2: Ver password wifi conectada actualmente.


Saludos!

25 junio, 2018

Crear un punto de acceso Wifi (WAP) compartido desde una conexión cableada Ethernet (IEEE 802.3)

En esta entrada se detalla el procedimiento de creación para una zona Wifi a través del adaptador de red cableada de Windows, compartiendo la conexión de este al adaptador inalámbrico que hará de WAP (Wireless Access Point) y puente de conexión.

Será necesario disponer de dos tarjetas de red, una conectada a través de una conexión cableada Ethernet 802.11 y otra tarjeta inalámbrica ya sea mediante un zócalo interno PCI o conectada por un USB.

El esquema que comentaré será para el siguiente ejemplo:

Un dispositivo inalámbrico con el que nos conectaremos (smartphone en este caso) a un punto de acceso que proporciona la adaptador Wifi y que a su vez este mediante una conexión compartida de Internet que proporciona nos proporciona el adaptador de conexión cableada Ethernet.

Figura 1: Esquema de conexión WAP Windows.

Para toda la configuración haremos uso de la herramienta de comandos Netsh (Network Shell) nativa en Windows. 

Comprobamos las interfaces disponibles.
netsh wlan show interfaces

Figura 2: Netsh - Listar interfaces wlan.

Será necesario comprobar que el driver de la tarjeta de red inalámbrica admita red hospedada.
netsh wlan show drivers
Figura 3: Netsh - Conocer la compatibilidad de interface wlan para red hospedada.

Si el resultado es una "Red hospedada admitida: si". Procedemos a crear el hostednetwork con su SSID (Service Set Identifier) y contraseña de acceso.
netsh wlan set hostednetwork mode=allow ssid=nombre_wap key=password
Sustituyendo en cada caso el nomre y la contraseña que deseemos.

Figura 4: Netsh - Crear hostednetwork (WAP).

En este punto creamos el "puente de conexión" entre el adaptador inalámbrico (Conexión de área local* 4 en este caso) y el adaptador de red cableada (Ethernet).

En las propiedades de la interface Ethernet, pestaña de "Uso compartido", compartimos la conexión a Internet permitiendo que los usuarios que se conecten desde la red de la interface inalámbrica (Conexión de área local* 4).

Figura 5: Compartir conexión Internet entre dos interfaces de red (cableada e inalámbrica).

Iniciamos el hostednetwork.
netsh wlan start hostednetwork
Podemos consultar su estado.
netsh wlan show hostednetwork

Figura 6: Activar el hostednetwork (WAP).

Para comprobar su funcionamiento me conectaré desde un dispositivo smartphone. Vemos como estoy conectado al WAP con SSID zonasystem.

Figura 7: Conexión desde un terminal inalámbrico a la nueva red inalámbrica creada.

Vemos la MAC y dirección IP que nos está otorgando por DHCP. Generando la propia interface un ámbito de red 192.168.137.0/24. Cuando la red original es de un ámbito 10.0.0.0/24. Por defecto la propia interface crea su propia subred.

Figura 8: Comrobación de información de red de la conexión.

Comprobamos de nuevo el estado del hostednetwork de la wlan. Vemos como hay un dispositivo conectado o autenticado, se trata del smartsphone conectado anteriormente. Consultamos la tabla ARP (arp -a) para contrastar la información.

Figura 9: Verificación del cliente autenticado en el nuevo hostednetwork (WAP).

Ahora bien, si se trata de un sistema operativo Windows 10, todo lo anterior no tendría sentido. Windows 10 incorpora una característica para hacer esto de forma muy sencilla. Igualmente está bien conocer lo anterior para entender este funcionamiento.

De forma automática Windows configurará un WAP en el que podremos personalizar tanto el SSID como la passphrase.

Desde el nuevo panel de control de Windows 10 (Tecla Windows + i) > "Red e Internet" > "Zona con cobertura inalámbrica móvil". Tendremos que estar conectados a internet ya bien sea por que compartimos nosotros la conexión de un adaptador de red a otro o por que nos autenticamos en una red inalámbrica directamente. Habilitamos este modo y listo.

Figura 10: Crear WAP de forma sencilla "Zona con cobertura inalámbrica móvil" en Windows 10.

Saludos!

03 agosto, 2017

Como protegerse de ataques ARP Spoofing

Siguiendo el tema de las entradas en las que comentara los ataques MITM en la tabla ARP.
  1. Ataques MITM: ARP Poisoning y DNS Spoof con Ettercap - Parte 1 de 2
  2. Ataques MITM: ARP Poisoning y DNS Spoof con ARPSpoof - Parte 2 de 2
El éxito de esta técnica de ataque radica en que dentro de una misma red local es posible la suplantación de la dirección MAC de la puerta de enlace, por la dirección MAC del atacante en la tabla ARP del equipo atacado. De modo que todo el tráfico que se genere desde en el equipo atacado será interceptado por el equipo atacante y este a su vez lo redireccionará a la dirección de la puerta de enlace legítima de la red local, de esta manera el equipo atacado no será consciente de que su tráfico de red se esté monitoreando, al menos que este consulta su tabla ARP (arp -a).

En la siguiente captura se puede ver una consulta a la tabla ARP de un equipo atacado, consultada antes y después de ser atacado. Vemos como la dirección MAC del Gateway es suplantada por la dirección MAC del atacante (en este caso correspondiente a la dirección IP 192.168.100.20).

Figura 1: Suplantación de MAC en la tabla ARP (ARP Spoofing)

Una opción que podemos aplicar para prevenir la suplantación de la dirección MAC de nuestro Gateway, es incluir dicha dirección MAC en la tabla ARP del sistema local de forma estática. Con esto conseguiremos que el equipo ya tenga definida una ruta estática de dirección IP correspondiente con su dirección MAC, por lo que será imposible el uso de técnicas ARP Spoofing para intentar suplantarla.

En sistemas Windows añadir una o varias rutas estáticas en la tabla ARP es posible con la utilidad de comandos ARP.
arp -s [IP_GATEWAY] [MAC_GATEWAY]
Figura 2: Añadir ruta estática en la tabla ARP en sistemas Windows.

Otra forma de hacerlo es mediante la utilidad de comandos Netsh en su modo interactivo.
netsh
netsh>interface
netsh>ipv4
netsh>add neighbors "[NOMBRE_INTERFACE]" "[IP_GATEWAY]" "[MAC_GATEWAY]"
Figura 3: Añadir una ruta estática en la tabla ARP en sistemas Windows con Netsh.

En el caso de sistemas Linux el argumento y la expresión del comando es la misma que en el caso de Windows.

Vemos como las rutas estáticas en la tabla ARP se marca como "PERM" (permanent).
arp -s [IP_GATEWAY] [MAC_GATEWAY]
Figura 4: Añadir una ruta estática en la tabla ARP en sistemas Linux.

Cualquiera de estas líneas de comandos de la tabla ARP se podría automatizar en un script de inicio del sistema. Ejecutar scripts o aplicaciones al inicio del sistema.

En el caso de Windows se puede crear un fichero por lotes .bat con la instrucción. Y añadir este script en el inicio de sesión o sistema.
@echo off
arp -s [IP_GATEWAY] [MAC_GATEWAY]
exit
En el caso de Linux crearíamos un script .sh en bash. Darle permisos de ejecución a este script y añadiendo el path de ubicación en una línea al final del fichero /etc/rc.local por ejemplo.
#!/bin/sh -e
# Añadir ruta estática gateway en la tabla ARP
arp -s [IP_GATEWAY] [MAC_GATEWAY]
exit 0
Saludos!

19 marzo, 2014

Cambiar una dirección IP remotamente de forma subyacente con PsExec

Ya hablara del conjunto de herramientas que componen el paquete PsTools desarrolladas por Mark Russinovich (Sysinternals), las cuales nos permiten entre otras cosas realizar administraciones a equipos remotos de una red.

En esta ocasión haré uso de una de estas herramientas. PsExec la cual nos permite ejecutar procesos de un equipo remoto. Por ejemplo; realizar comandos en una shell remota, estos comandos NO se verán remotamente, es decir, que se hace transparente al usuario final y/o remoto.

En este caso mostraré un pequeño batch processing (.bat) que con ayuda de esta herramienta nos permitirá cambiar la dirección IP remota ACTUAL por una nueva asignación de dirección IP.
Copiando este script y pegándolo en fichero de texto, renombrándolo con una extensión .bat.
@echo off
echo ++ Introduce la IP del equipo Remoto:
set /p ipremota=
echo.
echo ++ Introduce la nueva IP a establecer:
set /p ipnueva=
echo.
echo ++ Introduce la mascara correspondiente:
set /p mascara=
echo.
echo ++ Introduce la Gateway correspondiente:
set /p gateway=
echo.
echo ++ Introduce el nombre de la interfaz: Ej: Conexión de área local
set /p interfaz=
echo.
psexec \\%ipremota% -u UsuarioAdmin -p PasswordAdmin -s netsh interface ip set address name="%interfaz%" source=static %ipnueva% %mascara% %gateway% 1
exit
Simplemente creamos y establecemos las variables a tener en cuenta y que nos harán falta para el uso de psexec. Como son principalmente e importante la dirección IP ya que la Subnetmask y la Gateway es opcional, dependiendo nuestras necesidades.
En mi caso es necesario ya que necesito cambiar IPs remotas que están fuera del rango habitual de mi red actual, pero que sin embargo si forman parte de mi tabla de enrutamiento (route print).

Después hacemos uso de la herramienta PsExec de manera que hagamos referencia a la IP remota (ya introducida como una variable), así como las posteriores variables tomadas que en mi caso eran la mascara de subred y la puerta de enlace.

Los parámetros con PsExec utilizados son los siguientes:
  • \\ipremota: IP Remota o nombre del equipo (para establecer la conexión con el equipo)
  • -u: Usuario con privilegios de la máquina remota para ejecutar el comando.
  • -p: Password de dicho usuario remoto con privilegios.
  • -s: Proceso/comando a ejecutar de manera remota. En este caso, netsh y su respectiva sintaxis de uso.
  • 1: Indica la métrica, normalmente en la mayoría de casos especificamos el valor 1.
Saludos!

26 mayo, 2012

Ataques MITM: ARP Spoofing/Poisoning sobre IPv4 - Parte 2 de 2

¿Cómo prevenir o evitar ataques MITM - ARP Spoofing/Poisoning?

Una de las maneras para prevenir el ARP Spoofing de manera manual, es el uso de tablas de caché ARP de forma estáticas, de forma que no existe caché dinámica, cada entrada de la tabla mapea una dirección MAC con su correspondiente dirección IP.

Para añadir rutas estáticas ARP a la tabla caché se pueden realizar de diferentes formas, dependiendo el OS que utilicemos. Abrimos una consola con privilegios administrativos.

Windows o Linux:
arp -s [IP Address] [MAC Address]
arp -s 192.168.1.1 00:11:22:33:44:55
Windows (usando netsh):
netsh > interface > ipv4 > add neighbords "[NombreDeLaConexiónDeRed]" [IP Address] [MAC Address]
netsh > interface netsh interface> ipv4
netsh interface ipv4> add neighbords "Conexión de área local" 192.168.1.1 00:11:22:33:44:55
El inconveniente de añadir rutas estáticas a la caché de la tabla ARP es que al reiniciar el PC las direcciones estáticas se eliminan. Para mantener esta tabla podríamos generar un script .vbs o .bat (el cual le daríamos privilegios administrativos) y que este se ejecute en el inicio del sistema, ya bien podemos incluirlo en la carpeta "Inicio" o hacer uso del editor de directivas de grupo local.

gpedit.msc > Configuración de Windows > Scripts (inicio o apagado) > Inicio > Agregar... > buscamos la ruta del fichero .vbs o .bat. Esto lo añade por defecto en la ruta: C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup

¿Cómo detectar ataques MITM - ARP Spoofing/Poisoning?

Si empezamos a notar alguna anomalía mientras navegamos.
  • Que un página que debería llevar un protocolo HTTPS está como HTTP.
  • Que aún siendo HTTPS se nos caiga la conexión con el servidor de dicha página o nos deniege el acceso ya que detecta que la entidad certificadora CA que emite el certificado para la conexión no es el original o un entidad emisora legítima.
  • Que una dirección DNS que sabemos a donde nos lleva y como es la página web de esta, se nos muestra una página web similar o nos encamina a otra página web distinta.
En cualquiera de los casos anteriores sería entonces donde podría consultar la tabla ARP con el comando arp -a y comprobar la existencia de direcciones MAC clonadas correspondientes a distintas direcciones IP.

Como prueba sobre dos Windows 7 Ultimate x64 instalados en máquinas virtuales. Aunque como ya dijera en la primera entrega el OS no influye para este tipo de ataques ya que se tratan a nivel de red local en la Capa 2 (enlace de datos o acceso) del modelo OSI.

Para que se pueda ver de una manera más clara hice uso del sniffer de red Wireshark. Que hace uso de WinPcap que son librerías necesarias para capturar el tráfico de transmisión de datos en una red, y que trabaja a nivel de núcleo.

En las capturas de pantalla que muestro a continuación se ocultan parte de lo que forman las direcciones, esto lo hago por seguridad. Pero un detalle que quiero aclarar es que en una dirección MAC lo normal sería ocultar los últimos tres bloques hexadecimales ya que estos identifican la dirección con relación a los tres primeros que identifican el proveedor o fabricante del adaptador de red. 
En este caso yo oculte los 4 primeros bloques hexadecimales manteniendo visibles los 2 últimos, la razón es por que al estar trabajando en máquinas virtuales las direcciones que identifican al fabricante eran las mismas y entonces no se podría ver la diferencia. Igualmente oculto el cuarto bloque de la dirección MAC completa que correspondería el primero que identifica dicha dirección MAC.

El escenario para este ejemplo sería.

Atacante:
  • IP Address: 10.0.0.15
  • MAC Address: xx:xx:xx:xx:09:27
  • Gateway: 10.0.0.1 (MAC xx:xx:xx:xx:66:00)
Víctima:
  • IP Address: 10.0.0.14
  • MAC Address: xx:xx:xx:xx:A6:38
  • Gateway: 10.0.0.1 (MAC xx:xx:xx:xx:66:00)

Usando Wireshark

La víctima es la que detectará el ARP Spoofing del atacante, capturando tráfico y así ver modificaciones de falseos/clonados/suplantaciones de direcciones MAC en las tramas ARP Request y ARP Reply.

Figura 1: Detectando trama MAC duplicada filtrando por el protocolo ARP en Wireshark.

Vemos como un host anuncia su dirección MAC sin que nadie se lo pida. Después un host solicita la dirección MAC y hay dos respuestas con la misma dirección IP pero diferente dirección MAC.

Finalmente, Wireshark detecta el ARP Spoofing, que lo describe como: "duplicate use of 10.0.0.1 detected" "Detectado el duplicado del uso de la 10.0.0.1" es decir, la puerta de enlace o gateway.

Pero sería muy tedioso, tener que abrir y poner a capturar tráfico de tramas ARP cada vez que encendemos nuestro PC y nos ponemos a navegar por internet, y que por encima al final del día paremos la captura y analicemos la .pcap para detectar si fuimos víctimas de un ataque Man In The Middle.

Por lo que para esto ya existen muchas y diversas aplicaciones, tanto para OS Windows como para OS Linux y compatibles con sus distribuciones, que de manera automática y transparente para el usuario, sin necesidad de que este realice ninguna acción, estas detectan si están ocurriendo modificaciones de la caché de la tabla ARP y que monitorean el tráfico de tramas ARP Request y ARP Reply.

Usando DecaffeinatID (Windows)

Para Windows podremos encontrar DecaffeinatID, es una pequeña aplicación desarrollada por IronGeek.com y que después de instalarla se carga en la taskbar de Windows ejecutándose de manera background y automatizada. Nos avisa de cambios producidos a tiempo real en la caché de la tabla ARP del PC.

Nos dice que la dirección IP de la gateway a cambiado mostrándonos la dirección MAC original por la falseada.

Figura 2: Detectando suplantación de direcciónes MAC con DecaffeinatID.

Usando ArpWatch (Linux)

Para Linux podremos encontrar ArpWatch, que usa libpcap (es igual que Winpcap, pero de código abierto y que son las librerías que son usadas por sistemas Linux) y monitorea los cambios de direcciones IP y direcciones MAC. Estos avisos podemos modificarlos para que nos alerte a nuestra dirección de correo, y lógicamente ver mensajes de logs.

Después de descargar el .gz e instalarlo. Escribimos los siguientes comandos y parámetros para su uso.
sudo arpwatch -i eth0
Este comando ejecuta Arpwatch, así cuando detecte un cambio de direcciones IP-MAC nos mostrará un mensaje de log en el directorio /var/log/syslog.

Saludos!

Entradas Populares