Меню

Хакерские скрипты для linux

Этичный хакинг с Михаилом Тарасовым (Timcore)

Блог об Этичном Хакинге

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Поменять версию питона linux

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

worst-50″ srcset=»https://timcore.ru/wp-content/uploads/2021/04/screenshot_14-6.png 805w, https://timcore.ru/wp-content/uploads/2021/04/screenshot_14-6-300×244.png 300w, https://timcore.ru/wp-content/uploads/2021/04/screenshot_14-6-768×625.png 768w» sizes=»(max-width: 805px) 100vw, 805px»/>

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

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

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

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

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

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

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

«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 – айпи-адрес:

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Как вычистить драйвера принтера windows 10

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

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

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

Погуглить найденные хэши.

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

Источник

Найти и не обезвредить: пишем пентесты с Kali Linux

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

Шило в мешке не утаить: по неведению (правда, в некоторых случаях — умышленно) даже крупные корпорации оставляют дыры в своей системе безопасности. Жизненно важно как можно быстрее (1) локализовать их и (2) пофиксить. К счастью, существует множество различных продуктов, которые помогают с первым пунктом. Среди них можно выделить Kali, дистрибутив Linux, разработанный для тестирования систем безопасности. В этой статье я расскажу, как использовать Kali Linux для исследования вашей системы и поиска слабых мест, имитируя атаку злоумышленника.

Дистрибутив Kali включает множество инструментов, каждый из которых имеет открытый исходный код. Достаточно запустить установку дистрибутива и все эти инструменты будут доступны из коробки.

В качестве подопытных я буду использовать две системы:

    kali.usersys.redhat.com: 30 Гб памяти и 6 виртуальных CPU. Эта система будет выполнять сканирование «жертвы» и запускать атаки.

  • vulnerable.usersys.redhat.com: система с Red Hat Enterprise Linux 8 на борту. Вот её нужно будет атаковать.
  • Я не зря упомянул здесь технические характеристики оборудования. Некоторые из наших задач довольно требовательны к железу, особенно — к CPU системы 2, на которой будет работать сканер безопасности WordPress (WPScan).

    Поиск открытых портов

    Я начал с базового сканирования системы 2. Сканируя систему с помощью Nmap, можно узнать, какие порты и службы видны из системы 1, запускающей сканирование.

    Итак, первым делом можно найти несколько «интересных» открытых портов — потенциальных слабых мест. На самом деле, любой открытый порт интересен, потому что с его помощью больше шансов взломать сеть. В этом примере 21, 22, 80 и 443 — это ещё и порты часто используемых служб. Но пока я просто занимаюсь разведкой и пытаюсь получить как можно больше информации о системе, которую хочу взломать.

    После этого для более глубокого анализа я выбраю порт 80 и запускаю команду Nmap с аргументами -p 80 и -A. Это позволяет получить информацию об операционной системе и приложении, которое использует 80-й порт.

    Здесь нас интересуют следующие строки:

    Поиск информации о пользователях

    Поскольку теперь я знаю, что это сервер WordPress, я могу использовать WPScan для получения информации о потенциальных уязвимостях. Хорошо бы найти несколько имён пользователей и их пароли. Чтобы найти их в данном в экземпляре WordPress, используем опции —enumerate u:

    └─# wpscan —url vulnerable.usersys.redhat.com —enumerate u

    __ _______ _____

    \ \ /\ / /| |__) | (___ ___ __ _ _ __

    \ \/ \/ / | ___/ \___ \ / __|/ _` | ‘_ \

    WordPress Security Scanner by the WPScan Team

    Читайте также:  Best app twitter windows

    Sponsored by Automattic — https://automattic.com/

    @_WPScan_, @ethicalhack3r, @erwan_lr, @firefart

    [+] URL: http://vulnerable.usersys.redhat.com/ [10.19.47.242]

    [+] Started: Tue Feb 16 21:38:49 2021

    [i] User(s) Identified:

    | Found By: Author Posts — Display Name (Passive Detection)

    | Author Id Brute Forcing — Author Pattern (Aggressive Detection)

    | Login Error Messages (Aggressive Detection)

    | Found By: Author Posts — Display Name (Passive Detection)

    | Author Id Brute Forcing — Author Pattern (Aggressive Detection)

    | Login Error Messages (Aggressive Detection)

    Отлично, найдены два пользователя: admin и pgervase. Я попытаюсь подобрать пароль для пользователя admin, используя словари паролей — текстовый файл с набором возможных вариантов. Я возьму словари из 3 231 и из 3 543 076 137 строк.

    Подбор пароля с атакой по словарю

    Для атаки по словарю можно использовать разные инструменты. Вот два примера команд с Nmap и WPScan:

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

    А вот эта команда WPScan, например, выводит пароль в конце файла:

    Раздел Valid Combinations Found в конце содержит имя пользователя admin и его пароль. На перебор 3 231 строк ушло всего две минуты.

    У меня есть ещё один файл словаря с 3 238 659 984 уникальными записями, что займет гораздо больше времени.

    Nmap выдаёт результат намного быстрее:

    Правда, такое сканирование можно отследить по HTTPD-логам, которые будут обнаружены во взломанной системе:

    Поиск Heartbleed-уязвимости

    Чтобы получить информацию о HTTPS-сервере и SSL/TLS протоколах, я использую команду sslscan:

    Мы видим, что в версиях протоколов, которые используются на сервере, Heartbleed-уязвимость не обнаружена:

    Ну что ж, значит через модуль Heartbeat я не могу получить доступ к оперативной памяти и данным сервера. Что ж… видно не судьба 🙂

    Советы по предотвращению и защите от взлома

    Можно написать много статей про то, как противостоять атакам хакеров всех мастей. Тут я ограничусь общими рекомендациями:

      Изучайте свою систему: какие порты открыты, какие порты должны быть открыты, кто должен иметь возможность видеть эти порты и какой объём трафика должен проходить через них. Nmap вам в помощь.

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

    Грамотно настраивайте ваши продукты и их окружение: например, вместо того, чтобы позволять злоумышленнику постоянно атаковать вашу систему WordPress, заблокируйте его IP-адрес и ограничьте количество попыток входа в систему. Правда, блокировка IP-адреса часто оказывается бесполезной, потому что злоумышленники могут использовать разные адреса. Однако эту настройку легко включить, и она поможет отразить хотя бы некоторые атаки.

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

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

    Обновляйте свою систему, приложения и любые дополнительные модули: специалисты Института стандартов и технологий США уверены, что «обновления обычно являются наиболее эффективным способом устранения уязвимостей и часто могут стать единственным по-настоящему эффективным решением».

  • Используйте дополнительные инструменты от поставщиков вашего ПО: например, в подписку Red Hat Enterprise Linux входит инструмент Red Hat Insights, который позволяет настроить вашу систему и своевременно предупреждает о потенциальных угрозах безопасности.
  • Полезные материалы (на английском языке)

    То, что описано в этой статье, — лишь вершина айсберга. Чтобы погрузиться глубже, вы можете изучить следующие ресурсы:

    Облачные серверы от Маклауд быстрые и безопасные.

    Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

    Источник

    Adblock
    detector