Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | | | | | |
Действительно, файлы прячет, а процесс не смог - косяк-с 03.11.04 17:13 Число просмотров: 1995
Автор: amirul <Serge> Статус: The Elderman
|
|
<sysadmin>
|
с удивительной вирью(троем?) столкнулся 29.10.04 15:47
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
|
создает как я понял отладочный файл c:\!apihook.txt. После его прочтения стало не по себе:
кто-нить подобную хрень лечил?
--------------------------------------------------------------------------------
Process32Next - kernel32.dll , hndl: 7C4E0000
physmem: 144
SCANNING pmem (0-7F8D000), mapped on virt, for pagetables
FOUND PAGETABLE! 77F2400 patching...
pagetable patched!
7C4E0000 size: 1000 IsBadWritePtr: 0
7C4E1000 size: 5F000 IsBadWritePtr: 0
7C540000 size: 4000 IsBadWritePtr: 0
7C544000 size: 55000 IsBadWritePtr: 1
fnc addr: 7C51CB70 IsBadWritePtr: 0
Searching block of zeroes in vmem (7C4E0000-7C599000)
found zeroes! 7C4E0283
disasm func & copy instructions to ipz:
instructions lengths: 1 2 6
IsBadReadPtr: 7C4EF0F7
GetCurrentProcessId: 7C4EB8F4
FindWindowA: 77E3449E
SendMessageA: 77E15366
stealthcode: 199 bytes
restoring pagetable...
restored!
NO MORE PAGETABLES!
--------------------------------------------------------------------------------
NtQuerySystemInformation - ntdll.dll , hndl: 77F80000
physmem: 144
SCANNING pmem (0-7F8D000), mapped on virt, for pagetables
FOUND PAGETABLE! 7670400 patching...
pagetable patched!
77F80000 size: 1000 IsBadWritePtr: 0
77F81000 size: 4E000 IsBadWritePtr: 0
77FCF000 size: 2000 IsBadWritePtr: 0
77FD1000 size: 1000 IsBadWritePtr: 0
77FD2000 size: 29000 IsBadWritePtr: 1
fnc addr: 77F87D11 IsBadWritePtr: 0
Searching block of zeroes in vmem (77F80000-77FFB000)
found zeroes! 77F802C2
disasm func & copy instructions to ipz:
instructions lengths: 5
FindWindowA: 77E3449E
SendMessageA: 77E15366
stealthcode: 207 bytes
restoring pagetable...
restored!
NO MORE PAGETABLES!
--------------------------------------------------------------------------------
GetTcpTable - iphlpapi.dll , hndl: 77340000
physmem: 144
SCANNING pmem (0-7F8D000), mapped on virt, for pagetables
FOUND PAGETABLE! 48A0C00 patching...
pagetable patched!
77340000 size: 1000 IsBadWritePtr: 0
77341000 size: E000 IsBadWritePtr: 0
7734F000 size: 1000 IsBadWritePtr: 0
77350000 size: 3000 IsBadWritePtr: 1
fnc addr: 77346399 IsBadWritePtr: 0
Searching block of zeroes in vmem (77340000-77353000)
found zeroes! 7734035E
disasm func & copy instructions to ipz:
instructions lengths: 1 2 3
htons: 75031512
GlobalFindAtomA: 7C4E9F88
htons: 75031512
GlobalFindAtomA: 7C4E9F88
stealthcode: 273 bytes
restoring pagetable...
restored!
NO MORE PAGETABLES!
--------------------------------------------------------------------------------
GetTcpTableFromStack - iphlpapi.dll , hndl: 77340000
physmem: 144
SCANNING pmem (0-7F8D000), mapped on virt, for pagetables
FOUND PAGETABLE! 48A0C00 patching...
pagetable patched!
77340000 size: 1000 IsBadWritePtr: 0
77341000 size: E000 IsBadWritePtr: 0
7734F000 size: 1000 IsBadWritePtr: 0
77350000 size: 3000 IsBadWritePtr: 1
fnc addr: 773490BA IsBadWritePtr: 0
Searching block of zeroes in vmem (77340000-77353000)
found zeroes! 77340483
disasm func & copy instructions to ipz:
instructions lengths: 1 2 3
htons: 75031512
GlobalFindAtomA: 7C4E9F88
htons: 75031512
GlobalFindAtomA: 7C4E9F88
stealthcode: 273 bytes
restoring pagetable...
restored!
NO MORE PAGETABLES!
--------------------------------------------------------------------------------
SnmpExtensionQuery - inetmib1.dll , hndl: 6E2D0000
physmem: 144
SCANNING pmem (0-7F8D000), mapped on virt, for pagetables
FOUND PAGETABLE! E62800 patching...
pagetable patched!
6E2D0000 size: 1000 IsBadWritePtr: 0
6E2D1000 size: 5000 IsBadWritePtr: 0
6E2D6000 size: 1000 IsBadWritePtr: 0
6E2D7000 size: 2000 IsBadWritePtr: 0
6E2D9000 size: 2000 IsBadWritePtr: 1
fnc addr: 6E2D19D4 IsBadWritePtr: 0
Searching block of zeroes in vmem (6E2D0000-6E2DB000)
found zeroes! 6E2D0320
disasm func & copy instructions to ipz:
instructions lengths: 4 4
htons: 75031512
GlobalFindAtomA: 7C4E9F88
htons: 75031512
GlobalFindAtomA: 7C4E9F88
stealthcode: 159 bytes
restoring pagetable...
restored!
NO MORE PAGETABLES!
--------------------------------------------------------------------------------
FindNextFileW - kernel32.dll , hndl: 7C4E0000
physmem: 144
SCANNING pmem (0-7F8D000), mapped on virt, for pagetables
FOUND PAGETABLE! 77F2400 patching...
pagetable patched!
7C4E0000 size: 1000 IsBadWritePtr: 0
7C4E1000 size: 5F000 IsBadWritePtr: 0
7C540000 size: 4000 IsBadWritePtr: 0
7C544000 size: 55000 IsBadWritePtr: 1
fnc addr: 7C4ECCB3 IsBadWritePtr: 0
Searching block of zeroes in vmem (7C4E0000-7C599000)
found zeroes! 7C4E0361
disasm func & copy instructions to ipz:
instructions lengths: 1 2 2
GlobalFindAtomW: 7C4ECC0B
stealthcode: 74 bytes
restoring pagetable...
restored!
NO MORE PAGETABLES!
|
| |
Мдя, лавливал я эту тварь, правда, 03.11.04 04:06
Автор: Zef <Alloo Zef> Статус: Elderman
|
в подробностях загрузки не разбирался. Просто, обнаруживал *32.exe & *32.dll, возникшие в день, когда я ничего сам не инмсталлил и прибивал. Причем, удалить их можно было только загрузившись с дискеты.
А залазит оно, похоже, через переполнение буфера при загрузке *.jpg.
|
| | |
но весь прикол в том 03.11.04 11:16
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
|
что файлов этих *32.exe & *32.dll на диске _не видно_, потому как загрузившись, он инсталирует stealth код, который перехватывает вызов функции просмотра файлов в каталоге и свои имена оттуда выкусывает
в итоге при просмотре диска файлов этих нет... а если пытаться удалить/переименовать файл точно введя его имя выдает что операция неразрешена
кроме того не удается загрузить ни один монитор (filemon, regmon, process explorer) с выдачей ошибки что нет прав для загрузки (хотя делается все под админом и права есть)
> в подробностях загрузки не разбирался. Просто, обнаруживал > *32.exe & *32.dll, возникшие в день, когда я ничего сам не > инмсталлил и прибивал. Причем, удалить их можно было только > загрузившись с дискеты. > > А залазит оно, похоже, через переполнение буфера при > загрузке *.jpg.
|
| | | |
А как ты её вообще обнаружил? По траффу сетевому (куда ломилась), или по отладочному файлу? 03.11.04 13:19
Автор: HandleX <Александр М.> Статус: The Elderman
|
|
| | | | |
нет, началось все так 03.11.04 14:40
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
|
увидел что загрузка процессора постоянно 100%, и что в памяти два процесса sevices.exe и SERVICES.EXE
второй и жрал все ресурсы. При попытке убить его выдавалось из диспетчера задач "странное" предупреждение что процесс критический и убить его нельзя. В то время как pskill (из пакета pstools) прибивал процесс по пиду вполне нормально. После этого загрузка системы становилась нормальной. И только потом, начав разбираться, увидел отладочные файлы и понял что дело точно нечисто
|
| | | | | |
Всё верно... Виндовознная картина процессов уже как родная стала, сразу видны косяки... ;-) Только вроде вирь хитрый такой, мог бы и скрыть себя получше Ж) 03.11.04 16:33
Автор: HandleX <Александр М.> Статус: The Elderman
|
|
| | | | | | |
Действительно, файлы прячет, а процесс не смог - косяк-с 03.11.04 17:13
Автор: amirul <Serge> Статус: The Elderman
|
|
| | | | | | | |
вообще он и процесс должен был прятать 03.11.04 17:26
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
|
в отладочном файле я видел что устанавливается стелс код и для NtQuerySystemInformation
но что-то не срослось наверное, да и отладочный файл не нужно было светить, или по крайней мере заныкать куда-нить
|
| | | | | | | | |
Может, это бету обкатывают? ;) 03.11.04 22:06
Автор: push <Dmitry> Статус: Member
|
|
| | | | | | | | | |
Кстати запросто могла вырваться при тестировании 03.11.04 23:29
Автор: Killer{R} <Dmitry> Статус: Elderman
|
|
| | | | | | | | | | |
Ага, сделала подкоп в "песочнице", придушила брандмауэра и, развинтив напоследок роутер, ушла по туннелям. Шучу, конечно :) 04.11.04 00:35
Автор: push <Dmitry> Статус: Member
|
|
| | | | | | | | | | | |
Все могло быть проще 04.11.04 01:48
Автор: Killer{R} <Dmitry> Статус: Elderman
|
Троян мог писаться под заказ, а заказчик при запуске тестовой не отключился от инета, забыв предупреждение разработчика:)
|
| | | | | | | | | | | | |
Да-а, злобная тварь! Хорошо, что не доделанная... Меня мучит вопрос: 04.11.04 04:24
Автор: Zef <Alloo Zef> Статус: Elderman
|
А почему не модифицировать ntldr.exe так, чтобы он при рестарте модифицировал ядро, прописывая код троя прямо в ДЛЛ-ки ядра или сокета? На ходу, понятное дело, их модифицировать нельзя, т.к. они уже загружены. А ntldr.exe, по-моему можно. А, по скольку ntldr.exe запускается до загрузки системы, но файлы уже видит, то может модифицировать ядро как угодно.
Ой, зачем я это сказал?!
|
| | | | | | | | | | | | | |
ntldr модифицировать нельзя потому как его исходников нету 04.11.04 11:22
Автор: amirul <Serge> Статус: The Elderman
|
Так что можно чего нить недописать.
> А почему не модифицировать ntldr.exe так, чтобы он при > рестарте модифицировал ядро, прописывая код троя прямо в Гораздо легче написать драйвер, заставить его загружаться сразу после ntoskrnl и hal и уже там патчить.
> ДЛЛ-ки ядра или сокета? На ходу, понятное дело, их > модифицировать нельзя, т.к. они уже загружены. Ну и что, что загружены? Патчить память можно и нужно.
> А ntldr.exe, > по-моему можно. А, по скольку ntldr.exe запускается до > загрузки системы, но файлы уже видит, то может > модифицировать ядро как угодно. Вообще модифицировать бинарники прямо на диске - моветон. Лучше дождаться их загрузки и модифицировать в памяти.
> Ой, зачем я это сказал?! :-)
|
| | | | | | | | | | | | | | |
Да и вдруг кто-нибудь SFC запустит - надо ещё тогда и от этого прятать:) 05.11.04 03:26
Автор: AlexD <Alexander> Статус: Member
|
|
|
Если он так тщательно скрывается, можно попробовать так: 29.10.04 16:44
Автор: HandleX <Александр М.> Статус: The Elderman
|
Выткнуть винт, поставить на другую машину, и просканировать его на предмет вирусов...
Должен же он где-то сидеть на винте?
Или загрузить с флопов Kaspersky Anti-Virus Rescue Disk со свежими базами, и им посканить..
А отладочный файл злобный, это да...
|
| |
Можно попробовать process explorer'ом (от sysinternals) посмотреть - он вроде инфу через драйвер получает 30.10.04 04:40
Автор: AlexD <Alexander> Статус: Member
|
Если он все делает через драйвер, то кранты твоему трояну:). А вот если только некоторую часть, то....
Короче попробуй - всеравно аналогичных ему прог нету(я не знаю таких :)), так что если не поможет он, то только снимать винт:)
|
|
|