Wie sich Bot-Netze enttarnen lassen

24.06.2005
Von f niemann

.text:0040127A loc_40127A: ; CODE XREF: Bot_Services_Start+B4_j.text:0040127A push offset unk_43C038.text:0040127F push offset unk_43BF34.text:00401284 push dword_43C144.text:0040128A push offset aTftpServerStar ; "[TFTP]: Server started onPort: %d, Fil"....text:0040128F lea eax, [ebp+var_200].text:00401295 push eax

Hier meldet das Programm den Start des TFTP-Servers gegenüber dem Bot-Netzwerk. Folgt man der Referenz auf diese Zeichenkette, wird folgender Code sichtbar:

.text:004012B6 lea eax, [ebp+var_204].text:004012BC push eax.text:004012BD push 0.text:004012BF push offset dword_43BF30.text:004012C4 push offset sub_4204C0.text:004012C9 push 0.text:004012CB push 0.text:004012CD call ds:CreateThread.text:004012D3 mov ecx, dword_43C13C.text:004012D9 imul ecx, 234h.text:004012DF mov dword_44AE0C[ecx], eax.text:004012E5 mov eax, dword_43C13C.text:004012EA imul eax, 234h.text:004012F0 cmp dword_44AE0C[eax], 0.text:004012F7 jz short loc_40130E.text:004012F9.text:004012F9 loc_4012F9: ; CODE XREF: Bot_Services_Start+163_j.text:004012F9 cmp dword_43C1D0, 0.text:00401300 jnz short loc_40130C.text:00401302 push 32h.text:00401304 call ds:dword_42B048.text:0040130A jmp short loc_4012F9.text:0040130C ; .text:0040130C.text:0040130C loc_40130C: ; CODE XREF: Bot_Services_Start+159_j.text:0040130C jmp short loc_401329

Es ist nunmehr der Aufruf eines Threads. Ein Thread ist eine Art Programmfaden, welcher innerhalb eines Prozesses - neben anderen Aufgaben her - abläuft. Threads teilen sich Ressourcen eines Prozesses und gestatten so eine Parallelität, die auf Ebene der Prozesse nicht möglich ist.

Im Thread ist folgender Teil von Belang:

.text:004012BF push offset dword_43BF30.text:004012C4 push offset sub_4204C0.text:004012C9 push 0.text:004012CB push 0.text:004012CD call ds:CreateThread