Как стать хакером: гайд по основам для новичков
Хакерство - это поиск уязвимостей в сети или компьютере с целью получения доступа. Стать хакером непросто, и в этой статье мы затронем основы.
Чтобы стать хакером, необходимы глубокие знания языков программирования, методов взлома, поиска уязвимостей, устройства сетей, операционных систем и проч. Также у вас должен быть творческий тип мышления. Вы должны быстро адаптироваться под ситуацию, находить нестандартные решения, проявлять креативность.
Если описанные выше навыки можно развить со временем, то чтобы понять, например, устройство MySQL или научиться работать с PGP-шифрованием, придется много учиться. И долго.
Чтобы стать хакером, вам нужно:
Изучить и использовать UNIX-систему, например, Ubuntu или MacOS
Изначально UNIX-системы были предназначены для программистов, разрабатывающих ПО, а не для пользователей, которые никак не относятся к сфере IT. UNIX-системы - это системы, на которых стоит почти весь Интернет, т. к. в качестве сервера в основном используют их же (чаще всего Debian и Ubuntu). Вы не можете стать хакером, не изучив их и не научившись работать с терминалом.
Для пользователей Windows
Если вы используете Windows, для вас есть хорошая новость: не надо удалять текущую систему и форматировать диск. Есть несколько вариантов работы с Linux:
- Изучите VirtualBox (программа-эмулятор для операционной системы). Изучив его, вы сможете запускать операционную систему в операционной системе. Звучит страшно, но программа бывает очень полезна.
- Установите Linux рядом с Windows. Если вы всё сделаете правильно, загрузчики систем не будут конфликтовать. Делается это довольно просто: есть много мануалов в Интернете.
Изучить язык разметки HTML
Если вы ещё не знакомы с программированием, тогда я вообще не понимаю, что вы делаете тут тогда у вас есть отличная возможность начать свой путь с изучения Hyper Text Mark-Up Language. Независимо от того, что вы видите на сайте, знайте, что всё это HTML.
Приведу пример использования HTML, пусть он и немного связан с PHP. В начале 2015 года была обнаружена уязвимость в теме WordPress, позволяющая закачивать производные (исполнительные) файлы на сервер. Файл, в котором была найдена уязвимость - admin/upload-file.php. Вот он:
<?php //Upload Security $upload_security = md5($_SERVER['SERVER_ADDR']); $uploaddir = '../uploads/'; if($_FILES): foreach($_FILES as $file): $file = $uploaddir . basename($file['name']); if (move_uploaded_file($_FILES[$upload_security]['tmp_name'], $file)) { echo "success"; } else { echo "error".$_FILES[$upload_security]['tmp_name']; } endforeach; endif; ?>
Чтобы сделать форму отправки для этого файла, нужно знать HTML. Отправив файл, который, к примеру, вытаскивает все пароли или даёт доступ к базе данных, вы вольны делать с веб-сервисом всё, что вам угодно.
Итак, знание HTML нужно для того, чтобы:
Изучить несколько языков программирования
Как мы все знаем, чтобы нарушать правила, нужно для начала знать их. Этот же принцип работает для программирования: чтобы взломать чей-то код, вы должны знать, как работают языки программирования, и самому уметь программировать. Некоторые из наиболее рекомендуемых ЯП для изучения:
- Python : это, пожалуй, самый лучший язык для веб-разработки. На нём написаны два крупных фреймворка, на которых создано огромное кол-во веб-приложений, это Flask и Django. Язык хорошо построен и задокументирован. Самое главное, что его очень просто выучить. К слову, много разработчиков используют Python для создания простой и полной автоматизации.
- C++ : язык, использующийся в промышленном программировании. Его преподают в школах, вузах. На нём пишутся сервера. Рекомендую начать изучение языков с него, т. к. он содержит в себе все принципы ООП. Научившись работать с ним, вы с лёгкостью освоите другие языки.
- JavaScript, JQuery : в основном, практически все сайты используют JS и JQuery. Необходимо знать, что на этих сайтах зависит от JS, например, формы для ввода паролей. Ведь некоторые сайты не дают выделить и скопировать некоторую информацию, не дают скачать файл или просмотреть содержимое, однако, чтобы сделать это, достаточно отключить JS в браузере. Ну а чтобы отключить JavaScript, нужно знать: а) в каких ситуациях работа (защита) сайта зависит от него; б) как JavaScript подключается и какими способами можно блокировать работу скриптов.
- SQL : самое интересное. Все пароли, личные данные, хранятся в базах данных, написанных на SQL. Самая распространённая система управления БД - MySQL. Чтобы понять, как использовать MySQL-инъекцию, нужно знать, что такое MySQL-инъекция. Чтобы уловить суть MySQL-инъекции, нужно знать, что такое MySQL-запросы, каков синтаксис этих запросов, каково устройство базы данных, как хранятся данные, что такое таблицы и т. д.
Изучить устройства сетей
Вы должны чётко понимать устройства сетей и принципы их работы, если хотите стать хакером. Важно понять, как создаются сети, понять различие между протоколами TCP/IP и UDP и проч. Узнайте, какой сетью пользуетесь вы. Научитесь настраивать её. Выясняйте возможные векторы атаки.
Имея глубокие знания о различных сетях, вы сможете использовать их уязвимости. Также вам необходимо понять устройство и принцип работы веб-сервера и веб-сайта.
Изучить криптографию
Это неотъемлемая часть обучения. Необходимо понимать алгоритмы различных шифров, например, SHA-512, алгоритм OpenSSL и проч. Также нужно разобраться с хешированием. Криптография используется везде: пароли, банковские карты, криптовалюты, торговые площадки и проч.
Kali Linux: некоторый полезный софт
- NMAP :- Nmap (“Network Mapper”) бесплатная open-source программа, которая является предустановленной в Kali. Написана Gordon Lyon (также известен под псевдонимом Fyodor Vaskovich). Она нужна для обнаружения хостов и различных сервисов, создавая таким образом "карту сети". Она используется для проверки сети или аудита безопасности, для быстрого сканирования больших сетей, хотя она отлично работает с одиночными хостами. Программное обеспечение предоставляет ряд функций для исследование компьютерных сетей, включая обнаружение узлов и операционной системы. Nmap использует необработанные IP-пакеты чтобы определить, какие хосты доступны в сети, какие службы (имя и версия приложения) эти хосты предлагают, какие ОС они запускают, какие типы фильтров пакетов/файрволлы используют, а также десятки других характеристик.
- Aircrack-Ng :- Aircrack - это одна из самых популярных программ для взлома WEP/WPA/WPA2 протокола. Комплект Aircrack-ng содержит инструменты для захвата пакетов и "рукопожатий", деавторизации подключённых пользователей, создания трафика и инструментов для брутфорса сети и атак по словарю.
Заключение
В этой статье мы разобрались в основах, без которых вы вряд ли сможете стать хакером. К слову о трудоустройстве. Как правило, люди, занимающиеся информационной безопасностью либо работают фрилансерами, выполняя заказы частных лиц, либо работают на компанию, обеспечивая безопасность хранящихся данных, выполняют работу системного администратора, etc.