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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Да-а, злобная тварь! Хорошо, что не доделанная... Меня мучит вопрос: 04.11.04 04:24  Число просмотров: 1992
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка>
А почему не модифицировать ntldr.exe так, чтобы он при рестарте модифицировал ядро, прописывая код троя прямо в ДЛЛ-ки ядра или сокета? На ходу, понятное дело, их модифицировать нельзя, т.к. они уже загружены. А ntldr.exe, по-моему можно. А, по скольку ntldr.exe запускается до загрузки системы, но файлы уже видит, то может модифицировать ядро как угодно.

Ой, зачем я это сказал?!
<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-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach