• XSS.stack #1 – первый литературный журнал от юзеров форума

Статические и динамические детекты

Раздувай файл нулями, либо однотипными последовательностями, тогда при сжатии архиватором эти 600 мб превратятся в несколько байт.
И получаешь скантайм детект. Это уже пофиксили. До 1гб не пробовал..
 
Устаревшие техники. Раздувай файл нулями до 1гб(про 600мб аверы уже спалили и добавили детект) и не парься.
топ последовательность для заливки, нули тоже устаревшая техника
1680960710891.png
 
Пожалуйста, обратите внимание, что пользователь заблокирован
а как же полиморфное шифрование, обфускация, руткиты ?
По первым 2м пунктам - что вы имеете ввиду и как это поможет в данном случае?
По руткитам - вы с 2005 года пишете или откуда?

Большая часть ав продолжает сканировать память процесса даже после окончания работы эмулятора, memory detect. Такая технология впервые появилась у ESET, чуть позже ее подхватили почти все ав.
Так я знаю про мемдетекты. Ну и что с этим делать? Надо или чтобы автор малварки ее чистил, или применять какие-то индеклавы, хз. За 8 лет (или когда там говНод выдумал эту технологию, в 2015?), никто ничего так и не изобрел ведь, кроме концептов вида gargoyle.
 
Так я знаю про мемдетекты. Ну и что с этим делать? Надо или чтобы автор малварки ее чистил, или применять какие-то индеклавы, хз. За 8 лет (или когда там говНод выдумал эту технологию, в 2015?), никто ничего так и не изобрел ведь, кроме концептов вида gargoyle.
Публичных решений нет, но индеклавы это штука интересная, его конечно троллили сильно за его громкие названия и несуществующие термины, по сути это никакие не анклавы, а просто диспетчеризация управления через установленные ловушки на память во всех секциях с шифрованием всех этих секций. Сам игрался с подобным, технология вполне реализуема, и никакой не миф, инди просто преподнес это как какую-то черную магию, но это не так. Другой вопрос, что не многие понимают как оно работает, и как должно работать, хотя гуру-знаний для этого не надо, просто сфера очень плохо описана. Примерное понимание технологии дает реверс и описание протектора армадилло, там схожий механизм защиты памяти в рантайме, но он очень-очень сильно упрощен.
 
Последнее редактирование:
Странно кстати софос вроде как EDR себя позиционирует, а вот такой простой фокус его тоже обламывает.
EDR это не про то что ничего вредоносного не запустится(в этом смысле он никак от ав не отличается), а про то что на каждый пук у вас есть миллион различной телеметрии
Про то что вы всегда сможете зайти в панель и расследовать инцидент, отследить что малварка делала, куда лезла и тд
Ну и доп правила прилетающие от TI компаний, помимо поставленных вендоров :)
В твиттере часто идут обсуждения является ли обходом EDR просто запуск файла под ним.Имхо нет.
Если компания использует EDR как ав, то он просто бессмысленно переплачивает
Он прибивает вредоносную активность позже уже из ядра через анализ поведения на перехватах функций, но код успевает запуститься и выполнить свои задачи в течение нескольких секунд.
Ну собственно отработал как положено
Все это отрепортится, уведомление придут на почту/куда скажите.
Если продукт купили не просто так, то инцидент будет расследован, хост изолирован и тд
 
Последнее редактирование:
Ну собственно отработал как положено
Все это отрепортится, уведомление придут на почту/куда скажите.
Если продукт купили не просто так, то инцидент будет расследован, хост изолирован и тд
Если успеет таким образом отработать сплойтик на повышение привилегий, или еще лучше сразу ROP в ядро прокинется, то EDR можно выпилить под 0 и он даже не успеет пикнуть.
А за это время можно успеть закрепиться и вернуть все в нормальное состояние, почистить локальные логи, что бы не вызывать подозрений.
 
WD снял ограничение на размер проверяемого файла
Вернее, он запустит этот файл, но параллельно отправляет его в песочницу, где первым делом слетает оверлей
Если пэйлоад юркий, то может и успеет отработать
Ну а лодыри и т.п. улетают в карантин вместе со всем своим деревом процессов.
Проблема номер два - это определение самого факта огромного массива нулевых байтов в бинарном файле.
Теперь такое определение входит в состав скантайма.
Простая замена чем-то ненулевым приводит к размерам, не совместимым с вменяемостью
Поэтому способ с пампом можно почить с миром )
Устаревшие техники. Раздувай файл нулями до 1гб(про 600мб аверы уже спалили и добавили детект) и не пар
 
WD снял ограничение на размер проверяемого файла
Вернее, он запустит этот файл, но параллельно отправляет его в песочницу, где первым делом слетает оверлей
Если пэйлоад юркий, то может и успеет отработать
Ну а лодыри и т.п. улетают в карантин вместе со всем своим деревом процессов.
Проблема номер два - это определение самого факта огромного массива нулевых байтов в бинарном файле.
Теперь такое определение входит в состав скантайма.
Простая замена чем-то ненулевым приводит к размерам, не совместимым с вменяемостью
Поэтому способ с пампом можно почить с миром )
Бро, если ты не понял, это была ирония
 
WD снял ограничение на размер проверяемого файла
Вернее, он запустит этот файл, но параллельно отправляет его в песочницу, где первым делом слетает оверлей
Если пэйлоад юркий, то может и успеет отработать
Ну а лодыри и т.п. улетают в карантин вместе со всем своим деревом процессов.
Проблема номер два - это определение самого факта огромного массива нулевых байтов в бинарном файле.
Теперь такое определение входит в состав скантайма.
Простая замена чем-то ненулевым приводит к размерам, не совместимым с вменяемостью
Поэтому способ с пампом можно почить с миром )
А так тебе на заметку, что бы было похоже, что данные не просто так в файле появились, а уже были там, ты можешь расширить последнюю секцию, записать туда данные (не нули, а сгенерированные, либо взятые с легитмного софта - мимикрируем), поправить размеры секции физические и виртуальные + ImageSize, что бы данные не просто болтались в файле, в грузились в память. Пошерстить по соседним секциям, найти там свободное место, добавить оттуда перекрестных ссылок на новые данные, возможно даже добавить в свободное место кодовой секции куски кода, которые будут ссылаться на эти данные. Если нет TLS можно создать секцию TLS и сослаться из нее на новые данные, а в свободное место кодовой секции записать колбэк, который будет что-то делать с этими данными.
Не говорю уже о том, что некоторые секции спокойно можно менять местами и двигать, и вставлять свой мусор не в последнюю секцию, а предпоследнюю и тд. (Например rloc или tls можно спокойно переместить, всунув в Image новую секцию перед ними, и перенастроив релоки, которые ссылались на tls), гугли про полную пересборку PE файлов.
Вариантов замаскировать мусор и создать видимость того, что он реально используется - масса, просто надо включать мозги. Как сейчас не хватает этого современным малварщикам.
 
Последнее редактирование:
А так тебе на заметку, что бы было похоже, что данные не просто так в файле появились, а уже были там, ты можешь расширить последнюю секцию, записать туда данные (не нули, а сгенерированные, либо взятые с легитмного софта - мимикрируем), поправить размеры секции физические и виртуальные + ImageSize, что бы данные не просто болтались в файле, в грузились в память. Пошерстить по соседним секциям, найти там свободное место, добавить оттуда перекрестных ссылок на новые данные, возможно даже добавить в свободное место кодовой секции куски кода, которые будут ссылаться на эти данные. Если нет TLS можно создать секцию TLS и сослаться из нее на новые данные, а в свободное место кодовой секции записать колбэк, который будет что-то делать с этими данными.
Не говорю уже о том, что некоторые секции спокойно можно менять местами и двигать, и вставлять свой мусор не в последнюю секцию, а предпоследнюю и тд. (Например rloc или tls можно спокойно переместить, всунув в Image новую секцию перед ними, и перенастроив релоки, которые ссылались на tls), гугли про полную пересборку PE файлов.
Вариантов замаскировать мусор и создать видимость того, что он реально используется - масса, просто надо включать мозги. Как сейчас не хватает этого современным малварщикам.

Да, то, что ты говоришь, это логично и первое, что приходит на ум сделать
Но гладко было на бумаге, да забыли про овраги
Ты пробовал так делать?
Я миксовал секции местами, вставлял нагрузку во все места, распределял ее в разных пропорциях, затруднял определение оверлеев
Но в WD тоже не зря едят свой хлеб: они в конце концов внедрили триггер, который срабатывает при достижении null в составе PE определенного соотношения (что-то в районе 70-75% по моим простецким тестам). Просто и со вкусом.
Название детекта - Peardis. Вариации A, B, C и уже вот недавно появился D.
А дальше уже, если твой софт-таки легитимный, то доказывай, что ты не северный олень через запросы на False Positive.
В мире WD поменяли презумцию невиновности на презумцию виновности: теперь не они доказывают, что ехе содержит вирус, а разрабы доказывают, что ехе не содержит вирус.

В противовес зато сделали послабления с триггерами по энтропии. Это мое предположение (появившееся недавно)
Точную инфу нам никто не скажет, конечно
Поэтому я и сам в фоновом режиме шерстю по бордам в поисках осколков инфы на этот счет
Как-то таг
 
Ты пробовал так делать?
Конечно, и даже не вручную, а у меня написан и где-то валяется среди остального хлама полностью автоматизированный алгоритм, который разбирает PE на маленькие кусочки, крутит вертит его, и потом лепит обратно в кучу. Некое SDK для переработки PE файлов.

Но в WD тоже не зря едят свой хлеб: они в конце концов внедрили триггер, который срабатывает при достижении null в составе PE определенного соотношения (что-то в районе 70-75% по моим простецким тестам). Просто и со вкусом.
Не надо заполнять нулями, если ты об этом, я написал простую генеративную нейросеть, которая создает фейковые ресурсы, строки, данные, обучил ее на выборке из системных файлов винды от XP до 11 и добавил каплю рандома. Вот тебе и полностью легитимные последовательности данных и нет никаких 70% нулей.
А так же на все эти строки, данные и ресурсы в отдельности на каждый создаются ссылки во всех секциях где есть свободное место. В том числе и в коде. (Если нет места кусок оригинального кода отщипывается по границе инструкции и переносится в другое место, там дизассемблируется, настраиваются ссылки, перенастраиваются релоки если они указывали на этот кусок, так же дизассемблируется ближайший к этому код и настраиваются ссылки в нем, если мы порвали цикл например на 2 части, но это опасно, можно сломать код)

Точную инфу нам никто не скажет, конечно
IDA Pro в руки, открываешь файлы WD и исследуешь, там тебя ждет правда.
 
Последнее редактирование:
Не надо заполнять нулями, если ты об этом, я написал простую генеративную нейросеть, которая создает фейковые ресурсы, строки, данные, обучил ее на выборке из системных файлов винды от XP до 11 и добавил каплю рандома. Вот тебе и полностью легитимные последовательности данных и нет никаких 70% нулей.
Ты себе примерно размер конечного файла представил?
Пустые байты не просто так брались, а чтобы сжимать потом до вменяемого размера
С не NULL генерить ничего не надо нейросетями - любой живой вес закинул и вперед.
Вопрос в адекватности веса сжатого файла
 
А так же на все эти строки, данные и ресурсы в отдельности на каждый создаются ссылки во всех секциях где есть свободное место. В том числе и в коде. (Если нет места кусок оригинального кода отщипывается по границе инструкции и переносится в другое место, там дизассемблируется, настраиваются ссылки, перенастраиваются релоки если они указывали на этот кусок, так же дизассемблируется ближайший к этому код и настраиваются ссылки в нем, если мы порвали цикл например на 2 части, но это опасно, можно сломать код)
Надо подумать
Может быть чревато детектом типа Fonzy
Я обратил внимание, что все чаще на любой схематоз в коде или структуре файла просто накладывают триггер и все
я написал простую генеративную нейросеть, которая создает фейковые ресурсы, строки, данные, обучил ее на выборке из системных файлов винды от XP до 11 и добавил каплю рандома. Вот тебе и полностью легитимные последовательности данных и нет никаких 70% нулей.
На чем написал? (Если конечно не секрет :))
Я просто тоже люблю такие тулзы и утилитки мастерить, удобные

IDA Pro в руки, открываешь файлы WD и исследуешь, там тебя ждет правда.
Это исследование приведет к объекту, на который сработал триггер с указанием кода причины триггера
Если я правильно тебя понял

Или это опять была ирония и ты предлагаешь реверснуть ядро винды? ))
 
На чем написал? (Если конечно не секрет :))
Я просто тоже люблю такие тулзы и утилитки мастерить, удобные
Python, либа Keras + Scikit-learn

Это исследование приведет к объекту, на который сработал триггер с указанием кода причины триггера
Если я правильно тебя понял

Или это опять была ирония и ты предлагаешь реверснуть ядро винды? ))

WD работает в UM, не надо никакое ядро реверсить. Отреверсив WD ты будешь лучше понимать что ему не нравится, и что приводит к детектам. И я сейчас говорю не про локализацию какого-то конкретного детекта. Ты сидишь, исследуешь виндеф месяцами, и потом знаешь о нем все, и он не представляет для тебя проблемы.
 
Наличие валидной подписи влияет на детект WD?
Не smart screen, а именно WD.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх