#32 Kali Linux для начинающих. Управляем процессами.
Давайте узнаем, как отправить процесс в фон, т.е отправить его в фон шелла или терминала, чтобы продолжить работу в терминале, пока процесс работает в фоне. Это удобно в двух ситуациях. Допустим, во время тестирования на проникновение Вы взломали линукс-систему, и эта линукс-система также именуемая линукс системой жертвы, не имеет графического интерфейса. Вы можете использовать только один шелл за раз. Вы не можете использовать более одного шелла, и Вам нужно выполнить команды, на исполнение которых нужно время. Вы не хотите ждать, пока команды закончат свою работу, потому что Вы хотите продолжить работу.
Что же делать в данной ситуации?
Нужно запустить команду в фоновом режиме. Т.е. выполнить команду и отправить процесс, который запустился в фоновый режим. И таким образом у Вас останется доступ к шеллу. Вы сможете с ним взаимодействовать, вводить другие команды, и делать все, что Вам нужно, пока программа работает в фоне. Это один сценарий. Другой, более распространенный. Вы работаете в компании, которая занимается информационной безопасностью, то как у пентестера, у Вас будет инструмент хакера. Хакерский сервер в интернете, на котором Вы можете авторизироваться как консультант по информационной безопасности, и использовать его для пентеста. Однако есть проблема. Допустим Вы авторизировались на этом сервере через SSH, и запустили какой-либо сканер уязвимостей. Понадобится несколько часов, чтобы сканер закончил работу, а сейчас уже время уходить с работы. Если закрыть окно терминала, то сессия будет остановлена. Однако, если Вы отправите этот процесс в фон, то сканер nmap (для примера) будет работать в фоновом режиме. Вы сможете закрыть сессию и спокойно пойти домой. Затем, вернуться на следующий день на работу, снова подключиться к этому серверу и продолжить выполнение сессии nmap. Сканирование успешно завершилось, пока Вы были дома. Как это сделать? Как отправить процесс в фон? Давайте рассмотрим несколько примеров. Я авторизирован сейчас под тремя разными пользователями:
Все эти пользователи подключены к одной машине на Kali.
Давайте начнем с боба. Я выполню команду «nmap –v –T0 timcore.ru &». Обратите внимание, что в конце записи я добавляю амперсант. Если Вы не знаете опции, которые я ввел, прочитайте справку.
После старта сканирования я нажимаю «Enter», и я все еще могу пользоваться терминалом. Если я просто введу команду «nmap», без амперсанта, то я не смогу дальше работать в терминале, и Вам придется ждать, когда все запущенные процессы завершат свою работу. Но сейчас я могу пользоваться терминалом, могу его очистить с помощью команды «clear». Чтобы узнать, какие команды запущены в фоне, можно использовать команду «jobs»:
Допустим я хочу вывести процесс на передний план или убить процесс. Для того, чтобы вывести процесс, нам понадобится команда «fg» с номером процесса соответственно:
И, чтобы его убить, нажимаю Ctrl+C:
Таким образом, мы завершаем работу программы.
Еще один способ отправить программу в фон – это использовать инструмент или программу «tmux»:
Теперь я нахожусь в другом шелле. Давайте снова пропишем команду nmap:
«nmap –v –T0 timcore.ru»:
Чтобы отключиться от tmux и вернуться в изначальный шелл, то нам нужно ввести комбинацию клавиш «Ctrl+C и потом exit»:
Существует альтернатива команды tmux, которая прописывается как nohup. Нам понадобится следующая команда: «nohup nmap –v –T0 timcore.ru &»:
Обратите внимание на то, что сразу выводится id запущенного процесса. Выйдем из сессии nohup и вернемся в рут-пользователя:
Как видим, процесс nmap все еще запущен и продолжает работать. Далее убьем этот процесс, с помощью команды kill 1901:
В итоге у пользователя mat нет активных процессов.
Домашнее задание
Подключитесь на Вашу машину на Kali с Windows 10 через Putty.
Запустите nmap и укажите сайт timcore.ru.
Завершите сессию Putty.
Через несколько минут перейдите на машину на Kali, и проверьте, запущен ли nmap.
Если он не работает, попробуйте другие варианты, и сделайте так, чтобы nmap продолжил работу в фоновом режиме, несмотря на то, что Вы отключились от Putty.
#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 для начинающих. Работаем с правами пользователей.