Wie sich Bot-Netze enttarnen lassen

24.06.2005
Von f niemann

Die Komponenten des Bots setzen sich aus wild miteinander kombinierten Code-Snippets im Compiler zusammen. Weitere Analysen des Binär-Codes förderten einen HTTP-, FTP- sowie TFTP-Server, weiteren Exploit-Code und einen Brute-Force-Passwortknacker zutage. Ein integrierter Keylogger sollte dabei Benutzerdaten ausspähen. Folgendes Code-Snippet stach ins Auge:

.text:00417D12 mov eax, [ebp+var_BC].text:00417D18 push [ebp+eax*4+var_98].text:00417D1F call capture_user_webcam.text:00417D24 add esp, 10h.text:00417D27 test eax, eax.text:00417D29 jnz short loc_417D4E.text:00417D2B mov eax, [ebp+var_BC].text:00417D31 push [ebp+eax*4+var_98].text:00417D38 push offset aCaptureWebcamC ; "[CAPTURE]: Webcam capturesaved to: %s."....text:00417D3D lea eax, [ebp+var_858].text:00417D43 push eax

Verfolgt man die Funktion capture_user_webcam, wird klar ersichtlich, was hier passiert:

.text:00402C6C push ebp.text:00402C6D mov ebp, esp.text:00402C6F sub esp, 6Ch.text:00402C72 push 1.text:00402C74 push dword_4454D4.text:00402C7A push 78h.text:00402C7C push 0A0h.text:00402C81 push 0.text:00402C83 push 0.text:00402C85 push 40000000h.text:00402C8A push offset aWindow ; "Window".text:00402C8F call capCreateCaptureWindowA.text:00402C95 mov [ebp+var_4], eax.text:00402C98 cmp [ebp+var_4], 0.text:00402C9C jnz short loc_402CA6.text:00402C9E push 1.text:00402CA0 pop eax.text:00402CA1 jmp locret_402F4FEntscheidend ist hierbei der Punkt.text:00402C8F call capCreateCaptureWindowA

Im "Microsoft Developer Network" wird die Funktion capCreateCaptureWindowA so definiert:

capCreateCaptureWindowThe capCreateCaptureWindow function creates a capture window.HWND VFWAPI capCreateCaptureWindow(LPCSTR lpszWindowName,DWORD dwStyle,int x,int y,int nWidth,int nHeight,HWND hWnd,int nID);