пятница, 16 ноября 2012 г.

Sqlmap - средство автоматизации SQLi-атак и инструмент для пентестов

Sqlmap — свободно распространяемое программное обеспечение открытым исходным кодом (написан на pithon). Данная программа предназначена для автоматизированного сканирования уязвимостей SQL (и, к слову, их дальнейшего использования). Таким образом Sqlmap является средством двойного назначения - тестирование собственных ресурсов и взлом чужих. За последнее карают.

Актуальность SQLi пентестов

Ваш веб-ресурс может быть подвержен множеству уязвимостей, но уязвимость к SQLi-атаками, пусть и не самая распространенная, но именно путем ее эксплуатации совершено больше всего успешных атак. Со времен появления SQL-инъекций с их помощью было совершено порядка 83% успешных краж конфиденциальной информации, согласно отчетам Hacker Intelligence Initiative. Кстати, этот тип атак - основной инструмент использовавшийся небезызвестной хакерской группой LulzSec.

Использование Sqlmap для взлома и УК РФ

За использование данного ПО не для тестирования собственных ресурсов хакерам грозит:
  • по статье 272 УК РФ "Неправомерный доступ к компьютерной информации" до 200т. руб. штрафа и до 3 лет лишения свободы (до 300т. руб. и до 5 лет лишения, если в сговоре или с использованием служебного положения)
  • по статье Статья 273 УК РФ "Создание, использование и распространение вредоносных программ для ЭВМ" до 200т. руб. штрафа и до 7 лет лишения свободы
  • по статье 274 УК РФ "Нарушение правил эксплуатации ЭВМ, системы ЭВМ или их сети" лишением права занимать определенные должности или заниматься определенной деятельностью на срок до пяти лет (в случае тяжких последствий до 4 лет лишения свободы)

Демонстрация работы Sqlmap


Основные возможности (взято с хабра)

  • Поддержка MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, SQLite, Firebird, Sybase и SAP MaxDB.
  • Поддержка следующих типов инъекций: boolean-based blind, time-based blind, error-based, UNION query и stacked queries.
  • Возможность подключиться к БД напрямую, используя логин, пароль, ip, порт и имя базы.
  • Работа с конкретным url, со списком целей из Burp proxy или WebScarab proxy, с текстовым файлом, содержащим HTTP запрос или же прямо из поисковой системы Google.
  • Тестирование всех параметров, передаваемых методами GET и POST, через cookie, в заголовках User-agent и Referer и попытка их эксплуатирования. Так же вы можете задать какой-то один определенный параметр(ы) для проверки.
  • Опциональная многопоточность, которая позволяет сильно ускорить проведение слепых инъекций, или же наоборот, ограничить количество запросов на определенный промежуток времени. Множество вариантов оптимизации для ускорения.
  • Возможность передавать cookie, что позволяет проходить авторизацию на тестируемом приложении или же тестировать cookie на sql уязвимости.
  • Принимать и хранить в сессии cookie, которые были установлены самим приложением, а так же пытаться их эксплуатировать. При желании можно игнорировать заголовок set-cookie.
  • Аутентификация по протоколу HTTP basic, Digest, NTLM или с помощью сертификата.
  • Работа через прокси.
  • Возможность задать произвольные заголовки User-agent и Referer, или же выбрать User-agent случайно из текстового файла.
  • Возможность изменять уровень информативности выходных сообщений (всего 7 уровней).
  • Парсинг форм, находящихся по целевому адресу, с целью повторной отправки запроса на принимающий скрипт формы (action) и тестирование параметров формы.
  • Гибкость в настройки и использовании.
  • Расчетное время для каждого запроса, который обновляется в реальном времени и позволяет пентестеру знать, сколько времени потребуется для получения ответа.
  • Автоматически сохраняет сессии (запросы и ответы, даже частично полученные) в текстовом виде и в реальном времени. Это позволяет продолжить инъекцию или другое действие сразу же, после парсинга сессии и не повторять запросы на атакуемое приложение.
  • Возможность читать все параметры из текстового файла, а не вводить их в ручную каждый раз.
  • Поддержка репликации БД сервера на локальную БД sqlite3.
  • Обновление до актуальной версии из репозитория.
  • Парсинг ответов с целью найти и показать сообщения об ошибках БД.
  • Интеграция с другими инструментами для пентеста — Metasploit и w3af.
Возможности fingerprint (получения полезной информации о приложении и сервере):
  • Определение версии и наименования БД, а также операционной системы, на которой запущено приложение. Анализ основывается на сообщениях об ошибках, баннере сервиса, и способом сравнения. Вы можете задать имя используемой БД в ручную, если вы его знаете.
  • Программное обеспечение веб сервера и приложения.
  • Возможность получить баннер, получить информацию о текущей БД и ее пользователе, а также о привилегиях текущего пользователя.
  • Список пользователей БД, их привилегии, хэши паролей.
  • Автоматическое распознавание формата хэшей паролей и возможность прогнать их по словарю, который прилагается вместе с sqlmap.
  • Брут имен таблиц и столбцов. Это бывает полезным, когда у текущего пользователя нет доступа к системным таблицам или таких таблиц вообще нет.
  • Возможность сделать дамп таблиц целиком, определенных колонок. Возможно сделать дамп только определенный диапазон символов для каждого столбца.
  • Дамп всех БД целиком, с возможностью задать исключение.
  • Поиск конкретных таблиц или колонок во всех таблицах и баз данных. Это полезно для поиска таблиц с пользователями или паролями.
  • Возможность вызвать интерактивный sql клиент, который позволит вам выполнять произвольные запросы к БД вручную. Sqlmap сам побеспокоится о том, чтобы упаковать ваш запрос и выполнить его через найденную уязвимость.
Возможности расширения контроля над системой:
  • Возможность скачивать файлы с сервера, при условии, что в качестве бэкенда используется MySQL, PostgeSQL или Microsoft SQL Server. Разумеется, для этих операций пользователь БД должен иметь особые привилегии и права на запись/чтение нужного файла.
  • Выполнение произвольных команд на системе с получением их вывода, при условии, что используются MySQL, PostgeSQL или Microsoft SQL Server.
  • Создание tcp подключения к серверу с помощью интерактивной командной строки или VNC.
  • Доступ к реестру windows (Чтение, вставка, удаление).

Как работать с Sqlmap

Лучше всего ознакомиться с официальным руководством пользователя.

Комментариев нет:

Отправить комментарий