Web-хакинг
Начнем с Web-хакинга. Именно эти языки дают жизнь большинству различных Bug Bounty — программ (если мы рассматриваем законную сторону медали), и похволяют неплохо заработать на своих знаниях.
HTML
По своей сути, HTML не является языком программирования. Это язык разметки. Однако, учитывая 5 версию, он позволяет писать простенькие online 3D игры.
В любом случае, это основа основ всего Web-хакинга, даже ради уважения к себе его было бы неплохо знать. Очень часто встречаются довольно крупные сайты, содержащие в семе HTML-инъекции, что тоже нельзя скидывать со счетов.
JavaScript
Естественно! JavaScrit — это самый популярный язык в мире для клиентского программирования. Через него можно взаимодействовать с локальным компьютером потенциальной жертвы.
Фактически, это лучший язык программирования для хакеров и экспертов по безопасности для разработки хакерских программ для межсайтовых скриптов, и должен быть в приоритете на изучение. Ведь понимание логики кода JavaScript может помочь найти недостатки web-приложений как в интерфейсных так и фоновых компонентах.
SQL
Сайты, в основном, хранят информацию в базах данных. И так, как SQL участвует в запросах на получение этой информации, он становится хорошим объектом для изучения и для пентестера тоже. Уже никого не удивишь таким громким названием, как SQL-инъекция, однако они до сих пор существуют и до сих пор опасны, особенно для владельцев бизнес-контента.
Для нас же главное знать как общаться с базами данных на «одном языке», чтобы, при отсутствии фильтрации, воспользоваться этими знаниями, и получить недоступную для глаз информацию.
PHP
На данный момент, это самый популярный язык динамического программирования, используемый, в основном, на популярных CMS, например WordPress. Так что знания этого языка дадут возможность найти уязвимость в такой системе. А, учитывая, что это язык сценариев на стороне сервера, то им можно пользоваться для разработки программ для взлома самого сервера.
Написания эксплойтов
Перейдем ко второму большому разделу хакерства — написание эксплойтов. Так как люди мы грамотные и ленивые, монотонную работу из раза в раз делать никто не будет, поэтому разберем языки для написания эксплойтов:
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 абсолютно открыт, гибок и полностью независим от машины, что делает его неплохой целью к изучению для хакера.
Можно определить свой собственный синтаксис и создать любую понравившуюся парадигму программирования и включить ее в свои программы.
Реверс инжиниринг
Реверс инжиниринг используется в взломе программ. Обычно — это защита от копирования, лицензии и тд. Но, бывает полезным обратить эти знания против вредоносного ПО. Например бывает полено узнать, какие действия ОНО собирается выполнить на компьютере. Именно таким способом и остановили нашествие Wannacry
И, естественно, самым основным языком для этих манипуляций является язык Ассемблера. Все это довольно не просто, инструкции у каждого процессора разные, и, скорее всего, надо хорошенько фанатеть всем этим делом, чтобы связаться с ним, однако, в итоге, все всем воздается с полна.