Пентест с нуля. Личный опыт

Пентест с нуля. Рекомендации на основе личного опыта

Область пентеста, как и любая другая сфера IT, это та сфера, где постоянно необходимо обучение, практика, повторение и закрепление знаний. 

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

  1. Как черпать теорию?

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

Поэтому могу посоветовать чаще обращаться по интересующим темам к иностранным ресурсам, включая иностранные ролики на YouTube. Если вы не сильно дружите с английским языком, советую использовать киллер фичу яндекс браузера в виде синхронного перевода видео при помощи нейросетей. Да, перевод будет немного кривоват, но в целом вы к нему быстро привыкните и быстро поймете, что значит криво переведенная «проба пера».

Так же не стоит принебрегать конспектированием. Это очень важно. Лично я советую использовать Notion, все ваши читшиты и конспекты можно красиво оформить и использовать, радуя глаз

Более продвинутой, но в то же время и сложной техникой запоминания будет являться рассказ теории другому человеку. После того, как вы подготовитесь к рассказу, вы мало того, что структурируете материал, вы его еще и воспроизведете.

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

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

Это нормально, что в самом начале вы мало что поймете. Но если вы, например, выбрали обучение пентестингу в направлении веба, не нужно сразу браться именно за уязвимости. Начните с азов: как работает интернет, что такое порт, протокол и т.д. Изучите языки программирования и научитесь писать код, и только потом начните ломать собственные сайты. Лично я очень сильно оступился в самом начале пути, начав сразу с уязвимостей, не понимая при этом как вообще работает веб сайт.

Изучили тему ip адресов? Углубляйтесь на уровень гика. Это касается любой темы. Если вы видите или читаете незнакомую технологию в вебе, прочтите о ней как можно больше. Как она работает, какие у нее проблемы, с чем она взаимодействует и т.д. Просто углубляйтесь, не останавливайтесь на поверхности.

Если говорить конкретнее про веб, то при упоминании слова NoSql начинайте рыскать в поиске NoSql баз данных, читайте и начинайте хотя-бы базово создавать базы на том же редисе или neo4j.

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

При этом не нужно брать все и сразу. Возьмите в оборот определенное направление и изучайте его. Не нужно параллельно читать про сети и переполнение буфера, отложите это на потом, не нужно распыляться.

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

  1. Практика

Самый полезный, но в то же время и сложный раздел. Платформ для практики придумано достаточно много. Какие-то с головой ctf like, какие-то больше имитируют реальную жизнь, но давайте по порядку я расскажу про платформы, которыми сам частенько пользуюсь.

Burp Academy

Burp Academy

Мастхэв любого хакера, познавшего основы и желающего посмотреть на множество видов уязвимостей различной степени сложности. Все обучение ведется в виде текстовой теории и сопутствующих лабораторных работ в конце каждого параграфа. Несомненным преимуществом является сильная теория и очень хорошие практические задачи, которые при этом имеют как текстовое, так и видео решение, так что без ответов вы точно не останетесь. Начиная XSS , заканчивая довольно экзотичным HTTP Request Smuggling’ом. Эта платформа вас точно не оставит равнодушным, но здесь нет духа соревнований и ctf как такового. Исключительно обучающая платформа с очень хорошей практикой. Если вы пройдете все лабы на этой площадке, то вы смело сможете говорить, что перешли на средний уровень понимания веб уязвимостей.

HackTheBox

HackTheBox

Несомненный лидер и главный любимчик среди сдающих на сертификат OSCP. Платформа, где вы получите ответ только после закрытия сервера. Кстати о них, платформа работает по принципу выделения в их внутренней сети так называемой «машины», где для ее полного прохождения вам нужно поломать веб или сетевые службы, получить rce и повысить привилегии.

Весь шарм данной платформы состоит в том, что она дает возможность «сломать» множество технологий и использовать множество инструментов. Очень трудно найти две одинаковые машины с одинаковыми технологиями, поэтому HTB буквально заставит вас заниматься бесконечной «гуглежкой».

Так же ее основной фишкой являются решения, которые на активные машины найти достаточно тяжело, это и придает платформе дух соревнований.

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

Root-me

Root-me

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

PriviaHub

PriviaHub

Еще одна площадка по типу HTB, но структура немного иная. У нас есть большая инфраструктура(например, банка), напичканная разными машинами. И чтобы пройти следующую машину, нужно пройти предыдущую. Из минусов могу отметить достаточно долгое развертывание машин. 

TryHackMe

TryHackMe

Тоже платформа, работающая по типу: теория - практика. Из плюсов могу отметить неплохие теоретические материалы и лабораторные, полностью соответствующие теории. Так же присутствует неплохой охват тем, начиная сетями на базовом уровне, заканчивания достаточно сложной эксплуатацией active directory. 

Standoff365

Standoff365

Российская платформа, у которой недавно был запуск. Тут нас встречает довольно большая инфраструктура: веб, внутренняя сеть, фишинг и многое другое. Не можете пробить хост при помощи Rce, хорошо, можете пробить фишингом, залив вредоносный doc файл на почту, обойдя при этом антивирусы. Согласитесь, неплохая симуляция реальности.

Более подробный обзор от Codeby вы можете увидеть по ссылке.

Дополнение 

Но не стоит забывать и про проекты веб приложений по типу того же juicy shop, которые разворачиваются на локалке. Иногда встречаются и локальные проекты под определенный тип уязвимостей. 

Так же очень крутой и занимательной практикой будет являться развертывание своей инфраструктуры. Например, вы хотите научиться тестировать инфраструктуру Active directory с проникновением через внешку.

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

Этот вариант самый продвинутый и позволит вам не просто научиться взламывать, но и настраивать среду, попутно учась писать и разбирать код

Заключение

К обучению в любой области знаний нужно подходить осмысленно. Фишки, методики, чужие истории успехов и провалов помогут вам выстроить свою стратегию обучения.