Kali Linux

#31 Kali Linux для начинающих. Разбираемся с процессами.

Итак, мы постепенно приближаемся к концу второй части курса.

Рассмотрим тему процессов и управлению процессами. Наша задача – понять, как управлять процессами.

Что такое процесс? Процесс-это работающая команда. Когда Вы выполняете команду в линуксе, виндовсе, или в любой другой операционной системе, то вместе с этой командой запускается процесс. Допустим я запустил браузер. В момент запуска браузера запускается процесс этого браузера. Если я запускаю медиаплейер, то запускается процесс медиаплейера. Если я запускаю программу ping, то запускается процесс этой команды. Т.е. процесс – это запущенный экземпляр определенной команды или программы.

Процессы можно просмотреть, поставить на паузу, остановить, убрать в фон, чтобы затем вывести на передний план. Сейчас мы рассмотрим, как все работает. Но для начала, нам нужно разобраться в том, что в Линуксе у определенного процесса существует свой уникальный id.

Также, каждый процесс ассоциирован с пользователем и группой. И если я запущу процесс, как рут-пользователь, то этот процесс будет ассоциирован с рутом. И если «tom» запустит этот процесс, то он будет ассоциирован с томом. У обоих процессов будут разные «id». И само собой, у процессов, которые запустил рут-пользователь, будет больше прав доступа и более широкие возможности управления системой. Очень важно, что если я запустил процесс как рут-пользователь, то у этого процесса или программы, будет больше привилегий и прав доступа к системе и ее ресурсам, поэтому в линуксе и виндовсе не рекомендуется запускать программы, будучи рут-пользователем, особенно, если Вы скачали программу с неизвестного ресурса. Допустим, Вы вошли на сайт, скачали программу, и хотите посмотреть, что она делает. Затем запускаете ее, и это опасно, потому что если Вы запустите ее, как рут-пользователь или как администратор под виндовс, то программа запустится со всеми правами, и у нее будет доступ ко всем ресурсам системы, поэтому рекомендуется использовать профиль пользователя с низкими правами. Если Вам нужно запустить программу, или допустим установить эту программу, то это можно сделать как администратор, а затем, после установки, использовать ее как обычный пользователь.

Таким образом, мы прихожим к совету, который Вам поможет после взлома.

После взлома сервера, Вам нужно будет найти процессы или программы, запущенные рут-пользователем, и узнать, есть ли в этих программах уязвимости. Если они запущены рут-пользователем, и у них есть уязвимости, которые можно эксплуатировать, то Вы сможете получить доступ к системе как рут-пользователь.

Вот некоторые команды, которые используют команды для управления процессами:

Ps – отображает список процессов текущей сессии.

После авторизации выполните ps, чтобы увидеть процессы, которые работают в Вашей сессии.

Psf —  отображает список процессов в расширенном формате.

Т.е. результат выполнения команды отображается в расширенном формате, и выглядит иначе.

Pse – отображает абсолютно все процессы.

Psu [username] – отображает процессы определенного пользователя.

Ps – p [PID] – отображает информацию о процессе с этим id.

Давайте посмотрим, как это работает. Я авторизирован как рут-пользователь.

Вводим команду ps:

команда ps

Как видим, запущено 2 процесса, bash и ps. Bash – это мой шелл, который я сейчас использую, а ps – это процесс, который я только что запустил.

Выполним команду «ps -f», чтобы посмотреть на разницу:

команда ps -f

Результат этой команды отличается от результата предыдущей. Нас интересует колонка UID, которой содержится информация о том, какой пользователь запустил какой процесс. Это очень важная информация.

Теперь запустим команду «ps –e»:

команда ps -e

И как видим, результат выглядит совсем иначе. Здесь намного больше процессов. Тут указаны все процессы, которые не только запущены пользователем, но и запущены самой системой.

Давайте попробуем объединить опции –e и –f:

объединение опций -e -f

Данная команда выдает намного больше деталей. Например, мы можем видеть запущенную программу, а также опции, с которыми она была запущена. Это очень длинный список процессов, запущенный в системе. Я хочу просмотреть процессы, которые были запущены только рут-пользователем.  Для этого выполняю команду «ps –u root»:

команда ps -u root

Как видим, это все процессы, которые были запущены рут-пользователем.

Теперь давайте рассмотрим процессы другого пользователя, например, bob. Команда будет выглядеть как: «ps –u bob»:

ps -u bob

И сейчас нет процессов, которые были запущены бобом. Давайте сделаем эксперимент и удаленно авторизируемся в системе. Мне понадобится ос Windows 10 и программа Putty:

удаленная авторизация в системе с помощью программы Putty
ps -u bob

Как видим, результат отличается. Появились новые процессы, а именно bob авторизирован в моем шелле на Kali.

Само собой, если я авторизирован как bob, то могу видеть процессы, запущенные рут-пользователем, с помощью той же самой команды «ps –u root»:

ps -u root

Как видим, все эти процессы запущены рут-пользователем.

Давайте запустим команду «ping timcore.ru»:

ping timcore.ru

Перейдем в машину на Kali и введем команду «ps – u bob»:

ps -u bob

Как видим, в списке процессов появилась команда «ping».

Допустим, что я хочу убить процесс, ввиду того, что программа зависла и не отвечает. Рассматриваем все тот же процесс ping. Его id – 14131:

kill 1431

Переходим в Putty, и смотрим, что процесс был завершен:

завершение процесса putty

Есть еще один способ завершить программу, но он довольно жесткий, и с ним нужно быть осторожней. Это крайний случай использования, для прекращения работы процесса. Для того, чтобы принудительно завершить процесс, нам понадобится команда: «kill -9 [PID]». Эта команда завершит процесс, вне зависимости от того, как процесс взаимодействует с системой. Будьте осторожны, используя эту команду.

Повторим те же шаги, что и в прошлом примере. Пингуем, далее проверяем id процесса, с помощью команды «ps –u bob»:

kill -9 1440

Переходим в Windows 10 и видим убитый процесс:

убитый процесс - killed

#1 Kali Linux для начинающих. Урок 1 — Основы сетей.

#2 Kali Linux для начинающих. Урок 2 — Горячие клавиши. Часть 1

#3 Kali Linux для начинающих. Урок 2 — Горячие клавиши. Часть 2

#4 Kali Linux для начинающих. Терминал Kali Linux. Часть 1

#5 Kali Linux для начинающих. Терминал Kali Linux. Часть 2

#6 Kali Linux для начинающих. Урок 4 — Root Kali Linux. Часть 1

#7 Kali Linux для начинающих. Root Kali Linux — Часть 2

#8 Kali Linux для начинающих. Основные команды. Часть 1.

#9 Kali Linux для начинающих. Основные команды. Перемещение по директориям. Часть 2.

#10 Kali Linux для начинающих. Основные команды. Создание директорий. Часть 3

#11 Kali Linux для начинающих. Основные команды. Часть 4 — Просмотр содержимого директорий.

#12 Kali Linux для начинающих. Основные команды. Часть 5 — Просмотр содержимого файлов.

#13 Kali Linux для начинающих. Основные команды. Часть 6 — Копируем файлы и директории.

#14 Kali Linux для начинающих. Основные команды. Часть 7 — Перемещаем файлы и директории.

#15 Kali Linux для начинающих. Основные команды. Часть 8 — Удаляем файлы и директории.

#16 Kali Linux для начинающих. Управление пакетами.

#17 Kali Linux для начинающих. Откуда Kali скачивает софт.

#18 Kali Linux для начинающих. Изменения в Kali 2019 относительно APT.

#19 Kali Linux для начинающих. Архивация и сжатие. Часть 1.

#20 Kali Linux для начинающих. Архивация и сжатие. Часть 2.

#21 Kali Linux для начинающих. Архивация и сжатие. Часть 3.

#22 Kali Linux для начинающих. Специальные символы. Часть 1.

#23 Kali Linux для начинающих. Специальные символы. Часть 2

#24 Kali Linux для начинающих. Основы сетей.

#25 Kali Linux для начинающих. Администрирование. Редактирование файлов с помощью Nano.

#26 Kali Linux для начинающих. Превращаем Kali Linux в веб-сервер.

#27 Kali Linux для начинающих. Изменения в файлах конфигурации Kali Linux.

#28 Kali Linux для начинающих. Превращаем Kali Linux в SSH-сервер.

#29 Kali Linux для начинающих. Управление пользователями и группами.

#30 Kali Linux для начинающих. Работаем с правами пользователей.