Delphi-PRAXiS
Seite 5 von 34   « Erste     345 6715     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)

Marcu 24. Mai 2012 07:48

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
Ich weiß noch nicht ob die Entschlüsselung klappen wird weil ich die Herkunft des Schlüssels noch nicht kenne. Aber zumindest weiß ich schonmal wie die Routine ausschaut welche die Daten entschlüsselt:

Delphi-Quellcode:
procedure PermuteSomeBytes(Buffer: pbyte; BufLen: word);
var
  p: pchar;
  cnt: Integer;
  c1, c2: char;
begin
  cnt := BufLen shr 4;
  p := pchar(Buffer);
  while (cnt <> 0) do
  begin
    c1 := p^;
    p^ := (p + 8)^;
    (p + 8)^ := c1;

    c2 := (p + 4)^;
    (p + 4)^ := (p + 12)^;
    (p + 12)^ := c2;

    p := p + 16;

    dec(cnt);
  end;
end;

procedure DecryptFile(const SourceFileName, DestinationFileName,
  Password: string);

const
  BUFFERSIZE = $3000;
  // ist das wirklich eine Konstante oder wird PARTOFPASSWORD vom Virenloader
  // in den Virencode gepatcht ?
  PARTOFPASSWORD = '732jjdnbYYSUUW7kjksk***ndhhssh';

var
  hProv: HCRYPTPROV;
  hash: HCRYPTHASH;
  key: HCRYPTKEY;
  pw:string;
  Buffer: PByte;
  len: dWord;
  fsIn, fsOut: TFileStream;
begin
  pw:= Password + PartOfPassword;

  if CryptAcquireContext(@hProv, nil, nil, PROV_RSA_FULL, $F0000000) then
  begin
    CryptCreateHash(hProv, $8003, 0, 0, @hash);
    CryptHashData(hash, @pw[1], Length(pw), 0);
    CryptDeriveKey(hProv, $6801, hash, 1, @key);
    CryptDestroyHash(hash);

    fsIn := TFileStream.Create(SourceFileName, fmOpenRead or fmShareDenyWrite);
    fsOut := TFileStream.Create(DestinationFileName, fmCreate);
    try
      GetMem(Buffer, BUFFERSIZE);
      if not fsIn.Size = 0 then
      begin
        len := fsIn.Read(Buffer^, BUFFERSIZE);

        CryptDecrypt(key, 0, True, 0, Buffer, @len);
        // nach dem entschlüsseln wird in PermuteSomeBytes
        // das vertauschungen einiger Bytes rückgängig gemacht
        PermuteSomeBytes(Buffer, len);

        fsOut.Write(Buffer^, len);
      end;
      FreeMem(Buffer, BUFFERSIZE);
    finally
      fsIn.Free;
      fsOut.Free;
    end;
    CryptReleaseContext(hProv, 0);
  end;
end;
Ich will Niemanden vorreilig Hoffnung machen, aber wenn ich eine verschlüsselte Datei hätte würde ich die keinesfalls wegwerfen. Heute oder morgen nach der Arbeit setzte ich mich dran und werde rausfinden wo der Schlüssel herkommt. Danach gibt es eine konkrete Aussage von mir.

Viele Grüße
Marcus

markusg 24. Mai 2012 07:51

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
verschlüsselte dateien hab ich genug, falls du welche brauchst :d

Marcu 24. Mai 2012 08:20

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
oje... dieser blöde Virus hat wirklich großen Schaden angerichtet, nicht wahr? Ich habe gestern gelesen, dass da einer gleich zwei Usbfestplatten an seinem Computer für das Backup angeschloßen hatte. Und da hat er pflichtbewußt und täglich seine Daten drauf dupliztiert. Alles ist jetzt verschlüsselt und er überlegt seinen Laden dicht zu machen :-(

Morgen pder übermorgen werde ich dich eventuell um eine verschlüsselte Datei bitten, Markus. Am liebsten eine schöne lange Textdatei mit deutlich mehr als $3000 Bytes. Ich habe nämlich beschlossen, dass ich keine Minute mehr damit verschwenden werde die Dateiverschlüsselung des Virus zum laufen zu bekommen. Hätte ich das nur mal früher aufgeben, dann wäre ich jetzt vielleicht schon mit der Rückübersetzung fertig.

markusg 24. Mai 2012 08:31

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
läuft das neue sample bei dir auch nicht?
also ich hab in meinen "zu bearbeiten" listen rund 100 mail adressen und noch einige offene threads.
also wenn jemand von euch das schafft, habt ihr bestimmt tausende dankbare leute auf eurer seite :-)

Marcu 24. Mai 2012 08:42

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
ich habs nicht ausprobiert :oops:

Da war ich viel zu stur mit meinen Breakpoints. Die Rückübersetzung muss ich ja sowieso machen, weil ich ja eh ein Entschlüsselungsprogramm schreiben muss. Also mach ich es halt gleich, dann geht es ingesamt schneller.

Jetzt muß ich aber arbeiten. Die Leute hier wollen nämlich leider, dass ich arbeite für das Geld das die mir geben. Und meine Tochter besteht regelmäßig auf Nahrung! ;-)

markusg 24. Mai 2012 08:53

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
schrecklich, mitt all diesen verpflichtungen :-)

Marcu 24. Mai 2012 10:54

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

die Betroffenen sollen auf gar keinen Fall die Virusdatei sofort löschen! Der Virus schreibt eine Kopie von sich selbst letztendlich in das Verzeichnis "c:\windows\system32\" Genau diese Datei unbedingt sichern, bervor man die löscht.
Es könnte sein, dass für jeden Rechner ein zufälliger Schlüssel erfunden wird und dieser Schlüssel fest in die Virusdatei unter System32 gepatcht wird. Wenn die Virusdatei gelöscht wird dann wird auch der Schlüssel eventuell gelöscht und die Daten sind verloren!

Ich habe den Viruscode nicht bei mir und kann es leider jetzt nicht überprüfen. Aber ich wundere mich seit gestern Nacht darüber, dass ich einen Teil eines Schlüssels in der Virendatei gefunden habe (PartOfPassword in der Procedure decrypt oben). Das ist für mich völlig unerwartet. Es macht aus Sicht des Virenprogrammieres jedoch Sinn: Löscht man den Virus, dann zerstört man den einzigen und unwiderbringlichen Schlüssel zu seinen Daten.

Bitte warne die Betroffenen.

Michael Habbe 24. Mai 2012 11:23

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

Ich habe ein paar Postings vorher eine Zip-Datei hochgeladen, wo ein und diesselbe Textdateien mehrfach unter den Trojaner gekommen sind -> http://www.delphipraxis.net/attachme...tigt-ascii.zip

Kannst Du Deine Routinen nicht so abändern, dass man einen Schlüssel reintut, die Datei verändert wird und man anschließend schaut, obs der Schlüssel gewesen ist? Das ist doch die übliche Vorgehensweise bei Brute-Force, oder?

Könnte man Hagen auf dieses Thema ansprechen? Er ist doch der Guru, was diese Thematik anbetrifft, oder? :idea:


Michael

Marcu 24. Mai 2012 11:43

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

Zitat:

Zitat von Michael Habbe (Beitrag 1167910)
Ich habe ein paar Postings vorher eine Zip-Datei hochgeladen, wo ein und diesselbe Textdateien mehrfach unter den Trojaner gekommen sind -> http://www.delphipraxis.net/attachme...tigt-ascii.zip

Super. Habe ich tatsächlich übersehen. Die werde ich hoffentlich bald brauchen. Hast du noch genau die Virusdatei dazu die diese Dateien verschlüsselt hat?
Die Haarfarbe für Ü40iger habe ich aber nicht übersehen. Wenn das was wird mit Entschlüsseln, dann will ich die als Belohnung :D

Zitat:

Kannst Du Deine Routinen nicht so abändern, dass man einen Schlüssel reintut, die Datei verändert wird und man anschließend schaut, obs der Schlüssel gewesen ist? Das ist doch die übliche Vorgehensweise bei Brute-Force, oder?
Ein Teil des Schlüssels befindet sich im Executable des Virus. Als Konstante abgelegt. Wo der andere Teil herkommt weiß ich noch nicht. Vielleicht der Dateiname. Oder irgendwie daraus abgeleitet. Ändert man den Dateinamen würde es dann auch nicht mehr mit dem entschlüssen klappen. Das sind aber alles Spekulationen.
Die Schlüssel sind leider viel zu lang um mit Brute Force etwas erreichen zu können.

Zitat:

Könnte man Hagen auf dieses Thema ansprechen? Er ist doch der Guru, was diese Thematik anbetrifft, oder? :idea:
Aber natürlich. Gute Idee. Umso mehr Leute debuggen umso besser!

markusg 24. Mai 2012 14:18

AW: Verschlüsselungs-Trojaner, Hilfe benötigt
 
die malware legt 2 kopieen ihrer selbst im system an.
C:\Documents and Settings\Administrator\Application Data\Ycgzynuvwen\3523CC0414D7C3165928.exe
wobei der ordner einen zufälligen namen haben sollte.
ich denke aber das die datei zum entschlüsseln vom server kommen könnte.
die dateien die ins system kopiert werden haben die selbe md5 wie der dropper, zumindest war das bisher so.
aber natürlich hebe ich die gern auf, kein problem


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:33 Uhr.
Seite 5 von 34   « Erste     345 6715     Letzte »    

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