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

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

Статья CTF "Bsides London 2017"

DefWolf

DefWolf

Mod. Cryptography
Red Team
24.10.2017
312
764
Привет, codeby !
Первоисточник:
Перевод: выполнен от команды Codeby
Примечание от команды форума:
  • Статья является переводом.
Привет! Сегодня мы рассмотрим еще один CTF, который проходил в Лондоне на конференции Bsides London в 2017. Главной задачей является получение root привилегий на ВМ.
Виртуальную машину можно .

Начнем с того, что нам нужно узнать IP виртуальной машины (здесь я использую 192.168.0.7, но вам нужно указать свой).
Запустим сканер nmap, чтобы найти открытые порты и команду –sV, чтобы определить версии сервисов установленных на портах.

nmap -p- -sV 192.168.0.7

CTF "Bsides London 2017"


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

CTF "Bsides London 2017"


На главной странице мы находим подсказку и с помощью программы dirb и команды raft-large-directory перечесляем директории и узнаем дополнительную информации о них.

dirb http://192.168.0.7 raft-large-directories

CTF "Bsides London 2017"


Далее еще раз запустим dirb для полного сканирования и видим, что программа выдала ошибку в cgi-bin. Теперь нам нужно просмотреть какие файлы в ней находятся.

dirb http://192.168.0.7 –w

CTF "Bsides London 2017"


dirb http://192.168.0.7/cgi-bin/ -N 403

CTF "Bsides London 2017"


Одна из ссылок, которые нашла программа содержит страницу идентификации.

CTF "Bsides London 2017"


Давайте посмотрим код страницы и попытаемся найти шестнадцатеричную строку.

CTF "Bsides London 2017"


CTF "Bsides London 2017"


После того как мы ее нашли, приведем ее в читабельный вид с помощью xxd. После дешифровки мы обнаруживаем, что строка base64 начинается с Y, и находим еще одну шестнадцатеричную строку внутри флага. Расшифровав ее получаем строку для входа на страницу идентификации.

CTF "Bsides London 2017"


После того как мы залогинились, мы видим, что полезной информации здесь нет и возвращаемся к результатам сканирования программы dirb.

Переходя по ссылкам, мы видим пустые страницы, но если посмотрим исходный код, то увидим, что некоторые страницы содержат XML (xml based page) и могут быть уязвимыми для XML инъекции (XML Entity Injection(XXE)).

CTF "Bsides London 2017"


CTF "Bsides London 2017"


Воспользуемся программой burpsuite для перехвата запросов страницы, после чего мы воспользуемся XXE уязвимостью для выполнения системных команд.

CTF "Bsides London 2017"


Видим, что все файлы кроме /etc/passwd зашифрованы с помощью base64, чтобы привести их в читабельный вид нам будет нужен php base64. Далее мы переходим к файлу apache.conf, чтобы получить больше информации о системе.

CTF "Bsides London 2017"


Дешифруем строку base64 и сохраняем ее в файле ‘bsides-apache.conf’.

CTF "Bsides London 2017"


Открываем файл и получаем нужную нам информацию о конфигурации.

CTF "Bsides London 2017"


Снова используем ХХЕ уязвимость для получения оставшихся файлов конфигурации.

CTF "Bsides London 2017"


Дешифруем строку из base64 и сохраняем ее как bsides-default.conf.

CTF "Bsides London 2017"


Теперь посмотрим файлы конфигурации.

CTF "Bsides London 2017"


Здесь мы также используем ХХЕ уязвимость, чтобы получить файлы для CGI.

CTF "Bsides London 2017"


Дешифруем строку в кодировке base64 и сохраняем ее как bsides-cgi.conf.

CTF "Bsides London 2017"


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

CTF "Bsides London 2017"


Чтобы узнать больше информации скачаем загрузочный файл, используя всю ту же XXE.

CTF "Bsides London 2017"


Дешифруем строку в кодировке base64 и сохраняем ее как bsides-load.

CTF "Bsides London 2017"


Проверяем тип файла и обнаруживаем, что он является исполняемым.

file bsides-load

CTF "Bsides London 2017"


Узнаем, что он сжат при помощи UPX.

strings bsides-load

CTF "Bsides London 2017"


Распаковываем файл.

upx -d bsides-load

CTF "Bsides London 2017"


И видим, что он читает и расшифровывает файл используя шестнадцатеричное значение «WannaCry?».

CTF "Bsides London 2017"


С помощью radare реверсим файл и обнаруживаем, что он может запускать файлы зашифрованные с тем же значением .

CTF "Bsides London 2017"


Теперь создадим шестнадцатеричное значение «WannaCry?». Мы используем od, чтобы преобразовать значение и sed, чтобы удалить пробелы.

echo -n "WannaCry?" | od -A n -t x1 |sed 's/ *//g’

CTF "Bsides London 2017"


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

CTF "Bsides London 2017"


Теперь создаем 32-битный файл, используя gcc, и преобразуем его в двоичный файл с использованием шестнадцатеричного значения «WannaCry?» Результат сканирования dirb показал нам директорию,в которой хранятся файлы после загрузки, загружаем файл в эту директорию и не забываем, что файл после загрузки меняет название.
Код:
gcc -m32 -shared -fPIC -o exploit.so exploit.c
openssl aes-128-cbc -K 'key’ -iv 0 -e -in exploit.so -out exploit.bin
CTF "Bsides London 2017"


Копируем новое имя и используем загрузочный файл для запуска нашего шелла.

CTF "Bsides London 2017"


Ставим netcat в режим прослушки и получаем реверс шелл.

CTF "Bsides London 2017"


Теперь нам надо найти файлы с suid bit. Один из таких файлов находится в директории /home/level1 и носит название shisu.

find / -perm -4000 2>/dev/null

CTF "Bsides London 2017"


Переходим в директорию где лежит файл и видим, что он является исполняемым.

CTF "Bsides London 2017"


Когда мы запускаем файл, то выясняем, что он в свою очередь запускает команду ps.

CTF "Bsides London 2017"


Мы не можем прочесть символы отладки в gdb, поэтому используем objdump для реверса и обнаруживаем, что файл копирует строки, после чего удаляет первые 10 байтов в стеке.

objdump -M intel -d shisu

CTF "Bsides London 2017"


Теперь используем gdb, чтобы добавить контрольную точку, прежде чем она удалит память из стека. С помощью python печатаем 500 символов ‘A’, проверяем стек и обнаруживаем, что он перезаписан.

CTF "Bsides London 2017"


Теперь с помощью этого мы можем реализовать переполнение буфера (buffer overflow). После нескольких проверок мы обнаруживаем, что при 516 байтах данных мы можем перезаписать EIP и получить ошибку сегментации.

CTF "Bsides London 2017"


Воспользуемся этим, чтобы получить шелл с root правами.
Запускаем файл вместе с 516 байтом шеллкода и получаем нужный нам шелл.

CTF "Bsides London 2017"


Выполняем команду id и видим, что у нас root права.

CTF "Bsides London 2017"


Автор: Саянтан Бера – технический автор хакерских статей и специалист в сфере кибербезопасности.
Связаться с ним можно .
 
S

Salivan

Member
24.06.2019
20
4
На форуме есть раздел перевод, так это туда. Что этот забыло в общем разделе?
 
S

Salivan

Member
24.06.2019
20
4
Вот реально полезный комментарий. Дайте пожалуйста ссылку на раздел.
Есть ENGLISH ZONE, думал там есть раздел для переводов, нэт такого.
Наверно есть смысл создать, хотя кто я такой что бы советовать, вы и сами все знаете, что нужно и как по правилам жить, как комменты тереть)
 
The Codeby

The Codeby

ООО Кодебай
30.12.2015
3 229
4 550
  • Нравится
Реакции: DefWolf
SooLFaa

SooLFaa

Администратор
15.07.2016
811
1 326
Не вижу смысла дробить статьи на форуме на переводы и оригинальный контент. Так как перевод ХОРОШЕЙ статьи - это тоже уникальный контент. А вот хорошая статья или нет решаете вы, уважаемые участники форума. Мы стараемся отбирать интересный материал для перевода, но бывает, что промахиваемся и выбираем не совсем удачный материал, поэтому нам важна обратная связь о каждой переведенной статье, чтобы мы могли лучше корректировать контент.
 
  • Нравится
Реакции: DefWolf
alfabuster

alfabuster

Member
04.11.2019
8
0
Так как перевод ХОРОШЕЙ статьи - это тоже уникальный контент
Это так, да и правильно и корректно перевести на русский язык бывает ой как непросто. Только непонятно одно, зачем наносить водяные знаки на скриншоты, которые вы заимствовали? За такое можно санкции получить...
 
Мы в соцсетях:  ТелеграмВконтактеДзенФейсбукТвиттерЮтуб