Пентест лаборатория своими руками

Как организовать пентест-лабораторию

Для исследователя в области информационной безопасности очень многое связано с проведением тестов, цель которых — обнаружить слабые места в системе, то есть в каком-то смысле исследователь в определенные моменты выполняет задачи хакера. Отличным подспорьем в подобной сфере будет лаборатория, в рамках которой осуществляется тестирование на проникновение (пентест, pentest). Рассмотрим подробно, как организовать собственные тесты на проникновение.

Введение

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

Однако мы зайдем с другой стороны: загрузим несколько образов операционной системы, установим их в нашей виртуальной системе и подключим через программное обеспечение под названием pfSense.

Использование pfSense

pfSense представляет собой брандмауэр для предприятий с открытым исходным кодом, созданный для замены многих коммерческих решений. pfSense основан на операционной системе FreeBSD с настраиваемым ядром и включает сторонние пакеты бесплатного программного обеспечения для дополнительных возможностей. У pfSense есть веб-интерфейс для конфигурации всех компонентов, нет необходимости использовать командную строку.

Для установки и настройки выполняем следующие шаги:

  1. Скачиваем образ pfSense
  2. Распаковываем его
  3. Создаем виртуальную машину для 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 впер­вые, прос­то про­читай статью о самом популяр­ном экза­мене.

Ти­пич­ный про­цесс иссле­дова­ния любой машины раз­делен на нес­коль­ко эта­пов.

  1. Ска­ниро­вание и сбор информа­ции (Scanning).
  2. Оп­ределе­ние уяз­вимос­тей (Enumeration).
  3. Экс­плу­ата­ция уяз­вимос­тей (Exploitation).
  4. По­выше­ние при­виле­гий (Privilege Escalation).
  5. Пос­тэкс­плу­ата­ция (Post Exploitation).
  6. Очис­тка сле­дов (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 тебе покажет nc, либо мож­но поп­робовать узнать ее через Nmap:

    В сети есть мно­жес­тво прог­рамм, которые пыта­ются эвристи­чес­ки опре­делить вер­сию FTP-сер­вера, можешь исполь­зовать их.

    Те­перь под­клю­чись к сер­веру стан­дар­тным FTP-кли­ентом и про­верь ано­ним­ный дос­туп. Обыч­но это guest, ftp, anonymous. Если получи­лось — отлично. Если нет, не отча­ивай­ся — воз­можно, ты най­дешь учет­ные дан­ные поз­же или сер­вис вооб­ще не понадо­бит­ся.

    Ес­ли уда­лось попасть на FTP, осмотрись. Это может быть прос­то пус­тая пап­ка, а может каталог веб‑сер­вера, запиши это. Иног­да находят­ся какие‑нибудь фай­лы — скла­дируй их для даль­нейше­го изу­чения. Кста­ти, самое вре­мя най­ти и записать себе коман­ду для рекур­сивно­го ска­чива­ния всех фай­лов с FTP! Ты же не собира­ешь­ся пос­тоян­но делать это по одно­му?

    Про­верь, можешь ли ты записать в пап­ку хоть что‑то. Удоб­но сде­лать это коман­дой put . Но пом­ни, иног­да сер­вер дает пра­во записи, но не уда­ления! Не кла­ди туда ничего цен­ного, лабора­тор­ные машины дос­тупны всем.

    Вре­мя поис­кать уяз­вимос­ти. Самый прос­той и раз­решен­ный в OSCP спо­соб — исполь­зовать скрип­товые воз­можнос­ти Nmap. С них сто­ит начинать всег­да незави­симо от того, какой порт ты изу­чаешь. Давай узна­ем, какие есть скрип­ты для FTP, и запус­тим их все сра­зу. (Кста­ти, так за тебя дела­ет nmapAutomator.)

    Наш­лись воз­можные уяз­вимос­ти? Отлично! Запиши их себе, но не бро­сай­ся сра­зу же про­бовать! У нас еще столь­ко неп­роверен­ных пор­тов. Ты же не хочешь попасть в кро­личью нору? Но если боль­ше ничего не наш­лось — тоже не беда! В раз­деле «Поиск уяз­вимос­тей» я рас­ска­жу, где еще их мож­но поис­кать.

    Вот неболь­шой спи­сок того, что мне встре­чалось на FTP в лабора­тори­ях и HTB.

    • FTP-сер­вер, уяз­вимый к перепол­нению буфера.
    • Дос­туп к пол­ному содер­жимому дис­ка C, где уда­лось най­ти кон­фигура­цион­ные фай­лы с логина­ми к дру­гому сер­вису.
    • Воз­можность записать файл в дирек­торию веб‑сер­вера для даль­нейше­го выпол­нения кода.
    • Directory Traversal (воз­можность читать фай­лы не толь­ко из пап­ки FTP-сер­вера).
    • И еще мно­гое дру­гое! Не забывай дописы­вать к сво­ей методи­ке удач­ные ходы.

    Продолжение доступно только участникам

    Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

    Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

    Источник

Оцените статью
Своими руками