Hack the Sick OS 1.1 CTF Challenge

Тема в разделе "Этичный хакинг и тестирование на проникновение", создана пользователем Vander, 26 окт 2016.

Наш партнер Genesis Hackspace
  1. Vander

    Vander Модератор
    Команда форума Grey Team

    Регистрация:
    16 янв 2016
    Сообщения:
    499
    Симпатии:
    796
    Всем привет. В этой публикации я продемонстрирую взлом уязвимой машины Sick OS (ссылка на скачивание в конце) статьи в рамках соревнований CTF, кто не в курсе, о чем речь - https://codeby.net/forum/threads/ctf-vzlom-mr-robot-vm.57930/ тут подробное описание. От себя хочу добавить, что это ОС довольно увлекательна, т.к. поддалась далеко не сразу, и неплохо размяла мозги. Итак, Sick OS 1.1. в роли атакующей ОС Kali Linux 2016.2, приступим:

    Hack the Sick OS 1.1 CTF Challenge

    Для начала я использовал arp-scan (ARP-scan – Это, очень быстрый сканер устройств в локальной сети, использующий протокол ARP) для обнаружения Sick OS в моей сети:

    > arp-scan –l (Почему именно l – можно узнать запустив сканер с флагом -- help)

    Hack the Sick OS 1.1 CTF Challenge

    Затем nmap для обнаружения открытых портов и дополнительной информации:

    > nmap –sV 172.XX.X.XXX

    Hack the Sick OS 1.1 CTF Challenge

    На этом скриншоте видим, что на системе поднят http-proxy сервер с помощью Squid.

    Собственно Squid – это программное обеспечение с открытой лицензией GNU GPL, позволит организовать прокси-сервер для протоколов HTTP, FPT, HTTPS. Так же он может работать на большинстве операционных систем (UNIX, Windows). Функционал позволяет обрабатывать и кэшировать HTTP, FTP, SSL и WAIS запросы, а так же DNS. Наиболее частые запросы хранит в оперативной памяти. Применение прокси-сервера дает возможность использовать фиктивные IP-адреса во внутренней сети, увеличит скорость обработки запроса при повторном обращении (кэширование), и обеспечивает дополнительную безопасность.

    Схематически Squid можно представить так:

    Hack the Sick OS 1.1 CTF Challenge

    Теперь, основываясь на результатах, можно поискать какой-нибудь инструмент против Squid в Metasploit Framework.

    > msfconsole

    > search squid

    Hack the Sick OS 1.1 CTF Challenge

    Выбор невелик, будем использовать auxiliary/scanner/http/squid_pivot_scanning.

    Объясню почему, неверно настроенный Squid proxy может позволить злоумышленнику выполнять запросы от его имени. Это позволит получить информацию об устройствах, к которым имеет доступ сам сервер. Например, если прокси-сервер подключен к интернету, то атакующий может сделать запрос на внутренние адреса сервера, заставив запустить сервер сканирование внутренних портов. Сообщения об ошибках возвращаемых сервером позволит определить, закрыт порт или нет. Конечно, многие Squid используют пользовательские коды ошибок, поэтому результат может варьироваться.

    Запустим сканер и посмотрим его настройки.

    Hack the Sick OS 1.1 CTF Challenge

    Для начала настроим сканер, затем запустим его:

    > set RANGE 172.16.0.XXX

    > set RHOSTS 172.16.0.XXX

    > set RPORT 3128

    > set THREADS 200

    > run

    Hack the Sick OS 1.1 CTF Challenge

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

    Hack the Sick OS 1.1 CTF Challenge

    Внутренний порт Squid 80 – открыт, используя надстройку в Firefox - FoxyProxy и настроив ее, как показано на скриншоте:

    Hack the Sick OS 1.1 CTF Challenge

    Можем обратиться к серверу в адресной строке – 172.16.0.XXX

    Hack the Sick OS 1.1 CTF Challenge

    С помощью веб-сканера nikto попробуем раздобыть больше информации о веб-сервере.

    > nikto -h localhost -useproxy http://172.XX.X.XXX:3128

    Hack the Sick OS 1.1 CTF Challenge

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

    Hack the Sick OS 1.1 CTF Challenge

    Отлично, есть папка wolfcms, зайдем и осмотримся. Серфинг по страницам показывает все время один и тот же префикс к файлам - ?

    Hack the Sick OS 1.1 CTF Challenge

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

    Hack the Sick OS 1.1 CTF Challenge

    Тут я просто по случайности испробовал любимую связку логина и пароля admin/admin и зашел под администратором :)

    Далее меня заинтересовала возможность загрузить и затем исполнить какой-нибудь реверс-шелл файл. Выбор пал на скачанный с http://pentestmonkey.net/tools/web-shells/ php-reverse-shell. Перед загрузкой его на сервер необходимо внести некоторые коррективы, это порт и IP адрес. В папке куда распаковали, пишем:

    > nano php-reverse-shell.php

    Находим указанные строки и корректируем их так, только указав свои данные.

    Hack the Sick OS 1.1 CTF Challenge

    Сохраним изменения и закроем. Теперь можно загрузить его на сервер.

    Hack the Sick OS 1.1 CTF Challenge

    Подготовим свою машину к соединению, используем netcat – это предустановленная в Линукс утилита, которая позволяет устанавливать TCP и UDP соединения и обмениваться данными. Вводим в командной строке:

    > nc –l –p 4444

    Если все сделано, верно, то обратившись на сервер по адресу:

    Hack the Sick OS 1.1 CTF Challenge

    Увидим следующую картину:

    Hack the Sick OS 1.1 CTF Challenge

    Изрядно побродив по серверу, я наткнулся на файл config.php в директории /var/www/wolfcms/. Открываем его просмотр:

    > cap config.php

    Здесь поджидает удача, и возможно мы находим логин и пароль от root пользователя.

    Hack the Sick OS 1.1 CTF Challenge

    Теперь можно вспомнить про SHH доступ, т.к. порт 22 открыт. Но сначала можно заглянуть в etc/passwd, это файл, содержащий в текстовом формате список пользовательских аккаунтов.

    > cat /etc/passwd

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

    Hack the Sick OS 1.1 CTF Challenge

    Пришло время использовать SSH, сразу скажу, что к root найденный пароль не подошел…

    Но спустя несколько попыток, я успешно залогинился в системе под учетной записью sickos.

    Hack the Sick OS 1.1 CTF Challenge

    Теперь можно попробовать стать root:

    > id (покажет сводную информацию о пользователе)

    > sudo –I (быстрый путь получения root, т.к. мы находимся в группе sudo)

    > whoami (стали root)

    Hack the Sick OS 1.1 CTF Challenge

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

    Hack the Sick OS 1.1 CTF Challenge

    На этом прохождениe Sick OS 1.1. можно считать успешно законченным. Спасибо за внимание. Вопросы, как обычно, жду в комментариях.
    Ссылка на скачивание Sick OS 1.1. - https://www.vulnhub.com/entry/sickos-11,132/
     
    #1 Vander, 26 окт 2016
    Последнее редактирование: 28 окт 2016
    LiJagger, gx6060, kuklofon и 2 другим нравится это.
  2. MAdDog719

    MAdDog719 Well-Known Member
    Grey Team

    Регистрация:
    16 авг 2016
    Сообщения:
    110
    Симпатии:
    26
    Спасибо. Как всегда интересно. По больше бы таких кейсов взлома.
     
  3. d7uk4r3v

    d7uk4r3v Kali Linux
    Grey Team

    Регистрация:
    22 апр 2016
    Сообщения:
    44
    Симпатии:
    9
    Как всегда на высоте, благодарствую!!!
     
  4. kuklofon

    kuklofon ARCH IS NOT A SHKOLOLO
    Команда форума Grey Team

    Регистрация:
    28 фев 2016
    Сообщения:
    359
    Симпатии:
    221
    как всегда, отличная статья ! Добавь ссылку на скачивание виртуалки.
     
    Игорь Четвертаков и Vander нравится это.
  5. Vander

    Vander Модератор
    Команда форума Grey Team

    Регистрация:
    16 янв 2016
    Сообщения:
    499
    Симпатии:
    796
    О, точно, забыл про нее...:)
     
  6. Inject0r

    Inject0r Well-Known Member

    Регистрация:
    3 сен 2016
    Сообщения:
    45
    Симпатии:
    19
    Замечательно) Только можно провести ликбез почему при обращении к машине без прокси 80 порт не работает, а через прокси работает?
     
  7. Vander

    Vander Модератор
    Команда форума Grey Team

    Регистрация:
    16 янв 2016
    Сообщения:
    499
    Симпатии:
    796
    Мы подключается к прокси с помощью браузера и передаем на него запрос на получения инфы о ресурсе в сети, в нашем случае это веб страница. После этого прокси подключается к нужному серверу в сети и возвращает нам ответ на наш запрос. Не подключившись к прокси мы не получим информации о ресурсах которые он хранит за собой, так сказать.
     
  8. Inject0r

    Inject0r Well-Known Member

    Регистрация:
    3 сен 2016
    Сообщения:
    45
    Симпатии:
    19
    То есть мы можем установить apache и сделать так, чтобы он был доступен только через squid?
     
  9. Vander

    Vander Модератор
    Команда форума Grey Team

    Регистрация:
    16 янв 2016
    Сообщения:
    499
    Симпатии:
    796
    Да, так же как это реализовано в Sick
     
  10. Inject0r

    Inject0r Well-Known Member

    Регистрация:
    3 сен 2016
    Сообщения:
    45
    Симпатии:
    19
    Посмотрел правила iptables и всё понял :) Все порты открыты для интерфейса lo, в локалку торчат только ssh, 3128 и 8080. Получается всё сводится к ошибке в настройке iptables!
     
    #10 Inject0r, 4 ноя 2016
    Последнее редактирование: 4 ноя 2016
    Vander нравится это.
  11. Inject0r

    Inject0r Well-Known Member

    Регистрация:
    3 сен 2016
    Сообщения:
    45
    Симпатии:
    19
    А как можно поэксплуатировать shellshock-уязвимости, которые нашел Nikto?
     
Загрузка...

Поделиться этой страницей