Delphi-PRAXiS
Seite 5 von 9   « Erste     345 67     Letzte » 

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Verschlüsselungs-Trojaner, Hilfe benötigt (https://www.delphipraxis.net/168380-verschluesselungs-trojaner-hilfe-benoetigt.html)

Daniel 7. Jun 2012 15:21

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

Zitat von CAG83 (Beitrag 1169848)
Is halt merkwürdig, wenn die Jungs die daten verschlüsseln, einen teil des schlüssels auf nen server uploaden, 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 kann man als Außensteher wohl nur spekulieren. Wäre nicht das erste IT-Projekt, das nicht vollständig zu seinem Ende gebracht wird. ;-) Und von der Logistik her scheint mir der Rückweg des Schlüssels fast die größere Herausforderung - zumindest dann, wenn man wirklich anonym bleiben will (was in dem Fall aus Sicht der Trojaner-Entwickler wohl ratsam wäre).

EWeiss 7. Jun 2012 16:50

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
Nicht desto trotz
Die ersten die ich sehe die werbung mit dem Trojaner (locked-version) machen und Geld damit verdienen wollen!
50 - 100 Euro..

Link Gelöcht.. anscheinend macht man hier alles falsch egal was man postet
Siehe nächster Beitrag

gruss

Daniel 7. Jun 2012 16:55

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
ui. Da kann man nur hoffen, dass dieses Unternehmen halten kann, was es verspricht. Da wir aber nicht wissen, was da geleistet werden kann und was nicht, bitte ich darum, von Spekulationen abzusehen. Wenn das arg abdriftet, kann das für mich als Betreiber dieses Forums juristisch etwas unangenehm werden.

markusg 7. Jun 2012 17:06

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
da steht nicht, dass sie die daten entschlüsseln können.
nur das, wenn man einen malware check will, man sie kontaktieren kann.
sehe da kein problem.

fkerber 7. Jun 2012 17:07

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

ganz unten auf der Seite lese ich das aber anders:

Zitat:

Den Windows-Verschlüsselungstrojaner entfernen & Daten retten

Der Windows-Verschlüsselungs Trojaner ist uns seit längerem bekannt und wir können diesen Virus sicher und nachhaltig entfernen. Wir nehmen auch die Entschlüsselung und Rettung Ihrer Daten vor.
LG,
Frederic

haentschman 7. Jun 2012 17:07

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

Wir nehmen auch die Entschlüsselung und Rettung Ihrer Daten vor.
...klingt anders. Mit dem was ich hier über das Teil gelesen habe denke ich mir meinen Teil dazu. :roll:

markusg 7. Jun 2012 17:11

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
naja der eintrag is ja auch schon ein bissel älter, und es geht da um die locked.name.endung.zufalls endung
stimmt zwar das sie das anpassen sollten, aber welche firma sagt schon gern, "wir sind 29 %ig sicher, dass wir ihnen behilflich sein können" :-)

Sir Rufo 7. Jun 2012 17:17

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
Der Erpresser-Onkel nimmt €50,00 und ein Dienstleister nimmt pro h €40,00 (mindestens) plus Anfahrt.
Dazu der Check des Systems ... ist der Kunde zufrieden - er ist zufrieden wenn die Dateien wieder da sind - dann hat man auch noch einen treuen Kunden.

Jetzt verstehe ich auch "Viral Marketing"

highend 8. Jun 2012 19:17

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
Werden eigentlich erst _alle_ Dateien verschlüsselt, bevor die Meldung mit der Zahlungsaufforderung dargestellt wird oder folgt das keinem bestimmten Muster? Ansonsten hätte der Trojaner bei 50GB an Fotos, Musik und sonstigen Dokumenten vermutlich erst mal einiges zu tun (es wären vermutlich einige Tausend Dateien) bevor er sich dann endgültig "meldet". Gibt es da Erfahrungsberichte?

johX 8. Jun 2012 21:34

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

Zitat von highend (Beitrag 1170096)
Werden eigentlich erst _alle_ Dateien verschlüsselt, bevor die Meldung mit der Zahlungsaufforderung dargestellt wird oder folgt das keinem bestimmten Muster? Ansonsten hätte der Trojaner bei 50GB an Fotos, Musik und sonstigen Dokumenten vermutlich erst mal einiges zu tun (es wären vermutlich einige Tausend Dateien) bevor er sich dann endgültig "meldet". Gibt es da Erfahrungsberichte?

Wenn du den Thread gelesen hättest, hättest du auch gelesen, das nur die ersten 3k (hex) Bytes je Datei verschlüsselt werden. Das sind 12KB. Bei 1000 Dateien also gerade 12MB zu schreibender Daten. OK, die Dateien müssen auch noch gefunden werden, die Daten zwischenzeitlich noch verschlüsselt werden. Bei einige Tausend Dateien also einige Dutzend MB.

bombinho 10. Jun 2012 05:13

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
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.

thebrain950 10. Jun 2012 17:45

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
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

Marcu 10. Jun 2012 20:32

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
@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 .. :-(

OldGrumpy 10. Jun 2012 23:10

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
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?

Marcu 11. Jun 2012 05:25

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

Zitat von OldGrumpy (Beitrag 1170233)
.. "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! :-D
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;

Aphton 11. Jun 2012 07:36

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
@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 :P))

Marcu 11. Jun 2012 08:48

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
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

bombinho 11. Jun 2012 09:30

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
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.

freedy 11. Jun 2012 10:58

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
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

Marcu 11. Jun 2012 11:17

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
@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;

HofMar 11. Jun 2012 12:42

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

Zitat von Marcu (Beitrag 1170289)
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.

Das reduziert die Anzahl der verwendeten Bitkombinationen jedoch auf 32, da nur fünf Bits gesetzt sind! Interessanterweise werden damit nur gerade Zahlen erlaubt und aus dem Array L
Code:
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'
    );
bleiben nur noch 31 Zeichen übrig, da das kleine 's' doppelt vorkommt:
Code:
 'q', 'e', 't', 'u', 'o', 'a', 'd', 'g', 'j', 'l', 'x', 'v', 'n', 'p', 'f', 'r',
 'y', 's', 'Q', 'E', 'T', 'U', 'O', 'A', 'D', 'G', 'J', 'L', 'X', 'V', 'N'
Das sind mit 5,5E44 (für nur 30 Zeichen) jedoch immer noch zu viele...

Gruß Martin

Blup 11. Jun 2012 12:48

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

Zitat von Marcu (Beitrag 1170248)
Der RNG sieht in Delphi so aus: (Danke an Yvonne fürs schreiben und recherchieren :-) )

In Delphi eher so:
Delphi-Quellcode:
function GetRandomNumber: DWORD;
// http://www.cems.uwe.ac.uk/~irjohnso/coursenotes/ufeen8-15-m/p1192-parkmiller.pdf
// Seite 1195 (function Random Integer)
  function RDTSC: DWORD; register;
  asm
   dw $310F // = rdtsc
   xor eax, edx
  end;

const
  a = 16807;
  q = 127773; (* 2147483647 div a *)
  r = 2836;
var
  t, hi, lo: DWORD;
begin
  t := RDTSC;
  hi := t div q;
  lo := t mod r;
  Result := (a * lo - r * hi) mod 100000; (* $186A0 *)
end;

Marcu 11. Jun 2012 17:48

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
Liste der Anhänge anzeigen (Anzahl: 1)
@freedy
Hi Freedy
Zitat:

Sollte es sich um relative einfache Verschlüsselungsmechanismen handeln, könnten wir doch anhand des möglichen Alphabets rückrechnen.
Es handelt sich nicht um ein einfaches Verfahren. Bitte schau die Parametrieung der CryptApi-Aufrufe in Beitrag #83 an. Leider geht es so nicht :-(

Zitat:

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.
Dieser Thread ist schon ganz schön lang :-) Ich habe offenbar auch etwas überlesen. Gibst du mir bitte einen Tipp welche Frage ich überlesen habe?
Die Frage wie es sich mit den Passwörtern verhält wird oft gestellt. Ich habe deswegen mal ein Bild gemalt. Schau mal im Anhang. Ich hoffe es ist so besser als viele Worte.

@Bombinho und OldGrumpy und Hofmar
Sch...ade, dass es nicht weiterführt. :evil: :-(

@blup
Ich glaube das "xor eax,edx" ist seit Delphi 5 nicht mehr nötig. War da nicht so etwas in der Art?
Viel interessanter als eine 1:1-Übersetzung des Trojaners wäre aber zu klären, ob jemand diesen RNG einschätzen kann. Ist es möglich wegen des benutzen RNGs die Anzahl der Versuche zu verkleinern, die man man bei "Brute-Force" brauchen würde?


vg Marcu

Aphton 11. Jun 2012 18:59

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
Ne Idee bzw. ein paar Fragen bzgl. des Löschens der "Katalog Datei" -> wie wird gelöscht? Wird die Katalogdatei geschreddert? Falls nicht, könnte man sie ja auf den Rechnern wiederherstellen, oder nicht?!

Aphton 11. Jun 2012 20:03

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
Bzgl des obrigen Posts - falls nicht geschreddert wird, könnte man ein "Gegenmittel" erzeugen, was jedoch solange wirkt, bis der Virenprogrammierer Wind davon bekommt. Sollte man also iwie geheim halten. Eig. ists schon zu spät... =/

Sonnenbogen 11. Jun 2012 20:05

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

ich habe eine Laienfrage:

Ist es nicht möglich den Trojaner zu manipulieren und zwar so das er euch die wichtigenen Infos in eine Datai oder auf den Drucker schreibt.

Wenn ihr den Code einfach ein wenig umschreibt und neu übersetzt und dann in einer sicheren Umgebung ausführt. Stück für Stück.

Ich bin ein Laie, aber ich würde so vorgehen, wenn es ginge. Debuggen und Breakpoints wären mir nicht genug.

Sonnenbogen

Aphton 11. Jun 2012 20:14

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
Es geht, bringt aber nicht allzuviel. An diese Informationen kommt man so oder so.

Marcu 11. Jun 2012 21:36

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
@Apthon
Es gibt genau genommen 2 Katalogdateien. Eine mit der Endung ".$02", die andere mit der Endung ".$03". In der $02 Datei steht <Originalname, Neuername, Passwort> für jede verschlüsselte Datei. In der $03-Datei steht <Originalname, Neuername> - für jede Datei - also ohne Passwort.

- Der $02-Katalog befindet sich in _unverschlüsselter_ Form immer nur im Speicher des Computers - niemals in einer Datei. Nachdem der Katalog mit dem Katalogpasswort verschlüsselt wurde wird er in der $02-Datei gespeichert. Das Katalogpasswort selbst wird nie in eine Datei abgespeichert und nach Gebrauch sogar explizit aus dem Speicher gelöscht.

- Der $03-Katalog wird so verschlüsselt und abgespeichert, dass man es leicht entschlüsseln kann. Außerdem wird diese Datei nach der Verschlüsselungsphase nur gelöscht und nicht geschreddert. Man hat gute Chancen diese Datei wieder herzustellen. Damit kann man aber keine Dateien entschlüsseln. Nur den Originalnamen kann man damit wieder herstellen.

vg

Marcu 11. Jun 2012 21:42

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

Zitat:

Wenn ihr den Code einfach ein wenig umschreibt und neu übersetzt und dann in einer sicheren Umgebung ausführt. Stück für Stück.
genau das haben wir hier gemacht, aber wie Aphton es bereits sagte, es hat leider nicht viel gebracht.

Das Problem ist, dass bei jedem Opfer mit einem individuelles Passwort die Dateien verschlüsselt wurde - das Passwort aber nicht auf dem Computer des Opfers abgespeichert wurde.

Es genügt leider nicht das Programm in und auswendig zu kennen. Es gibt hier sogar mittlerweile eine ganze Reihe von Leuten die in Teilen den Virus besser und fehlerfreier schreiben könnten als der Programmierer des Trojaner es getan hat. Doch ohne das Passwort bringt das alles nichts. Man kann die Dateien nicht entschlüsseln. Selbst der Virenprogrammierer höchstpersönlich kann die Dateien nicht entschlüsseln, wenn er keinen Zugang zu den Passwörtern der Opfer hat.

Die Information die jetzt gebraucht wird steckt nicht im Virusprogramm. Es ist ein Passwort, das sich die Erpresser von den Computern der Opfer haben schicken lassen. Vielleicht schafft es die Polizei die Passwörter zu finden. Ich hoffe es sehr. Wenn so ein krimineller Programmierer keinen Fehler begeht, dann hat man leider nicht die geringste Chance. Tut mir sehr leid. :-(

VG Marcu

Aphton 11. Jun 2012 21:51

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

Ich sehe momentan echt nur noch mehr das Hacken des CC Servers als einzige Lösung. Inwiefern das den anderen passt, ist eig. irrelevant - es ist nur eine objektive Lösung.
Und schätzungsweise wird sich die Person - ganz im Gegenteil zu dir, Marcu, wie du deine Reversing Fortschritte hier mehr oder weniger "dokumentiert" hast - hier oder wo auch immer sicher nicht melden, da sie Angst vor evt. Konsequenzen haben wird xD
Das ganze wird dann so ablaufen, dass iwann im Internet ne Riesendatenbank (oder individuelle Tabellen) mit den Passwörtern auftaucht. Wobei fraglich ist wieder, ob die Passwörter auch richtig seitens Server gespeichert wurden. Ach.. Ich sehe echt keine Chance mehr...

Btw danke Marcu. Du hast dein bestes gegeben. Wäre es aus der Seite des Clienten machbar, hättest du es geschafft

bombinho 11. Jun 2012 22:36

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
Ist eigentlich irgendwo die RechnerID gespeichert? Immerhin aendert die sich ja scheinbar beim Neustart.
Marcu, deine Praesentationen sind wirklich gut ;)

Marcu 12. Jun 2012 05:54

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
@Apthon
Ja. Es wäre gelungen, wenn es möglich gewesen wäre :-)

Dieser Trojaner wird noch viel Schaden anrichten. Die Erpresser haben den Virus so geschrieben, dass die Sprache leicht geändert werden kann. :-(


@bombinho
Danke :-)

Der Trojaner stellt die ComputerId folgendermaßen zusammen:
Delphi-Quellcode:
type
  TCBuffer = array[0..$199] of char;
const
  MAXSIZECB = Sizeof(TCBUffer);
var
  GLOB_BaseName: TCBUffer;  //=ComputerId
 

procedure BuildComputerID;
var
  SystemDirectory, ComputerName, Name: TCBuffer;
  DriverSerialNumber, CName1, CName2: DWORD;
  n: Cardinal;
begin
  GetSystemDirectory(SystemDirectory, MAXSIZECB);
  SystemDirectory[3] := char(0);
  DriverSerialNumber := 0;
  GetVolumeInformation(
    SystemDirectory, nil, 0, @DriverSerialNumber,
    DWORD(nil^), DWORD(nil^), nil, 0);

  n := MAXSIZECB;
  GetComputername(Computername, n);

  CName1 := DWORD(PDWORD(@ComputerName[0])^);
  CName2 := DWORD(PDWORD(@ComputerName[4])^) and $FFFF;
  strfmt(Name, '%0.8X%0.8X%0.4X', [DriverSerialNumber, CName1, CName2]);
  Strcopy(Glob_BaseName, Name);
end;
Die Computerid wird auch für die ersten 20 Zeichen des Katalogdateinamens benutzt.

Vg
Marcu

Blup 12. Jun 2012 09:50

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

Zitat von Marcu (Beitrag 1170342)
@blup
Ich glaube das "xor eax,edx" ist seit Delphi 5 nicht mehr nötig. War da nicht so etwas in der Art?
Viel interessanter als eine 1:1-Übersetzung des Trojaners wäre aber zu klären, ob jemand diesen RNG einschätzen kann. Ist es möglich wegen des benutzen RNGs die Anzahl der Versuche zu verkleinern, die man man bei "Brute-Force" brauchen würde?

Die Function "RDTSC" liefert einen 64Bit-Zähler der CPU-Takte zurück.
Der niederwertige Anteil steht im 32Bit-Register EAX, der höhere im 32Bit-Register EDX.
Der Programmierer des Trojaners verwendet einen 32Bit-Wert als Ausgangspunkt für die "Zufallszahl", dafür verknüpft er die beiden Register mit xor. Das hat also nichts mit Delphi zu tun, sondern ist Teil des Programmablaufs, dessen Verständnis erst eine Einschätzung der Güte des Generators ermöglicht.

Wenn die Abfrage des Generators bei der Erzeugung des Passworts nach jeder Stelle immer im selben Abstand in CPU-Takten erfolgen würde, könnte man die Anzahl der möglichen Passwörter auf einige Milliarden eingrenzen (jeweils für einen PC/CPU). Bei meinen Versuchen schwankt die Anzahl allerdings erheblich, ich sehe hier keinen Angriffspunkt.

ewhiz 12. Jun 2012 12:32

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

Zitat von Marcu (Beitrag 1170366)
@Apthon

- Der $03-Katalog wird so verschlüsselt und abgespeichert, dass man es leicht entschlüsseln kann. Außerdem wird diese Datei nach der Verschlüsselungsphase nur gelöscht und nicht geschreddert. Man hat gute Chancen diese Datei wieder herzustellen. Damit kann man aber keine Dateien entschlüsseln. Nur den Originalnamen kann man damit wieder herstellen.

vg


Hallo,

ich habe den thread aufmerksam gelesen und bewundere den Ehrgeiz und das Können der Akteure hier.

Ich bin auch betroffen, habe mir das Teil beim Surfen nach dem Pacquiao-Bradley Boxkampf vom WE geholt und hatte sehr viel Glück. 99% gesichert und wiederhergestellt.

Es fehlen jetzt nur noch eine Handvoll Dateien – der Dateiname würde hierfür völlig ausreichen. Ich habe $$0, $02, $03, V.class sowie die 1.048-Byte Datei gesichert. Jetzt hatte ich die DecryptTmpNoExt von Euch runtergeladen und versucht, die $03 zu entschlüsseln. Ich komme nur mit dem Command nicht zurecht.

z.B.:
DecryptTmpNoExt F05A208B494857452D5A

muss ich doch nur in den cmd promt eingeben oder nicht?

Für einen Kurzen Hinweis, wie ich an die Dateinamen komme, wäre ich sehr dankbar

Danke u Grüße

HofMar 12. Jun 2012 14:23

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

Zitat von ewhiz (Beitrag 1170425)
Ich habe $$0, $02, $03, V.class sowie die 1.048-Byte Datei gesichert.

Welche Aufgabe hat die $$0-Datei? Diese habe ich auch gefunden. Jedoch klappte bei mir weder das Dekodieren (DecryptTmpNoExt) der Datei ohne Extension, noch bei der $$0-Datei.

Gruß Martin

markusg 12. Jun 2012 14:30

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
hatt wer lust sich version 2.0.11 anzusehen, da gibts wohl einige enderungen.

HofMar 12. Jun 2012 14:48

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

wie bekommt man möglichst schnell die Versionsnummer aus dem schadhaften Code heraus?

Gruß Martin

HofMar 12. Jun 2012 14:57

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

Zitat von Marcu (Beitrag 1170373)
Code:
  strfmt(Name, '%0.8X%0.8X%0.4X', [DriverSerialNumber, CName1, CName2]);
Die Computerid wird auch für die ersten 20 Zeichen des Katalogdateinamens benutzt.

Wenn ich das richtig sehe, ist die ComputerID immer nur 20 Zeichen (8+8+4) lang! Demnach ist der Katalogdateiname immer auch gleich die ComputerID.

Woher kommen dann aber die weiteren vier Zeichen bei der Datei ohne Erweiterung? Oder sollte das oben '%0.8X%0.8X%0.8X' heißen und damit 24 Zeichen lang sein? Das würde das Abschneiden nach 20 Zeichen für die Katalogdatei erklären...

Gruß Martin

RenéLandscheidt 12. Jun 2012 18:00

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

habe das jetzt schon einige zeit Verfolgt weil meine Cousine sich den Trojaner eingefangen hat.
(Habe die Mail - mit dem Anhang von ihr auch bekommen; Eine weitere Mail habe ich von einem Kollegen - der hatte den aber auf grund meiner Warnung nicht geöffnet.)

Je mehr ich aber lese - um so mehr fällt mir auf - das man eigentlich an die DB des C&C Servers kommen müste.

Allerdings ist mir was eingefallen. Bei einem frisch befallenen System , könnte man theoretisch mit einer Cold-Boot Atacke den Speicher Dumpen und im Dump des Speichers nach dem Passwort suchen - das würd aber nur bei eine Frisch infizierten Rechner der nicht ausgemacht wird - bis man alles für den Cold-Boot Angriff vorbereitet hat - funktionieren. Wenn mann dann in den Speicher nach dem "CatalogPassword" oder wie der Identfier für die Varaiable heißt sucht - müsste mann doch was finden.

Viele Grüße

R. Landscheidt

deraddi 12. Jun 2012 19:52

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

Zitat von Aphton (Beitrag 1170368)
Schade

Ich sehe momentan echt nur noch mehr das Hacken des CC Servers als einzige Lösung. Inwiefern das den anderen passt, ist eig. irrelevant - es ist nur eine objektive Lösung.

Gebe ich dir Recht, denn der Virus ist ziemlich wasserdicht.
Habe den Schweizer C&C Server ein wenig näher angeschaut, es ist leider schon mal kein Apache (mit all dessen Macken) sondern nginx 1.0.4 . Das ganze läuft auf Debian lenny, PHP ist ein 5.2.6 - da besteht allerdings ein Memory Exhaust Problem. Um dieses zu nutzen reichen aber meine Kenntnisse nicht, ansonsten ist der ziemlich dicht. SSH ist gut gesichert, brute ist da zwecklos.
Es gibt noch ein paar offene Ports, seltsamerweise für MAC Anwendungen z.B. AFP over TCP. Aber dazu finde ich nichts, wo man ansetzen kann.

Spielen mit den Parameter der a.php brachte auch nicht viel, magic quotes sind an - SQL Injection zwecklos. Man müsste jetzt mal alle SQL Vulnerabilities durchsuchen ob ein Fehler exsitiert den man durch die Magic Quotes durchschleusen kann.
Code Injection über Variablen wurde schon seit PHP 5.0 behoben - register_globals auf off ist schon damals einer der Sicherheits-Ansätze gewesen.

Alles in allem muss schon ein begabter sagen wir mal "Serverversteher" her um sich dort mal umzusehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:52 Uhr.
Seite 5 von 9   « Erste     345 67     Letzte » 

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf