PE_SALITY.M, WIN32.SECTOR.12 — Страшный вирус!

Информация взята с http://aborche.livejournal.com/1300.html

Ничто не предвещало беды и только почему-то файловый сервер стал очень медленно откликаться на запросы.
Попытка понять удалённо что-же всё таки произошло с беднягой почти ни к чему не привели, так как антивирусники ничего не находили, и только висящие в памяти процессы с именем win.exe заставили более детально посмотреть ему в душу.

Это был армагеддец(более мягкое слово с таким же окончанием).
На сервере каким-то образом оказался рассадник троянов, бекдоров и спам машин. Приставленный к стенке админ признался, что несколько недель назад он пускал на этот сервер прекрасную девушку которая обновляла правовые базы «Кодекс» со своего переносного харда.
Как оказалось потом, несколько вирусов сидело именно имея процесс «кодекса» в качестве родительского.

Скормили подозрительный файлик касперу, опознался как Sality.y, но не сказал как лечиться. AVZ обнаружил перехватчики функций и маскирующиеся процессы имеющие в таблице процессов PID=0, но ничего сделать не смог.
Попытки заинсталлить антивирус или проверить сервер внешними утилями приводил к падению этих антивирусов и утилит.

Итак что такое Sality ?
Возможно у меня была разновидность этой штуки нового поколения, я не знаю. Разбирался руками долго и в итоге могу коечто рассказать.
Sality это комплекс содержащий в себе набор троянских программ ворующих пароли к ftp сайтам из far, wincmd, tcmd и т.д., набор кейлоггеров которые воруют пароли к системе, спамботов которые рассылают спам и сам модуль который производит заражение компов. В ходе разборок оказалось, что почти вся сеть в количестве 40-50 машин оказалась затроянена по самое небалуйся, и это при наличии каспера и других антивирусников.
Теперь перейду к разбору комплекса.

Корневой блок Sality.M устанавливается в систему в виде драйвера IpFilterDriver и загружается при каждой перезагрузке. У каждого пользователя в реестре создаётся раздел в HKCU\Software\<логин>914
в котором вирус хранит своё тело в зашифрованном виде в виде шестнадцатиричных ключей. В файл system.ini вирус прописывает значения на указатели реестра где находится код тела примерно вот в таком виде:
[MCIDRV_VER]
DEVICEMB=127446824460
[MCI_DPI32]
DRV_VER=0A34224648
Вирус инфицирует запускаемые файлы путём перехвата запуска файла, внедрения в него своего кода, сохранения и повторного запуска этого же файла.
У меня попалась разновидность вируса которая интегрировалась в систему помимо IpFilterDriver как SCSI контроллер у которого вместо драйвера было указано \??\c:\windows\system32\drivers\.sys по моему с именем DPTI3910, уже не помню. Это был основной кусок ядра вируса, мы его чудом сдампали из процессов при помощи avz.

Теперь о внутренностях.
Вирус содержит процедуру самосборки, при запуске вирус лезет по указанным ниже адресам для докачки своих частей якобы в виде картинок.
Далее собирает свой код и устанавливает в систему. После запуска сервиса пытается зарегистрировать DNS имя в локальном домене SOSiTE_AVERI_SOSiTEEE.haha.domainname для дальнейшей раздачи кода внутри локальной сети.

http://___pzrk.ru/img/logo4.g0
http://___pacwebco.com/Photos/logost.g0
http://___89.149.227.194/tratata3/
http://___perevozka-gruzov.ru/ft.g0
http://___perevozka-gruzov.ru/as.g0
http://___SOSiTE_AVERI_SOSiTEEE.haha

Если имя SOSiTE_AVERI_SOSiTEEE.haha успешно зарегистрировано, вирус приступает к раздаче кода.
От имени текущего пользователя вирус дергает NBSTAT читая имена компьютеров которые видны в локальной сети. Определяет имя компьютера и пытается подключиться к системным шарам для раздачи кода. Если запуск трояна произойдет на машине админа, то вся сеть через некоторое время превратится в один сплошной ботнет. В нашем случае так и произошло, т.к. обновления баз производятся под админским аккаунтом.
Вирус маскирует себя внедряясь в ring0 ядра и убирает любые упоминания о себе из списка процессов подменяя PID и имя на пустоту.
Далее вирус начинает собирать на эту машину троянов и руткиты из интернета хотя по разным адресам. Спамботы поднимают соединение с корневыми спам ботами(p2p сеть) и ожидают команд.
Ядро вируса попавшее в ring0 обеспечивает прикрытие спамботов, подтаскивая новые экземпляры по мере удаления процессов и файлов из системы. при попытке загрузить файлы имеющие в названии окна или имени файла части распространённых антивирусных систем вирус просто напросто пристреливает процессы. Спустя некоторое время вирус начинает заражать системные файлы и утилиты формируя список «доверенных» приложений. Со временем в этот список попадают касперский, cureit, trendmicro которые будучи запущены из-под «доверенного» процесса заражаются и получают обрезанный блок памяти, где успешно блокируются ядром вируса при попытках лечения зараженных файлов.
Первым делом вирус заражает dllcache и system32 файлы logon.scr для того, чтобы обеспечить себе стабильный запуск когда пользователя не будет на месте. Следующие объекты это hkcmd и ctfmon которые стартуют на системном уровне, а также у каждого пользователя при загрузке.
Далее вирус заражает всё что находится в реестре в «Run» разделе, обеспечивая себе распространение по машине и живучесть. После того как основные файлы заражены, вирус приступает к последующему заражению часто запускаемых пользователем приложений.
В общем штука реально страшная. Сравнить по опасности могу только с OneHalf и Win.CIH. Код вируса полиморфный и зашифрованный, коды троянов и спамботов запакованы FSG и UPX. Код спамботов содержит список всех популярных dnsbl списков для проверки ip адреса на блокируемость !!!!
Также содержит адреса релеев yandex.ru, aol.com и еще чьи-то для(предположительно) проведения DDOS атак или для отправки ворованных данных. Если адрес с которого бот проверяет себя в базах не блокируется, то спам бот по udp сообщает корневым спамботам свой входящий порт для трансляции команд. Код ядра самого вируса открывает для спамботов порт ipsec во встроенном firewall windows. Для каждого нового бота он делает исключение в списке разрешенных программ.

Удаление вируса дело довольно трудоёмкое из-за его широких лап во многих программах. Основную инструкцию вы можете найти нагуглив ссылку по Sality.M на сайт трендмикро. Там подробно говорится как удалять. Остановлюсь только на нескольких моментах дополнительно к тому что написано.

Вирус убивает возможность загрузки в safemode, поэтому выполните скрипты для восстановления реестра с сайта трендмикро.
При лечении машины нужно иметь под рукой дистр far(readonly), трендмикро консольный тулкит(readonly), cureit(readonly) и хорошую реакцию(лучше всего для readonly использовать http и ftp сервер локальный в сетке)

Итак. Самое главное !!!
НЕ ЗАХОДИТЬ НА МАШИНУ ПОД ПРАВАМИ ДОМЕННОГО АДМИНА !!! ТОЛЬКО ЛОКАЛЬНОГО !!!

Все операции с проверкой результатов делать только с чистой установки приложений(одноразовой) !!!

Запускаем FAR и идём в список процессов.
Если у процесса имя и расширение в нормальном виде (lower case) значит процесс поднимался ядром системы.
Если расширение написано большими буквами значит процесс поднимался из сервиса. Если имя и расширение написано большими буквами значит процесс поднимался из-под какого-то ранее запущенного процесса.
Это основная палочка выручалочка для нас.

Да ! забыл. Перед этим всем лучше выключить system restore и перегрузить машину, это избавит от двойных действий. Я лечил машины удалённо по RDP, без использования safemode, поэтому буду описывать данную методу.

Заходим под локальным админом.
жмём Win+E, http://server/farmanager170.exe
ставим оттудаже сразу без сохранения и запускаем. Explorer заражается в последнюю очередь поэтому лучше делать всё в его рамках.
F11 -> Process List
сразу убиваем explorer.exe из процессов и переименовываем logon.scr в system32 и dllcache во чтонить другое, вас спросят о изменении файлов, скажите «отмена» потом «да».

Смотрим процессы написанные БОЛЬШИМИ БУКВАМИ и убиваем не задумываясь.
Смотрим процессы начинающиеся с win(трояны) и убиваем всё кроме winlogon.
Если процесс системный, сначала переименовываем файл процесса в dllcache, потом system32 и по сети или с CD в dllcache и system32 заливаем с чистой машины нужный файлик. Если процесс невыгружаемый(аля каспрский) тупо переименовываем его exe файл в любое имя и оставляем его в покое(KAV,EXE,KAVSVC.EXE,KLSWD.EXE)
Берем regedit или reg plugin для far и идём в HKLM\system\currentcontrolset\services\
грохаем оттуда всю ветку IpFilterDriver. Теперь идём HKCU\Software\Administrator914(работаем под локальным админом, не забыли ?) выбираем понравившиеся номерочки(штуки 3-4) и забиваем вместо Dword значений в них мусор типа 1111,1234 и т.д.
Если поменять значения в ключах без убиения IpFilterdriver это ни к чему не приведет.
Идем в нижестоящий блок ключей и в последовательности длинных ключей меняем чтонить в конце(длина должна остаться прежней!!!)
Идем в c:\windows\system.ini и выносим строки которые были описаны выше.

Перегружаем машину. На этапе применения юзерских настроек машина задумается на 30-60 секунд.
Как залогонимся опять http://server/farmanager170.exe и новую установку поверх имеющегося far.
из FAR смотрим опять в процессы и пристреливаем все какие с большими буквами. по ftp сливаем или запускаем M2 от трендмикро на scan и смотрим за списком процессов. при подгрузке вирусных баз трендмикро может вывести сообщение об ошибке «диск недоступен» — это защита вируса от проверок. пропускаем все эти ошибки(до 15 штук) и переключаемся в far.
трендмикро все найденные процессы будет переносить к себе в бекапную папку автоматически, поэтому нам нужно следить чтобы вирус не пристрелил нашего лекаря. Как только вы увидите появление процесса большими буквами, сразу смотрите кто parent и стреляйте обоих немедленно. Если парентом выступает сам FAR откройте из него же самого вторую копию, а лучше открывайте сразу две копии при старте системы. Если пропустить момент инициализации троянца, то он пристрелит трендмикро быстрее чем вы успеете моргнуть, помимо этого он лекаря заразит и сделает разносчиком.

Да! забыл еще. оставьте в firewall только порты 53, 80 и 443 наружу в интернет. остальное должно быть закрыто на замок и tcp и udp.
Дождитесь когда трендмикро закончит свою работу(3 этапа) и надёргает Вам файликов(не отходите от компа, иначе придется начинать сначала)
Когда трендмикро закончит, проверьте отсутствие ipfilterdriver и наличие сделанных вами изменений в administrator914 и перегружайтесь.
если изменения пропали — повторите действия.

после перезагруза опять ставите чистый far, потом M2 запускаете на проверку. В тех местах где M2 ругался теперь ругани быть не должно.
Дождитесь окончания проверки и запустите с сети cureit на проверку всего диска.

Если все пройдёт успешно, то поздравляю, Вы победили. Осталось взять sfc и залить из дистрибутива чистые файлы в system32(ибо некоторые из них были удалены).

Понравилась статья?
  1. CheM:

    Полезно!

  2. е****ться

  3. GHzT:

    чертовски спасибо!
    у самого та же проблема была

  4. starfukker:

    Хм, после лечения не запускается каспер, хотя другие антивири работают как надо…

  5. admin:

    Удали Каспера. Потом воспользуйся утилитой KAVRemover(можно скачать на офф. сайте), затем все антивирусы, и потом еще раз KAVRemover. Очень вероятно, что из-за некорректного удаления или повреждения ключей реестра Каспер отказывается работать.
    На одной машине помог именно этот способ.

  6. […] о нем в этом посте), “Win32.Sector.12, Sality” (о нём здесь) увеличилось более, чем […]

  7. То что нужно, спасибо за статейкеу :)

  8. […] копнуть немного поглубже, а если учесть то, что Sality уже мелькал на страницах моего блога, тема была мне вдвойне […]

  9. Алина:

    все бы ничего да вот я не понимаю… сильно заумно…

  10. […] копнуть немного поглубже, а если учесть то, что Sality уже мелькал на страницах моего блога, тема была мне вдвойне […]

  11. starfukker:

    Появилась модификация данного виря, Win32,Sector 17
    Рекомендации те же

  12. Последняя, с которой я боролся, была уже 19-ая версия. В двух случаях из трех удалось вылечить без переустановки ОС

  13. Я недавно его подхватил но мой NOD 32 его обнаружил

    • Сейчас выходят всё новые и новые модификации. Со старыми справляются почти все антивирусы, а вот с более новыми возникают проблемы.

css.php