- Как организовать пентест-лабораторию
- Введение
- Использование pfSense
- Выводы
- Виртуальная пентест лаборатория
- Постановка проблемы
- Первый подход к снаряду
- Крокодил более длинный, чем широкий
- Я имею вам сказать
- Сводная таблица
- Заключение
- Пентест по-своему. Создаем собственную методику тестирования на примере машин с OSCP и Hack The Box
- Содержание статьи
- Сканирование и сбор информации
- Сканирование портов
- Сервисы
- 21-й порт
- Продолжение доступно только участникам
- Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Как организовать пентест-лабораторию
Для исследователя в области информационной безопасности очень многое связано с проведением тестов, цель которых — обнаружить слабые места в системе, то есть в каком-то смысле исследователь в определенные моменты выполняет задачи хакера. Отличным подспорьем в подобной сфере будет лаборатория, в рамках которой осуществляется тестирование на проникновение (пентест, pentest). Рассмотрим подробно, как организовать собственные тесты на проникновение.
Введение
Первое, что приходит на ум опытному эксперту, когда речь заходит о тестах на проникновение — установка Metasploitable. Это — уязвимая операционная система, выглядящая как терминал на вашей виртуальной машине (у нее нет графического интерфейса), она создана разработчиками Metasploit.
Однако мы зайдем с другой стороны: загрузим несколько образов операционной системы, установим их в нашей виртуальной системе и подключим через программное обеспечение под названием pfSense.
Использование pfSense
pfSense представляет собой брандмауэр для предприятий с открытым исходным кодом, созданный для замены многих коммерческих решений. pfSense основан на операционной системе FreeBSD с настраиваемым ядром и включает сторонние пакеты бесплатного программного обеспечения для дополнительных возможностей. У pfSense есть веб-интерфейс для конфигурации всех компонентов, нет необходимости использовать командную строку.
Для установки и настройки выполняем следующие шаги:
- Скачиваем образ pfSense
- Распаковываем его
- Создаем виртуальную машину для pfSense
Рисунки 1 и 2. Создание виртуальной машины для pfSense и меню настроек
Выбираем правильный объем памяти:
Рисунок 3. Настройки объема памяти
Настроим функции процессора:
Рисунок 4. Настройки процессора
И тут, внимание, самая важная функция — вам нужно включить два разных сетевых адаптера: один мост и один для внутренних сетей, чтобы ваш брандмауэр работал правильно.
Рисунки 5 и 6. Настройка одного и второго адаптера
Нажимаем ОК, и теперь мы можем, наконец, запустить свою виртуальную машину с помощью pfSense.
Рисунок 7. Запуск виртуальной машины
Нажимаем «Принять эти настройки» (Accept these settings).
Рисунок 8. Меню подтверждения настроек
Затем нажимаем «Быстрая установка» (Quick easy install).
Рисунок 9. Запуск быстрой установки
После нажатия ОК начнется процесс установки. Это займет некоторое время, которое будет зависеть от вашего аппаратного обеспечения.
Рисунки 10 и 11. Подтверждение быстрой установки
Выбираем «Стандартное ядро» (Standard kernel).
Рисунок 12. Установка ядра
Теперь обратите внимание: после команды «Перезагрузить» нажмите Device и извлеките установочный диск, или процесс установки перезапустится с самого начала.
Рисунок 13. Меню, запрашивающее перезагрузку
После всего вышеописанного вы увидите главное меню psSense. Можно заметить, что имена основных двух сетевых интерфейсов, которые вы создали, указаны с соответствующими IP-адресами на их стороне. Вы заметите, что em0 — ваш wan-интерфейс, в то время как em1 обычно LAN. Если вы хотите изменить диапазон IP-адресов этих двух интерфейсов, вы можете выбрать вариант номер 2, и вам будет предложено назначить IP-адреса через DHCP или вручную.
Вам также будет предложено использовать http вместо https, но, несомненно, это плохая идея. Как только закончите с этой процедурой, вы можете получить доступ к веб-конфигуратору, введя в своем браузере IP-адрес вашей локальной сети. С этого момента вы сможете изменить настройки с помощью простого и интуитивно понятного графического интерфейса.
Рисунок 14. Графический интерфейс psSense
Выводы
Теперь, когда у вас есть программное обеспечение, которое позволяет подключить свои компьютеры, вы можете начать загрузку и установку любых видов операционных систем. Рекомендуется настроить различные ОС с открытыми портами, службами и тому подобным, чтобы вы могли воссоздать более реалистичную сетевую среду.
Источник
Виртуальная пентест лаборатория
Постановка проблемы
Некоторое время назад я решил актуализировать свои знания в пентесте (pentest).
Составил план, который включал, как теоретический аспект, так и практический: применение полученных знаний на практике и закрепление их. С теоретической частью было все понятно: книги, курсы и т.д., в интернете масса материалов и ресурсов – читай не хочу.
Практическая часть должна быть в виде пентест лаборатории с блэк-джеком и непотребствами из нескольких машин с различными уязвимостями.
С практикой оказалось сложнее из-за существующего лично у меня ограничения — нет возможности сделать тестовый стенд дома/на работе.
Обдумав проблему с разных сторон еще раз, я обратил свой взор в небо Аустерлица в облака… ранее я пользовался облачными ресурса Microsoft Azure.
Быстрый поиск в Google дал неплохой улов: Google Cloud, Microsoft Azure, AWS Amazon, Oracle Ravellosystems.
Указанные сервисы условно бесплатно позволяют воспользоваться их ресурсами, даже есть возможность из подготовленного образа поднять машину Kali Linux (у Amazon, Microsoft).
Первый подход к снаряду
Поскольку в разрезе создания виртуальной лаборатории ни один из ресурсов не использовался, то я начал по списку:
Кандидат №1: Google, заявление о 300 $ бесплатно, выглядело заманчиво, но закончилось все плохо на этапе регистрации – работаем только с юридическими лицами. Лицом не вышел.
Кандидат №2: Microsoft Azure – тоже 300 $ на попробовать сервис, но только не для меня, эти кредиты были потрачены ранее на другие проекты, поэтому пришлось за свои собственные средства оплачивать виртуальную машину.
Кроме того, как и Amazon Microsoft предоставляет 750 часов работы ежемесячно в течении года с момента регистрации.
Есть образ машины Kali Linux.
Кандидат №3: Amazon AWS – выдает 750 часов работы ежемесячно на год бесплатно, но с сильно урезанными машинами, есть образ машины Kali Linux.
Кандидат №4: Oracle – 300 $ на 1 месяц, возможность загрузить собственный образ.
Крокодил более длинный, чем широкий
Поскольку с Google сразу не сложилось, перейдем сразу к кандидату № 2 Microsoft.
Регистрация
Аккаунт уже был дополнительной регистрации не потребовалось.
Интерфейс
Панель управления достаточно наглядна и информативна, хотя на мой взгляд, несколько перегружен деталями, позволяющими настроить необходимое.
Картинка кликабельна
Скриншот интерфейса MS Azure
Создание виртуальной машины
Виртуальную машину поднял быстро и без особых усилий.
Вот ссылка на руководство.
Контроль расходов
В различных информационных разрезах, хорошо видно куда и как потрачены средства.
Регистрация
Регистрация не сложная, потребуется дополнительно для проверки банковская карта и телефон.
Интерфейс
Интерфейс проще чем, в MS Azure, все необходимы настройки доступны.
Картинка кликабельна.
Скриншот интерфейса AWS Amazon
Создание виртуальной машины
Виртуальную машину поднял быстро стандартного дистрибутива. Виртуальную машину также можно запустить из собственного дистрибутива.
Стоит отметить, что для доступа к виртуальной машине необходимо создать пару ключей, на основе закрытого ключа будет получен пароль администратора.
Контроль расходов
Скажу так: без особенностей.
Регистрация
Регистрация аналогична предыдущим участникам.
Интерфейс
Уделено большое внимание визуальной составляющей, при этом есть необходимые настройки, хотя не всегда очевидно, где нужный элемент находится и как работает.
Картинка кликабельна.
Скриншот интерфейса Oracle Ravello
Создание виртуальной машины
Можно использовать уже преднастроенный образ или загрузить свой собственный дистрибутив.
Виртуальную машину поднял быстро из собственного дистрибутива.
Инструкция по разворачиванию виртуальной машины.
Контроль расходов
Самое главное видно – сколько и за что должен денег.
Особенности
Хорошая визуальная составляющая. Все ЦОДы находятся в США, поэтому связь не мгновенная.
Я имею вам сказать
Окончательный выбор пал на Oracle. Закачал и установил образ Kali Linux в облако Oracle. Поскольку мне также требовался RDP в Kali, использовал команды из инструкции для настройки.
Сводная таблица
Сервис | Условия оплаты | Интерфейс | Прочее |
---|---|---|---|
MS Azure | 300 $ при регистрации впервые | Достаточно сложный | нет |
AWS Amazon | 750 часов работы ежемесячно на год | Относительно простой | нет |
Oracle | 300 $ на месяц при регистрации | Простой/визуальный | ЦОДы в США |
Заключение
В заключении необходимо отметить следующее. Если необходима просто виртуальная машина для проведение пентеста, разница между сервисами не велика, лично мне понравился MS Azure.
Если необходимо создать лабораторию из нескольких виртуальных машин, на собственных образах, то стоит обратить внимание на Oracle с сервисом bring your own image, но аналогичные возможности по загрузке образов есть у MS Azure и AWS Amazon.
Существуют уже подготовленные образы уязвимых систем для тренировок, например,
Metasploitable
Существует неплохая книга: «Professional Penetration Testing: Creating and Learning in a Hacking Lab» автор Thomas Wilhelm.
Обратите внимание, что некоторые компании, которые предоставляют образы машин для пентестеров, требуют получения разрешения на такую деятельность. Вот политика AWS Amazon в качестве примера.
Кроме этого, есть платные пентест лаборатории как для компаний, так и для частных лиц.
Источник
Пентест по-своему. Создаем собственную методику тестирования на примере машин с OSCP и Hack The Box
Содержание статьи
Райтапы по HTB или CTF-машинам сродни хорошему детективу. Опытный пентестер быстро находит уязвимость, пишет скрипт для ее эксплуатации, и вот уже заветный флаг у нас в руках! Однако в реальности этот процесс со всеми удачными и неудачными попытками может занять от нескольких часов до нескольких десятков дней. Об этом не принято писать в райтапах, ведь сам поиск далеко не такой красочный. Как же в реальности находятся те самые «правильные места» и как узнать, на что стоит обратить внимание? Для этого у большинства серьезных пентестеров есть собственная методика или список чек‑листов.
Вся информация, приведенная в статье, собрана автором во время прохождения лаборатории OSCP и машин с HTB. При реальном пентесте многие вещи могут работать иначе, и это стоит обязательно учитывать! Если ты слышишь о OSCP впервые, просто прочитай статью о самом популярном экзамене.
Типичный процесс исследования любой машины разделен на несколько этапов.
- Сканирование и сбор информации (Scanning).
- Определение уязвимостей (Enumeration).
- Эксплуатация уязвимостей (Exploitation).
- Повышение привилегий (Privilege Escalation).
- Постэксплуатация (Post Exploitation).
- Очистка следов (House Cleaning).
Пройдемся по ним, чтобы понять, как эффективнее действовать на каждом.
Сканирование и сбор информации
Первое, что тебе необходимо сделать, — это привести исследуемую машину в исходное состояние. Для этого во всех сервисах есть опция Revert или Reset. Собирать информацию, не вернув машину в исходное состояние, не стоит: там могут не найтись нужные файлы или в общедоступной папке на FTP уже может лежать готовый эксплоит, что испортит тебе все удовольствие и возможность получить опыт.
Что еще хуже, некоторые эксплоиты вроде переполнения буфера могут сработать ровно один раз, и, сканируя такую машину, ты просто не найдешь нужный сервис. Поэтому всегда возвращаем машину в исходное состояние! В HTB стараются не делать таких сервисов, но там тоже можно проголосовать за Revert или перезапустить машину самому, если у тебя есть статус VIP.
Сканирование портов
Споры о правильных способах сканирования портов не утихают никогда. Существует много разных скриптов вроде Autorecon, nmapAutomator, они очень полезные, но я не рекомендую начинать с них. Почему? Всегда лучше понять, как работает та или иная утилита, а не слепо полагаться на нее. Поэтому лучше скачай их и посмотри исходный код, а мы будем использовать старый добрый Nmap.
Для начала можно пройтись быстрым сканированием популярных портов:
Если вдруг Nmap возвращает ошибку о недоступности хоста, попробуй опцию -Pn. Пока ты размышляешь над полученной информацией, можно запустить полное сканирование всех TCP-портов.
Не забудь, существуют еще порты UDP! Командную строку для их сканирования я оставлю тебе в качестве домашнего задания.
Помни: даже некоторые лабораторные машины могут иметь защиту от сканирования. Если вдруг в середине сканирования все внезапно прервалось или зависло, поиграй с опциями Nmap. Например, увеличь время между пробами портов и уменьши количество одновременных проб.
В результате всех этих действий у тебя будет информация о доступных на машине портах.
Результат сканирования портов
Не бросайся сразу же искать эксплоит для VMware или Samba! Ты совершишь самую большую ошибку и рискуешь попасть в так называемые кроличьи норы (Rabbit Holes). Тупиковые места, которых страшно боятся все на экзамене OSCP: ты можешь потратить часы в попытках сломать, например, WordPress и в конце не добиться результата, поскольку уязвимость была в другом сервисе, но ты до него просто не дошел.
Твоя задача — собрать весь список открытых портов и возможных сервисов, которые работают за ними. После этого переходим к дальнейшему сбору информации.
Как улучшить свои навыки сканирования? Читай райтапы, смотри, какие в них используются инструменты, и пополняй свою копилку. Рекомендую завести отдельный репозиторий с документами и там планомерно создавать собственную методику. У меня в разделе «сканирование портов» сейчас около десятка разных способов сканирования (Nmap, masscan, скрипты и другие).
Особо обрати внимание на любые порты, которые Nmap не смог однозначно идентифицировать. Также — порты, о которых ты не знал раньше, и на привычные вещи вроде веб‑серверов и FTP на нестандартных портах вроде 9000, 5000 и других. Обычно это перспективные с точки зрения эксплуатации сервисы, которые просто хотели спрятать от быстрого сканирования. Именно поэтому я рекомендую всегда проводить полное сканирование всех портов TCP и быстрое — базовых UDP. Мне встречались машины, где уязвимый сервис был спрятан в UDP.
Сервисы
В этом разделе я приведу примеры нескольких популярных портов и расскажу, на что обязательно стоит обращать внимание при исследовании каждого.
21-й порт
Мне очень нравится проверять информацию о любых, особенно неизвестных портах на сайте speedguide.net. На экзамене это даже помогло мне взять одну из машин!
Как видно, порт 21 обычно отвечает за FTP, но за ним может находиться любой из известных тебе FTP-сервисов, а может и не FTP вообще. Вдруг какой‑то хитрый админ перевесил туда SSH? Поэтому первое, что я всегда делаю, — пробую подключиться к сервису с помощью netcat.
Чаще всего тебя встретит баннер FTP-сервера, вроде такого.
Пример ответа FTP-сервера
Но если увидишь там ответ SSH или иного сервиса, просто запиши это и переходи к соответствующему разделу, чтобы понять, что еще оттуда можно добыть!
На что следует обратить внимание при исследовании FTP:
- название программы‑сервера и ее версия;
- разрешен ли анонимный доступ;
- нет ли чего‑то интересного в папках на сервере;
- не разрешена ли запись в какую‑нибудь папку;
- есть ли уязвимости в этой версии сервера.
- FTP-сервер, уязвимый к переполнению буфера.
- Доступ к полному содержимому диска C, где удалось найти конфигурационные файлы с логинами к другому сервису.
- Возможность записать файл в директорию веб‑сервера для дальнейшего выполнения кода.
- Directory Traversal (возможность читать файлы не только из папки FTP-сервера).
- И еще многое другое! Не забывай дописывать к своей методике удачные ходы.
Версию FTP тебе покажет nc, либо можно попробовать узнать ее через Nmap:
В сети есть множество программ, которые пытаются эвристически определить версию FTP-сервера, можешь использовать их.
Теперь подключись к серверу стандартным FTP-клиентом и проверь анонимный доступ. Обычно это guest, ftp, anonymous. Если получилось — отлично. Если нет, не отчаивайся — возможно, ты найдешь учетные данные позже или сервис вообще не понадобится.
Если удалось попасть на FTP, осмотрись. Это может быть просто пустая папка, а может каталог веб‑сервера, запиши это. Иногда находятся какие‑нибудь файлы — складируй их для дальнейшего изучения. Кстати, самое время найти и записать себе команду для рекурсивного скачивания всех файлов с FTP! Ты же не собираешься постоянно делать это по одному?
Проверь, можешь ли ты записать в папку хоть что‑то. Удобно сделать это командой put . Но помни, иногда сервер дает право записи, но не удаления! Не клади туда ничего ценного, лабораторные машины доступны всем.
Время поискать уязвимости. Самый простой и разрешенный в OSCP способ — использовать скриптовые возможности Nmap. С них стоит начинать всегда независимо от того, какой порт ты изучаешь. Давай узнаем, какие есть скрипты для FTP, и запустим их все сразу. (Кстати, так за тебя делает nmapAutomator.)
Нашлись возможные уязвимости? Отлично! Запиши их себе, но не бросайся сразу же пробовать! У нас еще столько непроверенных портов. Ты же не хочешь попасть в кроличью нору? Но если больше ничего не нашлось — тоже не беда! В разделе «Поиск уязвимостей» я расскажу, где еще их можно поискать.
Вот небольшой список того, что мне встречалось на FTP в лабораториях и HTB.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Источник