Что нового

Восстановление паролей от Google Chrome

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
AutoIt: 3.3+
Версия: 1.0

Категория: База данных, Разное

Описание: Google Chrome Password Recovery - восстановление забытых паролей хранящиеся в браузере Google Chrome

Код/Пример:
Код:
#Region
#AutoIt3Wrapper_Res_File_Add=1.bmp, 2, 200
#EndRegion

#Include <WinAPIEx.au3>

$hForm = GUICreate('Google Chrome Password Recovery', 400, 300, -1, -1, 0x00080000)
$iPic = GUICtrlCreatePic('', 0, 0, 400, 100)
_SendMessage(GUICtrlGetHandle($iPic), 0x0172, 0, _WinAPI_LoadBitmap(_WinAPI_GetModuleHandle(0), 200))
$iList = GUICtrlCreateListView('Url|Login|Password', 0, 100, 394, 176)
GUICtrlSendMsg($iList, 0x101E, 0, 145)
GUICtrlSendMsg($iList, 0x101E, 1, 120)
GUICtrlSendMsg($iList, 0x101E, 2, 120)
GUISetState(@SW_SHOW, $hForm)

$iRet = DllCall('chrome.dll', 'str', 'GoogleChrome_PasswordRecovery')
If IsArray($iRet) Then
	$aData = StringRegExp($iRet[0], 'url\:(.*).*login\:(.*).*passw\:(.*)', 3)
	If IsArray($aData) Then
		For $i = 0 To Ubound($aData) -1 Step 3
			GUICtrlCreateListViewItem($aData[$i] & '|' & $aData[$i + 1] & '|' & $aData[$i + 2], $iList)
		Next
	EndIf
EndIf

While 1
	Switch GUIGetMsg()
		Case -3
			ExitLoop
	EndSwitch
Wend

Файл: Google Chrome Password Recovery

Снимок:


История версий:
v1.0

Источник: autoit-script.ru
Автор(ы): Viktor1703
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
;D, эт не так просто как кажется, нужно сначала узнать каким алгоритмом зашифрованы пароли, а потом их расшифровать, что касается Opera так там сложнее алгоритм чем в Google Chrome, wand.dat шифруется весь, точнее разбивается на секции и каждая секция шифруется векторным ключём который лежит в интернете в свободном доступе, так же в интернете есть алгоритм расшифровки wand.dat, если есть желание то ты и сам можешь написать скрипт для расшифровки, кстати, браузеры от Яндекса и от Mail.ru построены на том же движке что и Google Chrome, так что алгоритм шифрования паролей такойже...


Добавлено:
Сообщение автоматически объединено:

Если будет время, попробую и для FireFox написать.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
если логин на русском то, скрипт выдает - ???
ну а так неплохая вещь. только можно неправильно ей воспользоваться..в плохих целях
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
если логин на русском то

хм.. выдаёт что? пустую строчку? вообще первый раз встречаю чтобы логин был на русском...

только можно неправильно ей воспользоваться..в плохих целях

Так ведь функцией FileDelete() тоже можно не правильно воспользоваться и убить систему, весь алгоритм расшифровки паролей я поместил в dll чтобы его не видно было, а таскать за собой dll не очень удобно будет.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
не пустое место а три вопроса. здесь на форуме можно использовать логин на русском. мой первый таким и был.
удаление файлов это одно, а кража паролей это просто полный п......теперь это можно использовать для создания трояна. будет сканить хром и отсылать пароли..прикинь.
ну а пароли в хроме можно посмотреть из без этой программы. если они сохранены. :smile:
а так, готовый троян. не сочти это за критику. у тебя светлая голова, но что в другой твориться не знаешь никогда.
 

VladUs

Скриптер
Сообщения
621
Репутация
181
Хм... У меня вообще ничего не показала... :scratch:
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Хм... У меня вообще ничего не показала...

А пароли и логини в браузере сохранены? вообще она открывает базу данных Login Data и всю информацию черпает оттуда.


Добавлено:
Сообщение автоматически объединено:

не пустое место а три вопроса

Ясно, значит dll нужно скомпилировать с Unicode.


Добавлено:
Сообщение автоматически объединено:

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

Пример:
Код:
#Region
#AutoIt3Wrapper_Res_File_Add=1.bmp, 2, 200
#EndRegion

#Include <WinAPIEx.au3>

$hForm = GUICreate('Google Chrome Password Recovery', 400, 300, -1, -1, 0x00080000)
$iPic = GUICtrlCreatePic('', 0, 0, 400, 100)
_SendMessage(GUICtrlGetHandle($iPic), 0x0172, 0, _WinAPI_LoadBitmap(_WinAPI_GetModuleHandle(0), 200))
$iList = GUICtrlCreateListView('Url|Login|Password', 0, 100, 394, 176)
GUICtrlSendMsg($iList, 0x101E, 0, 145)
GUICtrlSendMsg($iList, 0x101E, 1, 120)
GUICtrlSendMsg($iList, 0x101E, 2, 120)
GUISetState(@SW_SHOW, $hForm)

;~ Первый параметр - это директория где находится файл Login Data, можно указать букву жёсткого диска, скрипт сам найдёт данный файл.
;~ Второй параметр - функция в которую будет поступать указатель на структуру с данными.

;~ Данная функция может использоваться для браузеров Google Chrome, Yandex.Браузер и Интернет от Mail.ru

Chromium_PasswordRecovery(@UserProfileDir, 'Chromium')

While 1
	Switch GUIGetMsg()
		Case -3
			ExitLoop
	EndSwitch
Wend

Func Chromium($pDATA)
	Local $tDATA, $sVal1, $sVal2, $sVal3
	$tDATA = DllStructCreate('char Value1[256];char Value2[128];char Value3[128]', $pDATA)
	$sVal1 = DllStructGetData($tDATA, 'Value1')
	$sVal2 = DllStructGetData($tDATA, 'Value2')
	$sVal3 = DllStructGetData($tDATA, 'Value3')
	GUICtrlCreateListViewItem($sVal1 & '|' & $sVal2 & '|' & $sVal3, $iList)
EndFunc

Func Chromium_PasswordRecovery($sPath, $sFunc)
	Local $iResult, $tProc, $iRet
	If FileExists(@ScriptDir & '\chrome.dll') Then
	    $tProc = DllCallbackRegister($sFunc, 'none', 'ptr')
	    $iRet = DllCall('chrome.dll', 'int', 'Chromium_PasswordRecovery', 'str', $sPath, 'ptr', DllCallbackGetPtr($tProc))
	    If ((Not @error) And IsArray($iRet) And ($iRet[0] <> 0)) Then
		    $iResult = 1
        EndIf
	    DllCallbackFree($tProc)
	EndIf
	Return $iResult
EndFunc

Файл: Chromium.rar

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

Понимаю, я долго думал перед тем как выложить пример на форум, всётаки решился, если будет предупреждение, то я не против если удалят данную тему, я хотел собрать коллекцию функций в dll и сделать программу на подобии Multi Password Recovery, но пока смог добиться результата от Google Chrome, планирую сделать тоже самое для Mozilla, Apple Safari и Opera, но писать саму программу буду уже на PureBasic без возможности вытащить данные показанные в самой программе, то есть dll будет работать по ключу, ключь будет в exe а exe будет зашифровано с помощью ASM макроса (либо всё засуну в exe без использования dll), окно будет рисованное, и все данные будут на нём отображаться с помощью DrawTrex и скопировать их не удастся.
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Странно, на компьютере кроме Google Chrome установлен хоть один из перечисленных ниже браузеров:

1. Yandex.Браузер
2. Интернет от Mail.ru

если да то эти браузеры так же как и Google Chrome хранят куки в Login Data файле, и тоже находятся в @UserProfileDir\path to browser, dll в первом посту ищет этот файл и возможно натыкается на один из перечисленных выше браузеров, в которых возможно ни чего не сохранено, в предыдущем сообщении я положил в архив другую dll где можно указать полный путь до файла Login Data, если же и она не заработает, то я не знаю в чём может быть проблемма :scratch: либо может в версии дело, у меня Google Chrome v23
 

VladUs

Скриптер
Сообщения
621
Репутация
181
Viktor1703 [?]
Странно, на компьютере кроме Google Chrome установлен хоть один из перечисленных ниже браузеров: 1. Yandex.Браузер2. Интернет от Mail.ru
Ни один из вышеперечисленных браузеров не установлен.
Дело видимо в том, что при открытом Chrome, программа не может получить доступ к файлу хранения паролей. После закрытия браузера все отобразилось.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Viktor1703 [?]
Немного изменил dll и сам скрипт, joiner, проверь пожалуйста на русские логины, если будет работать то сменю свой первый пост.
не показывает логины на русском и в этом варианте.

и скопировать их не удастся.
но увидеть то можно. на листочек переписать. пришел я к дяде на ремонт компа и твоей прогой посмотрел все его логины и пароли. хотя, пароли и логины в хроме и мазиле можно посмотреть в самом браузере. если было сохранение.
вобщем у меня двоякое отношение к этой программе. ;)
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
но увидеть то можно. на листочек переписать
хотя, пароли и логины в хроме и мазиле можно посмотреть в самом браузере.

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

не показывает логины на русском и в этом варианте.

Очень жаль, если ни чего не придумаю, то придётся оставить так как есть.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Viktor1703 [?]
Очень жаль, если ни чего не придумаю, то придётся оставить так как есть.
ну зачем так грустно. надо добить уже до конца.
да, если нет возможности сохранения, то зачем такая программа? просто посмотреть пароли? ведь она нужна для сохранения паролей. самому пользователю.я когда сносил систему делал скрины браузера с открытыми паролями. не удобно. а твоя прога выручила бы.но опять же, палка о двух концах
или может тогда просто копировать файл браузера, где хранятся пароли?
а на "местном" языке я так понял нет такой возможности написать читалку паролей?
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
ну зачем так грустно. надо добить уже до конца.

Попробую :smile:

а на "местном" языке я так понял нет такой возможности написать читалку паролей?

Она бы была если бы я знал как в AutoIt читать Blob данные из базы данных.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Blob - это просто двоичные данные. для того, чтобы знать что там, нужно знать как они туда попали. в смысле, какие символы, в какой кодировке записывались, и потом сделать обратное преобразование
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
в Login Data файле, пароли хранятся в зашифрованном виде в Blob, в пурике это делается так, GetDatabaseBlob() и в один из параметров этой функции указывается указатель на массив или участок памяти для сохранения в нём информации, далее я беру эти данные и расшифровываю, то есть прочитать данные из Blob в DllStructCreate('byte[size]')
 

armenxxx1

Продвинутый
Сообщения
155
Репутация
56
http://habrahabr.ru/post/134982/
http://www.opensc.ws/general-programming-help/16942-python-password-recovery-tool-chrome.html
 
Верх