Как стать автором
Обновить

Комментарии 44

все гениальное — просто. теперь, когда антивирусники научатся детектить вредонос внутри массивов, над которыми идет xor, то будет достаточно сделать, например, ROT13 по 255 чтобы получить заветные 0 из 56
Кто-то "опять" узнал страшную тайну о том, что антивирусы в общем-то работают по сигнатурам, то есть ищут хитрыми алгоритмами что-то, что встречалось в "плохих" файлах. Тащемта, сотни и тысячи пакеров в дикой природе прошли мимо авторов, видать.
А как же сложные эвристики, выполнение кода в песочнице и прочая проактивная защита, которую так любят писать в рекламе антивирусов?
Оно, может, и есть, но никто ж не обещает 100% обнаружения.
Сколь помню информацию — на вирустотале оно не включено и там только сигнатурная проверка.
О Господи. А чего вы ожидали? Где собственно вредоносный код ?
Смысл копипастить вредонос? Это же может быть любой шеллкод, сгенерированный метасплоитом.
Посмотри внимательнее:

char b[] = {_вставляем_пэйлоадсюда};
Тогда можно и в три строчки сделать

int main(int argc, char **argv) {
//добавьте ваш вредоносный код сюда
}
Тоже ни один антивирус не спали)
Возьми (свой) вредноносный код, обработай, при помощи озвученной выше техники.
Тебе дают ну рыбу, а удочку.
Вы проверили с вредоносным кодом эту технику?
Я — не проверял. Самому интересно, кто нибудь проверил?
При запущенном стороже, а не вирустоталом.
Я проверял. Даже писал «кошмарскому» WTF bro?
Но признаюсь был неправ, написав на winapi последовательность загрузки приложения из интернета и его запуска. В итоге вместо простой программки на 30 кб. Пришлось делать сетап. Что самое смешное программа была подписана сертификатом разработчика, так что по идее не должна была детектится.
Очень тянет на первое апреля, но не дотянуло 11 дней.
Для подобного рода детектов есть риалтайм. Не понимаю что здесь нового и интересного, любой пакер PE файлов так работает.
Если антивирус начнет подбирать коды, пытаясь расшифровать любой обнаруженный бинарник, боюсь, вирусы действительно перестанут работать. Как и все остальное, кроме антивируса. Вопрос в другом: как среагирует антивирус на вредоносное поведение программы. Современные эвристические модули любят попомещать неопознанные исполнимые файлы в «черный ящик» и проанализировать поведение, прежде чем начать доверять.
Какие коды подбирать? Нормальный антивирь может задетектить в памяти код, чем бы ты его не зашифровал, не говоря о такой банальщине. И конечно же плюсую за коммент с "риалтайм" ака поведенческий анализ.
По факту не так. Тот же meterpreter или mimikatz, запущенный через powershell, антивирусы не детектят. Хотя исполняемый код, самом собой, находится в памяти.
Основная проблема — антивирусы не могут себе позволить постоянно мониторить память.
Угу, попробуйте при работающем антивирусе это сделать.
 Я про "Если антивирус начнет подбирать коды, пытаясь расшифровать любой обнаруженный бинарник" в контексте антивирусного подхода говорю, о чем вы?
«written in 1989»
27 лет, всё-таки.
Так ertaquo понял, что он на десять лет старше, чем помнил.
Программа выделила сама себе память, что-то туда записала и выполнила. В чужой процесс не лезет, функция VirtualAlloc() импортирована явно, без использования GetProcAddress(). Что тут подозрительного? Мне кажется, здесь только поведение самого кода можно проверять.

PS: Знакомый рассказывал, что если сделать простой шифровальщик с XOR и не убирать статическую линковку с CRT, то антивирусы почти не реагируют, иногда может 1-2 предупреждения о подозрительности выдают. Если убрать или еще как-то уменьшать размер, сразу появляется куча срабатываний.
в GetProcAddress передаете хор строки и все работает. Для интереса можно подсмотреть как это сделано в инсталяторе нулсофта.
Eicar таким образом ещё на первом курсе прятал)
С помощью InqSoft Sign of Misery паковал в 7 классе, палить антивирусы начали в 2008 году. За недолго до этого отправлял репорт с описанием процедуры в касперский лаб. Конкретно Касперский начинал заворачивать любой exe`шник собранный этой незатйливой программкой.
Когда лет 6 назад баловался с ProRat, паковал его VMProtect и менял точку входа на свою. Для расчета перехода использовал банально FPU. Это несколько команд на ассемблере. Тогда ни один антивирь на вирустотал, не мог обнаружить ProRat, тоесть эвристика падала на командах с FPU. А вот если не изменять начало, то даже под VMProtect определялся сей троянец. Интересно, как сейчас в этом плане у антивирей?! Ну и не забываем, что вирустотал тесно сотрудничает с разработчиками антивирей. И если сегодня ваш код вызовет подозрения, то завтра с новыми базами он уже будет определен как вирус, если он, конечно, вирус…
Лично не проверял, но по-моему, еще Windows Vista пиарили тем, что в ней введена защита от выполнения памяти.
Вы про DEP? Тут память выделяется с PAGE_EXECUTE_READWRITE, вполне легитимно, DEP немного про другое.
Не думали не гадал что так скоро — по сути со сменой одного, всего одного поколения Карл!, базовые знания по IT уйдут в область шаманства и после обсуждений высоких материй в области например виртуалок народ начнет нести пургу про вирусы.

Сегодня у нас на работе разраб начал в игровом чате нести пургу про работу своп и зачем он нужен. Вернулись с обеда более старые геймеры разрабы, попустили конечно малость, но что это, последний ли раз и на последнюю тему? И это человек 86 года рождения, что про моложе говорить.
Знаете, не в приложении к этому посту, который и вышел капитанским, а вообще: а где молодняку брать инфу, спрашивая о которой, тебя крестят "нубьем" и "ньюфагом", когда ты с ней не сталкивался, а корни всего этого находятся так глубоко, что не зная куда копать и не докопаешься? Ну вот серьезно. Сейчас технологии меняются чуть ли не раз в квартал и знать все людям, которые в IT, например, 3 года, вместо 30-ти лет — просто нереально, а учитывая зашкаливающий уровень снобизма в IT-кругах выудить хоть что-то из "старших" временами просто нереально.
Одна из особенностей ИТ — все сохранилось в инете от прошедших лет. Проблема не то что бы найти, проблема выбрать, что б почитать из найденного. Информации даже чересчур много.

Не встречал "старших", которые скрывают что-то, наоборот, чаще стоит что-то написать не так, или сказать не так — видишь, берет наш "старшой" детскую биту и идет махать в какой-то другой конец офиса перед чьим-то носом, объяснять очередному молодняку политику партии. Если кто-то чего-то не рассказал — мое мнение это либо так спрашивали, либо вообще забыли спросить. И вот с последним как раз часто сталкивался — молодняк порой попадается наглый, изучив новомодные технологии, считает себя опытнее и умнее старых слонов, считая что ничего из 10-20 и тем более 30 летних наработок ему никогда не пригодится.

Когда начинаешь рассказывать молодняку POP3 и про заголовки писем (кстати земля пухом изобретателю почты, недавно представился), видишь, как у них начинают почему-то вскипать мозги. Про SQL и правила создания индексов вообще молчу. Новеньким девочкам-верстальщицам не можешь объяснить, зачем нужен CSS media-тип, а к скорости сетей привыкли так, что не можешь заставить убрать фон-фотку 4Мб на что-то более оптимизированное. Я иногда пугаю их рассказами про CSS 1-2, и IE 5.5+. От страха забиваются в уголок и плачут.

Недавно подарок преподнес Хром. На сервере утилита перезапускала Nginx по запросу с браузера (админская панель). Хром, почуяв разрыв с сервером, посылал второй запрос, в то время как ФФ выдавал ошибку. Мне это принесли как два бага — баг в ФФ и то что в Хроме неадекватная инфа ("сервер не может быть перегружен, так как запрещено перегружать чаще чем в ####").

И вот стоят два админа (причем один главный), два прогера, из которых один я, и наш менеджер проекта и я час распинаюсь, показываю логи, распечатки запросов, прочая, чтобы доказать хотя бы для начала что проблема не в ФФ. И что в Хроме на самом деле два запроса. В том числе двум системным администраторам!!! Это в какие времена живем что люди забыли основы сетей? В итоге доказал, младшой админ покурил мануал, заменил restart на reload (или наоборот, не помню), все заработало адекватно.

Чую себя иногда как в вархаммере 40к, техножрецом. И вспоминаю Айзековскую "Академию". Но там были тыщи лет и несколько сотен соответственно. А тут 30 прошло, первое поколение только-только начало уходить.
А как я недавно пытался объяснить что такое за кодировка 16LE. Кстати с кодировками вообще все грустно, все настолько к UTF-8 уже привыкли, что некоторым даже приходится это понятие объяснять. Людям, делающим сайты! Так вот, долго объяснял, что порядок байт может быть разным в пределах двухбайтового слова и почему собственно он может быть разным. Думал умру прямо там у доски.

После чего пользователям Win не мог объяснить, что не надо CSV экспортировать в Win-1251 только чтобы в их офисах (этот МС офис и его 1251 даже в OFF2007 это вообще отдельная история), особенно учитывая что клиент вообще не русиш ни разу… Аа-а-а-а-а.....
фис 2007 кстати, весьма похабно работает с CSV, обрезая поля и забивая их нолями. Сам был в шоке когда увидел глазами. Казалось бы, основы основ, формат исходника — проще некуда, но и тут проблемы.
Как-то грустно это все…
Ну как бы даже не в этом дело. На самом деле стандарта на CSV нет, и разные версии офиса ("наши" и "ихние") то запятую, то точку с запятой принимают за разделитель. При том что тот же аутлук, 2007 в том числе, может вести себя противоположно его родственнику экселю.

Дальше. Несмотря на то что МС к этому времени полностью перешел на юникод, импорт по умолчанию — в Win-1251. И БОМ (КАРЛ! БОМ!!!) не помогает указать на UTF-8.

Но дальше больше. Я привык что в моем 2003 или опен-офисе при открытии CSV открывается диалог импорта. Читайте выше почему его нужно открывать. А теперь финиш — в 2007 по дефолту нет этого диалога при открытии CSV! В меню Data если кнопка Import, там можно вызвать это окошко и настроить импорт. Итог плачевен — менеджер, посмотрев на это, сказал "считайте что клиент идиот и не поймет, где нужно клацнуть 3 лишних раза". Ну а что он мог сказать?

Но то такое.

А, еще из недавних приколов. Я как-то, когда обсуждали рассылки и переформатирование писем, особенно на телефонах, рассказал что в письме можно задать несколько разных текстов. С разными Content-Type. На меня посмотрели как на идиота, а потом честовали как героя.

Из более давних приколов. Работал года два назад на фирме занимавшихся складской программой. Программа печатала штрихкоды для товаров, паллет и грузовиков. Каждый символ-цифру отдельно. По сути серию последовательно идущих штрих-кодов. Из-за слишком частой гребенки не удавалось им создать штрих-код для грузовика, чтобы его лазерным пистолетом просканировать на "бегу" с расстояния в два метра. Начал спрашивать про странности их штрих-кодов, мол такая частая гребенка необязательна. Зеркалирование каждого символа отдельно — тем более. Сначала отмахивались. Но потом распечатали"толстую" гребенку используя стороннюю библиотеку, на 2 листах А4 горизонтально, наклеили на стену, просканировали с расстояния в 3 метра. И что вы думаете? Хоть бы кто спасибо сказал. ЛОЛ.

Это повсеместно так =) Сперва покупают лютый энтарпрайз за конские деньги ни с кем из технарей не посоветовавшись. Потом ты говоришь что это дерьмо и доказываешь, но тебя не слушают. А потом ты вадаешь решение, исправляющее какой-нибудь значимый косяк, но все делают вид что ничего не произошло. А если повезет, через некоторое время могут возникнуть вопросы «а чем он там занимается, давайте отдадим поддержку этой штуки на аутсорс». Эффективный менеджмент, чего уж там…

По поводу Content-Type. Можете рассказать подробнее? Мне лично и народу нравятся такие истории успеха.

Да что за история успеха. Нормально и хорошо документированная фича, когда два куска текста в письме идут как бы вложениями, с разделителями. У одного задан content-type как html, у другого как текст.

Теперь сама история: старые телефоны не могут адекватно отобразить HTML, они понимают это и пытаются его упростить. Не всегда так что финал читаем. Особенно это касается ссылок, от которых остается только то, что было внутри тега ссылки, а сама ссылка при этом теряется. Ну я добавил text часть, настроил её, думаю, если создатели почтовиков не были дураками, они будут проверять наличие этого куска в письме. Нет, не были дураками, ни одного из почтовиков и ни одного из телефонов, от первых айфонов до старых "берри".

А вот кто видимо метит на это определение, так это видимо мои сослуживцы. "Как это два письма в одном?". Это при том что любой (или почти любой) почтовый фреймворк имеет что нибудь вроде функций setHtml и setText, и порядочную документацию, их описывающую. Только документацию видимо никто не читает. Пришлось доказать наличие явления, добавив подпись из своих ФИО, продемонстрировать их на телефонах, показать в исходниках письма. "Вау круто, но наши тестеры сандербердом не пользуются, как им проверять правильность рассылки? В Аутлуке такого нет.". Хотели уже отменить всё, но я, справедливо думающий что такое должно быть во всех НОРМАЛЬНЫХ почтовиках, нашел эту функцию в GMail — пункт меню "проблемы с кодировкой" хотя прямо и не говорит что он показывает, но он показывает именно text/plain часть письма. Ту, которую я задал руками.

То есть я находился в положении, когда мне приходилось доказывать наличие некоего функционала и технической возможности, работающей уже десятки лет и хорошо документированной. О которой в теории знает любой программер, работающий в области больше N лет. И даже после этого всё хотели отменить только потому что работу функционала невозможно проверить. У тестеров, на их винде, на аутглюке. Я был в бешенстве.
Лучше на англоязычных сайтах. Malware analysis. Читать, читать, читать. Еще wasm.ru и osdev. Тогда не будет таких… детских статей.
Любой порядочный антивирус посчитает подозрительным выделение памяти с RWE одним махом.
Удивиться могут только люди ничего не знающие о работе антивирусов и техниках их обхода.
Вирустотал стал каким-то знаменем. Там помоему поперек сайта нужно написать: "люди! Мы проверяем только и исключительно факт о нахождении информации о конкретной модификации вредоносной программы в антивирусной базе. Мы не проверяем возможность нахождения данного образца антивирусом, имеющим данную базу".
Вон например на http://www.securitylab.ru/blog/company/revisium/282266.php ссылаются на вирустотал в обоснование ненужности использования антивируса. Грусть-печаль
А ведь нахождение-то вируса возможно при отсутствии информации в базах, а необнаружение — при наличии.
Еще в 2012 году очень удивился, когда взял вирус, который детектился и mcafee и drweb и kaspersky, на точке входа разместил переход в свободное место памяти в котором написал короткий кусочек кода который "ксорит" код начиная с места следующего за инструкцией перехода на процедуру "шифровки\дешифровки" в конце него переход обратно на расксоренный код. Шифровал совсем небольшой участок килобайт в 10. Прогнал "шифровку" в ollydbg, сохранил результат, запустил, все работает. drweb и каспер перестали определять вирус. А от mcafee спрятать не удалось таким простым способом.
Оффтоп:
Сервис http://reverse.it/ проверяет файлы в динамике на собственных виртуальных машинах.
Можно залить файл туда и глянуть, что покажет.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий