Как установить volatility на kali linux
Недавно закончился OtterCTF (для интересующихся — ссылка на ctftime), который в этом году меня, как человека, достаточно плотно связанного с железом откровенно порадовал — была отдельная категория Memory Forensics, которая, по сути, представляла из себя анализ дампа оперативной памяти. Именно ее я хочу разобрать в этом посте, всем кому интересно — добро пожаловать под кат.
Введение
Возможно, на Хабре уже были статьи, описывающие работу с Volatility, но, к сожалению, я их не нашел. Если не прав — киньте в меня ссылкой в комментариях. Эта статья преследует две цели — показать, насколько бессмысленны все попытки администратора защитить систему, в случае если у атакующего есть дамп оперативной памяти и познакомить читателей с самым прекрасным, на мой взгляд, инструментом. Ну и, конечно же, обменяться опытом. Достаточно воды, приступим!
Знакомство с инструментом
Volatility — open-sorce фреймворк, который развивается сообществом. Написан на втором питоне и работает с модульной архитектурой — есть т.н. плагины, которые можно подключать для анализа и даже можно писать самому недостающие. Полный список плагинов, которые доступны из коробки можно посмотреть с помощью volatility -h .
Из-за питона инструмент кроссплатформенный, поэтому проблем с запуском под какой-то популярной ОС, на которой есть питон возникнуть не должно. Фреймворк поддерживает огромное количество профилей (в понимании Volatility — системы, с которых был снят дамп): от популярных Windows-Linux-MacOs до "напрямую" списанных dd-дампов и дампов виртуальных машин (как QEMU, так и VirtualBox). По-моему, очень неплохой наборчик.
Мощь этого инструмента действительно потрясает — я наткнулся на него в момент отлаживания своего ядра для ARM'a и он прекрасно анализировал то, что я давал ему на вход
Как бонус — поддержка почти любого адресного пространства, которое можно себе вообразить.
Кажется, пиара получилось чуть больше, чем планировалось изначально. Давайте попробуем заняться самим анализом.
Базовая информация и поверхностный анализ
Для тех, кто хочет проделывать все манипуляции по ходу статьи — ссылка на Mega с образом или можно с помощью wget:
Итак, образ у нас в руках, можно начинать анализ. Для начала, нужно понять, с какой системы снимали дамп. Для этого у волатилити есть прекрасный плагин imageinfo . Просто запускаем
В нашем случае выхлоп будет примерно следующим:
Итак, мы получили почти исчерпывающую информацию о нашем дампе — предположительно, с какой ОС он был сделан (отсортировано в порядке вероятности), локальную дату и время на момент снятия дампа, адресацию и еще много чего. Итак, мы поняли, что перед нами дамп Windows 7 Service Pack 1 x64. Можно копать вглубь!
What's the password
Так как это своеобразный райтап, то я буду давать формулировку задачи и потом описывать, как ее решить с помощью волатилити.
Первая задача — достать пароль пользователя
Для начала, поймем, какие пользователи были в системе и, заодно, попробуем достать их пароли. Сами пароли достать сложнее, а поэтому понадеемся на то, что нам попался не очень умный человек и получится вскрыть хеш от его пароля. Остается достать его! Для этого попробуем посмотреть _CMHIVE — как правило, там всегда можно найти что-то интересное во время работы Windows. Для этого просто подключим плагин hivelist , при этом указав Win7 в профиле:
Прекрасно! Мы, предположительно, получили имя пользователя и, заодно, убедились, что нужные нам SYSTEM и SAM уже подгружены в память. Теперь просто достаем хеши и идем перебирать:
По итогу, у нас есть три пользователя — Administrator(31d6cfe0d16ae931b73c59d7e0c089c0) , Guest(31d6cfe0d16ae931b73c59d7e0c089c0) и наш Rick(518172d012f97d3a8fcc089615283940) . Хеши Windows 7 это NTLM и перебирать их реально долго. Могу сказать, что я у себя занимался этим почти сутки на игровой видеокарте и так и не пришел ни к чему. Поэтому можно пойти более простым путем и попробовать пробиться с помощью mimikatz . Не всегда панацея и не всегда работает, но, зато, если работает, то выдает результат всегда. Тут пригождается та самая универсальность volatility — есть пользовательский плагин mimikatz. Скачиваем в любую удобную папку и далее при запуске указываем путь к этой папке:
И сразу же получаем пароль пользователя:
General Info
Теперь, когда мы знаем, кто мы, надо бы понять, где мы. То есть хорошо бы узнать наш IP-адрес и имя машины. В случае с IP-адресом все просто — смотрим на список подключений на момент дампа с помощью netscan :
IP 192.168.202.131 найден. Конечно, это IP в локальной сети, но, к сожалению, из дампа больше не вытащишь — для того, чтобы достать внешний IP нужно побольше, чем просто дамп. Теперь достанем имя компа. Для этого просто прочитаем ветку SYSTEM реестра:
Супер, мы получили имя компа WIN-LO6FAF3DTFE .
Play Time
Пользователь любит играть в старые видеоигры. Требуется найти название его любимой игры и IP-адрес ее сервера
Просто смотрим на выхлоп netscan на предыдущем шаге и видим странные процесссы — LunarMS.exe . Гуглим — действительно, это видеоигра. Там же можно и найти IP-адрес, с которым открыто соединение — 77.102.199.102
Name game
Мы знаем, что пользователь залогинен в канал Lunar-3. Но какое имя аккаунта?
Так как пользователь залогинен в этот канал, то имя должно быть просто в виде plain-text в дампе. Делаем strings и получаем флаг:
Из всех строк больше всего напоминает флаг 0tt3r8r33z3 . Пробуем и действительно — это он и есть!
Silly Rick
Наш пользователь всегда забывает свой пароль, поэтому он использует менеджер паролей и просто копирует нужный пароль, когда нужно войти. Может быть, вам удастся что-то узнать?
Судя по формулировке надо просто достать содержимое буфера обмена. На это у Volatility есть ответ — плагин clipboard . Проверяем и видим пароль:
Hide and Seek
Причина тормозов компьютера в вирусе, который уже давно сидит в системе. Может быть, вы сможете его найти? Будьте осторожны, у вас только три попытки, чтобы сдать этот флаг!
Ну что же, если у нас три попытки, то будем осторожны, как нам и посоветовали =)
Для начала, получим список всех процессов с помощью pslist :
Мда. Как-то не очень удобно анализируемо. У нас есть еще один плагин — pstree , который выводит процессы в виде дерева (что, в общем-то, логично):
Ага! Есть подозрительные строчки
Как мы видим, процесс с PID'ом 3820 порождает процесс с PID'ом 3720. Повод проанализировать обоих. Для начала получим список dll-библиотек, которые используют процессы:
Так. Exe в папке с торрентами? Как-то странно. Еще и ntdll.dll тоже не внушает доверия. Попробуем получить список dll, которые использует процесс 3720:
Вау. А вот это совсем ненормально. Значит, первое предположение, что это именно тот троянчик, который мы ищем. Сдампим процесс с помощью memdump и проанализируем его любым декомпилятором:
Bit by Bit и Graphics is for the weak
Найдите адрес биткойн-кошелька злоумышленника, который заразил компьютер вирусом!
Во время анализа из предыдущего пункта можно было легко заметить адрес 1MmpEmebJkqXG8nQv4cjJSmxZQFVmFo63M , который и является флагом. Аналогично из этого же бинарника можно получить картинку с флагом для еще одной задачи, поэтому обьединяю их в один пункт
Recovery
Вымогатель зашифровал файлы. Помогите пользователю восстановить к ним доступ!
По сути, эта задача тоже относится к бинарнику, но я вынес ее в отдельный пункт, потому что она очень сильно напоминает будни аналитика разной малвари и будет полезно показать процесс целиком. Открываем бинарник и находим функцию CreatePassword . По-моему, это "жжж" неспроста:
Как мы видим, пароль действительно случайный. Но мы знаем регулярное выражение abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890*!=&?&/ , которому удовлетворяет наш пароль. Теперь, если есть функция создания пароля, где-то должна быть функция его применения :D
Немного пролистав, находим и ее:
Ну уже кое-что новое, теперь мы знаем, что длина пароля 15 символов. Попробуем вытащить его из дампа процесса и сразу же оценим, насколько все плохо:`
Неплохо. Можно, конечно, посидеть поперебирать ручками, но это как-то слишком. Применим немного черной магии!
Команда выглядит страшно, но стоит немного в нее вглядется и она становится кристально очевидной. Если это не так — опять-таки пинайте в комментариях, разберу по кирпичикам. А тем временем, мы сократили количество с миллиона до каких-то жалких трех тысяч. Посмотрим, что это за строки:
К сожалению, тут я не придумал элегантного решения и поэтому дальше исключительно логические рассуждения. Как мы помним с момента реверса наш бинарник содержит открытый ключ b03f5f7f11d50a3a . Что же, попробуем найти его в наших почти 3K строках руками. Ну или не совсем :) Для этого немного поменяем нашу команду:
Итак, судя по этому выводу ключ где-то наверху предыдущего вывода. Первых строк, похожих на ключ не так много и тут действительно придется воспользоваться древним заклинанием BruteForce
Понятно, что не все строчки в нашей выборке являются ключами — более того, не все на него похожи. Так что количество вариантов сокащается еще сильнее. Пробуем подряд и на втором варианте находим ключ aDOBofVYUNVnmp7 , который и является флагом.
Вместо заключения
Дистрибутивы Linux предоставляют широкие возможности кастомизации, и Kali Linux – не исключение. Всего несколькими командами можно автоматизировать задачи, установить любимый софт, создать дополнительных пользователей и оптимизировать взаимодействие с терминалом. Как сделать самое важное? Рассказываем.
Git – это open-source система контроля версий программного обеспечения для совместного использования и редактирования кода. Она позволит вам «клонировать» репозитории и не ограничивать свои пентестерские нужды встроенным функционалом Kali Linux.
Переносимся в терминал для установки git :
После установки всех зависимостей вы получите возможность скачивать репозитории командой git clone . Для этого скопируйте url нужного репозитория из адресной строки браузера или из интерфейса Github:
Теперь ссылка в буфере, вставьте её в терминал после команды:
Вы получите локальную копию репозитория и вывод со статистикой.
Используйте алиасы для часто вводимых команд. Для примера сократим команду besside-ng – сканера безопасности WEP сетей. Алиасы Bash хранятся в файле, их можно дополнить и обновить:
Файл пустой? Значит вы не пользовались алиасами до этого. Самое время! Введите строчку в открытый nano файл:
Закрывайте (Ctrl+x) и сохраняйте (y, Enter). Рассмотрим синтаксис: alias объявляет псевдоним hackwifi и указывает на команду в одинарных кавычках. Проверим в новом окне терминала:
Тем, кто выбрал Kali для знакомства с Linux, не помешают:
Вы ведь не собираетесь работать под рутом? Не подвергайте систему опасности – создайте обычного пользователя. Баги в пользовательских программах под рутом потенциально опасны для файловой системы, а в серверных программах они могут давать атакующему доступ к оболочке суперпользователя.
Поэтому создайте непривилегированного пользователя в новой Kali Linux и будьте спокойны:
Первая команда создаёт пользователя proglib , домашний каталог /home/proglib и одноимённую группу. Затем добавляет нового пользователя в группу sudo с доступом к руту. Вторая команда задаёт пароль пользователя.
Мультиплексор в данном случае – это плиточный эмулятор терминала, в котором можно открыть несколько сессий в одном окне. Главное преимущество – возможность видеть все ваши сессии одновременно, не перекрывающими друг друга.
На скриншоте представлен Tilix – надёжный open-source эмулятор терминала. В качестве альтернатив можете попробовать tmux и screen.
Tilix доступен в репозиториях Kali Linux и устанавливается командой:
Некоторые версии Kali Linux ориентированы на минималистичных пентестеров, которые предпочитают обходиться без тысячи предустановленных инструментов. В этом случае придётся устанавливать любимые инструменты вручную. Типы инструментов каждого пентестера зависят от его умений и области знаний.
Kali Metapackages дают возможность устанавливать отдельные категории инструментов Kali Linux и смотреть состав метапакетов.
Описание и размер желаемого метапакета перед установкой. Вот как установить все инструменты Kali Linux, которых нет даже в полных образах:
Внимание! Это займёт 15 Гб, устанавливайте метапакеты исходя из ваших нужд.
Качайте софт для анонимности из оригинальных источников. Версия Tor в репозиториях Kali Linux не всегда вовремя обслуживается и обновляется. Это означает, что у вас не будет критических обновлений стабильности и безопасности.
Поэтому добавьте репозитории Tor Project из источников самого проекта:
Затем скачайте ключ подписи пакета Tor Project и импортируйте в систему:
OK в выводе свидетельствует об удачном добавлении ключа в систему. После чего следует обновиться:
И установить Tor:
Syncthing – это кроссплатформенная, приватная, лёгкая альтернатива проприетарным облачным хранилищам. Передача кейлогов, скриншотов, записей веб-камер и другой «добычи» между виртуальными серверами и локальными машинами Kali может оказаться, в лучшем случае, разочарованием для пентестера. Syncthing делает безопасную передачу файлов абсолютно безболезненной.
Начните с установки зависимостей:
Затем скачайте и установите ключи:
Ключи gpg нужны системе для проверки подписи источника при установке пакетов. Благодаря подписям обеспечивается целостность пакетов, которая может быть нарушена вследствие изменения оригинального пакета или перехвата трафика.
Осталось добавить репозиторий проекта в список источников уже знакомым вам способом:
Запускайте командой syncthing .
Atom – это бесплатный, навороченный и кастомизируемый текстовый редактор с возможностями совместного использования кода в реальном времени, интуитивного автозавершения и установки пакетов для расширения функциональности. В качестве альтернатив можете попробовать Geany и Gedit.
Для установки Atom в Kali Linux скачайте deb-пакет. Затем установите зависимости:
Наконец, используйте dpkg , пакетный менеджер командной строки, с флагом установки -i :
После этого Atom будет доступен из меню приложений.
OpenVAS – это свободный сканер уязвимостей, который расширит ваш инструментарий. Фреймворк запускался под именем GNessUs, бесплатного форка Nessus, который сейчас стоит денег :)
Для бесплатной утилиты, OpenVAS хорошо справляется с оценкой безопасности узлов сети. Конечно, платный софт типа Nessus и NeXpose более функционален, и стоит он от $2,190.00 в год в случае с Nessus.
OpenVAS дает начинающим отличные возможности для понимания работы сканеров уязвимостей.
Я думаю, что все знают - нам нужно установить, katoolin чтобы использовать Kali Linux Tools на Ubuntu. До того, как что-то сделал, я просмотрел Интернет, а также обнаружил следующие решения: Могу ли я установить инструменты Kali в Ubuntu , Как автоматически установить все Kali Linux
Итак, вот мои шаги:
Затем, чтобы добавить репозитории Kali Linux и обновить их, я выбрал вариант 1 в katoolin меню
Затем, чтобы просмотреть доступные категории и установить все доступные инструменты, я выбрал вариант 2 в главном меню katoolin и затем нажал 0.
Но после этого я получил это:
Кроме того, я получил ошибку в Software Updater - она не позволяла мне ничего делать. Ubuntu просто повесил трубку. Я решил эту проблему, удалив репозитории Kali Linux katoolin и затем в Software Updater.
Кто-нибудь знает, как правильно установить инструменты Kali Linux в Ubuntu 16.04?
Введение
Katoolin - это набор скриптов для автоматизации установки инструментов Kali linux на других платформах, отличных от Kali linux, и установка инструментов Kali linux с Katoolin в других ОС или подсистеме Windows для Linux всегда менее безопасна, чем установка тех же инструментов в Kali Linux. Kali Linux назван в честь индуистской богини разрушения, которая должна дать пользователю некоторое представление о том, что даже сама Kali Linux опасна и трудна в управлении, особенно для новых пользователей.
Katoolin черпает свои инструменты из различных источников, включая apt и GitHub. Katoolin ничего не знает о платформе, на которой он работает, поэтому самый безопасный способ использовать Katoolin - это устанавливать каждый инструмент по-отдельности, каждый раз проверяя, включен ли этот инструмент в Ubuntu по умолчанию. репозитории и, если это так, устанавливайте его таким образом. Когда установка будет завершена, источники программного обеспечения, добавленные Katoolin, должны быть немедленно отключены, чтобы Katoolin не мог заменять пакеты, которые были установлены из репозиториев Ubuntu по умолчанию, на собственные обновленные пакеты при каждом обновлении программного обеспечения Ubuntu.
Установка инструментов Kali linux
(Пере) установить Католин следующим образом:
Откройте терминал и введите:
Сделать /usr/bin/katoolin исполняемым.
Запустите Katoolin следующим образом, и вы увидите интерфейс Katoolin:
Просмотр категорий доступного программного обеспечения в интерфейсе katoolin
Благодарность за приведенный выше текстовый блок написана Кашифу в разделе Как установить инструменты Kali Linux на Ubuntu 16 и CentOS 7 с курсивом, добавленным мной.
Предупреждение об обновлениях после установки инструментов Kali linux
LionSec Katoolin GitHub веб - страница явно предупреждает пользователь Katoolin быть осторожными при обновлении программного обеспечения.
Перед обновлением системы удалите все репозитории Kali-linux, чтобы избежать каких-либо проблем.
Данную статью хотим посветить всем тем, кому по той или иной необходимости приходиться соприкасяться с Kali по долгу службы, а использовать его в повседневной жизни, как Вы понимаете не совсем комфортно. Но фишка данной статьи не просто в установке компонентов Linux, так же мы с Вами поднимим иксы (X) дабы сделать данную систему совершенно пригодной для полноценного проведения тестирования на проникновение.
Давно не секрет, что Microsoft в недалеком прошлом пошли на очень, как я считаю отличный шаг с разработчиком Ubuntu компанией Canonical. Они решили интегрировать bash прямо в Windows 10 и начиналось это спростых команд типа wget, grep, dig и других, аналогов которых в винде попросту нет.
Итак, после загрузки основного приложения, нам необходимо активировать подсистему Linux в Windows 10 и сделать это можно 2 способами:
1. Активируем чекбокс через установку дополнительных компонентов панели управления (Панель управления -> Программы и компоненты -> Включение или отключение компонентов Windows 10 отметив галочкой пункт Подсистема Windows для Linux)
2. Используем мощнейший инструмент PowerShell:
После загрузки винды, идем в ПУСК и пишем словосочетание Kali:
Запустив, система попросит создать пользователя и пароль к нему, создайте пару.
Далее нам необходимо обновить систему и компоненты до актуальных версий предворительной зайдя под sudo (sudo -i / sudo su кому как привычнее):
Затем ставим сам метасплоит:
Ну и не буду Вам говорит, что это и зачем он нужен, запускаете msfconsole и радуетесь.
Далее я прикину небольшой набор утилит которыми пользуюсь сам практически повседневно:
Естенственно будет много зависимостей, но для этого мы сюда и собрались, сделать пригодную для пентестинга оболочку внутри рабочей и полноценной Windows 10.
Итак в том же терминале пишем:
Затем запускаем RDP сервис:
и цепляемся привычным для нам RDP клиентом mstsc на локалхост и порт 3390.
Появится окно в котором мы авторизуемся под имеющимся логином и паролем:
И вот пруф рабочей полноценной Kali Linux Без вирутальной машины:
Всем спасибо, думаю не зря распинался, подписывайтесь на наш телеграм канал и будете в тренде последних новостей и интересных авторских статей.
Читайте также: