Forum: PC Hard- und Software Zip-Datei Passwortschutz


von Martin (Gast)


Lesenswert?

Hallo,

ich habe eine ZIP Datei mit Passwortschutz (Firmware).
Dazu habe ich auch ein Programm vom Hersteller welches diese ZIP Datei 
entpacken kann und die Platine flashen kann. Die entpackten Dateien habe 
ich in einen tmp Ordner gefunden, sehr schlau gemacht.

Kann ich irgendwie herausbekommen wie das Passwort lautet? Mit einer 
manipulierten ZIP Datei vielleicht? Prozessmonitor o.ä.?

Martin

von abc (Gast)


Lesenswert?

Speicher vom betreffenden Prozess durchforsten?

von senf dazu (Gast)


Lesenswert?

> ZIP Datei mit Passwortschutz

Gibt es da kein funktionierendes Hilfsprogramm?

von axelr (Gast)


Lesenswert?

Martin schrieb:
> , sehr schlau gemacht.

hihi, ja - seehr gut!

von Klaus D. (kolisson)


Lesenswert?


von Martin (Gast)


Lesenswert?

Speicher von dem Programm durchforsten, hmm, ob es da dann im Klartext 
steht, die 2MB von dem Zip sind ja sehr schnell entpackt.

Bruteforceattacke hab ich kurz laufen lassen aber wenns dann über 7-8 
Stellen geht dauert es dann schon lange.

Hab auch das exe welches entpackt schon im Hexeditor angeschaut und auch 
nichts gefunden, hmm.

Martin

von troll (Gast)


Lesenswert?

Kannst du die exe mal irgendwo hochladen?

von Andreas B. (andreasb)


Lesenswert?

Wird per Zufall eine externe ZIP Applikation gestartet, wie z.B. 7z.exe 
oder sowas (sonst macht das Entpacken nach tmp keinen Sinn)?

Diese Anwendung tauschen, durch eine eigne Applikation, welche natürlich 
nicht entpackt...



mfg Andreas

von Martin (Gast)


Lesenswert?


von troll (Gast)


Lesenswert?

Martin schrieb:
> Updateprogramm:
> http://short4u.de/50784bc77a0f6
>
> Firmware:
> http://short4u.de/50784b3c41748

Danke. Spielchen :-)

von troll (Gast)


Lesenswert?

Ok, nach ~3000 Events in ProcMon: Die Dateien werden direkt von 
msiexec.exe erzeugt, kein 7zip oder so (wäre auch zu schön gewesen). 
Jetzt wirds schwierig, einen Debugger müsste man haben...

von troll (Gast)


Lesenswert?

Falls jemand mitbasteln will: Die msi-Datei ist eigentlich ein Archiv, 
lässt sich mit 7zip entpacken aber auf den ersten Blick nur eine Menge 
Datensalat und eine Datei voller Strings.

ProcMon stürzt bei mir leider ständig ab, macht die Sache nicht einfach. 
Was ich versuche rauszufinden ist der Zeitpunkt zu dem die msi-Datei auf 
das zip-Archiv zugreift, irgendwie ohne Erfolg. Ohne Archiv geht es aber 
auch nicht. :-/

von Martin (Gast)


Lesenswert?

DMSI lässt sich mit Windows Tools entpacken, oder installieren. Darin 
ist eine EXE Datei welche wärend des Updateprozesses entweder die 
aktuelle zip aus dem Netz lädt oder man gibt die Firmwaredatei an.

Die msi greift nicht auf die zip zu.

von troll (Gast)


Lesenswert?

Martin schrieb:
> Die msi greift nicht auf die zip zu.
Das habe ich auch festgestellt. Da aber mein ProcMon ständig abstürzt 
und mit FileMon (von Chip.de geladen) nicht richtig zu arbeiten ist gebe 
ich es jetzt auf. :-(

von troll (Gast)


Lesenswert?

Ach eines noch: in der msi-Datei sind weitere Archive, das geht so über 
mehrere Ebenen. Was meinst du genau mit MS-Tools? Welche?

von troll (Gast)


Lesenswert?

So, jetzt wollte ich es wissen und hatte Recht: Die msi-Datei enthält 
die komplette zip-Datei. Es geht nämlich auch ohne (die zip). Um das PW 
rauszufinden müsste man wohl den msi-Mist durch einen Debugger jagen, 
aber davon hab ich 0 Ahnung.

Over & Out.

von Andreas B. (andreasb)


Lesenswert?

Ich habe mir das ganze gerade angeschaut.
Zum entpacken des Zipfiles wird ziemlich sicher
http://xbittorrent.googlecode.com/svn-history/r7/trunk/ZipArchive/
verwendet.

=> Wir haben die Sourcen der ZIP Library, auch die Lizenz passt. Es ist 
diese Klasse;-)
1
// Function name  : SetPassword
2
// Description      : set the password for the file that is going to be opened or created
3
//            use this function BEFORE opening or adding a file
1
bool CZipArchive::SetPassword(LPCTSTR lpszPassword)
2
{
3
  if (m_iFileOpened != nothing)
4
  {
5
    TRACE(_T("You cannot change the password when the file is opened\n"));
6
    return false; // it's important not to change the password when the file inside archive is opened
7
  }
8
  if (IsClosed())
9
  {
10
    TRACE(_T("Setting the password for a closed archive has no effect.\n"));
11
  }
12
  if (lpszPassword)
13
  {
14
    int iLen = WideToSingle(lpszPassword, m_pszPassword);
15
    if (iLen == -1)
16
      return false;
17
    for (size_t i = 0; (int)i < iLen; i++)
18
      if (m_pszPassword[i] > 127)
19
      {
20
        m_pszPassword.Release();
21
        TRACE(_T("The password contains forbidden characters. Password cleared.\n"));
22
        return false;
23
      }
24
  }
25
  else
26
    m_pszPassword.Release();
27
  return true;
28
}

Also müsste man versuchen beim Debuggen / Analysieren die Calls auf 
WideToSingle tracken, leider ist auch diese Funktion nicht mehr 
sichtbar, da diese intern ist.

Also weiter im Text:
1
int CZipArchive::WideToSingle(LPCTSTR lpWide, CZipAutoBuffer &szSingle)
2
{
3
  size_t wideLen = _tcslen(lpWide);
4
  if (wideLen == 0)
5
  {
6
    szSingle.Release();
7
    return 0;
8
  }
9
...

hier wird _tcslen aufgerufen. Laut MSDN:
http://msdn.microsoft.com/en-us/library/78zh94ax%28v=vs.80%29.aspx

Wird das bei Unicode auf wcslen, ansonsten auf strlen gemappt.

"wcslen" ist im Binary nicht vorhanden. strlen hingegen schon.

Also müssen die Calls auf strlen geloggt werden, das Passwort wird dann 
mit Sicherheit dabei sein!

->http://stackoverflow.com/questions/2825960/wanted-winapi-calls-logger

Ob Procmon oder was auch immer, probiert doch einfach nochmals ob ihr 
was rauskrieg, es müsste auf jedem Fall VOR dem öffnen des Zipfiles ein 
Call auf strlen mit dem Passwort gemacht werden.

Wenn Ihr noch was herausfindet bitte Posten;-)




mfg Andreas

von troll (Gast)


Lesenswert?

Andreas B. schrieb:
> Ich habe mir das ganze gerade angeschaut.
> Zum entpacken des Zipfiles wird ziemlich sicher
> http://xbittorrent.googlecode.com/svn-history/r7/trunk/ZipArchive/
> verwendet.
Wow. Verrätst du mir wie du DAS rausgefunden hast?

> Also müssen die Calls auf strlen geloggt werden, das Passwort wird dann
> mit Sicherheit dabei sein!
Hm... überleg

Aber so nebenbei: Wie ich oben schrieb enthält die msi offensichtlich 
das komplette Archiv und zwar OHNE Passwort. Demnach ist es überhaupt 
nicht sicher ob das PW überhaupt in der Datei steckt! Da könnte man dann 
natürlich lange suchen. Die zip-Datei die man runterlädt wird nämlich 
laut ProcMon vermutl. gar nicht angefasst. Und bei mir ging es vorhin 
auch ohne...

Auf der Bruteforce-Seite: Wir haben die entpackten Dateien, vielleicht 
lässt sich da was anfangen? known-plaintext glaube ich hieß das. Keine 
Ahnung wie genau das verschlüsselt wurde, vielleicht gibt es da ja 
Sicherheitslücken? (Wobei es einen Unterschied gibt zwischen "ohne PW 
zugreifen" und "PW rausfinden", zugegeben).

Wie dem auch sei, wenn mir noch was einfällt poste ich...

von Klaus D. (kolisson)


Lesenswert?

schick doch die Datei zum Knobeln einfach mal ins Forum rein.
Es wird doch wochenende werden.

Klaus

von troll (Gast)


Lesenswert?


von Andreas B. (andreasb)


Lesenswert?

troll schrieb:
> Andreas B. schrieb:
>> Ich habe mir das ganze gerade angeschaut.
>> Zum entpacken des Zipfiles wird ziemlich sicher
>> http://xbittorrent.googlecode.com/svn-history/r7/trunk/ZipArchive/
>> verwendet.
> Wow. Verrätst du mir wie du DAS rausgefunden hast?

Hmm... Soll ich das wirklich sagen? Ist nämlich viel einfacher als das 
du denkst;-)

Ich hab das .exe im Hexeditor geöffnet, und mir den Inhalt angeschaut. 
Da habe ich die Namen von Klassen und Exception gefunden;-)

(Wärs die Debugversion gewesen wär da noch viel mehr drin gewesen, und 
dann hätte man mithilfe den Sourcen das ganze wirklich Debuggen 
können;-))

Google hat ziemlich wenig Einträge gebracht => also eigentlich 
eindeutig;-)

>
>> Also müssen die Calls auf strlen geloggt werden, das Passwort wird dann
>> mit Sicherheit dabei sein!
> Hm... *überleg*
>
> Aber so nebenbei: Wie ich oben schrieb enthält die msi offensichtlich
> das komplette Archiv und zwar OHNE Passwort.

Glaube ich nicht, da ich es nicht finde.

Bringe den Gegenbeweis;-)

> Demnach ist es überhaupt
> nicht sicher ob das PW überhaupt in der Datei steckt! Da könnte man dann
> natürlich lange suchen. Die zip-Datei die man runterlädt wird nämlich
> laut ProcMon vermutl. gar nicht angefasst. Und bei mir ging es vorhin
> auch ohne...

Annahme: Der Programmierer hatte nicht viel Ahnung, wenn dann wären die 
Ressourcen mit einem Ressourcen Hacker zu finden, da ist aber kein 
Zipfile.

Zur Info:

Ein Zipfile ist an der Magic Number "PK" zu erkennen, auch bei einer 
Verschlüsselten Zipdatei sind alle Dateinamen unverschlüsselt 
gespeichert, ist ja auch zu sehen wenn die Zipdatei geöffnet wird.

Somit müssten diese Namen auch zu finden sein. Was ich gesehen habe sind 
aber nur die Einträge mit denen die Datei geöffnet wird, aber keine 
Ziptdatei.

> Auf der Bruteforce-Seite: Wir haben die entpackten Dateien, vielleicht
> lässt sich da was anfangen? known-plaintext glaube ich hieß das. Keine
> Ahnung wie genau das verschlüsselt wurde, vielleicht gibt es da ja
> Sicherheitslücken? (Wobei es einen Unterschied gibt zwischen "ohne PW
> zugreifen" und "PW rausfinden", zugegeben).

Vergiss es. 1. ist es nicht möglich, 2. wenn es möglich ist ist es zu 
kompliziert:-)

> Wie dem auch sei, wenn mir noch was einfällt poste ich...

Hast du so ein Gerät oder wie bist du weitergekommen als ich? Es wird ja 
offenbar auf eine COM Schnittstelle zugegriffen (über USB Oder nicht ist 
ja egal, laut den Winapi Funktionsaufrufen gehts über COM).


mfg Andreas

von Basti (Gast)


Lesenswert?

Würde gern mit machen, aber wollte letztens mal wieder was Cracken, easy 
to einarbeiting Disasambler waren aber nicht zu finden... =)

Kann jemand einen Guten empfehlen?

von troll (Gast)


Lesenswert?

Andreas B. schrieb:
> Bringe den Gegenbeweis;-)

VorwerkVR100Setup.msi mit 7zip öffnen.
_16BCFBF849FBE9C5C56D1BCCF2CD7BC2 extrahieren.
_16BCFBF849FBE9C5C56D1BCCF2CD7BC2 mit 7zip öffnen.
Alle Dateien extrahieren.

_1200F65AE45849BE9C6AF16056CB9844 = XV11App.16621.P.bin.enc
_A07C98387DD8464BB2F7AEFA1C5E2EB7 = vssver2.scc
_B3410E889E7A4FA78A81C273A708563D = Config.ini
_DCC206C0F3BE4A23BDB38FB904AB0784 = LDS_15295.enc
_FB30E425EC374FE9BA2A58DD3E1B0AAB = DfltSoundLib.Rev1.0.bin
_EB8185C9E2AD4FFE982121EA79E7552C = -Releasenotes.txt

Hab ich sie alle? Die restlichen Dateien aus 
_16BCFBF849FBE9C5C56D1BCCF2CD7BC2 scheinen die zu sein die vom Installer 
installiert werden, hab mir das aber nicht genau angeschaut. Eine davon 
ist vermutl. noch mal das gleiche Archiv, warum auch immer.

Anmerkung: Das Vergleichen der Dateien hab ich visuell mit Programmer's 
Notepad gemacht, man müsste nochmal komplett anhand der Checksummen oder 
so vergleichen aber ich denke es passt.

von Andreas B. (andreasb)


Lesenswert?

troll schrieb:
> Andreas B. schrieb:
>> Bringe den Gegenbeweis;-)
>
> VorwerkVR100Setup.msi mit 7zip öffnen.
> _16BCFBF849FBE9C5C56D1BCCF2CD7BC2 extrahieren.
> _16BCFBF849FBE9C5C56D1BCCF2CD7BC2 mit 7zip öffnen.
> Alle Dateien extrahieren.
>
> _1200F65AE45849BE9C6AF16056CB9844 = XV11App.16621.P.bin.enc
> _A07C98387DD8464BB2F7AEFA1C5E2EB7 = vssver2.scc
> _B3410E889E7A4FA78A81C273A708563D = Config.ini
> _DCC206C0F3BE4A23BDB38FB904AB0784 = LDS_15295.enc
> _FB30E425EC374FE9BA2A58DD3E1B0AAB = DfltSoundLib.Rev1.0.bin
> _EB8185C9E2AD4FFE982121EA79E7552C = -Releasenotes.txt
>
> Hab ich sie alle? Die restlichen Dateien aus
> _16BCFBF849FBE9C5C56D1BCCF2CD7BC2 scheinen die zu sein die vom Installer
> installiert werden, hab mir das aber nicht genau angeschaut. Eine davon
> ist vermutl. noch mal das gleiche Archiv, warum auch immer.
>
> Anmerkung: Das Vergleichen der Dateien hab ich visuell mit Programmer's
> Notepad gemacht, man müsste nochmal komplett anhand der Checksummen oder
> so vergleichen aber ich denke es passt.

Ok;-)

Aber mein Ansatz hätte auch funktionieren können...

Wie immer: Man weiss erst welcher Ansatz der korrekte / falsche war wenn 
man die Lösung kennt;-)

Noch eine Kurze info: vssver2.scc ist eine Datei von MS Visual Source 
Save, die normalerweise versteckt ist...


Die Frage ist noch ob XV11App.16621.P.bin.enc nochmals verschlüsselt 
ist...

mfg Andreas

von troll (Gast)


Lesenswert?

Andreas B. schrieb:
> Wie immer: Man weiss erst welcher Ansatz der korrekte / falsche war wenn
> man die Lösung kennt;-)
Das ist wohl wahr...

Für mich hat sich das ganze erstmal erledigt, ich gehe nicht davon aus 
dass in der msi-Datei das Passwort vom zip-Archiv steckt, letzteres ist 
ja (bewiesenermaßen ;-) ) nicht nötig.

> Die Frage ist noch ob XV11App.16621.P.bin.enc nochmals verschlüsselt
> ist...
enc=encrypted? Aber das dürfte wohl nur interessant sein wenn man das 
entsprechende Gerät (was ist das eigentlich genau?) besitzt.

von Martin (Gast)


Lesenswert?

das msi wird so entpackt:

msiexec /a datei.msi /qn TARGETDIR="C:\zielverzeichnis"

Das Passwort ist in der exe. Das Tool funktioniert auch offline wen man 
die zip angibt.

Martin

von Andreas B. (andreasb)


Lesenswert?

Martin schrieb:
> das msi wird so entpackt:
>
> msiexec /a datei.msi /qn TARGETDIR="C:\zielverzeichnis"
>
> Das Passwort ist in der exe. Das Tool funktioniert auch offline wen man
> die zip angibt.

Ich habe kein Gerät, ich kanns nicht testen. Wie bereits geschrieben, 
vor dem Laden der Zipdatei wird das Passwort über strlen gesendet, wenn 
du z.B. mit Procmon das überwachst solltest du das rauskriegen.


mfg Andreas

>
> Martin

von Martin (Gast)


Lesenswert?

ok, ich schaue mir das gerade an. Wie meinst du vor dem lden der zip 
date? Wohin wird das Passwort geschickt?
Wenn ich die ersten zeilen im Procmon anschaue wo auf das zip zugegrifen 
wird kann ich leider nichts gescheites finden. Wo im Procmon müsste ich 
schauen?

von Andreas B. (andreasb)


Lesenswert?

Martin schrieb:
> ok, ich schaue mir das gerade an. Wie meinst du vor dem lden der zip
> date? Wohin wird das Passwort geschickt?
> Wenn ich die ersten zeilen im Procmon anschaue wo auf das zip zugegrifen
> wird kann ich leider nichts gescheites finden. Wo im Procmon müsste ich
> schauen?

Ich habe leider nicht wirklich Ahnung von Procmon...

Ich bin mir momentan nicht mal sicher es das richtige Tool ist, ich habe 
mal gegoogelt und bin auf http://www.rohitab.com/apimonitor gestossen, 
das sieht ziemlich gut aus.

da müsste irgendwo strlen("passwort") erscheinen, natürlich mit dem 
echten Passwort;-)

Zeitlich ist es so, das Passwort muss geladen werden bevor das Zipfile 
geöffnet wir, also wenn du die Zeile findest in der das Zipfile geöffnet 
wurde musst du VORHER schauen.

Wie weit vorher kann ich dir nicht sagen.



mfg Andreas

von troll (Gast)


Lesenswert?

Andreas B. schrieb:
> Ich bin mir momentan nicht mal sicher es das richtige Tool ist, ich habe
> mal gegoogelt und bin auf http://www.rohitab.com/apimonitor gestossen,
> das sieht ziemlich gut aus.

Hast du das Tool mal ausprobiert? Sieht genial aus, aber hängt sich bei 
mir (XP SP3) immer auf und reisst teilweise das ganze System mit 
(CPU-Auslastung 97-100%, einziger Ausweg Resettaster).
Virenschutz und Co. hab ich schon deaktiviert.

Schade. :-((

von Andreas B. (andreasb)


Lesenswert?

troll schrieb:
> Andreas B. schrieb:
>> Ich bin mir momentan nicht mal sicher es das richtige Tool ist, ich habe
>> mal gegoogelt und bin auf http://www.rohitab.com/apimonitor gestossen,
>> das sieht ziemlich gut aus.
>
> Hast du das Tool mal ausprobiert? Sieht genial aus, aber hängt sich bei
> mir (XP SP3) immer auf und reisst teilweise das ganze System mit
> (CPU-Auslastung 97-100%, einziger Ausweg Resettaster).
> Virenschutz und Co. hab ich schon deaktiviert.
>
> Schade. :-((

Ich Arbeite normalerweise unter Linux...


mfg Andreas

von Martin (Gast)


Lesenswert?

Ja ich habe es mit dem Tool versucht, gerade schaue ich nochmal, habe 
leider noch nichts gefunden.

von Martin (Gast)


Lesenswert?

BINGO :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.