Qual è il rischio di copiare e incollare comandi Linux da un sito Web? Come possono alcuni comandi essere invisibili? [duplicare]

87

Come tutti i principianti nella terra di Linux, di solito cerco siti web che contiene alcuni utili comandi della shell, contrassegnali con il mio mouse, copiateli ( CTRL + C ) e incollalo in un terminale.

Ad esempio, se ho bisogno di installare package_name.deb

sudo apt-get install package_name.deb

Fornirò la mia password di root e installo il package_name.deb

Quando incollo questo comando nel mio editor di testo , sarà qualcosa di simile a:

sudo apt-get install package_name.deb && apt-get install suspicious_file.deb 

Secondo esempio, se voglio aggiungere un nuovo ppa (terminale)

sudo add-apt-repository ppa:some/ppa
sudo apt-get update

Quando modifico il mio sources.list, troverò qualcosa del tipo:

deb http://ppa.launchpad.net/some-ppa/

e

deb http://ppa.launchpad.net/a_suspicious_some-ppa/

Il problema è che il secondo ppa deb http://ppa.launchpad.net/a_suspicious_some-ppa/ viene aggiunto automaticamente e senza la mia autorizzazione.

Come puoi vedere, c'è una parte invisibile. Non appare sul mio terminale.

Qual è il rischio di copiare e incollare da un sito Web non attendibile nel terminale e come risolvere il mio sistema operativo?

    
posta GAD3R 14.02.2016 - 18:27
fonte

4 risposte

84

I siti web possono essere aggiunti agli appunti

Il rischio è esattamente quello che hai detto che fosse. È sicuramente possibile aggiungere comandi dannosi negli appunti.

Potresti anche aggiungere && rm -rf /* (si esegue solo se il primo comando ha avuto successo), o ; rm -rf /* (viene eseguito anche se il primo comando non ha avuto successo) e brick certi dispositivi UEFI .

Dovresti anche controllare il post di Michael in questo thread per un altro esempio .

Alla fine, dipende davvero da quanto creativo e malizioso sia un particolare "hacker" malvagio.

Ma come puoi rendere i comandi "invisibili" nel terminale? "

  1. Metodo uno

    echo test;echo insert evil here;clear;echo installing package
    

    Ordine di esecuzione :

    1. Echo "test" accade
    2. Echo "inserisci il male qui" accade
    3. Le azioni sono "cancellate"
    4. L'azione prevista si verifica qui, ma non vedi il resto.

    ...

    Puoi provare a scorrere verso l'alto nella finestra del terminale per trovare il resto.

  2. Metodo due

    stty -echo 
    tput smcup
    

    Questo disabiliterà il terminale dal mostrare ciò che stai digitando, quindi non appare affatto nella finestra del terminale.

    Puoi provare in questo modo:

    stty -echo;tput smcup;echo evil commands
    expected command
    

Questi sono solo due esempi veramente approssimativi, ma mostrano il potenziale di ciò che può essere fatto per offuscare i comandi. Nota che probabilmente non si nasconde da ~ / .bash_history a meno che i comandi nascosti non cancellino / modificino il suo contenuto.

Dovresti dare per scontato che ci siano altri modi per farlo.

Mitigazione

Ti consiglio di utilizzare un addon per disabilitare la manipolazione degli appunti . Sfortunatamente ci sono modi per aggirare il problema, quindi consiglio di incollare tutto in un testo editor prima che vada nel tuo terminale , o in qualunque posto.

Devi verificare cosa stai facendo. Se non capisci ogni singolo comando, dovresti farlo su Google. Questo è un vero e proprio mazzolino di carta stagnola perché copiare e incollare può forzare i comandi ad autoesecuzione su molti gusti di Linux.

Ripristino della tua installazione Linux

Potresti non avere idea di quanto sia profonda la tana del coniglio. A meno che tu non abbia il tempo e gli sforzi da dedicare a questo, ti suggerirei di nuotare dall'orbita, a meno che tu non abbia file importanti. Se disponi di file importanti, esegui il backup delle cose non eseguibili (niente pdf, documenti, ecc.) E quindi nuke dall'orbita.

Se si dispone di PDF, è possibile convertire il PDF in post-script o copiare e incollare il contenuto in un file di testo. Con i documenti, copia e incolla il testo e formattalo in un secondo momento.

    
risposta data 14.02.2016 - 20:07
fonte
39

C'è un rischio. I siti Web possono utilizzare CSS e JavaScript per nascondere le cose e quindi quando si copia da quel sito Web, si copia effettivamente ciò che vogliono. @Gumbo ha fornito l'esempio: link .

La correzione: non copiare e incollare da siti Web di cui non ti fidi. Oppure visitali.

    
risposta data 14.02.2016 - 20:40
fonte
20

Sì, tagliare e incollare comandi da siti Web non fidati può essere pericoloso. Il testo che incolli conterrà sempre il testo che copi, ma può avere più testo prima, in mezzo o dopo.

Sulla pagina web questo è fatto da CSS. Rendi invisibile il testo in più. Sarà comunque copiato.

Quando lo incolli in un terminale, verrà visualizzato il testo aggiuntivo . Tuttavia, se contiene una nuova riga, verrà immediatamente eseguita e il danno verrà eseguito. Inoltre, può contenere comandi per cancellare il testo in più.

Per evitare il pericolo incollare il testo in un editor di testo. Controllalo. E poi copiarlo dall'editor al terminale.

Solo ... assicurati di aver compreso il comando abbastanza bene da sapere che è sicuro. Il altro pericolo di incollare comandi sconosciuti è che non puoi semplicemente capire cosa stai facendo.

    
risposta data 15.02.2016 - 09:47
fonte
17

Oltre alle eccellenti risposte di cui sopra, aggiungerei che oltre a scopi dannosi, ci sono anche problemi di copia e incolla da siti Web o PDF dovuti alla codifica dei caratteri.

Potresti pensare di incollare un gruppo di caratteri e, a causa della codifica dei caratteri, incollare cose diverse e avere problemi difficili da rintracciare.

syslog non riesce ad avviarsi

Dal thread, l'OP pensava di aver incollato:

file("/var/log/cisco/cisco.log");

Ma in realtà ha incollato qualcosa del genere:

file(▒~@~\/var/log/cisco/cisco.log▒~@~]); 
    
risposta data 14.02.2016 - 21:23
fonte

Leggi altre domande sui tag