Web Attack: CCTV-DVR Remote Code Execution (Node.js - Swedish string.js URL)

2

Ho utilizzato node.js e ho eseguito pacchetto live-server nel mio progetto per un po 'con il seguente comando:

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

che utilizza l'indirizzo http://127.0.0.1:8080/ predefinito. Il laptop che sto utilizzando ha installato "Norton Security" e oggi, senza apportare alcuna modifica ai file del progetto, il programma ha generato un avviso alta gravità con il seguente:

  • Name: Web Attack: CCTV-DVR Remote Code Execution
  • Action performed: No action is required
  • Attacker's computer: 192.168.1.84, 50473
  • Attacker's URL: 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)
  • Destination address: MY_PC_NAME (192.168.1.7)
  • Origin address: 192.168.1.84
  • Traffic's description: TCP, Port 50473
  • Origin: \DEVICE\HARDDISKVOLUME3\PROGRAM FILES\NODEJS\NODE.EXE
  • Notes: the attack matches the signature of a known attack.

Sono su Wi-Fi (WPA2-Personal) e ho appena eseguito nslookup 192.168.1.84 e ho confermato che questo è uno dei PC nella rete in cui sono connesso. Non sono in Svezia, ma questo è un posto dove diversi stranieri vengono per usare la rete, e posso dire dal nome del computer dell'aggressore che la persona non è probabile che sia svedese.

Non conosco questa persona e quello che questo tipo di attacco tenta di fare. Il programma Norton Security che ho installato sta terminando il periodo di prova in 4 giorni e, in seguito, prevedevo di utilizzare Windows Defender predefinito (Windows 10). Qualche suggerimento su come procedere, che non mi richiede di interrompere il wireless?

    
posta CPHPython 05.01.2018 - 13:42
fonte

2 risposte

3

Which uses the default http://127.0.0.1:8080/ address.

127.0.0.1 è localhost e non è raggiungibile dall'esterno. Se si collegasse solo a questo indirizzo, l'utente malintenzionato non sarebbe in grado di connettersi a questo server da un altro computer, ma sarebbero possibili solo le connessioni dal computer stesso.

Tuttavia, il software in uso non utilizza l'indirizzo predefinito di 127.0.0.1 come richiesto. Per citare dalla documentazione :

--port=NUMBER - select port to use, default: PORT env var or 8080
--host=ADDRESS - select host address to bind to, default: IP env var or 0.0.0.0 ("any address")

Pertanto, non verrà associato a 127.0.0.1 ma a 0.0.0.0 per impostazione predefinita. Ciò significa che il tuo server è raggiungibile per impostazione predefinita anche al di fuori del tuo computer. Per risolvere il problema dovresti

  • imposta --host=127.0.0.1 all'avvio del server. Ciò renderà il server accessibile solo dal computer locale.
  • e meglio abilitare anche il firewall sulla tua macchina nel caso in cui tu abbia altri servizi in esecuzione che non dovrebbero essere raggiungibili dall'esterno.
risposta data 05.01.2018 - 14:12
fonte
1

Come suggerito da Steffen Ullrich ho limitato le mie esecuzioni live-server con il parametro --host=127.0.0.1 , consentendo solo da implementare sul mio indirizzo IP locale (limitando la possibilità di essere distribuito ad altri indirizzi).

Norton Security ha un firewall attivo quasi permanente, ma ho ancora fatto alcuni passaggi di regolazione:

  • Ho modificato l'attendibilità della rete specifica a cui sono connesso da Public a Restricted , che impedisce a tutti gli altri dispositivi di rete l'accesso diretto al mio PC.
  • Ho aggiunto all'elenco dei dispositivi "attendibili" l'indirizzo IP dell'utente malintenzionato e ne ho impostato l'accesso a restrizioni. Sono consapevole che questo potrebbe essere ridondante, poiché l'ultimo passaggio dovrebbe impedire ogni comunicazione da esso e l'IP della sua rete potrebbe cambiare in futuro. Per ora, è principalmente per scopi di registrazione.

Poiché il processo di Norton termina in 4 giorni per me, ho scoperto che un'operazione simile può essere eseguita tramite Windows Firewall Advanced Security Regole in entrata:

  1. Aggiungi una "Nuova regola ...";
  2. Scegli l'opzione Personalizzata ;
  3. Nella scheda Programma , seleziona "Tutti i programmi";
  4. Nella scheda Protocollo e porte , seleziona Qualsiasi nel campo Tipo di protocollo (questo considera automaticamente Tutte le porte , locale e remoto);
  5. Nella scheda Ambito , seleziona Qualsiasi indirizzo IP per il campo locale (puoi definire gli intervalli di indirizzi IP nell'accesso remoto, se vuoi alcune connessioni remote in entrata);
  6. Nella scheda Azione , seleziona Blocca la connessione ;
  7. Nella scheda Profilo , assicurati che questa regola si applichi al gruppo a cui appartiene la rete Wi-Fi (o lasciandoli tutti selezionati: Dominio , Privato , Pubblico );
  8. Fornisci un ovvio Nome alla regola per ricordarlo in un secondo momento, nel caso in cui sia necessario modificare l'intervallo di indirizzi IP da bloccare, ad es. "CUSTOM: BLOCK ALL INBOUND (reti private)"

Immagino che questo sia un altro modo per risolvere il problema e sembra fare ciò che Norton fa dietro le quinte.

Tuttavia, sono ancora curioso di sapere di più su questo tipo di attacco. Se non fosse per lo sviluppo che sto facendo con node.js, probabilmente non avrei scritto la domanda e questa risposta. Quindi apprezzo ancora qualsiasi spiegazione su ciò che l'attacco potrebbe tentare di fare.

    
risposta data 05.01.2018 - 16:48
fonte

Leggi altre domande sui tag