Искать
Вы превысили запрос на
0 знаков

10. Поиск хостов с помощью CrackMapExec

0
0
Не пройден
Автор статьи никого не призывает к правонарушениям и отказывается нести ответственность за ваши действия. Вся информация предоставлена исключительно в ознакомительных целях. Все действия происходят на виртуальных машинах и внутри локальной сети автора. Спасибо!
Изучаемые инструменты

- CrackMapExec

Кратко

- CrackMapExec - известный инструмент для тестирования сетей под управлением Active Directory.

- Инструмент CrackMapExec считается "швейцарским" ножом для тестирования инфраструктуры, построенной на основе Active Directory.

- CrackMapExec имеет огромные возможности, включая перечисление пользователей и выполнение атак в стиле psexec.

- Инструмент использует многопоточность и собственные вызовы WinAPI для работы с сеансами и дампом хэшей из SAM.

- CrackMapExec активно использует библиотеку скриптов Impacket и набор инструментов PowerSploit для работы с сетевыми протоколами.

- CrackMapExec имеет собственную базу данных, в которой хранятся найденные учетные данные.

- Инструмент полезен как для атакующих, так и для защищающихся команд.

Введение

Начнем с самого простого и известного инструмента для тестирования сетей под управлением Active Directory - CrackMapExec. С ним мы встретимся ещё неоднократно и с каждым разом будем погружаться в него все глубже.

Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

Поиск доступных хостов при помощи CrackMapExec

Для чего инструмент CrackMapExec

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

Инструмент CrackMapExec считается "швейцарским" ножом для тестирования на проникновение инфраструктуры, построенной на основе Active Directory. Список возможностей огромный: от перечисления пользователей до выполнения атак в стиле psexec, дампа NTDS.dit и многого другого.

Инструмент CrackMapExec использует многопоточность и только собственные вызовы WinAPI для работы с сеансами, дампа хэшей из SAM и так далее. Он активно использует библиотеку скриптов Impacket (с ним встретимся далее еще много раз) и набор инструментов PowerSploit для работы с сетевыми протоколами.

Кроме того, CrackMapExec имеет собственную базу данных, в которой хранятся найденные учетные данные.

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

Базовые параметры CrackMapExec и нотация CIDR

ПРИМЕР
 
crackmapexec --help
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

В GOAD развернуты пять виртуальных машин, все они находятся в одной подсети 192.168.56.0/24:

  • 192.168.56.10 sevenkingdoms.local
  • 192.168.56.11 north.sevenkingdoms.local
  • 192.168.56.12 essos.local
  • 192.168.56.22 castelblack.north.sevenkingdoms.local
  • 192.168.56.23 braavos.essos.local

Перейдем к инструменту CrackMapExec. Каждый протокол поддерживает нотацию CIDR, например:

ПРИМЕР
 
crackmapexec <protocol> essos.local
 
ПРИМЕР
 
crackmapexec <protocol> 192.168.56.12 192.168.56.22
 
ПРИМЕР
 
crackmapexec <protocol> 192.168.56.0/24
 
ПРИМЕР
 
crackmapexec <protocol> 192.168.56.0-23
 
ПРИМЕР
 
crackmapexec <protocol> ~/list_targets.txt
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

Введем команду crackmapexec --help и узнаем, какие протоколы нам доступны:

Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

Использование учетных данных в CrackMapExec

Каждый протокол поддерживает использование учетных данных в той или иной мере. Более подробно нужно смотреть в Wiki. По мере углубления в материал будем знакомиться с другими способами использования учетных данных. Чаще всего, чтобы использовать учетные данные в CrackMapExec, используется следующая команда:

ПРИМЕР
 
crackmapexec <protocol> <target(s)> -u username -p password
 

После ключа -u указывается имя пользователя, а после -p пишется пароль. Например, у нас есть учетная записи khal.drogo, принадлежащая домену essos.local. Проверим, что у нас на руках правильные учетные данные для пользователя khal.drogo.

ПРИМЕР
 
crackmapexec smb 192.168.56.12 -u 'khal.drogo' -p 'horse'
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

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

Может быть ситуация, что учетные данные начинаются с тире (-), что может вызвать ошибку.

Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

Чтобы исправить эту ошибку, достаточно использовать длинный формат аргументов:

ПРИМЕР
 
crackmapexec smb 192.168.56.12 -u='-khal.drogo' -p='-horse'
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.
Примечание

Пользователя -khal.drogo не существует, поэтому ошибка STATUS_LOGON_FAILURE

Использование учетных данных из базы данных cmedb

Как мы говорили ранее, найденные учетные данные (введенные в CrackMapExec) сохраняются в его базе данных, содержимое которой можно посмотреть следующей командой:

ПРИМЕР
 
cmedb
 

В cmedb вводим команду creds:

Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

Если мы не хотим вводить учетные данные пользователя khal.drogo и хотим их использовать, то достаточно применить ключ -id:

ПРИМЕР
 
crackmapexec smb 192.168.56.12 -id 1
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

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

Сканирование подсети при помощи CrackMapExec

Для нас будет удобно просканировать следующим образом:

ПРИМЕР
 
crackmapexec smb 192.168.56.0-23
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

Эта простая команда возвращает много полезной информации. Давайте разбираться. Во-первых, мы видим три домена:

  • essos.local (2 IP-адреса):
    • BRAAVOS (Windows Server 2016) (подпись SMB пакетов выключена, SMBv1 включена)
    • MEEREEN (Windows Server 2019) (подпись SMB пакетов включена, SMBv1 включена)
  • sevenkingdoms.local (1 IP-адрес):
    • KINGSLANDING (Windows Server 2019) (подпись SMB пакетов включена, SMBv1 выключена)
  • north.sevenkingdoms.local (2 IP-адреса):
    • CASTELBLACK (windows server 2019) (подпись SMB пакетов выключена, SMBv1 выключена)
    • WINTERFELL (windows server 2019) (подпись SMB пакетов включена, SMBv1 выключена)

Мы нашли три домена, значит существует три контролера домена (DC), которые нам предстоит найти. По умолчанию у DC подпись SMB включена, поэтому можно предположить: 192.168.56.10, 192.168.56.11 и 192.168.56.12 - IP-адреса контролеров домена. Убедимся в этом далее еще раз.

Тест

Две секундочки...
@codebra_official
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Впервые на сайте Codebra?

Извините за это всплывающее окно, меня они тоже раздражают.

Образовательный ресурс codebra.ru полностью посвящен программированию и компьютерной безопасности. Все курсы и уроки находятся на главной странице. Ради интереса можете посмотреть на содержимое курсов по Пентесту Active Directory, Python, HTML и CSS, JavaScript, C++ и другие, размещенные на главной странице.

Если что-то не нашли, то воспользуйтесь поиском по сайту, который находится на главной странице в самом верху.

Удачи в обучении!

Закрыть окно