AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Verschlüsselungs-Trojaner, Hilfe benötigt

Ein Thema von Michael Habbe · begonnen am 18. Mai 2012 · letzter Beitrag vom 27. Dez 2017
Antwort Antwort
Seite 18 von 34   « Erste     8161718 192028     Letzte » 
bombinho

Registriert seit: 4. Jun 2012
Ort: UK
15 Beiträge
 
Turbo Delphi für Win32
 
#171

AW: Verschlüsselungs-Trojaner, Hilfe benötigt

  Alt 10. Jun 2012, 06:13
Hi Marcu, Du sagst es gibt keinen Weg, das Passwort zu erraten, das wuerde ich so als falsch hinstellen. Es gibt im Moment keinen Weg das Passwort einfach zu berechnen. Raten hingegen ist wie Lotto spielen, der eine hat es beim ersten Mal, der andere zahlt sein ganzes Leben ein und kriegt nix. Hoffentlich gibt es weniger Opfer als Lottospieler.
Diese 3. temporaere Datei in einem Toolkit wiederherzustellen empfinde ich durchaus nicht als sinnlos.
Da wohl eben viele Privatanwender betroffen sind, ohne direktes Backup. Eine Zusammenstellung von einem Toolkit welches diese Datei wiederherstellt und in ein leserliches Format bringt, kann zumindestens helfen einen Katalog der verschwundenen Daten zusammenzustellen. Und diese dann z.B. aus dem Freundeskreis oder auf alten Sticks/CDs oder was auch immer wiederzufinden (hoffentlich). Oder eben auch beim Sortieren nach wichtig und unwichtig helfen.

Ahja, noch etwas. Habe mal testweise diese Meldung mit dem Word abschiessen muessen. (Rechtsklick, Schliessen, Warten, bestaetigen) Das hat den ganzen Prozess gekillt inklusive der CC-Serverkommunikation. Allerdings der Autostart und die Deaktivierung von regedit und taskmgr blieben. Aber immerhin keine Verschluesselung. Wer also an diesem Punkt noch aussteigen will, hat gute Chancen solange er nicht in das System bootet ohne vorher den Ransom mit einer Bootdisc etc. unschaedlich zu machen. Leider braucht es fuer die Meisten erst das Fensterchen mit der Geldforderung um zu bemerken, dass da was im Argen ist.

Geändert von bombinho (10. Jun 2012 um 06:26 Uhr)
  Mit Zitat antworten Zitat
thebrain950

Registriert seit: 10. Jun 2012
1 Beiträge
 
#172

AW: Verschlüsselungs-Trojaner, Hilfe benötigt

  Alt 10. Jun 2012, 18:45
Bin via www.trojaner-board.de auf diesen Thread gelangt.

Falls Bedarf besteht, könnte ich ein Sample einer kompletten Email incl. Anhang buchung.zip mit darin enthaltener FlirtFever....exe zur Verfügung stellen. Ein Bekannte hat diese Email am 31.5.12 erhalten und _natürlich_ versucht, den Anhang zu öffnen.

Ergebnis:
Die meisten Dateinamen lauten nun ANjjladUrQnLpDxxuOqye usw., die Inhalte scheinen verschlüsselt.
Wir konnten zu 16 verschlüsselten Dateien das unverschlüsselte Original ausfindig machen.

Versuche mit den auf www.trojaner-board.de genannten 8 Tools halfen nicht.

Grüsse
  Mit Zitat antworten Zitat
Marcu

Registriert seit: 20. Mai 2012
50 Beiträge
 
#173

AW: Verschlüsselungs-Trojaner, Hilfe benötigt

  Alt 10. Jun 2012, 21:32
@CAG83
Zitat:
... und wenn einer zahlen will, passiert nix? Da hätten die die files ja auch komplett zerstören können oder so, wisst ihr was ich meine?
Da geht etwas nicht so wie es der Trojanerprogrammierer geplant hat. Ich denke es war tatsächlich mal geplant die Passwörter zurückzugeben, aber es klappt nicht.

Wenn man einem Programmierer davon erzählt was der Autor des Trojaners sich ausgedacht hat, glaubt er es zunächst mal nicht. Da sollen also eine handvoll Server, die ständig auf der Flucht sein müssen, durch hin und her schicken von Passwörtern über das Internet, die Brauchbarkeit der Dateien von vielen Computern steuern. Und das Ganze noch ohne jegliches Fallback für den Fall das etwas dabei nicht klappt. Ich denke ein verantwortungsvoller Programmierer würde sich vermutlich bei einem solchen Szenario mit dem Zeigefinger an die Stirn tippen und sich abwenden, weil er sieht, dass so etwas nicht robust ist. Das Risiko für die Daten und der Aufwand ist viel zu hoch.
Einige werden bezahlen und dann bemerken dass ihre Daten nicht entschlüsselt werden, weil das baufällige Verfahren der Erpresser nicht funktioniert. Den Erpressern ist es egal. Die haben das Geld.

Ein Notfallverfahren haben die Erpresser nun doch vorgesehen, fällt mir gerade ein. Man soll eine E-Mail schicken. Diesmal schon mit Bitcoins im Wert von 200€. Wenn man das tut, haben die Erpresser weitere 200€, aber da die ja die ComputerId nicht haben, können die auch nicht das dazugehörige Passwort zurückschicken. Das ist also nur ein Trick um noch mehr Geld herauszuholen.

@bombinho
Zitat:
.. es gibt keinen Weg, das Passwort zu erraten ..
ich habe es so geschrieben, weil ich ein paar Mails bekam in der nach der Möglichkeit gefragt wurde das gesuchte Passwort durch einfaches ausprobieren zu ermitteln. Ich wollte damit jede Hoffnung klar verneinen, auch wenn es mathematisch nicht richtig ist.

Das gesuchte Passwort wird mit folgender Funktion erstellt:

Delphi-Quellcode:
function GetRandomString(s: pchar; len: DWORD): Boolean;
const
  L: array[0..75] of Char = (
    'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'a', 's', 'd', 'f', 'g',
    'h', 'j', 'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm', 'p', 'l', 'f', 'y',
    'r', 'n', 'y', 'd', 's', 'j', 's', 'd', 'Q', 'W', 'E', 'R', 'T', 'Y', 'U',
    'I', 'O', 'P', 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Z', 'X', 'C',
     'V', 'B', 'N', 'M', 'P', 'L', 'F', 'Y', 'R', 'N', 'Y', 'D', 'S', 'J', 'S',
    'D'
    );
var
  i, r: dword;
begin
  i := 0;
  while i <> len do
  begin
    // GetRandomNumber entspricht der Funktion GetCpuTimeCode aus Beitrag #33
    r := GetRandomNumber and $3E; // $3e=62
    (s + i)^ := l[r];
    inc(i);
  end;
end;


.
.
len := (GetRandomNumber and $1F) + 30; // 30<= Passwortlänge len <=30+$1f=61
GetRandomString(CatalogPassword, len);
.
.

Das gesuchte Passwort hat zwischen 30 und 61 Buchstaben. Der Virus wählt dabei Buchstaben aus einem Pool von 63 Zeichen aus. Wenn man das nach unten abschätzt und davon ausgeht, dass das eigene Passwort nur 30 Buchstaben lang ist, dann gibt es 63^30 mögliche Passwörter. Das entspricht einer Zahl mit 53 Nullen (63^30 = 9,5 × 10^53). Angenommen wir hätten eine Testfunktion die uns in einer Millisekunde sagt, ob man das richtige Passwort hat oder nicht, dann müsste man 10^53/(1000*3600*24*365) = 10^42 Jahre warten bis alle Passwörter durchprobiert sind. Ich glaube man schätzt die verbleibende Lebensdauer des Universums auf ungefähr 10^14 Jahre. Auch mit dem Bau schnellerer Computer oder dem Parallelschalten von vielen Computern ist da nichts erreicht.

Du hast aber völlig recht, bombinho - es ist möglich das Passwort auf Anhieb zu erraten. Falls mir das gelänge, kämen bestimmt - wie auf einem Jahrmarkt - einige Statistiker zu mir, um den größten Glückspilz aller Zeiten zu bestaunen. Neben mir würde dann ein Lottogewinn wie völlig bedeutungsloser Alltag aussehen.
Für die Entschlüsselung der Dateien gilt genau das gleiche. Das für jede verschlüsselte Datei generierte Passwort wird mit dem gleichen Funtkionsaufruf erstellt.


Zitat:
Habe mal testweise diese Meldung mit dem Word abschiessen muessen.
Diese Meldung wird wohl nur angezeigt, damit dem Benutzer es halbwegs plausibel erscheint, dass nach dem Klick auf den Inhalt der Zipdatei scheinbar nichts passiert.

Tatsächlich installiert der Virus sich in dieser Zeit in das System32 Verzeichnis (und in das Anwendungsverzeichnis - für Benutzer ohne Adminrechte) und tut eine Menge mehr. Unter anderem setzt der Trojaner sogar einen Restore Point. Dann wird das Duplikat gestartet, welches der Trojaner gerade von sich selbst angefertigt hat und das angeklickte Programm beendet sich nachdem die in einem Thread gestartete Meldung vom Benutzer bestätigt worden ist.

Der Start des Verschlüsselungsvorgang ist zeitlich vor allem an die erfolgreiche Übertragung des Katalogpassworts geknüpft. Erst wenn das Katalogpasswort erfolgreich übertragen ist wird der Katalog erstellt, alle Dateien im Katalog verschlüsselt, der Katalog verschlüsselt abgespeichert und dann das Katalogpasswort aus dem Speicher genullt.
Wann die Übertragung des Katalogpassworts gelingt, ist wegen unzuverlässiger C&C-Server unvorhersehbar. Es wird aber nach dem Start des Trojaners regelmäßig versucht, bis es gelingt.

vg
Marcu

PS: der Trojanerprogrammierer hat keine deutsche Tastatur benutzt. Unsere Polizisten müssen wahrscheinlich über Ländergrenzen hinaus ermitteln. Oje ..

Geändert von Marcu (10. Jun 2012 um 23:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#174

AW: Verschlüsselungs-Trojaner, Hilfe benötigt

  Alt 11. Jun 2012, 00:10
Falls die Zahlen im Code da oben und die Tabelle stimmen, ist der Keyspace um einiges kleiner. Wenn da wirklich nur auf die ersten 62 Werte zugegriffen wird, haben wir da nur die Kleinbuchstaben a-z und die Großbuchstaben QWERTYUIOPASDFGHJKLYXCVB - also nicht 63^30 minimal sondern "nur" 50^30 (denn es ist ja egal, ob das erste oder zweite Vorkommen des Buchstaben "gewürfelt" wird, der Buchstabe selber ist relevant). Wenn man sich jetzt noch anschaut, welcher Zufallszahlengenerator verwendet wurde und welche Ungleichverteilung der bei großen Mengen Zufallszahlen zeigt, lässt sich der Keyspace sicherlich noch um einiges eindampen. Man könnte dann eine Art Gewichtung erstellen, welche Sequenzen wahrscheinlicher sind als andere und damit evtl. schneller den einen oder anderen Treffer landen.

Da fällt mir ein: Hast Du irgendwo Code gefunden, der den RNG initialisiert der da benutzt wird?
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Marcu

Registriert seit: 20. Mai 2012
50 Beiträge
 
#175

AW: Verschlüsselungs-Trojaner, Hilfe benötigt

  Alt 11. Jun 2012, 06:25
.. "nur" 50^30 (denn es ist ja egal, ob das erste oder zweite Vorkommen des Buchstaben "gewürfelt" wird, der Buchstabe selber ist relevant)
Völlig richtig!
Zitat:
Da fällt mir ein: Hast Du irgendwo Code gefunden, der den RNG initialisiert der da benutzt wird?
Es gibt keine Initialisierung. Der RNG sieht so aus:

Code:
unsigned int GetCpuTimeCode()
{
  unsigned __int64 tick;

  tick = RDTSC(); // Assembler für GetTickCount;
  return (16807 * (HIDWORD(tick) ^ tick) % 0x1F31D
     - 2836 * (HIDWORD(tick) ^ tick) / 0x1F31D) % 0x186A0;
}
Schau mal bitte hier, OldGrumpy: Park-Miller-Carta Pseudo-Random Number Generator

Update:
Der RNG sieht in Delphi so aus: (Danke an Yvonne fürs schreiben und recherchieren )

Delphi-Quellcode:
function GetRandomNumber: DWORD;
// http://www.cems.uwe.ac.uk/~irjohnso/coursenotes/ufeen8-15-m/p1192-parkmiller.pdf
// Seite 1195 (function Random Integer Version 2)
  function RDTSC: DWORD;
  begin
    asm
     dw $310F // = rdtsc
    end;
  end;

const
  a = 16807;
  q = 127773;
  r = 2836;
var
  t, hi, lo, seed: DWORD;
begin
  t := RDTSC;
  seed:= t and $0000FFFF; //= (t and $FFFF0000) xor t;
  hi := seed div q;
  lo := seed mod q;

  Result := (a * lo - r * hi) mod 10000;
end;

Geändert von Marcu (11. Jun 2012 um 09:44 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#176

AW: Verschlüsselungs-Trojaner, Hilfe benötigt

  Alt 11. Jun 2012, 08:36
@OldGrumpy
Um ein bisschen genauer zu sein:

Delphi-Quellcode:
// Count: 59
// neue Tabelle ("-" Elemente werden nicht verwendet)
L: Array[0..75] of AnsiChar = (
'q', 'w', 'e', '-', 't', 'y', 'u', '-', 'o', '-', 'a', '-', 'd', '-', 'g', '-', 'j', 'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm', 'p', 'l', 'f', 'y', 'r', '-', 'y', '-', 's', '-', 's', 'd', 'Q', '-', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'A', 'S', 'D', '-', 'G', '-', 'J', '-', 'L', 'Z', 'X', '-', 'V', 'B', 'N', '-', 'P', 'L', 'F', '-', 'R', 'N', 'Y', '-', 'S', 'J', 'S', 'D'
);
@Marcu
Du meintest, man könnte das Passwort leider nicht (clientseitig) zurückberechnen.
Ich habe jetzt leider nicht mehr alles in Erinnerung: Ich gehe davon aus, das ein Teil des Passworts vom CC Server generiert wird (#158).
Man müsste zuerst klarstellen, ob die Generierung zufällig geschieht oder abhängig von Parametern ist (SendViaInternetToC&C-Server(HarddriveSerialnumber+Computername,CatalogP assword)).
Falls das Zweitere der Fall ist, so könnte man ja evt versuchen, mit den Parametern rumzuspielen und selber mit dem Server zu kommunizieren und schauen, was man da so als Ergebnis erhält. Daraus könnte man ja weitere Rückschlüsse ziehen und somit evt. den Algorithmus reversen.

Edit
Ähm, also bei #158 sehe ich nur, dass ein Passwort erstellt wird, dem CC Server mit ner Pseudo ID mitgeteilt und dann schön verschlüsselt wird. Mit der PW Generierung hat der Server eig. nichts zu tun; der hat halt nur das PW gespeichert, was später auf den betroffenen PCs nicht mehr auffindbar ist. Ich meine aber gelesen zu haben, dass der Server etwas damit zu tun hat (ein Teil davon wird vom Server produziert)
/Edit

Ich sehe nur noch mehr den Weg zur Lösung; oder eben den Server zu "hacken" (es gibt doch so viele Kiddies, die etliche Seiten defacen; sollte also nicht allzuschwer sein (kenne mich mit Webhacking eher weniger aus ))
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (11. Jun 2012 um 09:56 Uhr)
  Mit Zitat antworten Zitat
Marcu

Registriert seit: 20. Mai 2012
50 Beiträge
 
#177

AW: Verschlüsselungs-Trojaner, Hilfe benötigt

  Alt 11. Jun 2012, 09:48
Hallo Aphton

Zitat:
Mit der PW Generierung hat der Server eig. nichts zu tun; der hat halt nur das PW gespeichert, was später auf den betroffenen PCs nicht mehr auffindbar ist.
Genau so ist es. Das Passwort wird clientseitig per Zufalls erstellt. So ist es leider.

Zitat:
Ich sehe nur noch mehr den Weg zur Lösung; oder eben den Server zu "hacken" (es gibt doch so viele Kiddies, die etliche Seiten defacen; sollte also nicht allzuschwer sein (kenne mich mit Webhacking eher weniger aus ))
So gehts mir auch. Damit habe ich nicht die geringste Erfahrung. Und so viel Zeit habe ich leider auch nicht übrig um mich damit angemessen zu beschäftigen.

vg Marcu

Geändert von Marcu (11. Jun 2012 um 09:58 Uhr)
  Mit Zitat antworten Zitat
bombinho

Registriert seit: 4. Jun 2012
Ort: UK
15 Beiträge
 
Turbo Delphi für Win32
 
#178

AW: Verschlüsselungs-Trojaner, Hilfe benötigt

  Alt 11. Jun 2012, 10:30
Naja die Sache mit dem Lottogewinn ist ja auch Alltag. Wer wuerde schon Lotto spielen, wenn es nicht jede Woche Gewinner gaebe? Hast du die asm Variante vom verwendeten Zufallsgenerator? Ist das der Standard VB-Generator (Hat VB6 eigentlich noch einen eigenen?), der zum Einsatz kommt? Oder ein Eigenbau?
Oder WinAPI?

Immerhin sind genau diese PseudoZufallsgeneratoren oft genug das Einfallstor gewesen.
Deswegen haben Firmen mit Hardwaregeneratoren frueher Geld verdient.
Ich meine, mittlerweilen sollen einige Prozessoren rauschbasierte Generatoren bieten.

Geändert von bombinho (11. Jun 2012 um 10:55 Uhr)
  Mit Zitat antworten Zitat
freedy

Registriert seit: 16. Apr 2007
Ort: Göttingen
11 Beiträge
 
Delphi XE Professional
 
#179

AW: Verschlüsselungs-Trojaner, Hilfe benötigt

  Alt 11. Jun 2012, 11:58
Hallo Marcu,

ich war in Kryptologie nie gut. Ich habe im Thread leider auch nicht gefunden, ob schon erwähnt wurde, wie der Tronjaner definitiv verschlüsselt. Wenn es sich um eine mehrstufige Blockchiffre handelt, ist es wohl nicht möglich den Schlüssel auf einfach Art und Weise zurückzurechnen. Sollte es sich um relative einfache Verschlüsselungsmechanismen handeln, könnten wir doch anhand des möglichen Alphabets rückrechnen.
Geklärt sind m. A. auch noch nicht die Punkte, ob wirklich für jede Datei andere Passwörter ermittelt werden. (Oder habe ich das auch überlesen?) Auch andere Fragen aus dem Thread sind noch ungeklärt.

Viele Grüße
Michael
  Mit Zitat antworten Zitat
Marcu

Registriert seit: 20. Mai 2012
50 Beiträge
 
#180

AW: Verschlüsselungs-Trojaner, Hilfe benötigt

  Alt 11. Jun 2012, 12:17
@Aphton
Ich habe nochmal im Virencode nachgeschaut um sicher zu gehen, sogar den Opcode habe ich nachgeschaut - da steht tatsächlich "AND $3E". Sehr merkwürdig. Ist wohl ein Fehler des Programmierers. Schade das der nicht größere Auswirkungen hat.

@bombinho
Zitat:
... Oder ein Eigenbau?...
Ist nachgebaut und erweitert. Hier kann man es nachlesen:
http://www.cems.uwe.ac.uk/~irjohnso/...parkmiller.pdf Seite 1195 (function Random Integer Version 2)

Der ASM-Code sieht so aus: (Suche im Virencode nach "rdtsc" . Dann stehst du direkt in der GetRandomNumber- Funktion)

Code:
proc GetRandomNumber              
TMP = dword local

  push   ebp
  mov    ebp, esp
  sub    esp, 4
  mov    [ebp+TMP], 0
 
  push   edx
  push   ecx
  mov    eax, [ebp+TMP]
  or     eax, eax
  jnz    short LABEL      ; springt nie
 
  rdtsc
  xor    eax, edx
  mov    [ebp+TMP], eax

LABEL:
  xor    edx, edx
  mov    ecx, 1F31Dh      ; q=127773
  div    ecx
  mov    ecx, eax
  mov    eax, 41A7h       ; a=16807
  mul    edx
  mov    edx, ecx
  mov    ecx, eax
  mov    eax, 0B14h       ; r=2836
  mul    edx
  sub    ecx, eax
  xor    edx, edx
  mov    eax, ecx
  mov    [ebp+TMP], ecx
  mov    ecx, 186A0h      ; =10000 
  div    ecx
  mov    eax, edx
  pop    ecx
  pop    edx
  leave
  retn
end;

Geändert von Marcu (11. Jun 2012 um 12:33 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz