Как я начал свой путь в айти и пентестинге, не имея никаких знаний и образования.
Очень много людей, начинающих заниматься данной сферой деятельности теряются и попадают в некий тупик, т.к. само айти и пентест можно сравнивать с какой-то большой многогранной фигурой (лично я себе представляю это так). Пытаешься понять один вектор, так сразу за ним подтянутся другие, которые можно сидеть и изучать часами, бессонными ночами, чтобы, в итоге, вернуться к тому, с которого начал. Я очень надеюсь, что тем людям, которые начинают свой путь и читают мою рукопись, информация в статье будет полезна и послужит дополнительной мотивацией.
Все началось еще с давних приколов, которые казались мне тогда не очень смешными и я правда очень боялся. Приколы примерно были такими:
- "За просмотр папы с внучкой или внучки с папой вы нарушили там какие-то законы, поэтому переведите мне баксы в битках на такой-то такой-то кошелек и все будет чики-пуки бамбуни." - Хорошо, что это все очень легко закрывалось, всякие раздражающие окна, но когда одно окно переводит на второе, потом на третье и так до бесконечности, засоряя мне оперативку до зависания, вызывая работу различных скриптов, было совсем не весело, особенно если у меня висел какие-либо открытые файлы или игрушки.
- Второй пример более раздражающий, чем первый, потому что он уже не связан так с браузером, как с компьютером, куда пробрался троянский конь под видом, к примеру, серии наруты или какого либо файла, который выглядит как файл, а на самом деле там чики-бони, переставляй винду серии "Ваш комп заблочен, битки вываливай, или данные будут удалены."
- Был случай, когда я играл в контр-страйк 1.6, любил очень карты на ножах и я обгадил там мальца, он предложил мне попробовать новые читы совершенно бесплатно, кинул мне ссылку на облако, и после запуска я устал закрывать свой дисковод, его просто насиловали как могли. Естественно, так как балбес, переустанавливал винду. Вот и простейший пример соц. инженерии.
Спустя несколько лет я увидел о чудо, Кали Линукс, Попугай ОС и я понял, что раз это специально для таких кулл-хацкеров как я, специально для меня создавали, парни, без обид, то пришло мое время. Но тут я встал в тупик. Как мне быть без винды, без величайшей системы с огромным количеством дыр? Как же ЫГРЫ?
И тут я начал читать миллиард статей на тему "Линукс vs Билл Гейтс и его рабы". В итоге перешел к установке и понял, что нужно еще тысячи статей на то, чтобы понять, как все ставить и устанавливать. Окей, установил, нет ничего, интернет не работает, что делать? что устанавливать? В интернете с телефона увидел непонятные шифры со времен ацтеков "sudo apt-get update && sudo apt-get upgrade" и понял, что я ничего не понял, но сказано, что это может помочь иии... опять ничего не работает. Я попал в тупик, ибо я пришел на форум со своей проблемой, на форуме мне сказали "гугл в помощь", начал гуглить, гугл начал выдавать все более и более сложные шифры, которые я не понимал и какие-то курсы по системному администрированию и тут встал вопрос: "Зачем мне эта вся родня, я же хакер, мне это все не нужно", что для меня все это стало казаться испытанием на прочность.
Прошло небольшой промежуток времени, я начал читать статьи что такое протоколы и как они мне помогут в дальнейшем, модель OSI, зачем нужна консоль, начал смотреть работу некоторого софта, видео, небольшие статьи и начал понимать, что без основ никуда, никак нельзя научиться ломать, проводить пентест, если ты не понимаешь как устроен интернет, как передаются пакеты, как пользователи друг с другом взаимодействуют, как работать со своей операционной системой, обычные основы, которые, как оказалось, очень полезно знать не только тем, кто занимается программированием или пентестом, но и обычным пользователям, многие даже не знают, как работает интернет, я знал только, что это есть и умел им пользоваться лишь для обыденных вещей.
Теперь я буду ниже писать темы, с которых нужно начинать, и какие материалы я изучал
1) Как устроена сеть. TCP/IP и модель OSI. Протоколы, практика и работа с WireShark. Вы можете посмотреть плейлист на одном дыхании, прочитать книги, но практикой вы закрепите полученные вами знания. С книг начинать не рекомендую, большинство книг на эту тему слишком сложно читать, если вы не имеете представления. Поэтому я могу вам порекомендовать курс Андрея Созыкина, он есть на ютубе, очень грамотно и подробно. Также у него есть практика, которую он разбирает в видео. После его курса книги по сетям будете щелкать как орехи. Книг по сетям очень много, Созыкин в конце своего курса дает несколько книжек, которые он рекомендует почитать для закрепления знаний и большего понимания, как сети устроены, лично для меня хватило практики и его лекций. Ссылку на его ютуб прикреплять не буду, думаю, в поисковике ютуба найти вам будет его не трудно.
2) Системное администрирование. Есть тонны всяких различных курсов, нельзя выделить кого-то по видеокурсам, но тоже лучше начинать с них, чем с книжек. Есть Udemy и OTUS, желательно выписывать к себе различные команды, поучиться пользоваться только консолью, найти какие-либо практические задания, обычно к курсам они прилагаются, также много чего можно найти на ютубе.
Из книжек посоветую:
1. Эви Немет - Руководство системного администратора 5-е издание; (читайте после Шоттса).
2. Командная строка Linux Уильям Шоттс. (начинайте с этой книжки после курсов, ибо она более легкая для освоения и также есть практика на каждую команду)
Уже начиная с изучения Линукс рекомендую поставить дружелюбный дистрибутив для обучения. Есть много различных дистрибутивов, которые дружелюбны к пользователю: Ubuntu, Linux Mint - после винды будет безболезненно. Можно поставить как и на Virtual Box, так и на основную систему. Рекомендация сразу на основную, чтобы вы научились с ней работать в полном объеме.3) Программирование. Этот пункт можете уже начинать совмещать с обучением по пентесту. Но это очень важный пункт, как воздух нужен. В интернете также полно курсов по программированию на разных языках и предупрежу, большинство из них поверхностные, которые научат вас писать максимум что-то вроде этого:
JavaScript:
let hello = 'Hello World';
console.log(hello)
Языки, которые вам потребуются для начала:
1.JavaScript - не строго типизированный язык программирования(гибкий язык) , что даже облегает его изучение. Я немножко зашел в глубь и начал вместе с ним изучать HTML и CSS, для своего развития и большего углубленного понимания, как данный язык взаимодействует со страницей. Есть ресурс htmlacademy, там есть интерактивные обучающие курсы, пишите прямо в браузере, что очень полезно. Также от них хорошие курсы по всем этим трем языкам, но язык программирования только один JavaScript, HTML - язык гипертекстовой разметки, отвечающий за контент страницы и его содержания. CSS - язык каскадных таблиц, отвечающий за оформление этой разметки на языке HTML, JavaScript же взаимодействует со страницей с помощью написанных скриптов. Зачем данный язык нужен? - Возьмем например XSS уязвимость (межсайтовый скриптинг), который позволяет вставлять ваш написанный код прямо на страницу, перехватывать куки жертвы, какие-либо файлы, повысить себе права, перенаправлять жертву на сайт, подконтрольный вам и выполнять различные махинации, также эта уязвимость одна из самых распространенных и на bugbounty можно нормально получать, зная эти языки + софт Burp Suite или, к примеру xss hunter (более автоматизированная, но не гибкая, как ваши руки). Порекомендую помимо htmlacademy и их интерактива на сайте курсы от jsexpert от Евгения Калюжного, если я не ошибся в его фамилии. Очень внятно разжевывает, материала, который он разбирает - много. Также есть игра codecombat, где вы играете с помощью написания кода, она бесплатная, но можно и купить подписку.
2. Python && PHP. Курсов хороших много, найдете что вам по душе уже самостоятельно. Я вам выше привел пример курсов по js, думаю после них вы сами разберетесь, какие курсы стоит качать и где разбирают материал, а где только объясняют его поверхностно. После JS эти два языка будут даваться вам легче, не смотря на то, что они сами по себе легкие. Я на курс от codeby не ходил по python для пентестера, но уверен, что курс у них весьма хороший, так как проходил их курсы по анонимности, воды нет, объясняют и учат доходчиво. Также по темам можно посмотреть, что знания по языку вам уже будут давать в самом курсе, первоначальных знаний не нужно (не реклама ).
3.SQL - работа с базами данных. (SQL - инъекция)
4) Анонимность и безопасность. Тут, спору нет, курсы от codeby. Я смотрел много различных курсов, читал много статей. Все, что представлено в курсах Paranoid - есть в интернете, НО, вам потребуется очень много времени, чтобы собрать такой объем информации и научиться этой информацией пользоваться, они же уже все собрали и учат вас пошагово, как все настроить. Можно почитать много статей о VPN, Proxy, Whonix Gateway, научиться пользоваться различными цепочками, настроить свой браузер и систему таким образом, чтобы быть уверенным, что вы в безопасности, но я уверен, что вы найдете далеко не все детали и вещи, которые разбираются в курсах. Тем более курс первой части сейчас бесплатный, спасибо большое команде, вы можете на него залететь и начать обучаться, когда откроется новый поток.
5) Социальная инженерия. Есть много различных курсов по СИ, это своего рода психология, ты ломаешь не компьютер, а ты ломаешь человека. Человек - самое уязвимое звено. Понятно, что пока люди будут писать программы, в программах будут баги и ошибки, людям свойственно ошибаться и это абсолютно нормально. Но если научиться работать с людьми и знать, за какие ниточки потянуть - вы продвинетесь куда дальше. Есть такой человек Zaid Sabih, можно найти в интернете, преподает соц. инженерию. Курсов много, нельзя выделить что-то.
6) Пентестинг. После системного администратирования не должно возникнуть проблем с установкой Кали или Parrot на виртуальную машину или live CD. Тут уже идет ваша фантазия. Я бы предложил начать изучение Web пентеста, применение JavaScript, SQL языков для нахождения уязвимостей на веб-страницах еще на стадии изучения JavaScript, есть много вирутальных машин с настроенными серверами для обучения. Например машина Dojo. Там можно отработать свои навыки и посмотреть, как ваш код взаимодействует со страницей, также есть различные уровни сложности. Есть еще хороший ресурс portswigger, там можно обучаться бесплатно + лабораторные работы (на английском языке). Теория и практика плечом к плечу. Также ресурс rootme, задания и испытания практически на любой вкус. По пентесту курсов много, желательно систематизировать получение знаний, изучать один инструмент за другим. Не все загребать сразу, постепенно, равномерно. Также на hackerone есть много полезных материалов, к примеру отчеты об уязвимостях, на которых вы можете учиться и сами искать на ресурсах, прикрепленные к программе bugbounty различные уязвимости.
7) Английский язык. Дополнительные обучающие материалы и форумы, мануалы различного софта в основном на английском языке. Рекомендуется. Очень нравился практический учебник Т.Камяновой, много много практики после теории, рука устанет - гарантирую. Также лучше любые фильмы сериалы смотреть на спец. ресурсах, которые, к примеру, субтитры дают на русском, а говор английский. Очень полезно, через неделю будете как англичанин, если любите сериалы.
8) Умение использовать Google Dorks (гугл в помощь).
Хочу еще добавить несколько слов для тех людей, кто начал учиться IT. Верьте в себя и в свои силы. Никогда не позволяйте мыслям "я в тупике, у меня ничего не получится" завладеть вами. Если у Вас что-то не получается, вы думаете, что вы попали в тупик - идите до конца. Идите до конца, продолжайте пробовать, экспериментировать, читать доп. материалы, гуглить, искать и у вас все получится. У меня было много тупиковых ситуаций, возникали негативные мысли, но я продолжал идти и находил ответ. С первыми успехами, с первыми достижениями, как только барьер будет снят - вы почувствуете, что справились, почувствуете себя комфортно, это невероятные ощущения.
В этой сфере нужно постоянно учиться, постоянно узнавать что-то новое. Если вам не нравится учиться, если вы чувствуете, что это не ваше и вы не готовы использовать ваше драгоценное время на получение знаний и постоянно стремиться все выше и выше, познавая этот увлекательный мир, или вы не желаете постоянно учиться чему-то новому - задумайтесь еще раз, чем бы вы хотели заниматься в вашей жизни. Ибо сфера IT не стоит на месте и развивается быстрыми темпами.