Kali Linux

Kali Linux

by x159x


Доброго времени суток читатели канала х159х. Сегодня расскажу о Операционной Системе (ОС\OS) Kali Linux. Впереди длинная, НО познавательная статья о языках программирования для пользования ОС Kali Linux.

Система сама собою в представлении множества молодых людей выступает как хакерская, так оно и есть! И с самого начала и пожалуй, наверное до продвинутого пользователя вас будут мучать массы вопросов иногда даже детских и глупых, настройка системы вызывает вопросы как у продвинутых пользователей, так тем более и у новичков, я сам только начал изучение данной ОС и этому правда нужно посвятить очень много времени,чтоб быть хотя бы уверенным пользователем.


1. Основы языков программирования

1.1 HTML

На самом деле, HTML — это даже не язык программирования, а язык разметки, т.е. он используется, грубо говоря, для оформления текста.

Как он может помочь начинающему хакеру? Приведу мой личный пример. У одного из провайдеров Интернета, услугами которого я пользовался (местный провайдер с домовой городской сетью), был (может и сейчас есть — не знаю, давно ушёл от этого провайдера) свой сайт и свои собственные сервисы для пользователей. В начале 2000х это было актуально — Интернет-трафик (внешний) был платный, поэтому все старались пользоваться локальными ресурсами. Эти ресурсы, безусловно, были очень популярны. Один из самых популярных — файлообменник. Из-за постоянных злоупотреблений пользователей (например, «раздетая» с помощью Фотошопа одноклассница Маша) владелец файлообменника ввёл обязательный пароль. Этот пароль генерировался автоматически, и он не мог содержаться в комментарии к файлу. Так вот, анализ формы для отправки файла и некоторые эксперименты с ней показали, что пароль содержится в одном из скрытых полей формы, которое, естественно, можно редактировать. На сервере этот пароль ничем уже не проверялся. В результате, сохранив форму для загрузки файла себе на компьютер и чуть отредактировав её, удалось сделать так, чтобы файлы можно было опять загружать без пароля. Этой формой мог пользоваться любой клиент провайдера. Позже провайдер «закрыл» дыру — стал проверять наличие пароля. Тем не менее, такими же простыми манипуляциями удалось сделать так, что файлы загружались всегда со «стандартным» паролем («0000», вроде) плюс этот пароль можно было записывать в комментарий к файлу.

Те, кто знаком хотя бы с основами HTML, прекрасно понял, о чём я говорю. Для остальных — это просто китайская грамота.

Ещё один свеженький пример: 11 февраля 2015 года была обнаружена дыра в теме WordPress, которая позволяет закачивать производные файлы на сервер. Уязвимой в этой теме является файл admin/upload-file.php. Я нашёл эту тему и нашёл этот файл. Файл совсем короткий, поэтому я приведу его полностью:

Этот файл на PHP, но, чтобы воспользоваться этой уязвимостью, нужно сделать форму отправки файла именно на HTML.

Итак, HTML нужно знать, чтобы: а) искать уязвимости; б) использовать уязвимости. Есть и более продвинутые задачи, для выполнения которых нужно знать HTML, но остановимся на этом.


1.2 PHP

Выше я привёл содержание крошечного файла, написанного на PHP. Этот файл содержит такую брешь, что уже не важно, насколько хорошо настроен сервер, есть ли файловый файервол и т.д. Если кто-то использует эту тему — то сайт этого человека в полной нашей власти (а если сервер/хостинг криво настроены, то весь компьютер под нашим управлением). Но ведь чтобы это понять, нужно хоть чуть-чуть знать PHP.

Чтобы использовать готовые эксплойты, которые написал кто-то другой, опять же, нужно знать хотя бы основы PHP, чтобы знать куда записать адрес сайта и другие переменные величины, и как вообще запустить этот скрипт.


1.3 MySQL

Обычно, самое интересное находится в базах данных. Чтобы понять, как использовать MySQL-инъекцию, нужно знать, что такое MySQL-инъекция. Чтобы уловить суть MySQL-инъекции, нужно знать, что такое MySQL-запросы, каков синтаксис этих запросов, каково устройство базы данных, как хранятся данные, что такое таблицы и т.д.

Вообще, первые три пункта, а также представления об устройствах веб-сайтов, проще всего постичь, если учиться не «взламывать» веб-сайты, а их создавать. Учитесь с целью сделать что-то позитивное. В этом есть парадокс, ведь точно также, чтобы научиться хорошо защищать веб-приложения, нужно учиться их взламывать! Только сумев посмотреть на веб-технологии глазами взломщика, можно получить бесценный опыт. Точно также и с сайтами — простое изучение функций и основ языка мало пригодиться. Нужно стать веб-разработчиком, чтобы понять всю изнанку веб-сайта.


1.4 JavaScript, JQuery

Хотя бы нужно знать, что на веб-сайтах управляется, зависит от JavaScript. Ведь на некоторых сайтах, которые на дают выделить (и/или скопировать) содержимое, не дают скачать файл или не дают посмотреть содержимое достаточно просто отключить JavaScript, чтобы всё это стало возможным.

Ну а чтобы отключить JavaScript, нужно знать: а) в каких ситуациях работа (защита) сайта зависит от него; б) как JavaScript подключается и какими способами можно блокировать работу скриптов.

Можно привести тонну примеров неудачной защиты форм с помощью JavaScript (мне запомнилась форма на сайте ФСБ РФ — чтобы её отправить, там обязательно нужно заполнить стопятьсот полей (паспорт, прописка и т.д.), но самыми простыми манипуляциями это «ограничение» можно обойти (это было давно, вполне возможно, они исправили форму обратной связи)).



2. Основы устройства сетей, работы веб-серверов и веб-сайтов

2.1 Устройство сетей

Про устройство сетей обязательно нужно знать: что такое IP адрес, что он позволяет идентифицировать пользователя Интернета, как спрятать свой IP, что такое прокси, что такое TOR, что такое домен, порты и т.д.

Вышеперечисленное нужно знать на первых порах хотя бы для того, чтобы понимать базовые компьютерные тексты и инструкции. А ещё для осознания факта, что анонимность в интернете — это вещь эфемерная.

Продвинутые знания о построении сетей в дальнейшем помогут проводить результативные сканирования с помощью специальных программ.

2.2 Понимание устройства и работы веб-сервера

Как и в предыдущих пунктах, начну с простого примера (кстати, совсем недавнего). При посещении одного из серверов, было обнаружено, что настройки сервера позволяют просматривать содержимое каталогов (листинг файлов). На сервере был найден phpMyAdmin, но стандартные пароли к нему не подходили. Блуждая по каталогам в попытке найти уязвимые скрипты (там самописные скрипты для обработки записей в больницу и раздачи «номерков») был найден текстовый (!) файл содержащий одну строчку с двумя словами, разделёнными запятой. Как оказалось, это и был логин с паролем для phpMyAdmin. База данных, как говориться, наша из-за клинической глупости разработчика, но вот для записи своего файла на сервер понадобились знания об этом сервере. Например, нужно знать абсолютный путь, куда будет произведена запись шела. Чтобы знать абсолютный путь, нужно хотя бы знать структуру каталогов сервера Apache.

To be continued...





Report Page