welche encryption methode ist das?

jezzy

New member
#1
Hallo HaBo,

bin neu hier bei euch, hoffe ihr nimmt mich mit an's Board!!!

Ich möchte im bezug auf encrypt/decrypt etwas wissen und hoffe das sich jemand damit beschäftigt bzw. schon erfahrungen hat.

Es geht um ein .txt datei deren Inhalt verschlüsselt ist. Ich möchte jetzt nicht unbedingt die Inhalte des .txt dokumentes auslesen um an die daten zu kommen, sondern mir geht's hauptsächlich um die Vorgehensweise des Verschlüsselungs...

Ich möchte nur einfach wissen mit welchem Crypter oder Tool etc. der Inhalt verschlüsselt wurde? Was wurde benutzt bzw. Womit?

Ich würde mich sehr freuen, wenn ich ein paar Tipps oder Infos bekäme.


Ich bedanke mich schonmal im Vorraus und warte auf eure antworten


https://www.dropbox.com/s/og0invsqlwsoqyf/crypt.txt?dl=1




lg
jezzy
 
#2
Weisst du was das Tolle an Verschlüsselungen ist? Wenn man nicht weiss, mit welchen Algorithmus verschlüsselt wurde, ist die Wahrscheinlichkeit sie zu knacken extrem gering. Man kann nämlich aufgrund der verschlüsselten Zeichenketten nur selten auf den Algorithmus schliessen, wenn dieser nicht irgendwie in der Zeichenkette vorkommt (wie z.B. bei SSH-Keys: ssh-rsa AAAAB3...) oder irgendwelche typischen Signaturen hinterlässt. Eine Verschlüsselung, die nur Zahlen produziert dürfte allerdings nicht sehr häufig vorkommen. Ggf. wäre das also ein Ansatzpunkt für eine entsprechende Recherche. Affine Chiffre oder etwas in der Art wäre z.B. ein passender Kandidat.
 

SchwarzeBeere

Moderator
Mitarbeiter
#3
Weisst du was das Tolle an Verschlüsselungen ist? Wenn man nicht weiss, mit welchen Algorithmus verschlüsselt wurde, ist die Wahrscheinlichkeit sie zu knacken extrem gering.
Das würde bedeuten, dass Security By Obscurity doch wirksam ist ;)

Eine Verschlüsselung, die nur Zahlen produziert dürfte allerdings nicht sehr häufig vorkommen.
Es könnte sich auch nur um eine Kodierung des Ciphertexts handeln und nicht direkt um den Output.

Prinzipiell hast du aber Recht. Ohne weitere Informationen kann man mit dem Output nichts anfangen, denn er kann schlicht alles und nichts bedeuten (siehe Kurze Chiffretexte knacken - Warum dein Bytestring für den Arsch ist). Oder anders gesagt: Known Ciphertext Angriffe sind zum Scheitern verurteilt, wenn du nichtmal den Algorithmus kennst.

Was wir also bräuchten wären mehr Ansatzpunkte:
- Woher stammt der Text?
- Was bedeutet er?
- Kannst du beliebige Ciphertexte erzeugen? Vielleicht sogar mit selbst gewähltem Input?
- Gibt es Muster im Plaintext (z.B. IP Adressen)?
- Wie wird der Schlüssel gewählt? Kennst du ihn (z.B. Passwort)?
- usw..
 
#5
Ich stimme da Beere zu. Auf der Maschine werden häufig die Strings zu ihrere Repräsentation im ASCII oder im Buchstabdensystem von 0-25 oder 0-51/52 gewechselt und anschließend im Binärraum behandelt. Der Output geschieht natürlich wieder binär und wird als Integer interpretiert. (Erfahrungsgemäß) Diese müssten nun noch gewandelt werden, oder eben nicht :)

Da hier auch "0" auftauchen, wird die Ausgabe speziell gewählt worden sein, da normalerweise führende Nullen verschluckt werden. Auch treten keine Leerzeichen auf, das bedeutet idR, dass diese ebenfalls kodiert wurden. Ich vermute sogar, dass hier Zeichen für Zeichen kodiert wurde und nicht Wort für Wort.

Wenn man nun weiß, in welcher Sprache der Plaintext vorlag, könnte man als ersten Schritt eine Häufigkeitsanalyse durchführen und entsprechend abgleichen. Führt eine Häufigkeitsanalyse zu einem sinnvollen Output, kann es sein, dass hier eine recht einfache Chiffre verwendet wurde. Bei RSA, AES, ECC, ... klappen solche Analysen leider nicht. Ab hier bleibt dir halt nur die Möglichkeit zu testen, ob bestimmte Blöcke den Eigenschaften der einzelnen Verschlüsselungen entsprechen. Bei der Textgröße kannst du über die richtige Wahl der Angriffe doch erfolgreich sein. Aber du merkst: Es ist die Suche nach der Nadel im Heuhaufen. Ohne Anhaltspunkte, suchst du erst nach solchen. Findest du keine, musst du wild rum probieren und versuche Anhaltspunkte zu erzeugen.


Dinge, die einen Angriff leichter machen, sind z.B. Kenntnisse über die Übertragungsprotokolle, den Verwendeten Algorithmus, das zu Grunde liegende Alphabet, ... eben die Dinge, die Beere bereits genannt hat.

Auch wenn die heutige Kryptographie den Anspruch an Kyrkhoff's Regeln stellt (Der Algo ist sicher, auch wenn man alles darüber weiß, nur eben nicht den Key), ist eine reine Zeichenfolge ohne Backgroundinformationen ebenso sicher.

Es kann ja auch sein, dass du da von irgend einer Person den Kontostand in einer unbekannten Währung erhalten hast :p
 

CDW

Moderator
Mitarbeiter
#6
Wenn man nun weiß, in welcher Sprache der Plaintext vorlag, könnte man als ersten Schritt eine Häufigkeitsanalyse durchführen und entsprechend abgleichen. Führt eine Häufigkeitsanalyse zu einem sinnvollen Output, kann es sein, dass hier eine recht einfache Chiffre verwendet wurde. Bei RSA, AES, ECC, ... klappen solche Analysen leider nicht. Ab hier bleibt dir halt nur die Möglichkeit zu testen, ob bestimmte Blöcke den Eigenschaften der einzelnen Verschlüsselungen entsprechen. Bei der Textgröße kannst du über die richtige Wahl der Angriffe doch erfolgreich sein. Aber du merkst: Es ist die Suche nach der Nadel im Heuhaufen. Ohne Anhaltspunkte, suchst du erst nach solchen. Findest du keine, musst du wild rum probieren und versuche Anhaltspunkte zu erzeugen.
Das ist die klassische Vorgehnsweise.
In der Praxis solte man vor der Häufigkeitsanalyse noch teile der Url und auffallende Wörter bei Google eingeben, dann findet man nämlich schnell heraus, dass sich diese Dateien mit dem Kodi-Plugin UKTurk öffnen lassen (soweit ich's sehe - ohne Passworteingabe seitens des Benutzers) ;)

kodil/repo/plugin.video.ukturk at master * kodil/kodil * GitHub
Der Code wurde zwar obfusziert, aber mit Geduld und Fleiß sollte sich das lösen lassen.
 

jezzy

New member
#7
Das ist die klassische Vorgehnsweise.
In der Praxis solte man vor der Häufigkeitsanalyse noch teile der Url und auffallende Wörter bei Google eingeben, dann findet man nämlich schnell heraus, dass sich diese Dateien mit dem Kodi-Plugin UKTurk öffnen lassen (soweit ich's sehe - ohne Passworteingabe seitens des Benutzers) ;)

kodil/repo/plugin.video.ukturk at master * kodil/kodil * GitHub
Der Code wurde zwar obfusziert, aber mit Geduld und Fleiß sollte sich das lösen lassen.



Hier ist die HP von Ihm, mann kann die aktuelle Repo und Addon auf Kodi herunterladen und installieren, was ich auch dann tat.
UK Turk Addon

Mit dem Debugger Tool "Fiddler" konnte ich dann einige Ströme erfassen, nur leider ist das zu komplex und komme einfach nicht weiter.

Eigentlich könnte ich Ihm eine nachricht hinterlassen und das ganze schildern aber was denkt er dann? Ich denke nicht das er das akzeptiert bzw. Verrät wie er das gemacht hat. Möchte ja nur die Vorgehensweise lernen und nicht seine Daten stählen o.ä.

Ich denke schon das du in dem bereich sehr gute Kenntnisse hast und mir evtl. helfen kannst.
Danke schonmal im Vorraus
 
Zuletzt bearbeitet:

CDW

Moderator
Mitarbeiter
#8
Hier ist die HP von Ihm, mann kann die aktuelle Repo und Addon auf Kodi herunterladen und installieren, was ich auch dann tat.
UK Turk Addon
Mit dem Debugger Tool "Fiddler" konnte ich dann einige Ströme erfassen, nur leider ist das zu komplex und komme einfach nicht weiter.
Warum sich freiwillig alles verkomplizieren?
Auffallend (zugegebenermaßen - nicht ohne eine gewisse Vorerfahrung) bei der Betrachtung des Dateiinhaltes sind die vielen "hunderter-Ziffern".
0601051161011090620100601161051161081010620
060 105 116 101 109 062 010 060 116 105 116
Das schaut stark nach ASCII & Co aus.
Schnell mal in Pythonkonsole ausprobieren:
Code:
>>> x = [60, 105, 116, 101, 109]
>>> map(chr, x)
['<', 'i', 't', 'e', 'm']
Joa. Das war's mit der "Verschlüsselung" - der ursprüngliche Inhalt wurde Zeichen für Zeichen als 3-Stellige ASCII/UTF-8/whatever (die Feststellung der Kodierung wird hier als Übungsaufgabe dem geneigten Leser überlassen © *g* ) Dezimalwert kodiert.
Ein Shelleinzeiler kehrt das Ganze um:
Code:
 % fold -w3 crypt.txt|python2 -c "import sys; sys.stdout.writelines((chr(int(val)) for val in sys.stdin.readlines()))"|head -n 20
<item>
<title>[COLOR red] ----- Updated 04.08.17 ----- [/COLOR]</title>
<link>NoURL</link>
<thumbnail>http://blog.shi.com/wp-content/uploads/2014/08/082914-update-image.png</thumbnail>
</item>

<item>
<title>[COLOR gold] SUPPORT THE ADDON GO TO http://addoncloud.org/ukturk/ & cLICK ON THE ADVERTS THANK YOU [/COLOR]</title>
<link>NoURL</link>
<thumbnail>ImageHere</thumbnail>
</item>

<item>
<title>[COLOR red] Acestream Must Be Installed & Be Running To Play Live Acestream Channels [/COLOR]</title>
<link>NoURL</link>
<thumbnail>https://img.utdstc.com/icons/256/ace-stream.png</thumbnail>
</item>

<item>
<title>[COLOR green]Click here to download Acestream for Android Users[/COLOR]</title>
Da wir hier im Forum eher "Hilfe zur Selbsthilfe" leisten, wird die Umsetzung des lesbaren und ohne "fold" laufenden drei-vier Zeilers in Python, den Leserinnen und Lesern als triviale Übungsaufgabe überlassen :)
 
Oben