Azok közül akik GNU/Linuxszal kezdenek el foglalkozni, sokan esnek abba a hibába az elején, hogy ész nélkül mindent copy-pastéznak az Internetről és nem ellenőrzik, mielőtt lefuttatnák.
Bemutatok egy kis ártalmatlan trükköt, amivel egy figyelmetlen/naív felhasználót tévútra lehetne vinni.
Készítsünk egy olyan parancsot, amit lefuttatva, kiírja, hogy “szep ido“:
bash$ echo -ne 'echo szep ido' | od -x | awk '{$1="";printf $0}' | sed 's/(^| )([a-zA-Z0-9]{2})([a-zA-Z0-9]{2})/1\x3\x2/g' | sed -e 's/ //g' -e 's/\x00//' bash$
Erre megkapjuk a 8-as (oktális) számrendszer szerinti szöveget:
x65x63x68x6fx20x73x7ax65x70x20x69x64x6f
Ha ezt a karaktersorozatot “kiechohozzuk”, akkor visszakapjuk az elején megadott szöveget:
bash$ echo -ne 'x65x63x68x6fx20x73x7ax65x70x20x69x64x6f' echo szep ido bash$
Ezután már csak azt kell elérni, hogy hajtsa végre a rendszer:
bash$ $(echo -ne 'x65x63x68x6fx20x73x7ax65x70x20x69x64x6f') szep ido bash$
Ezek után könnyen elképzelhető, hogy mi történik, ha nem az “echo szep napot“-t, hanem például a romboló “rm -rm /*” parancsot kódoljuk el és tesszük közzé, mint “megoldást”.
Ezért, ha olyan megoldást látunk az Interneten, amiben a “$(echo -e ‘x??x??…’)” forma szerepel, mindig gyanakodjunk! A biztonság kedvéért, előbb mindig érdemes megnézni, hogy mit rejt az echo parancsnak átadott paraméter:
bash$ echo -ne 'x??x??...' | od -c bash$
A példánál maradva:
bash$ echo -ne 'x65x63x68x6fx20x73x7ax65x70x20x69x64x6f' | od -c 0000000 e c h o s z e p i d o 0000015 bash$
Sok kellemetlen pillanattól és veszteségtől óvhatjuk meg magunkat, ha körültekintőek vagyunk!