Кали линукс базы данных

PostgreSQL в Kali Linux

Начать знакомство с администрирования PostgreSQL рекомендуется с « PostgreSQL в Linux: рецепты популярных действий и решения проблем ». Там уже собраны актуальные инструкции для частых задач и, самое главное, частые ошибки и как их исправить.

Перевод опфициальной документации от авторов PostgreSQL на русском вы найдёте в разделе Настройка баз данных PostgreSQL из статьи «Настройка и запуск сетевых служб в Kali Linux (Apache, MySQL, SSH, PostgreSQL, NetworkManager и Bluetooth)»

Обновление PostgreSQL в Kali Linux

При обновлении пакетов в Kali Linux было показано следующее сообщение:

Configuring postgresql-common Obsolete major version 13 The PostgreSQL version 13 is obsolete, but the server or client packages are still installed. Please install the latest packages (postgresql-14 and postgresql-client-14) and upgrade the existing clusters with pg_upgradecluster (see manpage). Please be aware that the installation of postgresql-14 will automatically create a default cluster 14/main. If you want to upgrade the 13/main cluster, you need to remove the already existing 14 cluster (pg_dropcluster --stop 14 main, see manpage for details). The old server and client packages are no longer supported. After the existing clusters are upgraded, the postgresql-13 and postgresql-client-13 packages should be removed. Please see /usr/share/doc/postgresql-common/README.Debian.gz for details.

Всё в лучших традициях официальных предупреждений: читайте справку и что-то делайте.

По факту после данного обновления мы имеем в системе 2 установленные версии PostgreSQL:

Если запустить службу PostgreSQL командой:

sudo systemctl start postgresql

И проверить версию командой:

sudo -u postgres psql postgres -c 'SELECT version()' | grep PostgreSQL

То будет выведено следующее:

PostgreSQL 13.4 (Debian 13.4-3) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.3.0-8) 10.3.0, 64-bit

То есть по умолчанию используется 13, устаревшая версия.

Удаление старых версий пакетов, например, командой:

sudo apt remove postgresql-13 postgresql-client-13

ситуацию не меняет. Если вам нужно перенести базы данных из устаревшей версии в новую, то верните устаревшие пакеты, если вы успели их удалить.

Последующие действия подразумевают, что вы

1) установили новую версию PostgreSQL, но ещё не использовали её, то есть не сохраняли базы данных, поскольку файлы новой версии будут удалены.

2) хотите перенести старые база данных в новый формат

С помощью следующей команды просмотрите доступные кластеры:

На скриншоте только один из них online (я успел удалить пакет postgresql-13), но у вас оба должны быть online, иначе перенос базы данных не удастся.

Пример правильного вывода:

Ver Cluster Port Status Owner Data directory Log file 13 main 5432 online postgres /var/lib/postgresql/13/main /var/log/postgresql/postgresql-13-main.log 14 main 5433 online postgres /var/lib/postgresql/14/main /var/log/postgresql/postgresql-14-main.log

Как можно увидеть, обе версии 13 и 14 в настоящее время установлены и запущены. Держите в уме, что при переносе старой базы данных в новый формат вам понадобиться двойной объём места на диске, поскольку pg_upgradecluster копирует данные.

Читайте также:  Linux посмотреть зависимости пакета

Процедура обновления включает в себя следующее:

1. Удаляем данные новой версии:

sudo pg_dropcluster --stop 14 main

2. Запускаем процедуру обновления кластера:

sudo pg_upgradecluster 13 main

3. Когда операция будет завершена, дважды проверьте, что всё работает

sudo pg_dropcluster --stop 13 main

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

sudo -u postgres pg_upgrade -b /opt/pgsql-13/bin -B /usr/bin -d /var/lib/postgres/olddata -D /var/lib/postgres/data

Теперь используется 14, то есть самая последняя версия.

Источник

#42 Kali Linux для начинающих. Взламываем базу данных. Атаки на пароли.

Давайте рассмотрим еще один способ, как взломать нашу цель. В этом уроке мы будем атаковать сервис базы данных.

Посмотрим на результат сканирования «nmap», а именно нас интересует порт 3306, который используется сервисом «mysql». Это сервис базы данных, и, как Вы знаете, он содержит множество чувствительной информации, такую как имена пользователей, пароли, и т.д.

Нам нужно подключиться к этой базе данных, но у меня нет соответствующего логина и пароля, но я попробую подобрать их с помощью инструмента sqldict. Это сокращение от sql dictionary.

Данный инструмент не стоял у меня в системе, поэтому нужно установить его с помощью команды: «apt-get install sqldict»:

apt-get install sqldict sqldict

С помощью sqldict можно производить подбор паролей, и данный процесс называется «атака по словарю». Другими словами, я создам список возможных паролей. При первом запуске sqldict в терминале мы видим ошибку, так как нужно сперва выполнить установку «wine32»:

sqldict

Wine32 – это программа на Kali и других дистрибутивах Linux, которая позволяет запускать программы на Windows в линукс системах. В Windows программа имеет расширение «.exe». Это исполняемые файлы, и они созданы для работы в Windows.

В отобразившейся информации при запуске в терминале нашего инструмента есть команда для установки wine32. Она выглядит как: «dpkg —add-architecture i386 && apt update && apt -y install wine32»:

dpkg --add-architecture i386 && apt update && apt -y install wine32

Данная программа будет загружаться какое-то время, поэтому мы опустим данный процесс для загрузки в систему.

Рассмотрим еще один инструмент, который можно использовать для достижения той же самой цели. Его можно найти в разделе «Passwords Attacks», и он называется «wordlists»:

wordlists

В разделе «Атаки на пароли» существует несколько инструментов для проведения подобных атак, но нас интересуют простые атаки, т.е. атаки на онлайн сервисы. Ранее мы уже атаковали запущенные сервисы SSH и FTP. Как правило, для этих сервисов существует подбор имени пользователя и пароль. И если мы атакуем работающий сервис, для попытки подобрать имя пользователя и пароль, то такая атака называется онлайн-атака на пароли. И сейчас нашей целью будет mysql, который работает на атакуемой машине. Нам нужно подобрать имя пользователя и пароль. Это называется онлайн-атака на пароли. Далее я хочу показать Вам директорию «worldlists». Нас интересует словарь «rockyou.txt»:

rockyou.txt

Далее нам нужно распаковать текстовый файл rockyou.txt.gz с помощью команды gunzip rockyou.txt.gz:

Читайте также:  Linux make config file

gunzip rockyou.txt.gz

Давайте воспользуемся этим файлом, и скопируем путь к нему, так как он в дальнейшем нам понадобится.

Сразу хотелось бы отметить, что при работе с инструментами, некоторые из них не будут работать в штатном режиме. Тогда нужно переходить к следующему, и не зацикливаться только на одном. Я постоянно это повторяю, и это очень важно понимать.

Также в этом уроке я буду использовать инструмент «Hydra»:

hydra

Для того, чтобы подобрать пароль, мне нужен словарь или список слов для атаки. В интернете я нашел список самых худших паролей всех времен:

the top 500 worst passwords of all time

Скопируем первые 50 паролей:

копирование первых 50 паролей

С помощью текстового редактора nano создаем файл «temp»:

nano temp

Обратите внимание на то, что все области, которые выделены в розовый цвет являются разделителями, при помощи табуляции. Имейте ввиду, что таком формате файл бесполезен. Нам нужно создать последовательный список из всех этих слов. Мы воспользуемся командами, которые изучили в предыдущих уроках.

Введем команду cat в терминале:

cat temp

Нам нужно привести этот файл в порядок. Команда будет выглядеть как: «cat temp | cut –d$’\t’ –f 2».

Значок $ используется для того, чтобы вырезать только текст. Можно загуглить данную команду, и Вы быстро разберетесь, как все работает. Просто помните, что после разделителя «Tab», необходимо указать значок доллара, затем добавить –f 2 (второе поле):

cat temp | cut –d$’\t

И, как видим, у нас появился список всех возможных паролей, которые были скопированы. Разумеется, весь этот вывод на экране нужно сохранить в отдельный файл. Команда будет выглядеть как: «cat temp | cut –d$’\t’ –f 2 > worst-50»:

cat temp | cut –d$’\t

Обратите внимание на то, что я указал файл worst-50 без какого-либо расширения. На самом деле в линуксе можно не указывать расширение, так как файлы являются текстовыми по-умолчанию, и можно прочесть их содержимое.

Давайте внесем последние правки в наш словарь:

worst-50

Нам нужно удалить строку top, так как она нам не нужна. Жмем горячую клавишу Ctrl+K для удаления первой строки, а перейдя на последнюю жмем «Enter», что будет являться пустой строкой:

пустая строка в словаре

Пустая строка будет выполняться, если кто-то будет использовать какой-либо логин и пустой пароль.

Давайте вернемся к инструменту «Hydra», и можем воспользоваться примером, который нам указывают разработчики:

hydra example

На самом деле половина успеха будет заключаться в правильном использовании имени пользователя. Если у нас нет правильного имени пользователя, то будет проблематично с авторизацией.

Команда для перебора по словарю будет выглядеть следующим образом:

«hydra –l root –P worst-50 mysql://192.168.119.130»:

hydra –l root –P worst-50 mysql://192.168.119.130

Hydra сработала практически сразу и был подобран один пароль. Также можем видеть 51 попытку подбора пароля. Обратите внимание, что здесь не указан подобранный пароль, а это значит, что пароль был пустым.

Теперь у нас есть имя пользователя и пароль, для авторизации в базе данных mysql. В случае с FTP, для авторизации нам нужен был FTP-клиент (например, FileZilla). Чтобы пройти SSH-авторизацию, нам нужен был SSH-клиент, а на Windows мы использовали Putty. На LinuxSSH-клиент. В случае с авторизацией в MySQL, нам нужен MySQL-клиент. Для подключения к базе данных нам нужно ввести в терминале следующую команду: «mysql –u root –p –h 192.168.119.130», где опция –u – это имя пользователя, —p – порт, —h – айпи-адрес:

Читайте также:  Операционная система linux функционал

mysql –u root –p –h 192.168.119.130

MySQL просит ввести пароль. Мы просто оставляем пустым и жмем «Enter».

Обратите внимание, что консоль изменилась, и мы взаимодействуем с базой данных.

Если Вы никогда не сталкивались с базой данных SQL, то можно использовать графические клиенты, которые выглядят нагляднее, чем то, что мы используем сейчас.

Мы разберем простые команды, которые можно использовать. Давайте посмотрим какие базы данных есть на этом MySQL сервере. Их может быть несколько, и для этого выполним простую команду «show databases;»:

show databases;

Не забудьте в конце записи ввести точку с запятой, так как это является концом команды. Таков синтаксис SQL-запросов.

Как видим, существует несколько баз данных. Начнем с базы «dvwa». Обратите внимание что «information_schema» — это база данных баз данных, так как она содержит информацию об остальных базах данных.

Чтобы открыть «dvwa», просто пишем команду «use dvwa;»:

use dvwa;

Нам нужно просмотреть таблицы этой базы данных. Для этого пишем команду: «show tables;»:

show tables;

Как видим, существует две таблицы «guestbook» и «users».

Нас будет интересовать таблица «users», так как в ней могут содержаться имена пользователей и пароли. Команда выглядит как: «select * from users;»:

select * from users;

В данной таблице содержатся id пользователей, имена, логины, пароли, аватары. Именно так выглядят украденные учетные данные.

Те, кто интересуется информационной безопасностью часто слышат о том, что хакеры то и дело сливают информацию из баз данных самых разных сайтов, компаний и т.д.

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

Очень часто злоумышленники пытаются взломать данные пароли, т.е. расшифровать их. Не волнуйтесь, что какая-то информация непонятна. Мы еще поговорим об этом. Сейчас для нас актуально то, что мы авторизировались в базе данных нашли некоторую информацию с данного сервиса.

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

Использовать инструменты Kali Linux для взлома хэшей, к примеру, John the Ripper.

Источник

Оцените статью
Adblock
detector