Форуму снова привет С вами снова тот самый новокек, который накручивает себе репу и параллельно делится знаниями в области вирусологии. Сегодня расскажу об одном простом и гениальном методе обхода систем защиты, который придумал сам год-полтора назад и которым пользуюсь до сих пор. Полностью скрипты, конечно же, я вам не дам, автоматизируйте сами. Всё, начинаем. Как работает SmartScreen? Система использует три критерия проверки, чтобы подпортить вам жизнь: 1. Репутация файла: При первом скачивании система вычисляет хеш файла и проверяет в базах. Если он имеет недостаточно скачиваний, вылезет то самое синее (а теперь уже серое) окошко. 2. Цифровая подпись: Файлы без подписи или с самоподписанным/отозванным сертификатом автоматически считаются более подозрительными, чем файлы с валидными подписями. Подписанные файлы проверяются на срок действия и наличие в чёрных списках. 3. Репутация сайта: Домен, с которого скачан файл, анализируется по: - Возрасту: Не прогрет, молод — редфлаг. - Истории: Был ли хост/домен замечен в тёмных делах ранее. Из этого получается, что для получения хорошей репутации нам нужно лишь раскрутить домен и подпись. Где брать подпись? Достаточно будет самоподписанного сертификата, подробнее рассказал в этой статье. Где найти столько машин с рабочими системами защиты? На ум сразу приходит наш любимый синий флажок, который в этот раз вместо убийства билда сослужит нам хорошую службу. Что понадобится: Пара десятков аккаунтов virustotal.com с API-ключами Сайт (если есть) Самоподписанный сертификат Сам метод: Создаём папку проекта, закидываем туда наш сертификат. Теперь нам в идеале нужны несколько тысяч чистых файлов. Где их взять? Всё просто - они будут нерабочими. Для этих целей служит такой скрипт: import os import random from tqdm import tqdm output_dir = "files" os.makedirs(output_dir, exist_ok=True) sequences = set() while len(sequences) < 5000: sequences.add(random.getrandbits(24)) print(f"Создано {len(sequences)} последовательностей") for i, seq in enumerate(tqdm(sequences, desc="Создание файлов", unit="файл")): byte_data = seq.to_bytes(3, 'big') filename = os.path.join(output_dir, f"file_{i+1:04d}.exe") with open(filename, 'wb') as file: file.write(byte_data) Python import os import random from tqdm import tqdm output_dir = "files" os.makedirs(output_dir, exist_ok=True) sequences = set() while len(sequences) < 5000: sequences.add(random.getrandbits(24)) print(f"Создано {len(sequences)} последовательностей") for i, seq in enumerate(tqdm(sequences, desc="Создание файлов", unit="файл")): byte_data = seq.to_bytes(3, 'big') filename = os.path.join(output_dir, f"file_{i+1:04d}.exe") with open(filename, 'wb') as file: file.write(byte_data) Должно быть так Теперь нужно подписать все эти файлы при помощи signtool. Как им пользоваться, я тоже рассказывал в статье про собственные подписи, поэтому, если вы не кабачок, написать автоматизацию не составит труда. Получаем пять тысяч подписанных как-то так файлов: Подпись Теперь заливаем все эти файлы на сервак, и прямые ссылки отправляем в вирустотал. Нет сервака - отправляем файлы напрямую. Делаем это всё, конечно, не руками, не зря же придумали API. Главное - не переусердствуйте, лучше используйте ******, чтобы избежать отлёта ключей. Лично я всё делал со своего компа без проксей, пара ключей отлетело, но это не критично. Кулдаун запросов - одна минута, поэтому перебираем ключи поочерёдно. Теперь подписываем какой-нибудь тестовый билд безобидного файла и заливаем на тот же вт: Детект Ни один ноунейм антивирус не решился посчитать нас за самозванцев, это уже хорошо - самоподписанные сертификаты без репутации часто дают детект. Заливаем файл на свой сервак или файлообменник, скачиваем: Хром алерт Браузер по какой-то причине не стал ругаться на редкий файл. Изначально это не было целью статьи, но является приятным бонусом к обходу смартскрина. Запускаем билд: Мой билд Победа! Смартскрин не вылез, а значит, мы успешно накрутили репу подписи (а я - себе на форуме). На этом я с вами прощаюсь, до новых встреч. Статей сегодня больше не будет, честно