информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Где водятся OGRыСтрашный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Уязвимости в Mongoose ставят под... 
 По роутерам Juniper расползается... 
 С наступающим 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / sysadmin
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Все могло быть проще 04.11.04 01:48  Число просмотров: 1958
Автор: Killer{R} <Dmitry> Статус: 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!
вот что за зверь был 02.11.04 12:57  
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
<"чистая" ссылка>
http://www.viruslist.com/en/viruslist.html?id=1787609
такого метода загрузки я еще не встречал
Мдя, лавливал я эту тварь, правда, 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
<"чистая" ссылка>
Если он все делает через драйвер, то кранты твоему трояну:). А вот если только некоторую часть, то....
Короче попробуй - всеравно аналогичных ему прог нету(я не знаю таких :)), так что если не поможет он, то только снимать винт:)
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach