Metasploit для пентестера - Сессии

  • Автор темы Admin

Admin

#1
Администратор
Регистрация
31.12.2019
Сообщения
6,977
Реакции
34
В этой серии статей мы сосредоточимся на различных механизмах Metasploit Framework, которые могут использоваться пентестерами. Сегодня мы узнаем о команде session для Metasploit Framework. Команда Sessions помогает нам взаимодействовать и манипулировать различными сеансами, созданными с помощью эксплойтов во время взлома. Команда Sessions обычно используется только для входа в сеанс, но она конечно гораздо более полезна.

Введение

Команда Sessions может запускать одну команду в нескольких сеансах, а также, помимо прочего, обновлять обычную оболочку до уровня meterpreter. Перед тем, как начать с этой команды, есть определенные предварительные условия. Поскольку команды sessions используются для управления несколькими сессиями внутри Metasploit Framework, нам нужно будет сгенерировать эти несколько сеансов. Мы взломали некоторые машины для создания необходимых сеансов. Вы можете использовать эту статью, чтобы понять, как получить сеанс с помощью Metasploit.

После того, как вы получили сессию жертвы, вы можете выполнять множество операций в системе жертвы для получения важной информации. Используя опцию help, мы можем проверить список опций, которые мы можем использовать с командой sessions.

sessions -h

a9a3455f71d5286e036b7.png


Список сессий

При работе с несколькими сеансами в Metasploit вам может потребоваться наблюдать за различными сеансами, которые вы создали. Некоторые эксплойты генерируют несколько сеансов. Некоторые полезные данные при работе с повышением привилегий будут генерировать сеанс. Кроме того, если вы хотите использовать какой-либо модуль пост-эксплуатации в Metasploit, вам потребуется перечислить все полученные вами сеансы. Это можно сделать, просто набрав sessions без каких-либо параметров или опций. На изображении, представленном ниже, можно увидеть, что есть два сеанса, сгенерированные с идентификаторами 2 и 3 соответственно. Сеанс 2 - это сеанс, созданный на компьютере с Windows 7, а сеанс 3 - на компьютере с Windows 10. Обе машины имеют сеанс для пользователя raj, а IP-адреса машин - 192.168.1.16 для Windows 7 и 192.168.1.41 для Windows 10. Мы также можем видеть, что оба сеанса были сгенерированы с использованием одного и того же эксплойта, то есть meterpreter x86/windows.

sessions

3b7eebf561ba66b9fd112.png


Параллельные команды оболочки

Также у нас есть опция -c, которую можно использовать с командой sessions. Её можно использовать в сценариях, когда вы хотите запустить определенную команду оболочки одновременно в нескольких сеансах. Следует иметь в виду, что все сеансы должны относиться к одной и той же операционной системе, поскольку мы говорим о командах оболочки. Поскольку в обоих сеансах используется операционная система Windows, мы можем запустить команду net user в обоих сеансах одновременно, как показано на изображении ниже.

sessions -c "net user" -i 2,3

cfd2175e174708db4159d.png


Подробные сведения о сеансах

Во время оценки пентеста наступает момент, когда нам нужно получить общий отчет о сеансе, который мы получили. Здесь мы можем использовать подробный параметр команды sessions. Будет выведена подробная информация обо всех активных сессиях. Информация включает в себя имя сеанса (если есть), тип сеанса, операционную систему, пользователя, домен, используемый туннель, эксплойт, состояние и тип шифрования, UUID, проверку и статус регистрации.

sessions -v

55476bc6b49d0639473d0.png


Именование сессий

Из многословных деталей, которые иногда могут ошеломить, давайте попробуем что-нибудь, что можно использовать, чтобы идентифицировать и отличать наши сеансы друг от друга. Можно указать имя для каждого сеанса, который вы получаете. Это может быть что угодно, от имени машины или что угодно, что может помочь вам идентифицировать полученный сеанс. Все, что требуется для присвоения имени сеансу, - это команда sessions, за которой следует параметр -n с именем, которое вы хотите применить к сеансу, и идентификатором сеанса для этого конкретного сеанса. В нашей демонстрации ниже мы видим, что мы назвали сессию 2 как Raj, а сессию 3 как Pavan.

sessions -n Raj -i 2
sessions -n Pavan -i 3
sessions

1cf90acf3a9f40ba0d3a2.png


Список активных сеансов

Если вы хотите получить список всех сеансов, которые вы могли получить, вы можете использовать параметр -l, чтобы перечислить все активные сеансы. Сеансы, которые больше не активны, не будут включены в этот список. Есть два способа получить список сеансов. Один из них - использование опции -l или вы можете просто ввести sessions, как было показано ранее.

sessions -l

57666ae721147bbc1ff65.png


Взаимодействие с сеансами

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

Большинство эксплойтов внутри Metasploit имеют тенденцию перемещать пользователя непосредственно в сеанс, как только он его получает. Однако есть вероятность, что кто-то может выйти из сеанса, а затем захотеть вернуться в него или перейти от одного сеанса к другому. В обоих сценариях может пригодиться опция -i. Находясь в оболочке Metasploit, вы можете использовать sessions -i, за которым следует идентификатор сеанса, чтобы войти в сеанс, как показано ниже.

sessions -i 2

59c5a6fe73e70a23cc98e.png



Синтаксис, который мы обсуждали прямо сейчас - не единственный способ войти в сеанс. Использование -i для взаимодействия с сеансами кажется логичным, но это можно сделать, просто набрав сеансы, за которыми следует идентификатор сеанса, как показано ниже.

sessions 2

e937c3a3a868e3b894147.png


Хотя этот раздел может показаться общеизвестным, но в обоих наших примерах мы запускали команду sessions из оболочки Metasploit. Но также можно использовать команду sessions из оболочки meterpreter. При переходе в оболочку meterpreter вы почувствуете необходимость перейти в другой сеанс, тогда вам не нужно переводить текущий сеанс в фоновый режим, вы можете просто запустить команду sessions прямо из оболочки meterpreter, как мы продемонстрировали ниже.

sessions 2
systeminfo
sessions 3
systeminfo

da8203133d746e5f2e7dd.png


Параллельные команды Meterpreter

Этот вариант не следует путать с тем, который мы обсуждали ранее. Это -C (заглавная C). Отличие от предыдущего в том, что вы можете использовать её для запуска команд meterpreter во время различных сеансов. Здесь можно использовать все команды, поддерживаемые оболочкой meterpreter, но единственным ограничением является то, что они должны быть связаны с сеансами. Такая команда как screenshot является кроссплатформенной и может выполняться в нескольких сеансах, как мы продемонстрировали ниже. Идентификаторы сеансов должны знать, на какие сеансы следует ориентироваться.

sessions -C screenshot -i 2,3

00630ec12e70197cc121e.png


Из предыдущего изображения мы видим, что сделанные снимки экрана сохраняются внутри корневого каталога с особыми именами. Две сессии принадлежали системам Windows 7 и Windows 10, у которых, казалось, были обои, говорящие сами за себя.

c1e4e8c1878b56732c7f6.png


Тихий режим

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

sessions -q -i 2

8028b5582cb54fb13d59a.png


Убийство определенного сеанса

Могут быть разные причины, если кто-то хочет убить или прервать конкретную сессию. Мы все, должно быть, были в сценарии, когда у нас в руках есть оболочка, с которой трудно взаимодействовать, или она вообще не работает. Вы можете просто завершить сеанс, используя параметр -k и идентификатор сеанса, чтобы направить его, как показано ниже.

sessions
session -k 4
sessions

f1da9bae0af2f3e8bbf3e.png


Подробная информация о расширенном сеансе

Мы вошли в дополнительную информацию о сеансе, используя опцию verbose. Но если вы пентесте, который имеет дело со значительным количеством сеансов, то наличие информации о шифровании и другой информации в виде подробных команд может быть трудным для чтения и понимания. Здесь пригодится опция -x, поскольку она добавляет эту информацию в таблицу сеанса, как показано ниже.

sessions -x

3d0a0a25dfa55c703e3c1.png


Убиваем все сеансы

Мы убили конкретный сеанс с помощью -k (нижний регистр k), но в случае, если вы находитесь в ситуации, когда вы запуганы длинным списком сеансов, поскольку некоторые эксплойты могут генерировать много сеансов одновременно. Здесь параметр -K вступает в игру. Вы можете использовать его для завершения всех сеансов в вашей коллекции, как показано.

sessions -K

6575ae43e4af3457e5648.png


Обновление шелла до Meterpreter

Самое важное откладываем на последнее. При выполнении пентеста можно использовать ситуацию, когда используемый эксплойт дает вам обратную оболочку, чем оболочку meterpreter. Хотя обратная оболочка имеет свои применения, оболочка meterpreter может помочь вам с легкостью выполнять многие действия. Она включает в себя переадресацию портов, загрузку файлов с целевой машины и загрузку файлов на целевую машину и многое другое. Следовательно, используя параметр -u, вам не нужно запускать оболочку после эксплуатации для использования meterpreter. В демонстрации ниже мы с легкостью преобразовали оболочку SSH в meterpreter.

sessions
session -u 1
sessions

b1668f0a9ab41a9e2c56f.png


Заключение

Metasploit - один из старейших фреймворков в этой области. Он был разработан таким образом, чтобы облегчить работу пентестеров, чтобы они могли больше сосредоточиться на атаке. Даже после того, как я проработал с ним в течение многих лет, он все еще удивляет меня некоторыми скрытыми возможностями, о которых я не знал. Я продолжу это путешествие и узнаю больше о легендарной платформе Metasploit Framework и сразу сообщу Вам!
 

Members, viewing this thread

Сейчас на форуме нет ни одного пользователя.