Hack the box прохождение

Обновлено: 06.07.2024

Расписание трансляций: Вторник 18:30 (прохождение HTB тачки) Четверг 18:30 (прохождение HTB тачки) Суббота 18:30 (интервью с персоной из ИБ) Первый стрим 27 мая в 19:00 🔗Ссылка на твич Приветствую всех на канале Codeby, от лица портала я буду проходить в режиме Live уязвимые машины на.

Куда можно выкладывать свои врайтапы с HTB?

Всем привет! Недавно начал знакомство с HTB, решил одну тачку и в голову пришла мысль, что надо писать врайтапы по пройденным тачкам, как никак повторение мать ученния да и потрфолио соберется. Решил выкладывать на github, сделал репозиторий приватным, и столкнулся с проблемой, что я не могу.

Не могу пройти Web Chalage на Hack The Box

Всем привет. Уже второй день сижу с данным челенджем из раздела Web - "[30 Points] FreeLancer [by IhsanSencan]" Прошерстил все форумы, они пишут что надо читать исходники и найти где-то хэш. Но в исходниках никаких намеков не нашел. На данный момент нашел админ панель при помощи dirb. Там.

Помощь с машинкой hackthebox

Дорогие пентестеры, не могли бы вы подсказать? Существует машина netmon и к сожалению у меня с ней возникли проблемы. Я просканировал Nmap и Nessus, нашёл открытые порты, это был 80, 139 и 445. Nessus показал уязвимость в smb, я попытался использовать eternalblue и просто через smbclient, но все.

CTF CTF HTB - Beatles

Привет, а вот и первый врайтап из очень популярной CTF платформы Hackthebox, вот и пруф популярности: Уж больно понравилась эта стеганография и ровно поэтому решил ее запостить, надеюсь и Вы оцените. Скачав архив мы видим изображение и пойдем по привычному для нас пути: Stegsolve.jar.

hackTheBox и флаги в раздели машины

Наверное максимально глупый вопрос который можно было придумать в хакзебокс в разделе машины я решила одну или думаю что решила нашла нечто очень похожие на флаг но куда его вводит или надо на самой машине совершить какое либо действия или это чисто для себя?

CTF Writeup Sunday. HackTheBox.

Hello World! Writeup на машину Sunday, сегодня уходит на пенсию. ОС Solaris. Сложность Easy. Вредность зашкаливает. Очень и легкая и очень плохая машина. Легкая потому что интуитивно понятно куда идти и что делать, плохая потому что сотни людей повышают привилегии через файл sudoers и ломают.

  • n01n02h
  • Тема
  • 29.09.2018
  • hackthebox n01n02h writeup
  • Ответы: 0
  • Раздел: CTF Zone

CTF Writeup Olympus. HackTheBox.

Всем привет! Читал вчера чатик, и там какой тип предлагал писать writeup на HTB, вот я и подрезал идейку, хотя я предлагал еще полгода назад) Writeup на тачку Olympus, через несколько часов она улетает в архив) Тачка на линуксе, сложность средняя. Сканируем: n01:

  • n01n02h
  • Тема
  • 22.09.2018
  • hackthebox n01n02h writeup
  • Ответы: 0
  • Раздел: CTF Zone

Статья FwdSh3ll: Когда Reverse и Bind не смогли, Forward-Shell спешит на помощь

image

В данной статье разберем прохождение не просто машины, а целой мини-лаборатории с площадки HackTheBox.

Как сказано в описании, P.O.O. предназначен для проверки навыков на всех стадиях атак в небольшой среде Active Directory. Цель состоит в том, чтобы скомпрометировать доступный хост, повысить привилегии и, в конечном итоге, скомпрометировать весь домен, собрав при этом 5 флагов.

Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)

Организационная информация Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.

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

Intro

Данный endgame состоит из двух машин, и содержит 5 флагов.

image

Так же дается описание и адрес доступного хоста.

image

Recon flag

Данная машина имеет IP адрес 10.13.38.11, который я добавляю в /etc/hosts.
10.13.38.11 poo.htb

Первым делом сканируем открытые порты. Так как сканировать все порты nmap’ом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 500 пакетов в секунду.


image

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


image

Таким образом, мы имеем службы IIS и MSSQL. При этом мы узнаем реальное DNS имя домена и компьютера. На веб сервере нас встречает домашняя страница IIS.

image

Давайте переберем директории. Я для этого использую gobuster. В параметрах указываем количество потоков 128 (-t), URL (-u), словарь (-w) и расширения, которые нас интересуют (-x).


image


image

Мы получаем содержимое каталога. Самое интересное здесь — это каталог /dev, из которого мы в двух ветках можем посмотреть исходники и файлы db. Но мы можем первые 6 символов имени файлов и директорий, если сервис уязвим к IIS ShortName. Проверить наличие данной уязвимости можно с помощью IIS shortname Scanner.

И на ходим один текстовый файл, который начинается с «poo_co». Не зная что делать дальше, я просто выбрал из словаря директорий все слова, начинающиеся на «co».


И переберем с помощью wfuzz.


image

И находим подходящее слово! Смотрим данный файл, сохраняем учетные данные (судя по параметру DBNAME, они от MSSQL).

image

Сдаем флаг, и мы продвигаемся на 20%.

image

Huh flag

Подключаемся к MSSQL, я использую DBeaver.

image

Ничего интересного в данной базе не находим, давайте создадим Редактор SQL и проверим, какие есть пользователи.


image

У нас два пользователя. Давайте проверим свои привилегии.


image

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


image

Так мы находим еще один SQL Server. Давайте проверим выполнение команд на этом сервере с помощью openquery().


image

И мы даже можем выстраивать дерево запросов.


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


image

А теперь посмотрим в каком контексте выполняются запрос со связанного сервера на наш!


image

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


image

Как можно заметить, у нас есть все привилегии! Давайте так создадим своего админа. Но через openquery не пускают, давайте сделаем это через EXECUTE AT.


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

image

Сдаем этот флаг и идем далее.

image

BackTrack flag

Получим шелл с помощью MSSQL, я использую mssqlclient из пакета impacket.


image

Нам нужно раздобыть пароли, и первое, что мы уже встречали, — это сайт. Таким образом нам нужен конфиг веб сервера (бросить удобный шелл не получается, видимо работает firewall).

image

Но доступ запрещен. Хотя мы можем прочитать файл из MSSQL, нужно лишь знать какие языки программирования настроены. И в директории MSSQL узнаем, что есть Python.

image

Тогда прочитать файл web.config нет никаких проблем.


image

С найденными учетными данными зайдем на /admin и забираем флаг.

image

image

Foothold flag

На самом деле от использования файервола есть некоторые неудобства, но просматривая настройки сети, замечаем, что также используется прокол IPv6!

image

Добавим данный адрес в /etc/hosts.
dead:babe::1001 poo6.htb
Давайте снова просканируем хост, но уже по протоколу IPv6.

image

И по IPv6 доступна служба WinRM. Подключимся с найденными учетными данными.

image

На рабочем столе есть флаг, сдаем его.

image

P00ned flag

Проведя разведку на хосте с помощью winpeas ничего особенного не находим. Тогда было принято решение снова искать учетные данные (на эту тему я тоже писал статью). Но получить все SPN из системы через WinRM у меня не вышло.


image

Давайте выполним команду через MSSQL.

image

Указанным способом мы получаем SPN пользователей p00_hr и p00_adm, а это означает, что они уязвим к такой атаке, как Kerberoasting. Если вкратце, то мы можем получить хеши их паролей.

Для начала нужно получить стабильный шелл от имени пользователя MSSQL. Но так как нас ограничивают в доступе, то мы имеем связь с хостом только через 80 и 1433 порт. Но есть возможность туннелирования трафика через 80 порт! Для этого воспользуемся следующим приложением. Загрузим файл tunnel.aspx в домашнюю директорию веб сервера — C:\inetpub\wwwroot\.

image

image

И теперь при обращении к tunnel.aspx получаем ответ, что все готово к работе.

image

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


image

И используем proxychains, чтобы слать трафик любого приложения через наш прокси. Добавим данный прокси в файл конфигурации /etc/proxychains.conf.

image

Теперь загрузим на сервер программу netcat, с помощью которой сделаем стабильный bind шелл, и скрипт Invoke-Kerberoast, c помощью которого выполним атаку Kerberoasting.

image

Теперь через MSSQL запускаем листенер.


image

И подключаемся через наш прокси.


image

И давайте получим хеши.


image

Далее нужно перебрать эти хеши. Так как в rockyou словаре данных паролей не было, то я использовал ВСЕ словари passwords, предоставленные в Seclists. Для перебора используем hashcat.


И находим оба пароля, первый в словаре dutch_passwordlist.txt, а второй в Keyboard-Combinations.txt.

image

image

И так у нас есть три пользователя, идем на контроллер домена. Сначала узнаем его адрес.

image

Отлично, мы узнали IP адрес контроллера домена. Давайте узнаем всех пользователей домена, а также кто из них является администратором. Для загрузим скрипт для получения информации PowerView.ps1. Потом подключимся с помощью evil-winrm, указав в параметре -s директорию со скриптом. А потом просто загрузим скрипт PowerView.

image

Теперь нам доступны все его функции. Пользователь p00_adm похож на привилегированного, поэтому будем работать в его контексте. Создадим объект PSCredential для этого пользователя.


Теперь все команды Powershell, где мы укажем Creds, будут выполнены от имени p00_adm. Давайте выведем список пользователей и атрибут AdminCount.


image

И так, наш пользователь реально является привилегированным. Давайте глянем, в каких группах он состоит.


image

Окончательно утверждаемся, что пользователь является администратором домена. Это дает ему право удаленного входа на контроллер домена. Давайте попробуем войти через WinRM, используя наш туннель. Меня смутили ошибки, выдаваемые reGeorg’ом при использовании evil-winrm.

image

Тогда воспользуемся другим, более легким, скриптом для подключения к WinRM. Откроем и поменяем параметры для подключения.

image

Пробуем подключиться, и мы в системе.

image

Но флага нет. Тогда посмотри пользователе и проверим рабочие столы.

image

У mr3ks находим флаг и лаборатория пройдена на 100%.

image

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

Вы можете присоединиться к нам в Telegram. Там можно будет найти интересные материалы, слитые курсы, а также ПО. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.

image

Данной статьей я начну публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье разберемся с легенькой JavaScript обфускацией, загрузим бэкдор через репозиторий Git, и отладим 32- приложение.

Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)

Организационная информация

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

  • PWN;
  • криптография (Crypto);
  • cетевые технологии (Network);
  • реверс (Reverse Engineering);
  • стеганография (Stegano);
  • поиск и эксплуатация WEB-уязвимостей.

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

Разведка

Сканирование портов

Данная машиина имеет IP адрес 10.10.10.114, который я добавляю в /etc/hosts.
10.10.10.114 bitlab.htb
Первым делом сканируем открытые порты. Так как сканировать все порты nmap’ом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 1000 пакетов в секунду.
masscan -e tun0 -p1-65535,U:1-65535 10.10.10.114 --rate=1000

image

Далее нужно собрать больше информации об известных нам портах.
nmap -A bitlab.htb -p22,80

image

Как следует из отчета nmap на хосте работает SSH и веб-сервер. Причем на веб-сервере имеется robots.txt. Пройдя по директориям из этого списка, отмечаем, что работает gitlab и имеется непроиндексированная дирректория help.

image

Переходя на страницу bookmarks имеем несколько ссылок.

image

Все указывают на сайт того или иного продукта, кроме последней, которая содержит не адрес, а JS код.

image

При чем данный код обфусцирован.

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

image

Немного доработав код, получим выполнение следующих инструкций.

С этими аутентификационными данными авторизуемся в gitlab. Там находим два профиля.

image

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

image

Проверив Profile ничего интересного не находим.

image

В Deployer только php код.

image

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

Entry Рoint

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

Для того открываем Profile и создаем новый файл.

image

И после добавления наш файл появится в репозитории.

image

Теперь тестируем бэкдор.

image

Теперь получим полноценный шелл.

image

И видим обратное подключение к своему хосту.

image

Попав на хост, обязательно необходимо проверить данные, приобретенные ранее. Это данные для доступа к базе данных.

Открываев интерпретатор PHP в интерактивном режиме. Используем найденный код и просматриваем найденные данные. Пароль пользователя в base64, декодируем его.

image

Так мы узнаем пароль, которым видимо сможем подключиться по SSH. Но этого не вышло, так как base64 и есть пароль)).

image

Осматриваясь на машине, находим в домашней дирректории пользователя exe файл.

image

Скопируем его себе на хост для анализа.

Далее открываем файл в IDA Pro. Пролистав главную функцию main, можно найти сравнение переменной с именем пользователя и создание процесса с putty — программа для сетевых соединений.

image

Можно предположить, что соединение происходит с предоставлением аутентификационных данных, и их нам нужно найти. Данные соединения будут передаваться putty в качестве параметра, т.е. переменной v3.

Можно посмотреть готовую строку при отладке, но в IDA 32-х битный файл крашится. Пошагово отладив, понимаем, что это происходит после вызова GetUserNameW. Поступаем следующим образом.

Ставим BP на фрагменте сравнения имени.

image

Теперь ставим BP перед загрузкой параметров для функции GetUserNameW.

image

Запустим программу в отладчике. Отладка остановится перед вызовом нужной нам функции.

image

Теперь патчим код. Вместо загрузки параметров и вызова функции нужно поставить инструкцию NOP. Я для этого использую плагин Keypatch.

Теперь код выглядит так.

image

Продолжим отладку программы, чтобы она остановилась на сравнении имени. В этот момент адрес строки параметра уже будет загружен в регистр EAX для передачи в качестве параметра ShellExecuteW.

image

Теперь нажмем на стрелочку(jump in disassembly) рядом с регистром EAX. Это поволит перейти по адресу из EAX в главном окне IDA.

image

По данному адресу расположена строка параметра. Как можно видить она содержит симантически правильный текст “-ssh root… “. Но каждый символ представлен 2-я байтами. Чтобы удобно собрать строку нажмем Alt+A.

image

И в данном окне выбираем Unicode C-Style (16 bit). После чего наблюдаем корректно собранную строку.

image

В данной строке имеется пароль рута. Подключаемся по ssh и забираем токен.

image

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

Всем привет. Это вторая часть руководства по Hack The Box. В ней мы проанализируем несколько машин из HTB, проверим ваши знания командной строки lInux и изучим несколько утилит для сканирования.

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

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

Получение справки к каждой команде.
Чтобы создать данный курс, я установил Kali Linux на виртуальную машину: Настраиваем Kali linux + VirtualBox

Получить справку можно двумя способами:

  • мan [команда]

1.jpg

С помощью man нам выводится подробнейшая документация на русском языке, которую мы можем изучить:

2.jpg

3.jpg

Здесь выводится краткая справка на английском:

4.jpg

У всех популярных команд есть официальный сайт с документацией. Официальная документация команды, которую мы сейчас рассматриваем находится по адресу: Справочное руководство Nmap (Man Page) | . Получив документацию, мы разберем команды, которые использовались в видеороликах.

5.jpg

У Nmap используется такой синтаксис:

1) -sC
В документации написано -script=default, что значит - запускать скрипт по умолчанию.
2) -sV
Исследовать открытые порты для определения информации о службе/версии.
3) -oA <базовове_имя_файла>
Сохраняет вывод Nmap в 3 файла с расширениями .nmap, .gnmap, .xml.
4) Nmap/Sunday
Место сохранения вывода. Папка/название файла
5) 10.10.10.76
Цель сканирования, IP адрес машины HTB.

И еще была команда с такой опцией:

6.jpg

1) -vvv
Максимум verbosity, так найденные порты будут показаны по ходу сканирования а не после завершения.
Эти опции вам придется использовать довольно часто, поэтому постарайтесь их запомнить.

Анализ вывода утилиты Nmap
Сейчас мы рассмотрим выводы Nmap у IppSec, а потом сами проведем сканирование.

Первый результат вывода.

7.jpg

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

Второй результат вывода.

Подключение к VPN
1) Скачиваем файл конфигурации OpenVPN

9.jpg

2) Установка файла конфигурации (Kali Linux)
Для начала мы переходим в директорию, в которую скачали файл. И используем команду: openvpn [Вай ник].ovpn.

10.jpg

Никнейм замазан, чтобы мой аккаунт не забанили на HTB за нарушение правил. Не закрывая это окно, открываем новый терминал и начинаем сканирование. Перед этим выберем машину, среди рабочих я выбрал любую, которая стоит на Linux.

11.jpg

Самое простое, что можно сделать – это запустить Nmap без опций.
Nmap 10.10.10.150
Результат:

12.jpg

nmap -sC -sV -oA [папка/название файла] 10.10.10.150

13.jpg

Мы сразу видим вывод, но он сохранился и в нашу папку. Это удобно, когда мы работаем с большими файлами, поскольку в редакторе можно легко проводить поиск нужной вам информации. Посмотреть записанный вывод можно командой:
Less [имя файла].nmap

Теперь разберем вывод:

14.jpg

1) Открытый SSH порт.
Здесь используется 22 порт, который обычно стоит по умолчанию. Есть вероятность того, что SSH настроен с ошибками, и тогда мы сможем легко получить доступ, хотя такое бывает редко.

3) Информация о версии ОС.
Информация о версии ОС будет очень полезна для поиска эксплоита, чтобы получить Root доступ. Поиск и работу с эксплоитами мы разберем позже.

Узнаем версию Joomla
Введя в поиск «Определение версии Joomla», мне сразу же высветились множества сайтов. Вот один из них: Как узнать, определить версию Joomla на чужом сайте?

Прочитав, можно понять, что нам надо перейти: domain_name/language/en-GB/en-GB.xml.

Переходим по ссылке, и видим версию Joomla:

15.jpg

Тут еще хранится email админа, но в этой машине он нам не понадобится.

Результат выглядит примерно так:

16.jpg

Помочь собрать нам побольше информации поможет нам Nikto. На портале Codeby есть статья на эту тему: ХА. НАШЕЛ УЯЗВИМОСТЬ. - Или использование Nikto. Используя команду: nikto -host адрес утилита проведет комплексную проверку на интересные файлы и ошибки. Используя ее, готовьтесь ждать от 15 минут. Вот результат вывода моей программы:

17.jpg

  • Какими двумя способами можно получить справку в командной строке linux?
  • Какие опции в основном используются в Nmap?
  • Какой порт использует SSH по умолчанию?
  • Что делает утилита Nikto?
  • Что такое SSH?*
  • На каких сайтах есть эксплоиты и их описание?*
  • Что такое XSS атака и какие разновидности бывают?*

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

Читайте также: