10 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Использование PowerShell для пентестов в Kali Linux

Использование PowerShell для пентестов в Kali Linux

С точки зрения пентестера мы использовали PowerShell для более разнообразных тактик, реализуемых после эксплуатации уязвимостей.

За последние несколько лет PowerShell превратился в мощный скриптовой язык для автоматизации задач, связанных с системным администрированием, и создания разнообразных сценариев под ОС Windows. Более того, Microsoft сделала доступным PowerShell для других платформ на базе .NET Core, а недавно компания Offensive Security добавила PowerShell в Kali Linux.

С появлением PowerShell в Линуксе добавились новые возможности, включая:

Подключение к целевым системам, работающим под управлением ОС Windows.

Однако есть несколько функций в PowerShell, которые на данный момент не доступны в линуксовых системах:

Поддерживаются не все командлеты.

Нельзя использовать sudo или exec напрямую в PowerShell.

Отсутствует поддержка WMI / CIM.

В этой статье будет продемонстрировано, как получить сессию PSSession из нашей рабочей системы с Kali Linux к целевым машинам (под управлением Windows или Linux). В PowerShell командлет PSSession позволяет организовать постоянное включение к локальному или удаленному компьютеру. PSSession дает возможность взаимодействовать с целевыми системами и в то же время шифровать все передаваемое содержимое.

Примечание: приведенные техники были протестированы в Windows 10 x64 Pro, version 2004 и Ubuntu 20.04 LTS.

Диспетчер задач Линукс — любой Линукс

Совсем обойти CLI-утилиты просто не имею права. Тем более, если они уже есть. Заряжаем терминал и набираем

Самое подробное о том, что сейчас происходит в системе. Как я понимаю, она сидит в любом дистрибутиве Линукс. Из терминала вы можете увидеть информацию обо всех процессах, потреблении процессора, SWAP, свободных и занятых ресурсах RAM – вобщем, обо всём. Альтернативным вариантом просмотра использования ресурсов является утилита

Она отображает запущенные потоки системных процессов в древовидной форме.

Но ладно. К таким утилитам мы будем возвращаться время от времени в любом случае, так как они существуют в нашей системе по умолчанию. А сейчас, собственно, по теме статьи.

Шаг 2 — Закрытие и расстановка приоритета процессов

В предыдущем шаге мы уже рассказывали о том, как можно закрыть процесс с помощью команды top. Этот же результат может быть достигнут при помощи команды kill. К примеру:

kill pid — впишите вместо PID идентификатор процесса, который вы хотите закрыть. Если процесс довольно упрямый и не хочет быть закрыт, вы можете использовать команду: kill -9 pid.

Еще одной командой для управления процессами является NICE. Обычно она используется для расстановки приоритетов для процессов, когда на вашей системе их запущено действительно много. В этом случае ваша система узнает какие из процессов являются важными и установит для них более высокий приоритет. Проще говоря, она помогает вам расставить приоритеты процессов от более важных к менее важным. Система будет запускать процесс, который имеет меньший приоритет только в том случае, если для этого имеется достаточно ресурсов ЦПУ. Этой команде можно задать значение от -20 до 19, чем меньше значение, тем выше приоритет процесса. Стандартный приоритет для всех приложений . Основным синтаксисом будет:

  • nice -n ‘значение’ process name — Пример: nice -n 10 name. Это начнет новый процесс с выбранным приоритетом (10).
  • Если вы хотите задать значение приоритета для уже запущенного приложения используйте: renice ‘значение’ -p ‘PID’ — Пример: renice ’10’ -p ‘54125’.

ps для получения снимка процессов

Программы top и htop выводят на экран постоянно обновляемую информацию о процессах, а программа ps выводит информацию один раз на момент выполнения программы.

Программу ps удобно использовать, если нужно просто проверить, запущен ли определённый процесс, либо узнать идентификатор процесса, либо для работы с процессами в скриптах. Кстати, программа top тоже умеет выводить снимок процессов — в инструкции, на которую выше дана ссылка, написано как это сделать.

Читать еще:  Как найти файл или папку в Кали Линукс

Чтобы вывести список всех активных процессов:

В таком списке удобно искать с помощью grep:

ps -e | grep firefox

Следующая команда выведет все процессы (-e), для процессов будут показаны поля Идентификатор процесса, Идентификатор родительского процесса, потребление времени ЦПУ, потребление памяти, команда и аргументы, которой был запущен процесс (-o pid,ppid,pcpu,pmem,args), будет показано дерево процессов (—forest) и процессы будут отсортированы по использованию процессора в порядке убывания (—sort -pcpu):

Интересный пример комбинирования команд ps с watch и head — будет выведен список топ-10 процессов, потребляющих оперативную память, этот список будет обновляться каждую секунду:

Как и предыдущая команда, но для потребителей ЦПУ:

Как попасть в терминал Кали Линукс, если он уже не работает?

В случае, если графический терминал запустить невозможно, командную строку можно “поднять” в виртуальной консоли. Для входа/выхода в текстовый вариант работы с системой вы можете использовать несколько (до 6-ти) последовательных комбинаций – от CTRL+ALT+F1 до CTRL+ALT+F6 включительно. После этого система вас перенесёт в окно в текстовом режиме, где нужно будет ввести логин учётки и подтвердить к нему пароль. Выход из текстового варианта обратно в графический – обычно CTRL+ALT+F2.

КСТАТИ

Не знаю, с чего вы будете здесь начинать, но обычно новички сюда попадают, когда “уже всё плохо”. Так что сразу совет – команда pwd в терминале вам напомнит, в какой конкретной директории вы сейчас находитесь.

Директории меняются командой cd. Команда смены cd в виде:

вернёт вас в директорию, в которой вы работали до того. Родительская папка той, где вы сейчас, всегда имеет “адрес” .. (две точки), а текущая – . (одну точку). Привычный проводник для просмотра содержимого вам заменит команда

Ей тоже можно указать путь, а в пустом виде она покажет содержимое текущей папки.

Список процессов в Linux

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

  • Процесс — если говорить простыми словами, это программа и её данные, загруженные в память компьютера;
  • Дочерний процесс — процессы могут запускать другие процессы для выполнения параллельных задач или других целей такие процессы называются дочерними. Для них выделяется отдельная область в памяти;
  • Поток — поток отличается от процесса тем, что использует ту же память, данные и дескрипторы файлов, что и процесс, в котором он был создан.

1. Утилита ps

Самый простой способ посмотреть список процессов, запущенных в текущей командой оболочке, использовать команду ps без параметров:

Но вряд-ли вас интересует именно это. Чтобы посмотреть все процессы, добавьте опцию -e, а для максимально подробной информации — опцию -F:

Вот значение основных колонок в выводе утилиты:

  • UID — имя пользователя, от имени которого работает процесс;
  • PID — идентификатор пользователя;
  • PPID — идентификатор родительского процесса пользователя;
  • C — расходование ресурсов процессора, в процентах;
  • SZ — размер процесса;
  • RSS — реальный размер процесса в памяти;
  • PSR — ядро процессора, на котором выполняется процесс;
  • STIME — время, когда процесс был запущен;
  • TTY — если процесс привязан к терминалу, то здесь будет выведен его номер;
  • TIME — общее время выполнения процесса (user + system);
  • CMD — команда, которой был запущен процесс, если программа не может прочитать аргументы процесса, он будет выведен в квадратных скобках;

Чтобы посмотреть список процессов в виде дерева, и понимать какой процесс имеет какие дочерние процессы, выполните команду:

Для просмотра списка процессов с потоками используйте опцию -L:

Здесь появятся ещё две дополнительных колонки:

  • LWP — Это сокращение от LightWeight Proccess. Идентификатор потока;
  • NLWP — количество потоков у этого процесса.

Чтобы посмотреть список процессов определенного пользователя, например, sergiy используйте опцию -u:

Теперь давайте перейдём к другим, более интересным, интерактивным утилитам.

Читать еще:  Чистая установка Debian. Подробная пошаговая инструкция

2. Утилита top

Утилита top не поставляется вместе с системой, поэтому вам придется её установить. Для этого в Ubuntu выполните:

sudo apt install top

Программа позволяет интерактивно просматривать список запущенных процессов Linux. Чтобы вывести список процессов Linux выполните команду:

Колонки, которые выводит программа очень похожи на ps:

  • PID — идентификатор процесса;
  • USER — имя пользователя, от имени которого выполняется процесс;
  • PR — приоритет планировщика, установленный для процесса;
  • NI — рекомендуемый приоритет процесса. Это значение можно менять, может не совпадать с реальным приоритетом планировщика;
  • VIRT — всё, что находится в памяти, используется или зарезервировано для использования;
  • RES — всё, что находится в оперативной памяти и относится к процессу. Расшифровывается как Resident Memory Size, указывается в килобайтах;
  • SHR — часть памяти из RES, которую занимают ресурсы, доступные для использования другим процессам. Расшифровывается — Shared Memory Size.
  • S — состояние процесса: D — ожидает завершения операции, R — запущен, S — спит, T — остановлен, t — остановлен отладчиком, Z — зомби;
  • %CPU — процент использования ресурсов процессора;
  • %MEM — процент использования ресурсов оперативной памяти на основе колонки RES;
  • TIME — обще процессорное время, которое процесс использовал с момента запуска;
  • COMAND — команда, с помощью которой был запущен процесс.

Для того чтобы сделать вывод программы цветным, нажмите Z:

Чтобы вывести дерево процессов Linux нажмите сочетание клавиш Shift+V:

Для отображения потоков нажмите Shift + H:

Если вам недостаточно стандартных полей с информацией о процессах, вы можете нажать Shift + F и выбрать дополнительные поля, которые надо отображать. Для выбора или удаления поля используйте пробел:

3. Утилита htop

Это ещё более мощная утилита для просмотра запущенных процессов в Linux. Пользоваться ею намного удобнее. Здесь поддерживаются не только горячие клавиши, но и управление мышью. А ещё она выводит всё в цвете, поэтому смотреть на данные намного приятнее. Для установки программы выполните:

sudo apt install htop

Для того чтобы запустить выполните в терминале:

Колонки, которые вы увидите в выводе программы, аналогичны тем, что доступны в top, поэтому я не буду рассматривать их здесь отдельно. Для настройки выводимых данных нажмите кнопку F2, затем перейдите в раздел Display Options:

Здесь надо отметить Tree view для вывода списка процессов в виде дерева, а также снять отметки с пунктов Hide threads. для отображения потоков. Здесь есть как потоки пространства пользователя userland process threads, так и потоки пространства ядра — kernel threads. Теперь всё это будет отображаться:

Для того чтобы настроить какие колонки будут отображаться используйте пункт меню Columns:

Тут вы можете выбрать какие колонки отображать, а какие нет, а также можете настроить их порядок.

4. Программа Gnome Monitor

Вы можете смотреть запущенные процессы не только в терминале, но и в графическом интерфейсе. Для этого можно использовать утилиту Gnome Monitor. У неё намного меньше возможностей, по сравнению даже с ps, но зато у неё есть графический интерфейс. Вы можете запустить программу из главного меню системы:

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

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

5. Утилита atop

Эта программа тоже позволяет посмотреть процессы в Linux , но немного в другом ключе. Утилиту больше интересует сколько тот или иной процесс потребляет ресурсов системы. Утилита даже может показывать потребление процессами пропускной способности диска и сети, но для этого ей необходим специальный патч ядра. Для установки программы в Ubuntu выполните:

sudo apt install atop

Затем запустите её:

Вот основные колонки, которые выводит утилита и их значения:

  • PID — идентификатор процесса;
  • CID — идентификатор контейнера, используется для контейнеров Docker;
  • SYSCPU — время, потраченное процессом на выполнение в пространстве ядра;
  • USRCPU — время, потраченное процессом на выполнение в пространстве пользователя;
  • VGROW — увеличение использования памяти колонки VIRT за последний период;
  • RGROW — увеличение использования памяти колонки RSS за последний период;
  • ST — статус процесса, N — новый, E — завершенный, S и С — процесс завершен принудительно с помощью сигнала;
  • EXC — код выхода или код сигнала, которым был завершен процесс;
  • THR — общее количество потоков в этом процессе;
  • S — состояние процесса, аналогично описанному для top;
  • CPUNR — номер ядра процессора, на котором запущен основной поток процесса;
  • CPU — процент использования ресурсов процессора;
  • CMD — команда, которой была запущена программа;
  • MEM — процент использования памяти;
Читать еще:  Установка Ubuntu в VirtualBox. Подробная пошаговая инструкция

Для того чтобы включить отображение потоков процесса нажмите y:

Для просмотра информации о памяти нажмите m, если хотите вернутся обратно, нажмите g:

Команды Linux для работы с разделами

  1. lsblk . Эта команда демонстрирует, какие диски есть в вашей системе и на какие разделы они поделены. Также команда отображает имена ваших разделов и накопителей, в формате sda1, sda2 и так далее.
  2. mount . Монтирует накопители, устройства или файловые системы Linux, чтобы вы могли с ними работать. Обычно устройства подключаются автоматически, как только вы щёлкнете по ним в файловом менеджере. Но иногда может понадобиться примонтировать что-то вручную. Вы можете подключать что угодно: диски, внешние накопители, разделы и даже ISO-образы. Эту команду нужно выполнять с правами суперпользователя. Чтобы примонтировать имеющийся диск или раздел, введите mount sdX .
  3. umount . Демонтирует файловые системы. Команда umount sdX отключит файловую систему внешнего носителя, чтобы вы могли извлечь его.
  4. dd . Эта команда копирует и преобразовывает файлы и разделы. У неё множество различных применений. Например, dd if=/dev/sda of=/dev/sdb сделает точную копию раздела sda на разделе sdb. dd if=/dev/zero of=/dev/sdX затрёт содержимое указанного носителя нулями, чтобы информацию было невозможно восстановить. А dd if=

/Downloads/ubuntu.iso of=/dev/sdX bs=4M сделает загрузочный носитель из скачанного вами образа с дистрибутивом.

2. Убить процесс с помощью команды kill в Linux

Есть несколько важных правил, которые мы должны знать, прежде чем начать использовать команду kill.

  • Вы можете убить только собственные процессы, которые принадлежат вашему идентификатору пользователя
  • Вы не можете убивать процессы других пользователей
  • Вы не можете убить системные процессы (если вы не суперпользователь)
  • Пользователь root может убить процесс любого другого пользователя и любой системный процесс

Когда мы убиваем процесс с командой kill, мы на самом деле отправляем конкретный сигнал PID-регулятор, который мы хотим убить. Следующие сигналы используются командой kill:

Сигнал hung up используется редко. Чаще всего мы используем сигнал kill, и если он не работает, то мы можем использовать сигнал Terminate.

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

Например, если PID равный 6738, то мы можем использовать следующую команду:

Как работать в терминале (консоли)

Несмотря на то, что в Kali графическое окружение сделано на пять с плюсом, нам всё равно придутся довольно часто работать с командной строкой. Для этого у нас есть программа «Terminal» (хотя вы можете установить и другую программу для этих целей).

Для начала установите «MC» – это отличный файловый менеджер для командной строки.

Установить его можно командой:

apt-get install mc

Отлично, теперь давайте поговорим об особенностях работы в командной строке Linux. Для начала запоминаем следующее:

  • Регистр символов имеет значение, Folder и folder не одно и то же!
  • Графическое окружение считает папки и файлы начинающиеся с точки (пример: .folder) скрытыми файлами.
  • Если начать вводить команду и нажать Tab — компьютер допишет её если вариант один или предложит список вариантов, если таковые возможны.
  • Терминал сохраняет историю ваших команд, вы можете листать ранее набранные команды стрелками вверх и вниз.
  • Для прерывания выполнения команды можно использовать сочетание клавишь Ctrl-C, Ctrl-D и Ctrl-Z.
  • Для получения подробного мануала практически по любой программе можно использовать команду «man», например man ls покажет мануал по команде ls

Эта та информация, которая может помочь новичку в Linux, но при этом я полагаю, что Вы умеете работать в консоле Windows

Настоятельно советую почитать более подробно про работу в консоли Linux.

Собственно это всё, данной информации достаточно, чтобы начать работать с Kali linux, а остальное читайте в следующих статьях.

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector