Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация

Защищаемся от троянов

-

Боты, скрипты и прочий софт для Lineage 2

- Весь софт по Lineage 2 и все, что связано с ботоводством, скриптописанием и брутом - в этом разделе

Ответ
 
Опции темы
Старый 09.09.2009, 10:58   #1
Друг Zhyk.Ru
 Старший сержант
Аватар для #r00t
 
#r00t блестящий пример для подражания#r00t блестящий пример для подражания#r00t блестящий пример для подражания#r00t блестящий пример для подражания#r00t блестящий пример для подражания#r00t блестящий пример для подражания#r00t блестящий пример для подражания#r00t блестящий пример для подражания#r00t блестящий пример для подражания#r00t блестящий пример для подражания#r00t блестящий пример для подражания
Регистрация: 23.04.2009
Сообщений: 210
Популярность: 1986
Сказал(а) спасибо: 93
Поблагодарили 273 раз(а) в 97 сообщениях
 
По умолчанию Защищаемся от троянов

С связи с наплывом людей мало понимающих в вирусах (а то народ уже не может отличить безобидный вирь который требуется для запуска гарены хак, от кейлоггера в аси 1.34), решил склепать статейку про то как можно самому обезопасить свой комп от троянов.

Не знал куда статью засунуть) Модераторы переместите плиз куда следует.
====[ about ]================================================== ================

Я взял исходники самого распространенного на сегодняшний день трояна Pinch
и был огорчен - никаких фишек, о которых нам упорно пишут люди из 29a типа
полиморфизма, заражения PE-файлов и т.д и т.п. Даже автозагрузка была сделана
через HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run . Единственное, что там
интересно - это способ обхода фаервола, но и тот уже устарел... Хотя чего это я
придираюсь, автор русским языком написал - "Only For Education"

Ну так о чем это я? ах да.. о паролях. В трояне Pinch реализован обычный
алгоритм нахождения паролей:

1. Смотрим в реестре куда устанавливается нужная нам программа
2. Ищем стандартный для программы конфигурационный файл с паролями
3. Расшифровываем его

Такая реализация существует в подавляющем количестве троянов. Ну, чтож...
вот сейчас мы и будем использовать эти недоработки.

====[ Miranda IM ]================================================== ===========

Смотрим исходники пинча, модуль Miranda.asm. И что мы видим? Троян ищет в
реестре ключ HKLM\SOFTWARE\Miranda\Install_Dir и смотрит его значение. Получает
путь к каталогу с мирандой, ищет там все *.dat файлы и расшифровывает от туда
пароли. Что произойдет если он не найдет такого ключа в реестре? Правильно, он
не найдет наши пароли =) Самая первая мысль которая приходит в голову - это
похерить этот ключ, чтобы его никто не нашел. Попробуем удалить. Удалили? Теперь
надо проверить, как работает Miranda. Запускаем ее и ... видем, что она работает
также как и раньше. Ну, все... теперь никто не украдет наш пароль от аськи... А
вот ничего подобного! Лезим снова в реестр по тому же адресу и смотрим, что этот
ключик опять создался. Что за бардак?! Кто его там создал?! Ежу понятно, что он
создается самой мирандой - будем оперировать ее...

У меня стоит Miranda IM 0.4 Release, поэтому все буду объяснять на ее
примере. Скачиваем откуда-нибудь любой HEX редактор, хоть Hex Workshop, хоть
WinHex, хоть HIEW. Сам я не люблю пользоваться такими навороченными программами,
для таких целей и пользуюсь обычным HexEditPlus. Все, HEX-редактор скачали,
установили, теперь открываем в нем файл miranda32.exe и приступем к экзекуции...

Исправим сначала недоразумение с ключом реестра: ищем строчку Install_Dir,
находим ее, а также рядом с ней строчку Miranda (у меня это 0x2C6D4 и 0x2C6E9) и
правим на что-нибудь свое, главное чтобы не была превышена длина. Если она
наоборот окажется меньше, то просто закончите ее 00-байтом. Сохраняемся и
проверяем - запускаем миранду, лезем в реестр и видим, что теперь путь поменялся
на наш. Но это еще не все, некоторые трояны не обращаются к реестру, а просто
сканируют весь ваш жесткий диск пока не найдут нужных им файлов - так реализован
поиск &RQ конфигурационных файлов. К крысе вернем попозже, а сейчас доделаем все
с мирандой. Так где у нее хранится файл с паролями? Правильно - в *.dat файлах. А
это не есть гуд - будем править... информацию о расширении я нашел аж в четырех
местах:

1. Рядом со строчкой ProfileDir (0x2CD8C)
2. и 3. Рядом со строчкой Plugins/DbEnumerate (0x2D0D0 и 0x2D0DA)
4. Рядом с My Profiles (0x2D1C1)

Правим все это дело на свое расширение и можем спать спокойно... хотя нет,
для надежности еще можно переименовать файл miranda32.exe во что-нибудь другое,
все плагины в plugin01.dll, plugin02.dll и т.д. и изменить в них всю информацию о
дошлепках, таких как tabsrmm_icons.dll, nConvers++.dic, SecureIMProtos.conf и пр.
а также запаковать все *.dll и *.exe какм-нибудь UPX'ом

====[ &RQ ]================================================== ==================

Как я и обещал - вернемся к крысе... Нашел у себя версию &RQ 0.9.5.7
модифицированную Shyr'ом. Там все дело обстоит гораздо проще, чем с мирандой.
Достаточно только исправить в файле &rq.exe все упоминания об andrq.ini
(у меня 0x13D988, 0x15F700, 0x16A644, 0x16D24C) ну и по желанию строчку
crypted-password, а также все запаковать UPX'ом

====[ Far ]================================================== ==================

В Far'е тоже никаких особенностей не наблюдается. Открываем файл
Plugins\FTP\FARFTP.DLL и исправляем там значения Hosts, HostName, Description
на свои (у меня 0x2F8E8)

====[ The Bat! ]================================================== =============

Аналогично дело обстоит с The Bat! Правим упоминания о Working Directory
(у меня 0x4B778C, 0x55DF80, 0x562044, 0x565C38, 0x5DF438) и об account.cfg

====[ Windows/Total Commander ]================================================

Вот тут уже начинаются проблемы - сам .exe файл запакован UPX'ом. Его
конечно, можно распаковать, но тогда TC начнет ругаться, что его CRC изменен и
будет вылетать с криком "Virus Alert!" можно и это дело исправить, но это уже
отдельная статья, которую вы можете найти на сайте *****lab.ru. Я решил
действовать более простым методом. Автор TC - Christian Ghisler предоставил
возможность указывать в качестве параметра адрес к файлу с ftp настройками
примерно таким образом: TC.EXE /F=ftp.ini

Тут есть несколько способов: можно написать *.bat файл, можно создать ярлык
где будет передаваться этот параметр, но я решил написать свой лоадер %)

---- loader1.asm ----
.386
.model flat, stdcall
option casemap :none
include windows.inc
include kernel32.inc
include shell32.inc
includelib kernel32.lib
includelib shell32.lib
.code
exePath db "C:\TotalCmd\TC.EXE",0
param db "/F=ftp.ini",0
start:
invoke ShellExecute,0,0,ADDR exePath,ADDR param,NULL,SW_SHOW
invoke ExitProcess,eax
end start
---- cut here ----

====[ Unknown Application ]================================================== ==

Думаю, что уже понятно, что в большинстве случаев можно исправить несколько
байтов в коде самой программы, но это не всегда удается, т.к программа может быть
защищена так же, как и TC и никаких способов изменить ей внутренности не
наблюдается... тогда есть еще один вариант - изменить ключ реестра, который
указывает на путь к программе на любой который придет в голову или даже просто,
удалить, а перед запуском программы изменять ключ на нормальный, подождать пока
она загрузиться и менять обратно. Хотя после таких маневров программа может снова
поменять этот ключ, либо вообще аварийно вылететь... ну чтож рискнуть можно, тем
более, что всегда это дело можно вернуть на свои места

Еще один лоадер:
---- loader2.asm ----
.386
.model flat, stdcall
option casemap :none
include shell32.inc
include windows.inc
include user32.inc
include kernel32.inc
include advapi32.inc
includelib shell32.lib
includelib user32.lib
includelib kernel32.lib
includelib advapi32.lib
.code
; путь к программе, которую мы запускаем
exePath db "C:\Program Files\TotalCmd\TotalCommander.exe",0
; ключ реестра который мы меняем
regKeyName db "Ntdll",0
; путь, по которому находить этот ключ
regKeyPath db "Software\Microsoft\Windows\CurrentVersion\Run ", 0
; нормальное значение ключа реестра
regValue1 db "none",0
; "фальшивое" значение
regValue2 db "n0ne",0
start proc
LOCAL hKeyWORD
; меняем ключ на нужный
invoke RegOpenKeyEx, HKEY_LOCAL_MACHINE, addr regKeyPath, 0,
KEY_WRITE, addr hKey
invoke RegSetValueEx, hKey, addr regKeyName, 0, REG_SZ,
addr regValue1, sizeof regValue1
invoke RegCloseKey, hKey
; запускаем программу
invoke ShellExecute,0,0,ADDR exePath,0,0,SW_SHOW
; ждем 10 секунд
invoke Sleep,1000
; возвращаем ключ реестра на свои места
invoke RegOpenKeyEx, HKEY_LOCAL_MACHINE, addr regKeyPath, 0,
KEY_WRITE, addr hKey
invoke RegSetValueEx, hKey, addr regKeyName, 0, REG_SZ,
addr regValue2, sizeof regValue2
invoke RegCloseKey, hKey
; ну и завершаем наш лоадер
invoke ExitProcess,0
start endp
end start
---- cut here ----

====[ autorun ]================================================== ==============

Вам часто приходится прописывать программы в автозагрузке? Мне нет, поэтому
я зарубил самые распространенные ключи реестра, куда трояны любят прописываться,
а делается это так. Запускаем regedit, выбираем по одному из следующих ключей:

HKEY_USERS\всякая-****отень\Software\Microsoft\Windows\CurrentVersio n\Run*
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Run*

жмем Правка -> Разрешения... и запрещаем просматривать и изменять эти ветки всем
кому можно.

====[ bacdoors & remote exploits ]=============================================

Пару слов еще хотел сказать о бэкдорах и удаленных эксплойтах. Большинство
из них просто создают тред в котором запускается cmd.exe или command.com, потом
слушается порт и передаются комманды нашей консоле. Что тут можно сделать? Можно
просто переименовать cmd.exe и command.com на что-нибудь другое

====[ outro ]================================================== ================

После таких несложных действий 99% процентов троянов никакого особого вреда
вам не причинят. Конечно, если они не будут использовать сигнатуры для поиска
конфигурационных файлов с паролями или не искать окна известных программ и
вытаскивать оттуда пароли скрытые под звездачками

Компилятор MASM и HEX редакторы можно найти на сайте [Ссылки могут видеть только зарегистрированные пользователи. ] либо взять тот, который идет вмести с исходниками Pinch'a.

З.Ы. Скопипастил с простор рунета, так как влом было самому с нуля статью писать)
  Ответить с цитированием
4 пользователя(ей) сказали cпасибо:
GraNIT (09.09.2009), Lev (12.09.2009), Razzor (10.09.2009), wednesday (09.09.2009)
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 21:21.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net