Сегодня мы собираемся взломать эту уязвимую машину под названием 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.
После сканирования netdiscover нам потребуется сканирование nmap, чтобы получить информацию о службах, запущенных на виртуальной машине. Агрессивное сканирование nmap показывает, что в приложении запущены 2 службы: SSH(22) и HTTP(80).
Перечисление
Поскольку на виртуальной машине запущена служба HTTP, давайте взглянем на размещенную веб-страницу:
На веб-странице есть кнопка с надписью "Щелкните здесь, чтобы получить флаг!". Обязательно щелкните по нему
Флаг #1
Мы видим, что веб-страница представляет собой простую страницу с некоторыми изображениями судебной экспертизы. Ничего особенного. Следующим по задачам перечисления был брутфорс директории. Мы использовали наш надежный инструмент dirb для перебора каталогов.
Это дало нам каталог изображений. Мы просмотрели его через веб-браузер и нашли два изображения, которые называются ДНК и отпечаток пальца. Мы проверили ДНК, это была просто кроличья нора. Затем мы загрузили файл fingerprint.jpg в локальную систему для дальнейшего анализа.
Эта машина основана на криминалистической экспертизе, и у нас есть изображение, Exiftool кажется правильным инструментом для использования. Просто взглянув на метаданные изображения с помощью Exiftool, мы увидим, что у нас есть первый флаг!
Флаг #2
Теперь перечисление не всегда заканчивается одной версией брутфорса директорий. В случае сомнений всегда используйте фильтр расширения для dirb. Мы перешли на txt-фильтр, и у нас есть несколько советов.
Посмотрев на файл tips.txt, мы увидим, что это своего рода файл robots.txt с названием tips. Поскольку мы находимся на охоте за флагами, мы решили сначала просмотреть файл flag.zip.
Это дало нам возможность сохранить файл. Давай сделаем это.
Теперь, когда у нас есть zip-файл в нашей локальной системе, пришло время извлечь содержимое этого файла. Мы используем команду unzip для извлечения файлов внутри файла flag.zip. Требуется пароль. У нас его нет !!
Вернемся к веб-браузеру и файлу советов. Вот папка с именем igolder. Он напоминает веб-сайт, который шифрует и расшифровывает сообщения с открытым и закрытым ключами. Мы просматриваем папку и видим, что есть еще один текстовый файл с именем clue.txt. При чтении файла мы видим, что это комбинация закрытого ключа и сообщения.
Чтобы расшифровать сообщение, мы зашли на сайт igolder и вставили закрытый ключ PGP и зашифрованное сообщение из файла clue.txt. После нажатия кнопки "Расшифровать сообщение" мы получили секретное сообщение. Оно говорит нам, что пароль состоит из 6 символов, причем первые 3 - это буквы "for", а последние 3 - числовые символы.
Всякий раз, когда мы находимся в ситуации, когда у нас есть какой-то частичный намек на пароль, мы используем crunch, чтобы создать словарь, соответствующий этому шаблону. Мы использовали crunch и создали словарь для взлома пароля с именем dict.txt. Используя fcrackzip, мы взломали пароль — for007.
Мы распаковываем файл, и у нас есть файл pdf с пометкой flag. Мы также получаем файл DMP, но об этом позже.
Давайте откроем файл PDF и взглянем на наш второй флаг
Флаг #3
Теперь у нас есть 2 флага, еще 2 осталось. Мы получили файл DMP из предыдущего раздела. В криминалистике файл дампа можно проверить с помощью pypykatz. Итак, мы будем использовать его, чтобы проверить наличие подсказок внутри.
Внимательно изучив файл DMP, мы находим хеш-файл NT для пользователя jasoos. Это означает детектив на хинди. Это может быть ключом к разгадке.
Мы копируем хэш и вставляем его в файл с именем hash. Теперь у нас есть хеш-файл, и для его взлома нам понадобится John the Ripper. После обработки John the Ripper даст нам пароль. Это был "Password@1". Это не супер безопасно, правда?
Теперь здесь мы можем напрямую подключиться через SSH, но вход в систему с использованием Metasploit лучше, поскольку он имеет массу инструментов для пост-эксплуатации, которые можно использовать впоследствии. Следовательно, используя модуль ssh_login, мы получаем сеанс SSH на машине как пользователь jasoos. Используя сценарий shell_to_meterpreter, мы получили сеанс meterpreter на целевой машине.
Используя команду ifconfig, мы видим, что в приложении запущен интерфейс докера с IP-адресом 172.17.0.1.
Это внутренний IP-адрес; означает, что мы не можем получить к нему доступ извне.
Нет необходимости паниковать. Metasploit здесь за спиной. Он имеет эксплойт autoroute, который может маршрутизировать сеть таким образом, чтобы внутренний IP-адрес был доступен извне. Autoroute создаст новый хост для соединения, трафик которого будет перенаправлен на внутреннюю службу. Но Autoroute не сообщает нам IP-адрес нового хоста. Итак, нам нужно выполнить проверку связи, чтобы найти этот конкретный IP-адрес, который можно использовать для дальнейшего эксплуатпрования цели. Ping sweep дает нам IP-адрес. Это 172.17.0.2. Теперь, когда мы знаем целевой IP-адрес, давайте посмотрим, какой именно сервис представляет собой этот экземпляр докера, работающий в данный момент. Сканирование портов показывает, что это служба FTP. Но эта услуга нам неизвестна. У нас нет никаких логинов паролей. Но в службе FTP есть функция, при которой анонимный пользователь может войти в систему и получить доступ к файлам через FTP. Чтобы убедиться, что этот FTP имеет такую конфигурацию, мы используем анонимный сканер ftp в Metasploit.
Он говорит, что ftp разрешает анонимное обслуживание. Итак, давайте перечислим FTP-сервис, подключившись к нему как анонимус. У нас есть каталог под названием pub. Внутри этого каталога у нас есть файл с расширением 001. Похоже, это файл изображения, который обычно используется в форензике. Это называется sabot, который известен как "саботаж". Это означает "Доказательства" на хинди.
Теперь, используя HTTP-сервер Python в одну строку мы переносим файл с целевой машины на нашу локальную машину.
Когда Python запускается и предоставляет службу на порту 8000, мы просматриваем этот порт и получаем наш файл saboot.
Мы решили использовать инструмент Autopsy Forensic Investigation для проверки сделанного изображения. Его можно запустить с помощью следующей команды. Он сообщает нам, что Autopsy доступно на локальном порту 9999. Давай его откроем.
Здесь у нас есть веб-интерфейс для Autopsy. Нажимаем на кнопку New Case.
Мы вводим имя в Case, вводим описание и вводим имя Investigator для целей документации. И снова нажмите кнопку New Case.
Теперь создается дело. После создания дела требуется хост для этого дела. Он запрашивает имя хоста. После ввода имени нажмите кнопку "Add Host", чтобы продолжить.
После создания хоста нам попросят добавить файл образа. Это шаг, на котором мы добавляем файл образа, полученный с целевой машины.
Программа запрашивает расположение файла образа. Поскольку мы загрузили его из нашего веб-браузера, он должен находиться в папке "Downloads". Мы предоставляем путь, как показано на изображении ниже. Кроме того, выберите Partition в параметре Тип. Поскольку это раздел, иначе он был бы намного больше. Диски больше, чем разделы. После завершения нажмите кнопку "Next", чтобы продолжить.
Здесь он запрашивает дополнительные опции. Пусть они будут по умолчанию и нажмите кнопку "Add".
Теперь, когда наш образ смонтирован пришло время для анализа. Это можно сделать, как показано на изображении ниже.
Видим, что у нас куча файлов. Среди этих файлов у нас есть 2 текстовых файла. Файл флага и файл creds. Давайте взглянем на наш третий флаг.
Флаг #4
Теперь у нас есть файл creds.txt. Мы смотрим на него и обнаруживаем внутри зашифрованный текст.
Похоже, это кодировка Base64. Мы используем команду echo с декодером base 64, как показано на изображении ниже. Это может быть пароль другого пользователя.
Мы перечислили домашний каталог и обнаружили, что есть еще один пользователь по имени forensics. Пароль должен быть для этого пользователя. Мы используем команду su для входа в систему как forensic и найденный пароль. Теперь мы используем команду sudo -l, чтобы узнать, какие двоичные файлы мы можем использовать для повышения привилегий. Мы находим, что ВСЕ разрешено. Итак, мы просто используем команду sudo bash и получаем рут.
Затем найдите последний флаг в корневом каталоге, и у нас есть четвертый и последний флаг.
Источник https://www.hackingarticles.in/ha-forensics-vulnhub-walkthrough/
Автор перевода: yashechka
Переведено специально для https://xss.pro
Загрузите лабораторную отсюда 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
После сканирования netdiscover нам потребуется сканирование nmap, чтобы получить информацию о службах, запущенных на виртуальной машине. Агрессивное сканирование nmap показывает, что в приложении запущены 2 службы: SSH(22) и HTTP(80).
Bash:
nmap -A 192.168.0.174
Перечисление
Поскольку на виртуальной машине запущена служба HTTP, давайте взглянем на размещенную веб-страницу:
На веб-странице есть кнопка с надписью "Щелкните здесь, чтобы получить флаг!". Обязательно щелкните по нему
Флаг #1
Мы видим, что веб-страница представляет собой простую страницу с некоторыми изображениями судебной экспертизы. Ничего особенного. Следующим по задачам перечисления был брутфорс директории. Мы использовали наш надежный инструмент dirb для перебора каталогов.
Это дало нам каталог изображений. Мы просмотрели его через веб-браузер и нашли два изображения, которые называются ДНК и отпечаток пальца. Мы проверили ДНК, это была просто кроличья нора. Затем мы загрузили файл fingerprint.jpg в локальную систему для дальнейшего анализа.
Эта машина основана на криминалистической экспертизе, и у нас есть изображение, Exiftool кажется правильным инструментом для использования. Просто взглянув на метаданные изображения с помощью Exiftool, мы увидим, что у нас есть первый флаг!
exiftool fingerprint.jpg
Флаг #2
Теперь перечисление не всегда заканчивается одной версией брутфорса директорий. В случае сомнений всегда используйте фильтр расширения для dirb. Мы перешли на txt-фильтр, и у нас есть несколько советов.
Bash:
dirb http://192.168.0.174 -X .txt
Посмотрев на файл tips.txt, мы увидим, что это своего рода файл robots.txt с названием tips. Поскольку мы находимся на охоте за флагами, мы решили сначала просмотреть файл flag.zip.
Это дало нам возможность сохранить файл. Давай сделаем это.
Теперь, когда у нас есть zip-файл в нашей локальной системе, пришло время извлечь содержимое этого файла. Мы используем команду unzip для извлечения файлов внутри файла flag.zip. Требуется пароль. У нас его нет !!
Вернемся к веб-браузеру и файлу советов. Вот папка с именем igolder. Он напоминает веб-сайт, который шифрует и расшифровывает сообщения с открытым и закрытым ключами. Мы просматриваем папку и видим, что есть еще один текстовый файл с именем clue.txt. При чтении файла мы видим, что это комбинация закрытого ключа и сообщения.
Чтобы расшифровать сообщение, мы зашли на сайт igolder и вставили закрытый ключ PGP и зашифрованное сообщение из файла clue.txt. После нажатия кнопки "Расшифровать сообщение" мы получили секретное сообщение. Оно говорит нам, что пароль состоит из 6 символов, причем первые 3 - это буквы "for", а последние 3 - числовые символы.
Всякий раз, когда мы находимся в ситуации, когда у нас есть какой-то частичный намек на пароль, мы используем 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
Давайте откроем файл PDF и взглянем на наш второй флаг
Флаг #3
Теперь у нас есть 2 флага, еще 2 осталось. Мы получили файл DMP из предыдущего раздела. В криминалистике файл дампа можно проверить с помощью pypykatz. Итак, мы будем использовать его, чтобы проверить наличие подсказок внутри.
Bash:
pypykatz -lsa -k /root/Downloads minidump lsass.DMP
Внимательно изучив файл DMP, мы находим хеш-файл NT для пользователя jasoos. Это означает детектив на хинди. Это может быть ключом к разгадке.
Мы копируем хэш и вставляем его в файл с именем hash. Теперь у нас есть хеш-файл, и для его взлома нам понадобится John the Ripper. После обработки John the Ripper даст нам пароль. Это был "Password@1". Это не супер безопасно, правда?
Bash:
john --format=NT hash
Теперь здесь мы можем напрямую подключиться через 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
Используя команду ifconfig, мы видим, что в приложении запущен интерфейс докера с IP-адресом 172.17.0.1.
Это внутренний IP-адрес; означает, что мы не можем получить к нему доступ извне.
sessions 2
ifconfig
Нет необходимости паниковать. 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
Он говорит, что 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
Теперь, используя HTTP-сервер Python в одну строку мы переносим файл с целевой машины на нашу локальную машину.
Bash:
exit
ls
python -m SimpleHTTPServer
Когда Python запускается и предоставляет службу на порту 8000, мы просматриваем этот порт и получаем наш файл saboot.
Мы решили использовать инструмент Autopsy Forensic Investigation для проверки сделанного изображения. Его можно запустить с помощью следующей команды. Он сообщает нам, что Autopsy доступно на локальном порту 9999. Давай его откроем.
Здесь у нас есть веб-интерфейс для Autopsy. Нажимаем на кнопку New Case.
Мы вводим имя в Case, вводим описание и вводим имя Investigator для целей документации. И снова нажмите кнопку New Case.
Теперь создается дело. После создания дела требуется хост для этого дела. Он запрашивает имя хоста. После ввода имени нажмите кнопку "Add Host", чтобы продолжить.
После создания хоста нам попросят добавить файл образа. Это шаг, на котором мы добавляем файл образа, полученный с целевой машины.
Программа запрашивает расположение файла образа. Поскольку мы загрузили его из нашего веб-браузера, он должен находиться в папке "Downloads". Мы предоставляем путь, как показано на изображении ниже. Кроме того, выберите Partition в параметре Тип. Поскольку это раздел, иначе он был бы намного больше. Диски больше, чем разделы. После завершения нажмите кнопку "Next", чтобы продолжить.
Здесь он запрашивает дополнительные опции. Пусть они будут по умолчанию и нажмите кнопку "Add".
Теперь, когда наш образ смонтирован пришло время для анализа. Это можно сделать, как показано на изображении ниже.
Видим, что у нас куча файлов. Среди этих файлов у нас есть 2 текстовых файла. Файл флага и файл creds. Давайте взглянем на наш третий флаг.
Флаг #4
Теперь у нас есть файл creds.txt. Мы смотрим на него и обнаруживаем внутри зашифрованный текст.
Похоже, это кодировка Base64. Мы используем команду echo с декодером base 64, как показано на изображении ниже. Это может быть пароль другого пользователя.
Мы перечислили домашний каталог и обнаружили, что есть еще один пользователь по имени forensics. Пароль должен быть для этого пользователя. Мы используем команду su для входа в систему как forensic и найденный пароль. Теперь мы используем команду sudo -l, чтобы узнать, какие двоичные файлы мы можем использовать для повышения привилегий. Мы находим, что ВСЕ разрешено. Итак, мы просто используем команду sudo bash и получаем рут.
Затем найдите последний флаг в корневом каталоге, и у нас есть четвертый и последний флаг.
Bash:
cd /home
ls
su forensics
jeenaliisagoodgirl
sudo -l
sudo bash
cd /root
cat root.txt
Источник https://www.hackingarticles.in/ha-forensics-vulnhub-walkthrough/
Автор перевода: yashechka
Переведено специально для https://xss.pro