Как найти и извлечь POST-запросы, содержащие личные данные, пароли и т.д.

Настройка рабочей среды

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


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


Далее процесс установки довольно прост: несколько браузеров (Chrome, IE, FF), учетная запись LastPass и добавление аккаунтов для нескольких сайтов.


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


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


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


Методика исследования


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


Открыть браузер.


Авторизоваться в плагине LastPass (если произошло разлогинивание).


Авторизоваться на сайте.


Проверить память на присутствие паролей в открытом виде.


Что-нибудь поменять:


Закрыть вкладку.


Повторно использовать вкладку.


Разлогиниться.


Повторить.


Тест №1


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


Мой первый поисковый запрос был простым:


grep -a 03rRJaYNMuoXG7hs Win7x64-MemTesting-Snapshot3.vmem | strings > ~/Desktop/fb.txt


Параметр –а говорит утилите grep о том, что бинарный дамп нужно обрабатывать как текст, а утилита string немного очищает выходные данные перед записью в текстовый файл.

В полученном текстовом файле сразу же видим незашифрованный пароль:
Как найти и извлечь POST-запросы, содержащие личные данные, пароли и т.д. Пост, Данные, Пароль, Изъятие, Криминалистика, Длиннопост
Содержимое снимка памяти во время работы с учетной записью в FaceBook


Два момента сразу же привлекают внимание:

Первый - объект JSON с паролем, именем домена, временными метками и другой информацией, которая, скорее всего, имеет отношение к автоматическому заполнению полей формы.

Как найти и извлечь POST-запросы, содержащие личные данные, пароли и т.д. Пост, Данные, Пароль, Изъятие, Криминалистика, Длиннопост

Второй – выглядит немного оторванным от остальной информации.

passO3rRJaYNMuoXG7hspassword


Продолжаем исследование.

Тест №2

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


Кроме того, чтобы убедиться, что браузер сам по себе не хранит данную информацию, я полностью почистил историю.

Как найти и извлечь POST-запросы, содержащие личные данные, пароли и т.д. Пост, Данные, Пароль, Изъятие, Криминалистика, Длиннопост
Полное удаление истории браузера
На скриншоте ниже видно, что все вкладки загружены и залогинены за исключением QNAP. Я зашел на главную страницу, и плагин LastPass показал, что есть одно совпадение учетных записей, но я еще не загрузил страницу с формой, и, соответственно, не произошло никакого автозаполнения.
Как найти и извлечь POST-запросы, содержащие личные данные, пароли и т.д. Пост, Данные, Пароль, Изъятие, Криминалистика, Длиннопост
Индикация совпадения одной учетной записи в тот момент, когда форма еще не загружена
При исследовании новых снимков использовались те же команды для всех доменов в открытых вкладках. По всем доменам, на которых я логинился, в памяти хранилась одна и та же структура данных.
Как найти и извлечь POST-запросы, содержащие личные данные, пароли и т.д. Пост, Данные, Пароль, Изъятие, Криминалистика, Длиннопост

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

Информация по сайту QNAP, который был просто загружен, но без заполнения формы, в памяти отсутствовала.


Во время поиска в памяти других интересных деталей я натолкнулся на интересную информацию:

Как найти и извлечь POST-запросы, содержащие личные данные, пароли и т.д. Пост, Данные, Пароль, Изъятие, Криминалистика, Длиннопост
Область данных, помеченная как LastPassPrivateKey

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

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


Используя grep, я нашел имя пользователя и пароль в открытом виде только в одном из снимков.


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


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


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


Пару лет назад Брайан Баскин (Brian Baskin) опубликовал статью с описанием плагина Volatility, который использует YARA-правила для поиска и извлечения информации из памяти. Именно данная технология легла в основу моего плагина.


Далее нужно было применить несколько YARA-правил и впоследствии обработать полученную информацию, чтобы собрать результаты воедино.


После обработки снимка памяти вы получите нечто следующее:


localadmin@tech-server:~$ vol.py --plugins=/home/localadmin/github/volatility_plugins/lastpass --profile=Win7SP1x86 -f /home/localadmin/Desktop/lastpass-mem.vmem lastpass



Volatility Foundation Volatility Framework 2.5


Searching for LastPass Signatures


Found pattern in Process: chrome.exe (3400)


Found pattern in Process: chrome.exe (3400)


Found pattern in Process: chrome.exe (3400)


Found pattern in Process: chrome.exe (3400)


Found pattern in Process: chrome.exe (3400)


Found pattern in Process: chrome.exe (3400)


Found pattern in Process: chrome.exe (3400)


Found pattern in Process: chrome.exe (3400)


Found pattern in Process: chrome.exe (3400)


Found pattern in Process: chrome.exe (3400)


Found pattern in Process: chrome.exe (3400)


Found pattern in Process: chrome.exe (3400)


Found pattern in Process: chrome.exe (3840)


Found pattern in Process: chrome.exe (3840)


Found pattern in Process: chrome.exe (3840)


Found pattern in Process: chrome.exe (3840)


Found pattern in Process: chrome.exe (3912)


Found pattern in Process: chrome.exe (3912)


Found pattern in Process: chrome.exe (3912)


Found pattern in Process: chrome.exe (3912)


Found pattern in Process: chrome.exe (3912)


Found pattern in Process: chrome.exe (3912)


Found pattern in Process: chrome.exe (4092)


Found pattern in Process: chrome.exe (4092)


Found pattern in Process: chrome.exe (4092)


Found pattern in Process: chrome.exe (4092)


Found pattern in Process: chrome.exe (2036)


Found pattern in Process: chrome.exe (2036)


Found pattern in Process: chrome.exe (2036)


Found LastPass Entry for hackforums.net


UserName: peters.lastpass


Pasword: jRvTpQoTHS4OTcl



Found LastPass Entry for facebook.com



UserName: peters.lastpass@gmail.com



Pasword: Unknown



Found LastPass Entry for sainsburys.co.uk



UserName: peters.lastpass@gmail.com



Pasword: mt5JwaPctWFzBj



Found LastPass Entry for leakforums.net



UserName: peterslastpass



Pasword: rmH61HSabrVJ9a2



Found LastPass Entry for facebook.com,facebook.com,messenger.com



UserName: Unknown



Pasword: O3rRJaYNMuoXG7hs



Found Private Key



Found Private Key


LastPassPrivateKey<\x00\xb2\x88\x10\x02N;$\x02&\x00\x00\x00>LastPassPrivateKey


localadmin@tech-server:~

Как найти и извлечь POST-запросы, содержащие личные данные, пароли и т.д. Пост, Данные, Пароль, Изъятие, Криминалистика, Длиннопост
Мне нужно еще многое доработать, чтобы полностью доделать плагин. Текущую версию можно взять на Github: https://github.com/kevthehermit/volatility_plugins/tree/mast...

Более подробно

Информационная безопасность IT

1.4K постов25.5K подписчика

Добавить пост

Правила сообщества

Обязательно к прочтению для авторов:

1. Если вы добавляете пост, утверждающий об утечке данных или наличии дыр в системе, предоставьте ссылку на источники или технически подкованное расследование. Посты из разряда "Какой-то банк слил данные, потому что мне звонили мошенники" будут выноситься в общую ленту.
2. Все вопросы "Как обезопасить сервер\приложение\устройство" - в лигу "Компьютер это просто".

Обязательно к прочтению для всех:

Добавление ссылки разрешено если она не содержит описание коммерческих (платных) продуктов и/или идентификаторов для отслеживания перехода и для доступа не нужен пароль или оплата в т.ч. интернет-ресурсы, каналы (от 3-х тематических видео), блоги, группы, сообщества, СМИ и т.д.


Запрещены политические holy wars.

По решению модератора или администратора сообщества пользователь будет забанен за:

1. Флуд и оскорбление пользователя, в т.ч. провокация спора, флуда, холивара (высказывание без аргументации о конкретной применимости конкретного решения в конкретной ситуации), требование уже данного ответа, распространение сведений порочащих честь и репутацию, принижающих квалификацию оппонента, переходы на личности.

2. Публикацию поста/комментария не соответствующего тематике сообщества, в том числе обсуждение администраторов и модераторов сообщества, для этого есть специальное сообщество.

3. За обвинение в киберпреступной деятельности.

4. За нарушение прочих Правил Пикабу.

25
DELETED
Автор поста оценил этот комментарий
Иллюстрация к комментарию
10
Автор поста оценил этот комментарий
В оперативке данные хранятся в открытом виде, вот это открытие, скорее учительнице по информатике покажи.
Листая журнал "Хакер" дальше ты, видимо, прочитаешь про замораживание памяти жидким азотом
раскрыть ветку
3
Автор поста оценил этот комментарий

Нифига не понял, но на всякий случай плюсанул.

2
Автор поста оценил этот комментарий

Теперь поясните, какой результат исследования? Что веб-страница может угнать ваши пароли, если стоит lostpass? Или что вирус может угнать ваши пароли, если стоит lostpass?

раскрыть ветку
4
Автор поста оценил этот комментарий

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

раскрыть ветку