
Дорожная карта для хакера-самоучки
Хакинг — это искусство использовать вещи не по назначению. Например, если пробный период программы скоро истечёт, вы можете продлить его, изменив дату компьютера на прошлую неделю. Это и есть хакинг.
Не существует «единственного правильного» способа научиться хакингу, потому что это очень широкое понятие. Поэтому цель этого руководства — задать направление, а не предложить готовый план.
Если вы считаете, что что-то стоит добавить или улучшить, пожалуйста, создайте issue.
Я считаю важным знать свои корни, так что давайте поговорим о них, не углубляясь в излишний анализ происхождения.
В 1960-х годах телефонные сети использовали набор звуков для обработки звонков. Группа людей разобралась, как всё это работает, и сумела воспроизвести звуки частотой 2600 Гц, которые использовали эти сети. Как они это сделали? Свистя в свисток, который бесплатно прилагался к хлопьям. Это занятие называлось фрикингом, а людей, которые им занимались, называли фриками.
Денни Терези, один из фриков, сказал в интервью:
«Дело было не только в том, чтобы обмануть телефонную компанию, — это был технический вызов: сможем ли мы это сделать».
Они делали это, потому что это была увлекательная задача для решения, и они хотели проверить, смогут ли её решить. Именно такова культура хакинга даже сегодня.
Если вы хотите продавать лекарства, вам понадобится лишь место для их хранения и возможность передавать покупателю то, что ему нужно. С другой стороны, если вы хотите создавать лекарства от болезней, вам придётся понять, как работает человеческое тело и всё остальное. Логично, правда? То же самое применимо и к хакингу. Если вы хотите по-настоящему хорошо взламывать что-то и создавать новые техники для этого, вы должны понимать, как это работает.
Если у вас есть информация, которая, по вашему мнению, может быть полезна другим людям, поделитесь ею через социальные сети, форумы или блоги. Это принесёт вам пользу во многих отношениях:
Будьте любопытным, много экспериментируйте, создавайте крутые вещи — в этом весь смысл, именно так всё и началось. Если вы проведёте жизнь, используя техники и инструменты, разработанные другими людьми, какой смысл выбирать такой крутой путь?
Дорожная карта содержит несколько хороших ресурсов, а также темы, которые вам нужно будет гуглить и изучать самостоятельно. Это не просто «пошаговое руководство» и не сборник ресурсов.
Читайте и смотрите материалы, записывайте термины, которые не понимаете, гуглите их и изучайте по крайней мере по 3 разным источникам; снова записывайте непонятные термины и повторяйте процесс. Почему минимум 3 источника? Потому что информация от одного автора ограничена тем, что знает он сам; получение её от трёх разных авторов даст вам лучшее понимание предмета с разных точек зрения.
Я буду называть эту методику «рекурсивное обучение» на протяжении всего руководства.
У хакинга много областей: например, реверс-инжиниринг, веб-хакинг, взлом автомобилей и т.д. Но некоторые вещи полезны независимо от области, так что сначала поговорим о них.
Это поможет вам глубже понять машину, с которой вы будете проводить по несколько часов каждый день, а также обрести ценную перспективу, которую я не могу объяснить словами.
Помните, вам нужно знать только основы, потому что эти знания будут развиваться, если вы будете любопытны и будете задавать вопросы вроде: «Что происходит, когда вы удаляете файл? Если они остаются на устройстве, как освобождается место? Если они действительно исчезают, как программы восстановления находят их снова?»
Ресурсы:
Понимание того, как работает интернет (и другие сети), необходимо, потому что сети повсюду.
Темы для рекурсивного обучения:
IP address, MAC address, port, client & server, dns, tcp, udp, proxy, tls/ssl, vpn
Ресурсы:
Вы проведёте много времени в терминале, будь то запуск программ или доступ к удалённым серверам. Вы можете использовать любую операционную систему, но я рекомендую системы на базе Linux просто потому, что в них можно изменить всё, а это и есть суть хакинга. Ubuntu — отличный дистрибутив Linux для новичков.
Чтобы понимать, как работает то или иное программное обеспечение (это упрощает его взлом), и создавать собственное ПО для хакинга и других задач.
Существует множество языков программирования, но я посоветую начать с Python, потому что он прост и позволяет делать почти всё: от создания детектора лиц до веб-сайта.
Я написал статью о том, с чего начать, — прочитайте.
Существуют некоторые концепции, которые встречаются практически в каждой статье, связанной с кибербезопасностью, и они полезны в большинстве областей.
Темы для рекурсивного обучения:
phishing, ddos and dos attack, website crawling, encoding and encryption, password cracking, login bruteforcing, man in the middle attack
Если вы прошли все основы, особенно основные концепции хакинга, возможно, у вас уже появился интерес к чему-то конкретному. Если нет, я перечислю некоторые области, связанные с кибербезопасностью; погуглите те, которые привлекут ваше внимание:
Как только вы найдёте то, что интересует вас больше всего, потратьте один день на исследование того, с чего начать и какие ресурсы для этого лучше всего. На следующий день просто начните и не прекращайте учиться — всё встанет на свои места.
Кроме того, сделайте вот что:
Не буду вас разогревать, но разбогатеть можно за один день, легально.
У вас есть навыки? Занимайтесь программами bug bounty или отправляйте уязвимости на такие платформы, как Zerodium.
У вас есть навыки и качественные публичные работы? Занимайтесь фрилансом или начните откликаться на вакансии.
Примечание: Эти инструкции предназначены только для тех, кто уже твёрдо решил работать в сфере технологий.
Если вы учитесь в школе, хорошо учите естественные науки и математику. Эти знания жизненно важны. Не зацикливайтесь на оценках, если поступление в ближайший колледж не будет сложным. Остальное время проводите с друзьями, занимайтесь спортом и оттачивайте свои навыки. Первые два пункта обязательны.
Если вы в колледже, уделяйте больше времени прокачке своих технических навыков. Вам нужно лишь сдать экзамены и получить диплом; оценки не будут иметь никакого значения при поиске работы. Если вы сделали все три вещи, которые я упомянул для школьных лет, — к этому моменту вы будете здоровым, общительным и способным человеком. Если вы уже облажались с одной или несколькими из этих трёх вещей, ничего страшного — вы можете исправить это сейчас, но сделайте это как можно скорее.
Окей, как вы пришли к такому выводу? Вы получили такую обратную связь на нескольких недавних собеседованиях? Вы не понимаете ни слова, когда разговаривают два «эксперта» в вашей области?
Или вам просто так кажется? Часто это лишь ощущение, и на самом деле это показатель того, что у вас всё хорошо. Эффект Даннинга — Крюгера хорошо это объясняет:
Разделите свой день на 3 части:
Выгорание случается, когда вы либо работаете слишком долго, либо долго занимаетесь одним и тем же. Если каждый день учиться новому и веселиться, выгорание вам не грозит.
Этот доклад Харуна Мира очень хорошо решает эту проблему: You and your research. Это адаптированная для хакинга версия оригинального доклада «You and your research», прочитанного студентам естественно-научных специальностей доктором Ричардом В. Хэммингом.
Возможно, вам также стоит прочитать мой блог о творчестве, неуверенности в себе и выдающейся работе.
Застряли в фазе, когда знаете, что у вас есть важные дела, но никак не можете их сделать? Не хватает мотивации даже начать, вы быстро теряете фокус или просто ничего не делаете весь день, а потом чувствуете себя плохо?
Дайте своему мозгу понять, как приятно завершать дела, начав с минимума. Создайте список задач из этих 4 пунктов:
Всё сделали? Круто, теперь можете смело тратить время впустую — вы это заслужили. Следование этому списку заставит вас почувствовать одно из двух:
Если это второй вариант, разбейте свои «важные дела» на более мелкие задачи и составьте из них список. Вот шаблон, который я сделал для друга, пишущего исследовательскую работу для PhD:

Если это первый вариант и вы уже начинаете чувствовать себя хорошо, когда делаете дела, постепенно увеличивайте количество статей и отжиманий, расширяйте список занятий. Вскоре вы почувствуете желание взяться за важную задачу — разбейте её на части, как я уже говорил, и начинайте.
Помните: минимум одна задача каждый день, никогда ноль, иначе вы откатитесь туда, откуда начали, — к безделью. Не бойтесь: если вы в постели, смотрите мемы в 23:00 и за весь день ничего не сделали, отожмитесь один раз и отметьте это в списке.
Легко, правда? Начинайте прямо сейчас.