26 апреля, 2024

Основы Linux. Часть 15 (Создание шифрованного туннеля к MySQL)

Содержание:

С возвращением, мои хакеры!

Продолжаем формировать базовые навыки обращения с Linux, необходимые для взлома. Сегодня разберем вопрос о создании безопасного «туннеля» к MySQL.

Разумеется, методы, которые мы будем здесь рассматривать, могут применяться к любому приложению. Но поскольку MySQL является критически важным приложением для большинства систем с Linux, а также учитывая, что незашифрованные сессии на сервере базы данных MySQL могут быть легко распознаны, то существует риск, что чувствительная ​​конфиденциальная информация может быть утеряна. В этой статье мы будем использовать в качестве примера собственный сервер базы данных.

Это, однако, вовсе не означает, что зашифрованный туннель не может быть взломан. Его можно взломать, как впрочем, и что-то другое, но это более трудная задача. Если мы оставим данные незашифрованными, то любой «мамкин хакер» со снифером может увидеть и перехватить наш трафик, который идет к базе данных.

Мы будем использовать SSH или Secure Shell для шифрования трафика. В каждом дистрибутиве Linux есть сервер и клиент SSH, в отличие от Windows, где вам придется выбрать и загрузить какой-нибудь SSH-клиент, например, такой, как PuTTY. BackTrack имеет встроенный OpenSSH от BSD, поэтому у нас нет необходимости загружать и устанавливать что-то, чтобы создать шифрованное соединение между нашим клиентом и сервером.

Как и многие другие приложения в Linux, работа SSH построена на архитектуре клиент-сервер. Поэтому, чтобы успешно создать подключение, мы должны запустить как сервер, так и клиент.

Шаг 1. Запустите BackTrack и MySQL

MySQL в принципе может использовать SSH, но для этого придется его определенным образом настроить и скомпилировать. Поскольку стандартная конфигурация MySQL, которая используется в нашем BackTrack, не имеет встроенного SSH, то нам придется сделать финт ушами и использовать SSH, встроенный в саму операционную систему, и только затем подключиться к MySQL. Это создаст зашифрованный «туннель» к нашей базе данных, чтобы хакеры не могли просматривать содержание передач к базе данных или из нее.

Читать также:  Основы Linux. Часть 20 (файлы устройств)

В нашем примере мы создадим подключение между двумя установленными системами BackTrack. В прошлой статье по Основам Linux мы разбирали, как запустить MySQL из графического интерфейса, но во многих дистрибутивах Linux у вас не будет такой шикарной возможности, поэтому давайте запустим MySQL из командной строки.

bt > mysql_safe start

Убедимся, что она запустилась, проверив все запущенные процессы и отфильтровав нужные (grep) по фразе «mysql»:

bt > ps aux | grep mysql

Шаг 2. Генерация ключей

Чтобы SSH мог создать свой зашифрованный туннель, он должен для начала создать пару ключей: закрытый (приватный) и открытый ключ. Эти ключи будут использоваться для шифрования и последующего дешифрования трафика, проходящего по туннелю. Для генерации ключей нужно набрать в консоли:

bt > sshd-generate

Как мы видим, SSH сгенерировал пару ключей, благодаря которым теперь он может сделать шифрованный туннель. На этом сервере мы создали пользователя с именем «nullbyte», которого и будем использовать для подключения к этой машине.

Шаг 3. Запустите SSH

С клиентской машины мы можем подключиться к SSH-серверу, набрав:

ssh -L3316: 127.0.0.1: 3306 [email protected]

Вот разбор команды, которую мы вводили выше:

  • ssh — команда клиента
  • -L3316 прослушивает порт 3316
  • 127.0.0.1 — это адрес расположения демона клиента SSH на клиентской машине
  • 3306 — это порт MySQL по умолчанию, по которому мы хотим установить туннель к серверной машине
  • nullbyte — пользователь в операционной системе на сервере
  • 192.168.1.112 — IP-адрес сервера MySQL

Выполнив эту команду, мы получим подключение к удаленной машине к учетной записи nullbyte, как показано на скриншоте ниже.

Здесь мы подключаемся к демону клиента SSH на нашей клиентской системе, который затем подключается через порт 3331 к SSH-серверу. Он, в свою очередь, подключается к порту 3306 для соединения с MySQL.

Читать также:  Основы Linux.Часть 10 ( Манипуляции с текстом)

Шаг 4. Безопасное соединение с MySQL

Теперь, имея шифрованное соединение с сервером, содержащим базу данных MySQL, по этому туннелю мы можем залогиниться в базу данных. Там у нас есть пользователь MySQL с именем «test4». Обращаем ваше внимание, что это НЕ пользователь ОС. Мы подключались по SSH через пользователя ОС. Но чтобы получить доступ к базе данных MySQL мы должны авторизоваться через пользователя MySQL. Войдем в учетную запись этого пользователя:

mysql -u test4 -p

На скриншоте выше видно, что мы успешно подключились к MySQL через этот туннель! Теперь весь трафик между нами и удаленным сервером базы данных зашифрован.

Чтобы убедиться, что мы подключились к удаленному серверу, а не к нашей локальной базе, мы создали базу данных на удаленном сервере с именем «nullbyte».

Давайте проясним этот момент и воспользуемся командой «show databases;» в командной строке MySQL.

Как вы можете видеть, мы подключились к удаленному серверу базы данных, потому что мы видим в общем списке базу данных с именем «nullbyte».

Надеемся, что эти статьи по основам Linux будут для вас полезны, поскольку они помогают расширять вашу базу знаний. В ближайшем будущем мы покажем, как можно взломать шифрованный туннель, так что обязательно возвращайтесь!

Предыдущие статьи ( 1, 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14).

Добавить комментарий