Как учиться пентесту. Советы экспертов и авторов журнала «Хакер».

Как учиться пентесту. Советы экспертов и авторов журнала «Хакер».

Social Engineering
  • nijat11
  • Алексей Синцов
  • pahuello
  • Антон Лопаницын AKA Bo0oM
  • Ярослав Бабин
  • Nik Zer0f
  • Fabulous Faberge

nijat11

Консультант по информационной безопасности

Как ты учился тому, что умеешь?

Началось все со знакомства с журналом «Хакер» в 2006 году, я тогда учился в седьмом классе. Читал и не очень понимал, что все значит и что происходит. После чтения всяких форумов и статей осознал, что надо учиться программированию, и начать я решил с Perl. Интернет тогда в моем городе был еще слабый (dial-up), скачал пару книг, сам интерпретатор и сел за дело.

Сказать честно, освоить Perl тогда мне не удалось. Потом решил осваивать PHP, и что-то уже стало получаться. Так прошло несколько лет, я худо-бедно освоил PHP, MySQL и Linux.

Ломать учился очень долго, освоить веб-хакинг мне помогли два фактора: знакомство c Андреем Петуховым и стажировка в команде ONsec. Андрей дал мне список книг для прочтения и практических задач. В команде ONsec было много проектов, следовательно, много практики, очень многому научился у этих крутых ребят.

С чего начинать в первую очередь?

Во-первых, нужно иметь базовое представление о TCP/IP, HTTP и ориентироваться в Linux. Очень рекомендую участвовать в CTF, они очень хорошо качают скилл, правда не все. Также можно заниматься bug bounty, помогает прокачать скиллы веб-эксплуатации.

Что до книг и прочих справочных материалов, то мне в свое время помогли Web Application Hacker’s Handbook, The Tangled Web, The Browser Hacker’s Handbook, а также RFC по HTTP и документация к Burp Suite. Многое из этого еще вполне актуально.

Поделись полезными ссылками

Алексей Синцов

Как ты учился тому, что умеешь?

Обучение было долгим и, по сути, идет до сих пор. Началось все в школе в 1999 году, у меня только появился модем. На пиратском диске с дровами для модема и прочими полезными тулзами была секция «для хакера» с набором всяких тупых сканеров и сплоитов типа WinNuke (CVE-1999-0153). Это меня увлекло, я стал изучать, как работает WinNuke, как работает сетевой сканер, что такое эксплоит, атака и так далее. Это давало преимущества в Сети!

Тогда же я купил свои первые выпуски журнала «Хакер». Хулиганский стиль издания и свободный язык со всяким сленгом школьникам вроде меня заходил отлично. Но главное — статьи заставляли искать инфу уже в интернете. Так я узнал, что такое трояны и какие они бывают, прочитал про типовые баги и про многое другое.

Тема увлекала все сильнее и сильнее. Купил книжку «Атака на интернет», увидел, что авторы (П. В. Семьянов и И. Д. Медведовский) — из питерского Политеха. Решил пойти к ним учиться. Это, конечно, была наивная иллюзия о нашей системе образования и о том, чему будут учить... Но я все равно не пожалел потом — вуз хороший, и состав преподавателей там огонь!

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

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

В то время, правда, мы часто тренировались на реальных объектах в Сети, но урона мы не наносили и ничего не воровали, максимум делали «фановые» вещи для админов... Кстати, тогда админы ценили хороший дефейс (с бэкапом и инфой о баге), потому что это им помогало понять, где и что не так. Сейчас это, конечно, звучит дико…

Однако это позволяло мне искать 0day в продуктах на Perl и PHP и исследовать прочие вещи в ИБ (бинарщину, сети и так далее). Например, в 2001-м мы офигели от Nmap и проектов типа Xprobe Федора Ярочкина и замутили собственный подход к пассивному маппингу ассетов (ОС) на Delphi.

Я писал автосплоитер веб-багов на основе базы GIN Group и даже хотел вместе с ними сделать один проект, но не вышло... Уже поступив в универ в 2002 году, я использовал и знал многое, и это помогало мне в программировании и прочих делах. Хотя с криптографией было тяжело — математика все же не мое.

С чего начинать в первую очередь?

Основы ИТ. Сети, протоколы, компиляция, работа ОС (процессы, память и прочее). Зная основы, ты понимаешь, как в этих реалиях жить и где можно «проскочить».

Далее нужен опыт. Опыт написания сплоитов, пентестов, зохака в общем и целом. Причем, на мой взгляд, важно именно не решение задачек по шаблону (хотя я уважаю CTF’еров, многие из них в разы умнее меня), а возможность искать свой путь, проходить первым... Попробовав на вкус эту «кровь», ты становишься реально в теме, а не теоретиком или аналитиком. 8)

Какие есть варианты работы?

В наше время вариантов море! Если говорить об ИБ, то программирование, incident response в Blue Team, мониторинг SOC. Есть профессии Threat Hunter, Security Engineer, Application Security Engineer. Можно быть пентестером по найму или работать в Red Team. А можно стать консультантом или разработчиком сплоитов на фрилансе. Работы много, очень много...

Поделись полезными ссылками

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

pahuello

Руководитель направления пентеста в Angara Technologies Group

Как ты учился тому, что умеешь?

Если в двух словах — универ и любопытство. Я поступил в универ на ИБ-специальность, и мне повезло с первого курса попасть в команду CTF нашей кафедры и поучаствовать в паре онлайновых соревнований. На тот момент это было что-то из разряда развлечения, и я не подозревал, что свою дальнейшую профессиональную жизнь свяжу с offensive security и это станет для меня действительно интересным делом.

Осознание этого пришло ближе к концу учебы (4–5-й курс), да и дисциплины к тому моменту были более интересными и прикладными, нежели на первых курсах. И в принципе, я до сих пор считаю, что универ для меня послужил той базой, которая мне здорово помогла начать свой путь с позиции джуниора.

В тот момент меня заинтересовали две темы — программирование (в основном Python) и сети. В студенчестве продвинуться в них мне помогли отчасти материалы с лекций и лаб в универе, книги Лутца и Олиферов и много-много гугла в процессе решения CTF и учебных задач. Мне всегда было интересно не просто решить поставленную задачу, а разобраться в затрагиваемой теме как можно глубже и найти ответы на вопросы «Как это работает?», «Почему именно так, а не иначе?», «А что будет, если сделать по-другому?» и так далее.

Позже, когда я уже начал работать пентестером, мне помогали старшие товарищи, Google, статьи в «Хакере», блоги других пентестеров и ресерчеров, а также официальная документация к технологиям и программам, с которыми я сталкивался. Если не удавалось разобраться в чем-то до конца в рамках задач, которые у меня были, старался искать похожие таски на площадках типа Root Me.

С чего начинать в первую очередь?

Сложный вопрос. В пентесте тебе приходится много с чем столкнуться. Это и веб, и сети, и операционные системы... Если говорить про инфраструктурный пентест, то тут пригодится понимание того, что собой представляет Windows, Active Directory. Для новичка в качестве базы будет полезна книга Марка Руссиновича «Внутреннее устройство Windows».

Если совсем нет основы или ты еще студент, можно глянуть Таненбаума «Современные операционные системы». Если же у тебя уже есть опыт айтишника, но ты не понимаешь процесс пентеста, могу порекомендовать The Hacker Playbook, довольно практичная штука.

Еще можно посмотреть, как другие ребята готовились к сертификациям типа OSCP, OSCE (гугли OSCE preparation, OSCP walkthrough и подобное). Когда я только интересовался аппсеком, мне помогла книга «24 смертных греха компьютерной безопасности».

Вообще, мое мнение — если ты не знаешь основы, тебе будет сложнее взяться за реальные вещи. Грубо говоря, ты не сможешь поддержать диалог о TLS, не понимая азов криптографии, принципов асимметричного шифрования и PKI. Такие же примеры можно привести и про реверс, веб, кодинг или пентест.

Какие есть варианты работы?

Вариантов масса! На рынке ИБ есть много вакансий, где требуются хорошие специалисты. SIEM, Application Security, Reverse Engineering, Pentest, SOC... И список можно продолжать. Я думаю, что ресурсы, подобные hh.ru, расскажут куда больше, чем я. Да и требования к кандидатам там тоже описаны. Можно еще поучаствовать в стажировках, если это позволяют твои ресурсы. Я знаю, что такая возможность есть в Positive Technologies, «Информзащите» и Digital Security. А уж там определишься, куда податься.

Поделись полезными ссылками

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

Антон Лопаницын AKA Bo0oM

Независимый исследователь безопасности веб-приложений
@i_bo0om

Как ты учился тому, что умеешь?

Много пробовал, часто не получалось, в итоге всё, в том числе неудачи, пригодилось как навык. Без практики — всё дерьмо.

С чего начинать в первую очередь?

CTF, сначала легкие (можно смотреть ctftime.org), потом смотреть райтапы и хинты типа kmb.cybber.ru. Ну и конечно же, за всякой фигней заглядывать в канал @webpwn в «Телеграме» и искать по каналу.

Какие есть варианты работы?

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

Поделись полезными ссылками

Ярослав Бабин

Web sec warrior
@yarbabin

Как ты учился тому, что умеешь?

Разобрался с базовыми вещами, которые используются в вебе повсеместно: SQL, JavaScript вместе с HTML, способы обходов WAF. Причем для последнего приходилось изучать много документации, что дало понимание этих технологий. Затем много раз перечитывал ответы на вопросы по уязвимостям на Antichat и RDot, где конспектировал самые интересные и полезные советы.

С чего начинать в первую очередь?

Главное — всегда понимать цель эксплуатации любой из уязвимостей и причины ее возникновения. Да и в целом быть знакомым со всеми возможными векторами.

Какие есть варианты работы?

Багбаунти, консалтинг.

Поделись полезными ссылками

Перечитать, проверить на практике и законспектировать:

Остальное:

Nik Zer0f

Специалист в области системного программирования и исследований в Windows, автор Xakep.ru

Как ты учился тому, что умеешь?

Наверное, как и многих, сначала меня заинтересовала тема вирмейкерства. Тогда мне это казалось настоящей черной магией, я перечитал все возможные журналы по VX, из которых особо выделялся, конечно, 29А. Сайт Z0MBiE был проштудирован полностью несколько раз.

Также меня серьезно вдохновил Крис Касперски, было очень интересно читать его статьи и книги. И конечно, масса исходных текстов, в основном на ассемблере. Бесконечные эксперименты, опыты с исходниками, компиляция разных макетов и постоянное чтение статей и книг.

Особая радость была, когда что-то получалось, а знания удавалось воплотить в код и увидеть, как это работает. На тот момент это здорово мотивировало.

С чего начинать в первую очередь?

По моей специальности — с ассемблера! Многие сейчас говорят, что этот язык мертв, — я с этим не согласен. Ты как минимум должен уметь свободно читать код на асме, который выдают отладчики и дизассемблеры.

Из языков высокого уровня могу посоветовать С/С++ — он постоянно развивается и совершенствуется. Масса кода на нем написана, и масса кода пишется прямо сейчас. Хотя стоит обратить внимание и на более современные языки — Rust и Golang. Хотя бы чтобы быть в курсе современных тенденций.

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

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

Какие есть варианты работы?

Чего греха таить — тут в нашей области все непросто. С одной стороны, платят неплохо, с другой — ниша таких исследований и разработок мала и работу придется поискать. Но можно найти и фриланс, и официальное трудоустройство — кому как больше нравится. Но надо будет постараться, и здесь многое зависит от уровня твоих скиллов. А если все получится, то поверь, голодать ты не будешь!

Поделись полезными ссылками

Fabulous Faberge

Цифровыхъ дѣлъ мастеръ, автор Xakep.ru

Как ты учился тому, что умеешь?

С железом я познакомился в хакспейсе «Нейрон». Именно там мне показали Arduino Uno. Тогда (это было достаточно давно) эти платы еще не были так популярны. Мне было сказано, что одна такая платка и микросхема К555АП4 (до сих пор помню) решат все мои проблемы — тогда они лежали в сфере робототехники и инверсной кинематики. Я решил попробовать. Более тривиальный старт трудно себе представить.

Следующей ступенькой было портирование кода на «серьезное» и весьма специфичное железо — процессоры «Мультиклет». Удивительно, но разбор всех тонкостей и нюансов помог мне лучше понять микроконтроллеры AVR. Внезапно у них нашлось что-то общее. После этого переход к популярным платформам на ARM прошел относительно легко и безболезненно.

Также «просветлению» помогает чтение документации. Или хороших книг по теме. Могу порекомендовать две: Hacking the Xbox и «Искусство эксплойта». Это довольно старые книги, и технологии с тех пор ушли далеко вперед, но они дают главное — понимание основ и принципов.

С чего начинать в первую очередь?

Первые шаги, наверное, легче будет делать на том же самом Arduino. Просто нужно понимать, что это только верхушка айсберга, и ни в коем случае не останавливаться. Спуститься на уровень ниже — C, асм, регистры периферии, интерфейсы. Потом перейти на современное железо. Проще выбрать что-то популярное, что поддерживается сообществом (рекомендую STM32).

Из книг тебе поможет хорошая (толстая) книжка по С/С++, «Искусство схемотехники», «Цифровая схемотехника и архитектура компьютера», «Ядро Cortex-M3 компании ARM».

Также из необычного, но интересного — журнал «Микропроцессорные средства и системы» (да, он очень старый, но я читал запоем).

Поделись полезными ссылками

Вот несколько из недавних статей, которые мне понравились.

И вот еще хороший план самообучения по безопасности ARM.

Social Engineering - Канал посвященный психологии, социальной инженерии, профайлингу, НЛП, Хакингу, Анонимности и безопасности в сети интернет, Даркнету и все что с ним связано. Добро пожаловать ;-)

S.E.Book - Литература социального инженера.

@Social_Engineering_bot - Бот обратной связи.

  1. Методика получения интересующей информации.
  2. Атаки на MySQL: Теория. Инструменты. Примеры и практика.
  3. Особенности оценки личности в процессе общения.
  4. Форензика в Linux. Софт, описание софта, примеры и приёмы.
  5. OSINT. Определение местоположения по фотографии. Глобальные и местные индикаторы.

Источник

Report Page