Web Attack: Ejecución remota de código CCTV-DVR (Node.js - URL string.js en sueco)

2

He estado usando node.js y ejecutando vivo-servidor de paquetes en mi proyecto por un tiempo con el siguiente comando:

node node_modules/live-server/live-server.js . --ignore=\"css/sass\" --open=./ --cors

Que utiliza la dirección http://127.0.0.1:8080/ predeterminada. La computadora portátil que estoy usando tiene "Norton Security" instalado y hoy, sin hacer ningún cambio en los archivos del proyecto, el programa generó una alerta de alta gravedad con lo siguiente:

  
  • Nombre: Ataque web: Ejecución remota de código CCTV-DVR
  •   
  • Acción realizada: no se requiere ninguna acción
  •   
  • computadora del atacante: 192.168.1.84, 50473
  •   
  • URL del atacante: 192.168.1.7:8080/language/Swedish${IFS}&&ping$IFS-c1$IFS-s41${IFS}192.168.1.84>/dev/null&&tar${IFS}/string.js "MY_PC_NAME (192.168.1.7 8080)
  •   
  • Dirección de destino: MY_PC_NAME (192.168.1.7)
  •   
  • Dirección de origen: 192.168.1.84
  •   
  • Descripción del tráfico: TCP, puerto 50473
  •   
  • Origen: \DEVICE\HARDDISKVOLUME3\PROGRAM FILES\NODEJS\NODE.EXE
  •   
  • Notas: el ataque coincide con la firma de un ataque conocido.
  •   

Estoy en wi-fi (WPA2-Personal) y acabo de ejecutar nslookup 192.168.1.84 y confirmé que esta es una de las PC de la red a la que estoy conectado. No estoy en Suecia, pero este es un lugar donde diferentes extranjeros vienen a usar la red, y puedo decir por el nombre de la computadora del atacante que la persona probablemente tampoco sea sueca.

No conozco a esta persona y qué intenta hacer este tipo de ataque. El programa Norton Security que he instalado está terminando su período de prueba en 4 días, y planeaba usar el Windows Defender predeterminado (Windows 10) después de eso. ¿Alguna sugerencia sobre cómo proceder que no requiera que corte la conexión inalámbrica?

    
pregunta CPHPython 05.01.2018 - 13:42
fuente

2 respuestas

3
  

Que utiliza la dirección predeterminada enlace .

127.0.0.1 es localhost y no es accesible desde el exterior. Si realmente solo enlazaras a esta dirección, el atacante no podría conectarse a este servidor desde otra computadora, pero solo las conexiones desde tu computadora serían posibles.

Pero el software que está utilizando no usa la dirección predeterminada de 127.0.0.1 como afirma. Para citar de la documentación :

  

--port = NUMBER - seleccione el puerto a usar, predeterminado: PORT env var o 8080
  --host = ADDRESS - selecciona la dirección del host para enlazar, por defecto: IP env var o 0.0.0.0 ("cualquier dirección")

Por lo tanto, no se enlazará a 127.0.0.1 sino a 0.0.0.0 de forma predeterminada. Esto significa que se puede acceder a su servidor por defecto también desde fuera de su propia computadora. Para solucionar esto debes

  • establece --host=127.0.0.1 al iniciar el servidor. Esto hará que solo se pueda acceder al servidor desde la máquina local.
  • y mejor también habilitar el firewall en su máquina en caso de que tenga otros servicios en ejecución que no deberían ser accesibles desde el exterior.
respondido por el Steffen Ullrich 05.01.2018 - 14:12
fuente
1

Como Steffen Ullrich sugirió útilmente restringí mis ejecuciones live-server con el parámetro --host=127.0.0.1 , solo permitiendo para implementarlo en mi dirección IP local (lo que limita su posibilidad de ser implementado en otras direcciones).

Norton Security tiene un firewall activo casi permanente, pero todavía hice algunos pasos de ajuste:

  • He modificado la capacidad de confianza de la red específica a la que estoy conectado desde Public a Restricted , lo que impide el acceso directo a mi PC desde otros dispositivos de red.
  • Agregué a la lista de dispositivos "confiables" la dirección IP del atacante y configuré su acceso a restringido. Soy consciente de que esto puede ser redundante, ya que el último paso debería evitar todas las comunicaciones y la IP de su red puede cambiar en el futuro. Por ahora, es principalmente para fines de registro.

Como la prueba de Norton está terminando en 4 días para mí, descubrí que se puede realizar una operación similar a través de Seguridad avanzada de Firewall de Windows Reglas de entrada:

  1. Agregar una "Nueva regla ...";
  2. Elija la opción Personalizada ;
  3. En la pestaña Programa , selecciona "Todos los programas";
  4. En la pestaña Protocolo y puertos , elija Cualquiera en el campo Tipo de protocolo (esto automáticamente considera Todos los puertos , local y remoto);
  5. En la pestaña Ámbito , seleccione Cualquier dirección IP para el campo local (puede definir rangos de direcciones IP en el acceso remoto, si quieres algunas conexiones entrantes remotas);
  6. En la pestaña Acción , selecciona Bloquear la conexión ;
  7. En la pestaña Perfil , asegúrese de que esta regla se aplique al grupo al que pertenece la red wi-fi (o simplemente déjelos todos seleccionados: Dominio , Privado , Público );
  8. Dé un Nombre obvio a la regla para recordarlo más tarde, en caso de que necesite cambiar el rango de direcciones IP para bloquear, por ejemplo. "CUSTOM: BLOCK ALL INBOUND (redes privadas)"

Supongo que esta es otra forma de resolver el problema y parece hacer lo que Norton hace entre bastidores.

Sin embargo, todavía tengo curiosidad por saber más sobre este tipo de ataque. Si no fuera por el desarrollo que estoy haciendo con node.js, probablemente no habría escrito la pregunta y esta respuesta. Así que todavía aprecio cualquier explicación sobre lo que el ataque puede intentar hacer.

    
respondido por el CPHPython 05.01.2018 - 16:48
fuente

Lea otras preguntas en las etiquetas