
Дорожная карта для хакера-самоучки
Хакинг — это искусство использовать вещи не по назначению. Например, если пробный период программы скоро истечёт, вы можете продлить его, изменив дату компьютера на прошлую неделю. Это и есть хакинг.
Не существует «единственного правильного» способа научиться хакингу, потому что это очень широкое понятие. Поэтому цель этого руководства — задать направление, а не предложить готовый план.
Если вы считаете, что что-то стоит добавить или улучшить, пожалуйста, создайте issue.
Я считаю важным знать свои корни, так что давайте поговорим о них, не углубляясь в излишний анализ происхождения.
В 1960-х годах телефонные сети использовали набор звуков для обработки звонков. Группа людей разобралась, как всё это работает, и сумела воспроизвести звуки частотой 2600 Гц, которые использовали эти сети. Как они это сделали? Свистя в свисток, который бесплатно прилагался к хлопьям. Это занятие называлось фрикингом, а людей, которые им занимались, называли фриками.
Денни Терези, один из фриков, сказал в интервью:
«Дело было не только в том, чтобы обмануть телефонную компанию, — это был технический вызов: сможем ли мы это сделать».
Они делали это, потому что это была увлекательная задача для решения, и они хотели проверить, смогут ли её решить. Именно такова культура хакинга даже сегодня.
Если вы хотите продавать лекарства, вам понадобится лишь место для их хранения и возможность передавать покупателю то, что ему нужно. С другой стороны, если вы хотите создавать лекарства от болезней, вам придётся понять, как работает человеческое тело и всё остальное. Логично, правда? То же самое применимо и к хакингу. Если вы хотите по-настоящему хорошо взламывать что-то и создавать новые техники для этого, вы должны понимать, как это работает.
Если у вас есть информация, которая, по вашему мнению, может быть полезна другим людям, поделитесь ею через социальные сети, форумы или блоги. Это принесёт вам пользу во многих отношениях:
Будьте любопытным, много экспериментируйте, создавайте крутые вещи — в этом весь смысл, именно так всё и началось. Если вы проведёте жизнь, используя техники и инструменты, разработанные другими людьми, какой смысл выбирать такой крутой путь?
Дорожная карта содержит несколько хороших ресурсов, а также темы, которые вам нужно будет гуглить и изучать самостоятельно. Это не просто «пошаговое руководство» и не сборник ресурсов.
Читайте и смотрите материалы, записывайте термины, которые не понимаете, гуглите их и изучайте по крайней мере по 3 разным источникам; снова записывайте непонятные термины и повторяйте процесс. Почему минимум 3 источника? Потому что информация от одного автора ограничена тем, что знает он сам; получение её от трёх разных авторов даст вам лучшее понимание предмета с разных точек зрения.
Я буду называть эту методику «рекурсивное обучение» на протяжении всего руководства.
У хакинга много областей: например, реверс-инжиниринг, веб-хакинг, взлом автомобилей и т.д. Но некоторые вещи полезны независимо от области, так что сначала поговорим о них.
Это поможет вам глубже понять машину, с которой вы будете проводить по несколько часов каждый день, а также обрести ценную перспективу, которую я не могу объяснить словами.
Помните, вам нужно знать только основы, потому что эти знания будут развиваться, если вы будете любопытны и будете задавать вопросы вроде: «Что происходит, когда вы удаляете файл? Если они остаются на устройстве, как освобождается место? Если они действительно исчезают, как программы восстановления находят их снова?»
Ресурсы:
Понимание того, как работает интернет (и другие сети), необходимо, потому что сети повсюду.
Темы для рекурсивного обучения:
IP address, MAC address, port, client & server, dns, tcp, udp, proxy, tls/ssl, vpn
Ресурсы:
Вы проведёте много времени в терминале, будь то запуск программ или доступ к удалённым серверам. Вы можете использовать любую операционную систему, но я рекомендую системы на базе Linux просто потому, что в них можно изменить всё, а это и есть суть хакинга. Ubuntu — отличный дистрибутив Linux для новичков.
Чтобы понимать, как работает то или иное программное обеспечение (это упрощает его взлом), и создавать собственное ПО для хакинга и других задач.
Существует множество языков программирования, но я посоветую начать с Python, потому что он прост и позволяет делать почти всё: от создания детектора лиц до веб-сайта.
Я написал статью о том, с чего начать, — прочитайте.
Существуют некоторые концепции, которые встречаются практически в каждой статье, связанной с кибербезопасностью, и они полезны в большинстве областей.