Что нужно знать хакеру в 2019 году?
1. Введение.
2. Я зыки программирования для хакера
2.1 Web-хакниг
2.2 Написания эксплойтов
2.3 Реверс инжиниринг
3. Топовые инструменты4. Заключение
1. Введение
На дворе 21 век. Век войны за информацию и вычислительные ресурсы. И с каждым годом мир it-технологий все динамичнее. Становится очень сложно следить за самыми трендовыми новациями. Каждый день выходят новые технологии, устройства, не говоря уже о разработках.
Если смотреть со стороны хакера (как бы СМИ не испортило это слово, я все же придерживаюсь его исторического значения), особенно начинающего, то тут появляется неопределенность: какое направление для развития выбрать? Что читать, учить и практиковать, чтобы эта область знаний не потеряла актуальность через 2-3 года?
Я постарался собрать языки программирования и инструменты, которые смело можно брать за основу своих знаний. Маловероятно, что они канут в лету в ближайшие года, так как идет их постоянное обновление, а некоторые можно назвать во истину классикой современности.
Данная статья — не гайд по тому, как стать хакером, или основопологающим маетриалом для взломщика. Это небольшая шпаргалка, которая, я надеюсь, поможет как начинающим хакерам, так и даст толчок для более опытных.
2. Языки программирования для хакера
Итак, давай посмотрим какие языки программирования актуальны на 2019 год.
2.1 Web-хакинг
Начнем с Web-хакинга. Именно эти языки дают жизнь большинству различных Bug Bounty — программ (если мы рассматриваем законную сторону медали), и похволяют неплохо заработать на своих знаниях.
HTML
По своей сути, HTML не является языком программирования. Это язык разметки. Однако, учитывая 5 версию, он позволяет писать простенькие online 3D игры.
В любом случае, это основа основ всего Web-хакинга, даже ради уважения к себе его было бы неплохо знать. Очень часто встречаются довольно крупные сайты, содержащие в семе HTML-инъекции, что тоже нельзя скидывать со счетов.
JavaScript
Естественно! JavaScrit — это самый популярный язык в мире для клиентского программирования. Через него можно взаимодействовать с локальным компьютером потенциальной жертвы.
Фактически, это лучший язык программирования для хакеров и экспертов по безопасности для разработки хакерских программ для межсайтовых скриптов, и должен быть в приоритете на изучение. Ведь понимание логики кода JavaScript может помочь найти недостатки web-приложений как в интерфейсных так и фоновых компонентах.
SQL
Сайты, в основном, хранят информацию в базах данных. И так, как SQL учавствет в запросах на получение этой информации, он становится хорошим объектом для изучения и для пентестера тоже. Уже никого не удивишь таким громким названием, как SQL-инъекция, однако они до сих пор существуют и до сих пор опасны, особенно для владельцев бизнес-контента.
Для нас же главное знать как общаться с базами данных на «одном языке», чтобы, при отсутствии фильтрации, воспользоваться этими знаниями, и получить недоступную для глаз информацию.
PHP
На данный момент, это самый популярный язык динамического программирования, используемый, в основном, на популярных CMS, например WordPress. Так что знания этого языка дадут возможность найти уязвимость в такой системе. А, учитывая, что это язык сценариев на стороне сервера, то им можно пользоваться для разработки программ для взлома самого сервера.
2.2 Написания эксплойтов
Перейдем ко второму большому разделу хакерства — написание эксплойтов. Так как люди мы грамотные и ленивые, монотонную работу из раза в раз делать никто не будет, поэтому разберем языки для написания эксплойтов:
C
Мать всего языка программирования, C — самый важный язык программирования, используемый при создании Linux и Windows.
Таким образом, изучение программирования на С поможет белому хакеру понять, как работают эти системы, например, как процессор и память взаимодействуют друг с другом.
Тем не менее, это лучший язык программирования для написания эксплойтов и разработки. Ведь низкий уровень C позволяет экспертам по безопасности разрабатывать хакерские программы для доступа к системному оборудованию и управления им, а также для ресурсов более низкого уровня.
C ++
C ++ — один из лучших языков программирования для взлома программного обеспечения, распространяется по закрытой лицензии и требует платной активации.
Как и C, C ++ также обеспечивает низкоуровневый доступ к системе и помогает анализировать машинный код и обходить схемы активации. Многие современные хакерские программы построены на C ++.
Python
В отличие от любого другого языка программирования, перечисленного здесь, Python является самым простым в изучении.
Это наиболее используемый язык для написания эксплойтов, ведь Python является самым простым языком программирования для написания скриптов автоматизации, благодаря предварительно созданным библиотекам с некоторыми мощными функциями.
Кроме того, Python «апускается без компиляции, что делает его незаменимым для взлома веб-серверов.
Настоятельно рекомендуется изучать программирование на Python Socket, потому что оно очень помогает в создании эксплойтов.
Ruby
Это простой, но самодостаточный объектно-ориентированный язык программирования, используемый в веб-разработке.
Ruby очень полезен в написании эксплойтов.
Он используется для скриптов meterpreter, да и сам Metasploit Framework написан на Ruby.
Java
Изначально Java был выпущен под лозунгом «пиши один раз, запускай где угодно», что должно было подчеркнуть ее кроссплатформенные возможности. Ведь как только вы напишите свои программы на Java, вы сможете запускать их на любой платформе, поддерживающей Java.
LISP
Lisp является вторым старейшим языком программирования высокого уровня, который до сих пор широко используется.
LISP абсолютно открыт, гибок и полностью независим от машины, что делает его неплохой целью к изучению для хакера.
Можно определить свой собственный синтаксис и создать любую понравившуюся парадигму программирования и включить ее в свои программы.
2.3 Реверс инжиниринг
Реверс инжиниринг используется в взломе программ. Обычно — это защита от копирования, лицензии и тд. Но, бывает полезным обратить эти знания против вредоносного ПО. Например бывает полено узнать, какие действия ОНО собирается выполнить на компьютере. Именно таким способом и остановили нашествие Wannacry
И, естественно, самым основным языком для этих манипуляций является язык Ассемблера. Все это довольно не просто, инструкции у каждого процессора разные, и, скорее всего, надо хорошенько фанатеть всем этим делом, чтобы связаться с ним, однако, в итоге, все всем воздается с полна.
3. Топовые инструменты
У каждого более и менее состоявшегося хакера есть набор излюбленных инструментов. Выпускают дистрибутивы ОС, которые специально направлены на этичный хакинг и тестирование на проникновение.
Утилит на данный момент огромное количество, что-то разработано недавно, чем-то уже и не пользуются. Но есть бескомпромиссные претенденты, которые должен знать каждый (как минимум для кругозора):
- Metasploit
- Nmap
- Wireshark
- Aircrack-ng
- .John the Ripper
- Nessus
- Burpsuite
- MSFVenom
- Fiddler
- Cain and Abel
Эта топ-подборка (с моей легкой руки), конечно не претендует на место в лидерах сравнений, но по моему опыту знать как они работают должны все!
4. Заключение
Статья написана, опираясь на опыт и тенденции изменений мира it. Конечно, тут собрано не все, и чье-то любимое детище не было упомянуто, однако весь комплекс знаний и весь арсенал пентестера охватить невозможно не в статье, не в голове. Это лишь скромная подборка.
Отдельно все же хотел еще упомянуть язык программирования Perl, который не вошел в обзор. Чисто для интереса было бы неплохо пробежаться глазами по инструкциям и мануалу.