# Форум на русском языке  > Угрозы информационной безопасности  > Вредоносные программы  > Описания вредоносных программ  >  BackDoor.Scard (Backdoor.Win32.Small.bq)

## Geser

Программа SCardSer.exe - размер 13824 байта, сжата UPX 1.20, распакованный размер 36824 байт. Статически импортирует только три библиотеки - KERNEL.DLL, ADVAPI32.DLL, PSAPI.DLL. По причине статического импорта PSAPI.DLL не эта программа не работает в WIN-98. Посредством PSAPI она перечисляет процессы и загруженные ими модули. Так что дальнейшее исследование проведено на Win-XP. При запуске SCardSer.exe ищет в папке Windows\System32 файлы comwsock.dll и comsock.dll. 
Сам exe написан на Microsoft C, и судя по экспресс анализу его автор читал Рихтера  (те главы, которые посвящены внедрению троянских DLL в чужой процесс). Короче говоря, после запуска этот SCardSer.exe висит в памяти, а в результате его работы у системного процесса LSASS.EXE появляется "лишняя" DLL - та самая comwsock.dll из system32.
Теперь насчет comwsock.dll - она имеет размер 4096, сжата UPX - распакованный размер составляет 20480 байт. Экспортирует она слудующие функции:
[email protected]@[email protected]
[email protected]@[email protected]@@Z
[email protected]@YAHXZ
[email protected]@3HA
start
В библиотеке множетсво "звучащих" констант типа "iexplore.exe", "outlook.exe" и т.п. - она в цикле делает операции, аналогичные SCardSer.exe - с интервалом в N миллисекунд он пробегает по списку процессов и пытается внедрить в процессы с известными именами dmsock.dll Интервал попытки внедрения dmsock.dll - порядка 5 мин, что легко наблюдать при помощи FileMon на зараженной системе. 
dmsock.dll является троянской библиотекой, она действительно внедряется в адресное пространство разных процессов и работает из их контекста (отсюда и странные сообщения Firewall о том, что скажем Explorer.exe лезет куда-то ...). 
В ходе работы эта DLL устанавливает связь с хостом 218.16.121.115 (service2.pcview3.com) по порту 3131, обмен имеет вид:
передача DLL: 001 0.3.11;002 20176;003 22596
ответ: 002 OK
Т.е. у них свой протокол обмена с квитированием.
Кроме того, была отмечена попытка передачи на 218.16.121.115 UDP пакетов по порту 137. 

Короче говоря, это Backdoor, причем весьма изощренный и экзотический (с двухступенчатым инжектирование троянских DLL в адресные пространства запущенных процессов). Он может обмануть ряд Firewall из-за того, что обмен будет идти из контекста "правильной" задачи.
Лечение - уничтожить SCardSer.exe, dmsock.dll, comwsock.dll и файлик mst.tlb - последний имеет небольшой объем и содержит некие данные (судя по всему зашифрованные)
Тк же удалить из реестра ключь 
HKLM\System\CurrentControlSet\Services
netlog         c:\windows\system32\scardser.exe

На сегодня обнаруживается только ДрВеб и КАВ

*Разбор трояна (ц) Зайцев Олег*

----------

Надоело быть жертвой? Стань профи по информационной безопасности, получай самую свежую информацию об угрозах и средствах защиты от ведущего российского аналитического центра Anti-Malware.ru:

----------

Я эту проблему пофиксил еще год назад.Еще там в памяти болтался
dmstwe.exe
TECHNICAL FILE INFORMATION : 
File Type Description :***Portable Executable (PE)

Possible Packer/Encryptor :***UPX
FILE CHARACTERISTICS : 
******Relocation info stripped from file
******File is executable  (i.e. no unresolved external references)
******COFF line numbers have been removed
******COFF symbol table entries for local symbols have been removed
******Machine based on 32-bit-word architecture
FILE HEADER :

***Machine:                      ***014Ch (i386 or later, and compatible)
***Number of Sections:           ***0003h
***Time Date Stamp:              ***4149785Dh  -> 16/09/2004  14:26:21  
***Symbols Pointer:              ***00000000h
***Number Of Symbols:            ***00000000h
***Size Of Optional Header:      ***00E0h
***Flags:                        ***010Fh

OPTIONAL HEADER :
***Magic                         ***010Bh ( PE32 : normal 32-bit ) 
***Linker version                ***6.00
***Size of code                  ***00001000h
***Size of initialized data      ***00001000h
***Size of uninitialized data    ***00004000h
***Address of Entry Point (RVA)  ***000058C0h
***Base of code                  ***00005000h
***Base of data                  ***00006000h
***Image base                    ***00400000h
***Section Alignment             ***00001000h
***File Alignment                ***00000200h
***Required OS version           ***4.00
***Image version                 ***0.00
***Subsystem version             ***4.00
***Reserved1                     ***0
***Size of image                 ***00007000h ( 28672 bytes)
***Size of headers               ***00001000h
***Checksum                      ***00000000h
***Subsystem                     ***0002h (Image runs in the Windows GUI subsystem)
***DLL Characteristics           ***0000h
***Size of Stack Reserve         ***00100000h
***Size of Stack Commit          ***00001000h
***Size of Heap Reserve          ***00100000h
***Size of Heap Commit           ***00001000h
***loader flags                  ***00000000h (obsolete)
***Number of Data Directory      ***00000010h

DATA DIRECTORY (Virtual Address and Size)
***Export Directory  ***rva: 00000000h  ***size: 00000000h
***Import Directory  ***rva: 00006000h  ***size: 00000110h
***Resource Directory  ***rva: 00000000h  ***size: 00000000h
***Exception table  ***rva: 00000000h  ***size: 00000000h
***Security table  ***rva: 00000000h  ***size: 00000000h
***Base Relocation table  ***rva: 00000000h  ***size: 00000000h
***Debug Directory  ***rva: 00000000h  ***size: 00000000h
***Architecture Specific Data  ***rva: 00000000h  ***size: 00000000h
***Global Pointer  ***rva: 00000000h  ***size: 00000000h
***TLS Directory  ***rva: 00000000h  ***size: 00000000h
***Load config table  ***rva: 00000000h  ***size: 00000000h
***Bound Import table  ***rva: 00000000h  ***size: 00000000h
***Import Address Table  ***rva: 00000000h  ***size: 00000000h
***Delay import descriptor  ***rva: 00000000h  ***size: 00000000h
***COM descriptor  ***rva: 00000000h  ***size: 00000000h
***unused        ***rva: 00000000h  ***size: 00000000h

SECTION TABLE
01 UPX0      
***VirtSize: ***00004000h  VirtAddr:      ***00001000h
***raw data offs:   ***00000400h  raw data size: ***00000000h
***relocation offs: ***00000000h  relocations:   ***00000000h
***line # offs:     ***00000000h  line #&#039;s:      ***00000000h
***characteristics: ***E0000080h
***UNINITIALIZED_DATA  EXECUTE  READ  WRITE  ALIGN_DEFAULT(16)  
02 UPX1      
***VirtSize: ***00001000h  VirtAddr:      ***00005000h
***raw data offs:   ***00000400h  raw data size: ***00000C00h
***relocation offs: ***00000000h  relocations:   ***00000000h
***line # offs:     ***00000000h  line #&#039;s:      ***00000000h
***characteristics: ***E0000040h
***INITIALIZED_DATA  EXECUTE  READ  WRITE  ALIGN_DEFAULT(16)  
03 UPX2      
***VirtSize: ***00001000h  VirtAddr:      ***00006000h
***raw data offs:   ***00001000h  raw data size: ***00000200h
***relocation offs: ***00000000h  relocations:   ***00000000h
***line # offs:     ***00000000h  line #&#039;s:      ***00000000h
***characteristics: ***C0000040h
***INITIALIZED_DATA  READ  WRITE  ALIGN_DEFAULT(16)  

IMPORTS TABLE:
   KERNEL32.DLL
***Import Lookup Table RVA:  ***00000000h*** (Unbound IAT)
***TimeDateStamp: ***00000000h   
***ForwarderChain: ***00000000h
***DLL Name RVA: ***0000608Ch
***Import Address Table RVA: ***00006064h
***First thunk RVA: ***00006064h
***Ordn  ***Name
***-----***-----
***   0 ***LoadLibraryA
***   0 ***GetProcAddress
***   0 ***ExitProcess

   ADVAPI32.dll
***Import Lookup Table RVA:  ***00000000h*** (Unbound IAT)
***TimeDateStamp: ***00000000h   
***ForwarderChain: ***00000000h
***DLL Name RVA: ***00006099h
***Import Address Table RVA: ***00006074h
***First thunk RVA: ***00006074h
***Ordn  ***Name
***-----***-----
***   0 ***OpenProcessToken

   MSVCRT.dll
***Import Lookup Table RVA:  ***00000000h*** (Unbound IAT)
***TimeDateStamp: ***00000000h   
***ForwarderChain: ***00000000h
***DLL Name RVA: ***000060A6h
***Import Address Table RVA: ***0000607Ch
***First thunk RVA: ***0000607Ch
***Ordn  ***Name
***-----***-----
***   0 ***exit

   PSAPI.DLL
***Import Lookup Table RVA:  ***00000000h*** (Unbound IAT)
***TimeDateStamp: ***00000000h   
***ForwarderChain: ***00000000h
***DLL Name RVA: ***000060B1h
***Import Address Table RVA: ***00006084h
***First thunk RVA: ***00006084h
***Ordn  ***Name
***-----***-----
***   0 ***EnumProcesses



DOS HEADER
Header Information :

***Signature :***5A4Dh 
***Bytes on last page of file :***0090h 
***Total Pages in File :***0003h 
***Relocation Items :***0000h 
***Size of header in paragraphs :***0004h 
***Minimum Extra Paragraphs :***0000h 
***Maximum Extra Paragraphs :***FFFFh 
***Initial Stack Segment :***0000h 
***Initial Stack Pointer :***00B8h 
***Complemented Checksum :***0000h 
***Initial Instruction Pointer :***0000h 
***Initial Code Segment :***0000h 
***Relocation Table Offset :***0040h 
***Overlay Number :***0000h 

Extra Header Information :
***Reserved WORD 0:***0000h 
***Reserved WORD 1:***0000h 
***Reserved WORD 2:***0000h 
***Reserved WORD 3:***0000h 
***OEM identifier :***0000h 
***OEM information :***0000h 
***Reserved WORD 0:***0000h 
***Reserved WORD 1:***0000h 
***Reserved WORD 2:***0000h 
***Reserved WORD 3:***0000h 
***Reserved WORD 4:***0000h 
***Reserved WORD 5:***0000h 
***Reserved WORD 6:***0000h 
***Reserved WORD 7:***0000h 
***Reserved WORD 8:***0000h 
***Reserved WORD 9:***0000h 
***New Header Address :***000000E0h 
***Memory Needed :***1680 B ( 1 KB )
\\\\\\\\\\\\\\\\\\\\\\\\\
и ietcom.dll
TECHNICAL FILE INFORMATION : 
File Type Description :***Portable Executable (PE)

Possible Packer/Encryptor :***UPX
FILE CHARACTERISTICS : 
******File is executable  (i.e. no unresolved external references)
******COFF line numbers have been removed
******COFF symbol table entries for local symbols have been removed
******Machine based on 32-bit-word architecture
******File is a DLL
FILE HEADER :

***Machine:                      ***014Ch (i386 or later, and compatible)
***Number of Sections:           ***0003h
***Time Date Stamp:              ***41497513h  -> 16/09/2004  14:12:19  
***Symbols Pointer:              ***00000000h
***Number Of Symbols:            ***00000000h
***Size Of Optional Header:      ***00E0h
***Flags:                        ***210Eh

OPTIONAL HEADER :
***Magic                         ***010Bh ( PE32 : normal 32-bit ) 
***Linker version                ***6.00
***Size of code                  ***00001000h
***Size of initialized data      ***00001000h
***Size of uninitialized data    ***00005000h
***Address of Entry Point (RVA)  ***00006400h
***Base of code                  ***00006000h
***Base of data                  ***00007000h
***Image base                    ***10000000h
***Section Alignment             ***00001000h
***File Alignment                ***00000200h
***Required OS version           ***4.00
***Image version                 ***0.00
***Subsystem version             ***4.00
***Reserved1                     ***0
***Size of image                 ***00008000h ( 32768 bytes)
***Size of headers               ***00001000h
***Checksum                      ***00000000h
***Subsystem                     ***0002h (Image runs in the Windows GUI subsystem)
***DLL Characteristics           ***0000h
***Size of Stack Reserve         ***00100000h
***Size of Stack Commit          ***00001000h
***Size of Heap Reserve          ***00100000h
***Size of Heap Commit           ***00001000h
***loader flags                  ***00000000h (obsolete)
***Number of Data Directory      ***00000010h

DATA DIRECTORY (Virtual Address and Size)
***Export Directory  ***rva: 000070F0h  ***size: 000000B4h
***Import Directory  ***rva: 00007000h  ***size: 000000F0h
***Resource Directory  ***rva: 00000000h  ***size: 00000000h
***Exception table  ***rva: 00000000h  ***size: 00000000h
***Security table  ***rva: 00000000h  ***size: 00000000h
***Base Relocation table  ***rva: 000071A4h  ***size: 0000000Ch
***Debug Directory  ***rva: 00000000h  ***size: 00000000h
***Architecture Specific Data  ***rva: 00000000h  ***size: 00000000h
***Global Pointer  ***rva: 00000000h  ***size: 00000000h
***TLS Directory  ***rva: 00000000h  ***size: 00000000h
***Load config table  ***rva: 00000000h  ***size: 00000000h
***Bound Import table  ***rva: 00000000h  ***size: 00000000h
***Import Address Table  ***rva: 00000000h  ***size: 00000000h
***Delay import descriptor  ***rva: 00000000h  ***size: 00000000h
***COM descriptor  ***rva: 00000000h  ***size: 00000000h
***unused        ***rva: 00000000h  ***size: 00000000h

SECTION TABLE
01 UPX0      
***VirtSize: ***00005000h  VirtAddr:      ***00001000h
***raw data offs:   ***00000400h  raw data size: ***00000000h
***relocation offs: ***00000000h  relocations:   ***00000000h
***line # offs:     ***00000000h  line #&#039;s:      ***00000000h
***characteristics: ***E0000080h
***UNINITIALIZED_DATA  EXECUTE  READ  WRITE  ALIGN_DEFAULT(16)  
02 UPX1      
***VirtSize: ***00001000h  VirtAddr:      ***00006000h
***raw data offs:   ***00000400h  raw data size: ***00000600h
***relocation offs: ***00000000h  relocations:   ***00000000h
***line # offs:     ***00000000h  line #&#039;s:      ***00000000h
***characteristics: ***E0000040h
***INITIALIZED_DATA  EXECUTE  READ  WRITE  ALIGN_DEFAULT(16)  
03 UPX2      
***VirtSize: ***00001000h  VirtAddr:      ***00007000h
***raw data offs:   ***00000A00h  raw data size: ***00000200h
***relocation offs: ***00000000h  relocations:   ***00000000h
***line # offs:     ***00000000h  line #&#039;s:      ***00000000h
***characteristics: ***C0000040h
***INITIALIZED_DATA  READ  WRITE  ALIGN_DEFAULT(16)  

IMPORTS TABLE:
   KERNEL32.DLL
***Import Lookup Table RVA:  ***00000000h*** (Unbound IAT)
***TimeDateStamp: ***00000000h   
***ForwarderChain: ***00000000h
***DLL Name RVA: ***00007088h
***Import Address Table RVA: ***00007064h
***First thunk RVA: ***00007064h
***Ordn  ***Name
***-----***-----
***   0 ***LoadLibraryA
***   0 ***GetProcAddress

   MSVCRT.dll
***Import Lookup Table RVA:  ***00000000h*** (Unbound IAT)
***TimeDateStamp: ***00000000h   
***ForwarderChain: ***00000000h
***DLL Name RVA: ***00007095h
***Import Address Table RVA: ***00007070h
***First thunk RVA: ***00007070h
***Ordn  ***Name
***-----***-----
***   0 ***free

   urlmon.dll
***Import Lookup Table RVA:  ***00000000h*** (Unbound IAT)
***TimeDateStamp: ***00000000h   
***ForwarderChain: ***00000000h
***DLL Name RVA: ***000070A0h
***Import Address Table RVA: ***00007078h
***First thunk RVA: ***00007078h
***Ordn  ***Name
***-----***-----
***   0 ***URLDownloadToFileA

   WS2_32.dll
***Import Lookup Table RVA:  ***00000000h*** (Unbound IAT)
***TimeDateStamp: ***00000000h   
***ForwarderChain: ***00000000h
***DLL Name RVA: ***000070ABh
***Import Address Table RVA: ***00007080h
***First thunk RVA: ***00007080h
***Ordn  ***Name
***-----***-----
*** 115 ***


EXPORTS TABLE:
***Name: ***dfile.dll
***Characteristics: ***00000000h
***TimeDateStamp: ***41497513h    -> 16/09/2004  14:12:19  
***Version:***0.00
***Ordinal base: ***00000001h
***# of functions: ***00000005h ( 5 )
***# of Names: ***00000005h

***Entry Pt  ***Ordn     Name
***00001017h     ***   1     public: __thiscall CDfile::CDfile(void)
***00001000h     ***   2     public: class CDfile & __thiscall CDfile::operator=(class CDfile const &)
***00001013h     ***   3     int __cdecl fnDfile(void)
***000031D0h     ***   4     int nDfile
***0000101Ah     ***   5     start


DOS HEADER
Header Information :

***Signature :***5A4Dh 
***Bytes on last page of file :***0090h 
***Total Pages in File :***0003h 
***Relocation Items :***0000h 
***Size of header in paragraphs :***0004h 
***Minimum Extra Paragraphs :***0000h 
***Maximum Extra Paragraphs :***FFFFh 
***Initial Stack Segment :***0000h 
***Initial Stack Pointer :***00B8h 
***Complemented Checksum :***0000h 
***Initial Instruction Pointer :***0000h 
***Initial Code Segment :***0000h 
***Relocation Table Offset :***0040h 
***Overlay Number :***0000h 

Extra Header Information :
***Reserved WORD 0:***0000h 
***Reserved WORD 1:***0000h 
***Reserved WORD 2:***0000h 
***Reserved WORD 3:***0000h 
***OEM identifier :***0000h 
***OEM information :***0000h 
***Reserved WORD 0:***0000h 
***Reserved WORD 1:***0000h 
***Reserved WORD 2:***0000h 
***Reserved WORD 3:***0000h 
***Reserved WORD 4:***0000h 
***Reserved WORD 5:***0000h 
***Reserved WORD 6:***0000h 
***Reserved WORD 7:***0000h 
***Reserved WORD 8:***0000h 
***Reserved WORD 9:***0000h 
***New Header Address :***000000D0h 
***Memory Needed :***1680 B ( 1 KB )

----------


## Geser

[quote author=Отче link=board=4;threadid=196;start=0#msg1174 date=1099770285]
Я эту проблему пофиксил еще год назад.Еще там в памяти болтался
dmstwe.exe

[/quote]
Файлик остался? Если да, то кинь мне на [email protected] в архиве с паролем, пароль virus

----------


## Зайцев Олег

> Файлик остался? Если да, то кинь мне на [email protected] в архиве с паролем, пароль virus


dmstwe.exe, сжат UPX, распакованный размер 16384 байт, написан на Microsoft Visual C, при старте проверяет наличие в System32 файла ietcom.dll (если его нет, то не стартует). Импортирует PSAPI, при его помощи следит за запущенными процессами. Содержит имена типовых процессов W2K/XP, которые работают с сетью - msmsgs.exe, msnmsgr.exe, outlook.exe, iexplore.exe, msimn.exe, qq.exe. 
Основной рабочий цикл содержит вызов некоей функции + спячку на заданный интервал времени. Функция эта открывает один из найденных процессов (имя которых совпадает с перечисленными выше) и именяет флаги привилегий, после чего при помощи WriteProcessMemory внедряет в процесс троянскую DLL ietcom.dll (короче, все по книжке Рихтера как по нотам).
Эта DLL ищет в папке system32 программу tcdex.exe и netercfg.tlb, по анализу внутренностей может загружать файлы из Инет ... короче говоря, по структуре эти файлы очень похожи на исследованные мной ранее SCardSer.exe и comwsock.dll, судя по дизассемблеру чувствуется рука одного автора

----------


## Geser

ЛК добавили как Trojan-Downloader.Win32.Small.aao
ДрВеб как BackDoor.Scard

----------

