С чем склеить вирус
В хакерской практике достаточно часто возникает потребность
внедрить в готовый exe-файл свой код (необязательно вредоносный) так, чтобы он получал управление первым, не вызывал ругательств со стороны антивирусов и вообще по возможности вел себя максимально скрытно, не бросаясь в глаза. Как это сделать? Мы знаем, как, и сейчас обстоятельно тебе это объясним.
Правильные хакеры так себя не ведут и склеивают программы самостоятельно. И это совсем нетрудно! Нужны лишь верный друг hiew и минимальные навыки программирования на Си. Но прежде чем брать быка за рога, сделаем одно важное уточнение. Внедряемый код не обязательно должен быть вирусом, червем, руткитом или любой другой вредоносной заразой, поэтому, во избежание недоразумений, условимся называть его X-кодом.
Как мы будем действовать
Всякий exe-файл импортирует одну или несколько динамических библиотек (Dynamic Link Library, или сокращенно DLL), прописанных в таблице импорта. При запуске exe-файла системный загрузчик анализирует таблицу импорта, загружает все перечисленные в ней динамические библиотеки, вызывая функцию DllMain для инициализации каждой DLL, и только после этого передает управление на оригинальную точку входа (Original Entry Point, или сокращенно OEP) запускаемого exe-файла.
Подготовка к экспериментам
$inject.exe
I'm nezumi
Берем в свои загребущие лапы hiew, открываем файл inject.exe, переходим в hex-режим по , давим для отображения PE-заголовка, нажимаем (Dir) и среди прочих элементов IMAGE_DATA_DIRECTORY выбираем секцию импорта (Import), расположенную в нашем случае по RVA-адресу, равному 5484h и раскинувшуюся в ширину на целых 28h байт (смотри рисунок 1).
Клавиша переносит нас к структуре Import Directory Table, о которой мы поговорим чуть позже. А пока обсудим, как найти указатель на Import Directory Table при отсутствии hiew'а.
Двойное слово, лежащее по смещению 80h от начала PE-заголовка (легко опознаваемого визуально по сигнатуре PE), и есть RVA-адрес, указывающий на Import Directory Table, а следующее двойное слово хранит ее размер. Так что для поиска таблицы
импорта hiew совсем необязателен.
Таблица импорта представляет собой достаточно сложное сооружение иерархического типа. Вершину иерархии занимает структура Import Directory Table, фактически являющаяся массивом подчиненных структур типа IMAGE_IMPORT_DESCRIPTOR, каждая из которых содержит RVA-указатель на имя загружаемой динамической библиотеки, ссылки на OriginalFirstThunk и FirstThunk с именами/ординалами импортируемых функций (причем поле OriginalFirstThunk не является обязательным и может быть равно нулю). Два других поля — TimeDateStamp (временная отметка) и ForwarderChain (форвардинг) - также необязательны, и потому для подключения своей собственной DLL нам необходимо заполнить всего лишь два поля структуры IMAGE_IMPORT_DESCRIPTOR: Name и FirstThunk, а также создать таблицу Import Address Table (сокращено IAT), импортирующую по меньшей мере одно имя (в данном случае
dummy).
Если вместо стройной иерархии структур в нашей голове образовалась каша, не стоит волноваться — это нормально! Постепенно она утрясется и все структуры встанут на свои места, так что оставим их дозревать, а сами сосредоточимся на текущих проблемах. Чтобы внедрить X-DLL в Import Directory Table, необходимо добавить еще один экземпляр структуры IMAGE_IMPORT_DESCRIPTOR. Но просто так сделать это не получится, поскольку сразу же за концом Import Directory Table начинается IAT первой динамической библиотеки, и нам просто некуда втиснуться, если, конечно, не перенести Import Directory Table в какое-нибудь другое место! А что?! И перенесем!
Теперь, прокручивая файл, клацаем
до тех пор, пока не выйдем на оперативный простор свободного места, оккупированного длинной вереницей нулей. В нашем случае это место располагается по адресу 405810h, непосредственно за концом таблицы импорта.
Далее нам необходимо скопировать оригинальную Import Directory Table на новое место, не забыв при этом зарезервировать место для одного элемента структуры типа IMAGE_IMPORT_DESCRIPTOR, в который мы чуть позже поместим нашу динамическую библиотеку. Она будет проинициализирована самой первой, что очень полезно для борьбы с антивирусами, иммунизирующими exe-файлы путем прививки им специальной dll-вакцины, выполняющей проверку целостности содержимого образа исполняемого файла.
Поскольку, как нетрудно подсчитать, размер структуры IMAGE_IMPORT_DESCRIPTOR составляет 14h байт, а незанятая область начинается с адреса 405810h, мы должны передвинуть курсор по адресу 405824h, нажать , выделить 28h байт (размер оригинальной Import Directory Table) и нажать еще раз, а потом обязательно переместить курсор в начало выделенного блока. Далее жмем (Get Block), вводим имя файла, в который мы только что сохранили блок, - idt-org и считываем его с диска.
Теперь возвращаемся в начало файла и корректируем RVA-адрес таблицы импорта, который в данном случае составит 5824h. У тебя может возникнуть вопрос: почему 5824h, а не 405824h?! Да потому что RVA-адреса получаются путем вычитания базового адреса (прописанного в заголовке PE-файла и в нашем случае равного 400000h) из виртуального адреса (равного 405824h). Причем, с учетом порядка старшинства байт, принятого на процессорах x86 (младшие биты располагаются по меньшим адресам), мы должны записать 24 58, а не 58 24, как делают многие начинающие хакеры, удивляясь потом, почему оно не работает.
Значит, открываем файл inject.exe в hiew'e, находим PE-сигнатуру, опускаем курсор вниз на 80h байт, видим там 84 54 (смотри рисунок 1), нажимаем для разрешения редактирования, меняем адрес на 24 58, сохраняем изменения по и выходим… за пивом. Пиво для хакеров — это святое!
Проверяем работоспособность файла — а вдруг она пострадала?! Запускаем inject.exe и (если все операции были проделаны правильно) на экране появится триумфальное приветствие. В противном же случае система откажется загружать файл или выбросит исключение.
Смочив пересохшее горло, приступаем к самой сложной и самой ответственной части — заполнению структуры IMAGE_IMPORT_DESCRIPTOR. Начнем с того, что переместим курсор в конец Import Directory Table, подогнав его к адресу 405850h, и запишем имя функции-пустышки (dummy), оканчивающееся нулем и предваренное двумя нулями, а следом за ним – имя внедряемой динамической библиотеки injected_dll.dll. Впрочем, порядок их расположения может быть и другим, системному загрузчику на такие мелочи уже давно положить.
Сделав это, перемещаемся на первый байт, ранее зарезервированный нами для структуры IMAGE_IMPORT_DESCRIPTOR, и начинаем колдовать. Первое двойное слово оставляем равным нулю. За ним идут 4 байта, отведенные для TimeDataStamp, и мы, желая слегка поизвращаться, занесем сюда IAT, то есть двойное слово, содержащее RVA-адрес импортируемой функции. В нашем случае эта функция зовется dummy, а ее имя (предваренное двумя нулями!) начинается с RVA-адреса 5850h. Учитывая обратный порядок байт на x86, пишем: 50 58. Пропустив следующее двойное слово (Forwarder Chain), в поле Name записываем RVA-адрес имени внедряемой динамической библиотеки injected_dll.dll, в нашем случае равный 5858h. Остается заполнить последнее поле — Import Address Table, содержащее RVA-адрес таблицы IAT, размещенной нами поверх поля TimeDateStamp с RVA-адресом, равным 5814h.
Вот, собственно говоря, и все… После добавления новой структуры IMAGE_IMPORT_DESCRIPTOR в массив Import Directory Table, последний будет выглядеть так:
Остается сущая мелочь. Надо вернуться в начало файла, отсчитать от PE-заголовка 80h байт, исправив указатель на таблицу импорта с 5824h на 5810h и увеличив ее размер до 3Сh. Сохраняем проделанные изменения и, набрав побольше воздуха в грудь, запускаем файл
inject.exe:
$inject.exe
hello,world!
I'm nezumi
good-bye,world!
Копирование X-DLL в NTFS-stream
Теперь запускаем файл inject.exe и убеждаемся, что его работоспособность в результате последних манипуляций ничуть не пострадала.
Переход от теории к практике
Внедрение своей собственной динамической библиотеки - это, конечно, очень хорошо, но на практике гораздо чаще приходится сталкиваться с тем, что требуется
внедрить чужой исполняемый файл. Что делать?! Преобразовывать его в DLL?! Конечно же нет! Достаточно просто слегка доработать нашу X-DLL, научив ее запускать exe-файлы посредством API-функции CreateFile, при этом сами исполняемые файлы можно (и нужно) поместить в именованные NTFS-потоки, число которых фактически неограниченно. Причем, если внедряемый exe тащит за собой динамические библиотеки или другие компоненты, они также могут быть внедрены в NTFS-потоки (естественно, в текущем каталоге их уже не окажется, и потому исполняемый файл придется подвергнуть правке на предмет изменения всех путей). Если же этот файл упакован (а большинство боевых утилит типа систем удаленного администрирования редко поставляются в открытом виде), наша X-DLL может перехватить API-функции CreateFile/LoadLibrary, автоматически отслеживая обращения к отсутствующим файлам и подсовывая вместо них соответствующие им именованные NTFS-потоки.
Другой немаловажный момент. Отправляя exe-файл с внедренной в него X-DLL по почте, записывая его на лазерный диск или любой другой не-NTFS-носитель, мы теряем все именованные потоки, и программа тут же отказывает в работе, ругаясь на то, что не может найти dll.
Повторяем процедуру пересылки файла по электронной почте еще раз, распаковываем полученный архив, запускаем inject.exe, и… о чудо! Он работает!
Заметай за собой следы (для грамотных парней)
Некоторые файлы (особенно упакованные протекторами) скрупулезно следят за своей целостностью и на попытку внедрения реагируют, прямо скажем, не совсем адекватно. Однако поскольку X-DLL получает управление вперед остальных, она может восстановить таблицу импорта в памяти, как будто все так и было, словно к ней никто и не прикасался. Для этого достаточно вызывать API-функцию
VirtualProtect, присвоив соответствующим регионами памяти атрибут
PAGE_READWRITE, восстановить таблицу импорта (оригинал которой легко сохранить в
X-DLL), а затем заново установить атрибут PAGE_READONLY с помощью все той же
VirtualProtect. Более того, X-DLL может выделить блок памяти из кучи с помощью API-функции VirtualAlloc и скопировать туда свое тело, которое, естественно, должно быть полностью перемещаемо, то есть сохранять работоспособность независимо от базового адреса загрузки. Далее остается только выгрузить ставшую ненужной X-DLL вызовом FreeLibrary (на тот случай, если какой-то хитрый механизм проверки целостности решит перечислить список загруженных модулей).
Маленький технический нюанс: на процессорах с поддержкой битов
NX/XD, запрещающий исполнение кода в страницах памяти, не имеющих соответствующих атрибутов, выделяемому блоку памяти следует присвоить атрибут
PAGE_EXECUTE_READWRITE. В противном случае, если у пользователя задействован аппаратный DEP для всех приложений (а не только для системных компонентов, как это происходит по умолчанию), вместо выполнения машинного кода система выбросит исключение, и выполнение троянизированной программы завершится в аварийном режиме.
В заголовке PE-файла имеется специальное поле, содержащее контрольную сумму. В подавляющем большинстве случаев оно равно нулю, но если это не так, то после вмешательства в таблицу импорта контрольную сумму необходимо пересчитать. Этим занимается утилита
EDITBIT.EXE, запущенная с ключом ‘/RELEASE’. Она входит как в штатную поставку компилятора Microsoft Visual
Studio, так и в Platform SDK, так что проблем с ее поиском возникнуть не должно.
Заключение
Технологии внедрения в исполняемые файлы не стоят на месте и развиваются вместе с защитными механизмами и операционными системами. Извечная проблема меча и щита — кто усовершенствуется первым. Использование готовых утилит, работающих в полностью автоматическом режиме, во-первых, непрестижно, а во-вторых, слишком ненадежно. Разработчики антивирусов даром свой хлеб не едят! Чтобы не погореть на мелочах, весь X-код следует писать самостоятельно. До тех пор пока он существует в единственном экземпляре, у защитных систем не остается никакого шанса предотвратить атаку!
Полную версию статьи
читай в майском номере
Хакера! Кроме того, в видеоинструкции на диске мы наглядно показываем, как
надо склеивать файлы. Рекомендую посмотреть видео сразу после прочтения статьи, чтобы разрешить все возникшие вопросы.
И конечно: на диске тебя ждут все упомянутые инструменты, примеры, компилятор Си для сборки приведенного кода, а также подборка
готовых джойнеров.
Колумнист Sputnik Армения на простом, всем понятном языке представил подробную информацию о том, что такое вирус, а также детальную инструкцию, как с ним бороться.
Поехал к Юрию Оганесяну, когда выходить из дома в Москве еще разрешалось, а в Дубне,где живет и работает известный всему миру академик, и вовсе было тихо и спокойно. Тем не менее, обедали под светом кварцевой лампы, снижающей опасность распространения микробов, а говорили о коронавирусе всерьез, но не долго.
Но сразу же после возвращения в Москву Юрий Цолакович прислал так называемые "Полезные советы" - рекомендации одного из профессоров Хопкинского института США (первое место среди лучших американских больниц в течение двадцати лет подряд).
Академик собственноручно перевел текст с английского на русский, а начальник штаба по борьбе с этой напастью в научном центре Дубны, член-корреспондент АН Григорий Ширков сообщил: "Получаю много благодарственных отзывов. Людям нравится эта статья. Все написано коротко и ясно".
Стало быть, пояснения и комментарии не нужны, лишь одно напоминание: в то время как Китай объявил об остановке эпидемии на своей территории, в США выявлено наибольшее количество зараженных – более ста двадцати четырех тысяч.
А теперь в дополнение о том, что знаем или в чем хотели бы получить подтверждение. Итак…
* Вирус не живой организм, а молекула белка (ДНК).
* Покрыт защитным слоем липида (жира), который при поглощении клетками слизистой оболочки глаза, носа или щеки меняет свой генетический код (мутация) и превращается в агрессора.
* Поскольку вирус не живой организм, а молекула белка, он не убивается, а разлагается сам по себе. Время распада зависит от температуры, влажности и типа материала, в котором он находится.
* Вирус очень хрупкий; единственное, что защищает его, это тонкий наружный слой жира. Вот почему любое мыло или моющее средство является лучшим средством, потому что пена растворяет жир (вот почему вы должны мыть так долго: 20 секунд или больше, чтобы получилось много пены).
* Растворяя жировой слой, молекула белка самостоятельно разлагается и расщепляется.
* ТЕПЛО плавит жир. Вот почему так хорошо использовать воду выше 77 градусов по Фаренгейту для мытья рук, одежды и всего остального. Кроме того, горячая вода обеспечивает больше пены и становится еще более полезной.
* Алкоголь или любая смесь со спиртом более 65% растворяет любой жир, особенно внешний липидный слой вируса.
* Любая смесь с одной частью отбеливателя и пятью частями воды непосредственно растворяет белок, расщепляет его изнутри.
* Кислородная вода помогает долгое время после мыла, алкоголя и хлора, потому что перекись растворяет вирусный белок, но вы должны использовать его в чистом виде, а это вредит вашей коже.
* Вирус не живой организм, как бактерии; антитела не могут убить неживое.
* НИКОГДА не трясите использованную или неиспользованную одежду, простыни или ткань. Хотя вирус приклеен к пористой поверхности, он очень инертен и разрушается только в течение 3 часов (тканевые и пористые), 4 часов (медь и дерево), 24 часов (картон), 42 часов (металл) и 72 часов (пластик).
Но если вы встряхиваете или используете тряпку для пыли, молекулы вируса плавают в воздухе до трех часов и могут застрять в вашем носу.
* Молекулы вируса устойчивы ко внешней среде, особенно при искусственном увлажнении воздуха, например, кондиционерами в домах и автомобилях. Им также нужна влага, чтобы оставаться стабильными в темноте. Следовательно, сухая, теплая и ярко освещенная среда будет разрушать их быстрее.
* Ультрафиолетовый свет на любом объекте расщепляет вирусный белок. Идеально подходит, например, для дезинфекции и повторного использования маски. Будьте осторожны, он также расщепляет коллаген (который является белком) в коже.
* Вирус НЕ МОЖЕТ пройти через здоровую кожу.
* Уксус НЕ полезен, потому что он не разрушает защитный слой жира.
* НИ ДУХИ, НИ ВОДКА, не годятся. Самая сильная водка - это 40% алкоголя, а вам нужно 65%.
* Антисептическое вещество листерин, если служит, то лишь при 65%-ном алкоголе.
* Чем более ограничено пространство, тем больше концентрация вируса. Чем больше открытых или естественно вентилируемых, тем меньше.
* Вы должны мыть руки до и после прикосновения к слизистой оболочке, еде, замкам, ручкам, переключателям, пульту дистанционного управления, мобильному телефону, часам, компьютерам, столам, телевизору и пр.
* Вы должны увлажнять сухие руки, потому что молекулы могут прятаться в микротрещинах. Чем обильнее увлажнитель, тем лучше.
* Также стригите ногти коротко, чтобы вирус не скрывался под ними.
Это все. Примем к сведению и постараемся следовать. Удачи, живите долго!
Открываем Microsoft Office Word 2007, копируем подготовленную ранее склейку и вставляем в документ (можно просто перетащить файл мышкой в нужное место документа)
У нас появилось изображение с иконкой от SFX склейки и подписью о названии файла троян.exe
Название конечно можно было заранее переименовать в любое, но вот избавиться от разоблачения расширения "exe" это не помогло бы.Но мы это легко можем обойти
Сохраняем полученный документ, проследив чтобы он сохранился с расширением docx.
Теперь сохранённый документ открываем в винраре (программой WinRAR).Нам откроется следующее:
.
Далее заходим в папку word:
Затем заходим в папку media:
В папке media мы видим файл image1.wmf - это изображение.
Достаём этот файл и смотрим его размеры - в нашем случае размеры 175 X 50 пикселей.
Теперь ищем подходящую картинку соответствующего размера для замены, или рисуем сами.
Сохраняем эту картинку под названием image1, если не можете сохранить с расширением wmf, можете сохранить с расширением jpg
Если вам удалось сохранить изображение в формате wmf, то можете сразу заменить им стандартное, просто перетащив его мышкой в открытое окно винрара. Если вы сохранили изображение в формате jpg, то вам необходимо сменить расширение изображения на wmf
Изменить расширение можно при помощи Total Commander, или WinRAR.
В итоге у нас получилось следующее:
При клике по изображению запустится наша склейка и установится троян.
Изначально для внедрения в документ, склейку трояна в данном варианте, делать желательно с картинкой, чтобы на самом деле открылось аналогичное изображение, только большего размера. Вместо надписи "Теперь при клике по изображению снизу, запустится наш троян" естественно нужно написать что то другое. К примеру вы можете создать нечто вроде каталога товаров, с маленькими изображениями товаров, при клике на которые открывается более крупное изображение.
Из недостатков описанного метода склейки трояна с документом, следует отметить:
- Необходимо кликнуть в документе по изображению/ссылке для запуска трояна.
- Возможно при клике по изображению выскочит окно безопасности с вопросом "Запускать или не запускать файл".
В комментарии ниже к этой статье была информация о том,как избавится от окошка с предупреждением системы безопасности.
Часто при попытке запустить файлы, скачанные из интернета, появляется примерно такое окно:
Как Windows определяет, что файл был загружен из Интернета
Зато альтернативные потоки NTFS можно легко посмотреть в консоли обычной командой DIR с ключом /R
Просмотр альтернативных потоков NTFS при помощи команды DIR
Можно воспользоваться консольной утилитой Streams от Mark Russinovich.
Просмотр альтернативных потоков NTFS при помощи программы Streams
Для любителей оконных интерфейсов есть замечательная программа NTFS Stream Explorer, которая тоже позволяет обнаружить и посмотреть альтернативные потоки NTFS.
Просмотр альтернативных потоков NTFS при помощи NTFS Stream Explorer
Или бесплатная утилита AlternateStreamView от NirSoft.
Просмотр альтернативных потоков NTFS при помощи программы AlternateStreamView
Что же интересного записано в этом файле, а главное, как его открыть? Проще всего это делается при помощи обычного Блокнота, который входит в состав каждой Windows. Набираем в командной строке следующее:
notepad C:\setup.exe:Zone.Identifier
В Блокноте открывается содержимое альтернативного потока Zone.Identifier. Да, это самый обычный текстовый (а точнее ini) файл:
Содержимое альтернативного потока NTFS
Параметр ZoneId=3 отвечает именно за то, чтобы файл считался небезопасным, и на основании именно этого значения система принимает решение о показе предупреждения.
Хорошо, наличие спрятанного альтернативного потока мы определили, его содержимое посмотрели. А дальше-то что? А дальше можно разблокировать основной файл путем удаления альтернативного потока.
Удаление альтернативного потока через программу Streams
Удаление альтернативного потока программой NTFS Stream Explorer
Удаление альтернативного потока программой AlternateStreamView
Альтернативный поток NTFS также удаляется при разблокировке файла через меню Проводника Windows. После удаления потока файл запускается без каких-либо предупреждений.
Можно ли заблокировать файл обратно? Да, можно. Для этого, как несложно догадаться, надо создать альтернативный поток Zone.Identifier с нужным содержимым. Делается это при помощи все того же Блокнота уже знакомой нам командой:
notepad C:\setup.exe:Zone.Identifier
На запрос о создании нового файла надо ответить подтверждением.
Создание альтернативного потока NTFS вручную
Осталось записать в созданный файл потока строчки, отвечающие за блокировку основного файла, и сохранить изменения.
[ZoneTransfer]
ZoneId=3
После этого файл снова становится небезопасным со всеми вытекающими последствиями. Путем несложных экспериментов я также выяснил, что значение ZoneId=4 при попытке запустить файл приводит вот к такому интересному эффекту:
Файл полностью заблокирован
То есть файл становится полностью блокированным для запуска. Пусть ваша фантазия подскажет вам, где это можно использовать.
Напоследок хочу предупредить вас, что неразумное создание или удаление альтернативных потоков может привести к непредсказуемым последствиям, вплоть до сбоев в работе системы. Как и при работе с любыми другими внутренностями Windows, надо быть очень осторожным
Небольшой гиф-обзор инструкции (от меня)
Всемирная организация здравоохранения советует здоровым гражданам не носить медицинские маски. Это нерациональное расходование ценных ресурсов, от которого следует отказаться в пользу дезинфекции рук и соблюдения дистанции не менее одного метра между собой и другими людьми.
Несмотря на предупреждение врачей, казахстанце не выходят на улицу без маски, депутаты сидят в них на заседании в мажилисе, а в аптеках ощущается дефицит. Сейчас это самый ходовой товар.
Распространение смертельного вируса и отсутствие защитных масок заставляют жителей республики использовать подручные материалы. Хостинг YouTube переполнен видео о том, как изготовить медицинские маски дома, каждый такой ролик сходу набирает десятки тысяч просмотров.
Людям предлагают заменить маски бюстгальтерами, противогазами, туалетной бумагой, салфетками и даже женскими гигиеническими прокладками.
Автор одного из таких видео Зинаида Червинская, по ее словам, она бывший врач-инфекционист. Женщина порекомендовала к светлой стороне маски, которая прикладывается к лицу, приклеить ежедневную тонкую гигиеническую прокладку, а на поверхность нанести и равномерно распределить капли прополиса.
С ее слов, такая маска защитит от коронавируса при контакте с больными или в местах массового скопления людей.
Мужчина на фото решил и вовсе не заморачиваться с прополисом, спиртом, резинками. И так сойдет, наверняка, подумал он.
Другие граждане при изготовлении изделий используют туалетную бумагу, которую складывают в несколько слоев и крепят тесемки или же резинки.
Российские СМИ пишут, что в Петербурге предприимчивые горожане размещают на сайтах бесплатных объявлений маски собственного производства. За одну штуку они просят 9 рублей, что в четыре раза дешевле, чем в среднем по городу.
Мужчиной в бюстгалтере во время коронавируса никого не удивишь. Снимки с такими прохожими заполнили весь интернет.
Когда вирус бушевал в Азии, изобретательные делили бюстгальтер пополам, бретельки использовали как ремешок и получали взамен две полноценные маски.
Блогеры из YouTube предлагают не забывать о таком элементе нижнего белья, как стринги. Внутри лучше приклеить прокладку, считают они.
Отчаявшиеся китайцы надевали на голову пластиковые бутылки и фрукты, пряча свои носы в цитрусовых. Вот вам и витамин С. Они брали самые большие апельсины, ананасы и грейпфруты. Разрезали шкурку, чтобы получились две полусферы, извлекали мякоть, по бокам продевали резинку. Некоторые подкладывали внутрь марлю с ватой. Но в этих масках практически невозможно дышать.
Новосибирске мужчина ездил в общественном транспорте в противогазе.
Врачи повторяют, что самодельные маски, как и медицинские неэффективны при коронавирусе.
Название: Как Склеить Вирус С Читом Либо Любым Файлом
Длительность: 2 мин и 8 сек
Битрейт: 192 Kbps
2.81 MB и длительностью 2 мин и 8 сек в формате mp3.
Как Склеить Маскеруем Вирус
Как Склеить Файл Средствами Windows И Сделать Его Невидимым Для Антивирусов
Darkcomet Rat Скрытый Удаленный Доступ К Пк
Скрытый Майнер В Файле Txt Уязвимость В Windows Как Защититься Undermind
Как Скрыть Файл В Word Документ
Как Спрятать Файлы В Картинке
Как Удержать Жертву Вируса На Вечно 100
How To Join 001 Files With File Joiner
Склеиваем Вирус С Картинкой Mega Joiner
Как Склеить Два Файла Как Сделать Joiner
Как Замаскировать Вирус Под Любой Файл
9 Признаков Того Что Ваш Телефон Обзавелся Вирусом
03 Вайтишный Стрим Qa Розыгрыш Бесплатного Обучения
Основы Хакера Урок 2 Маскировка Вируса Криптор
Взломы И Brute Force Атаки
Только У Нас Сборки За Любой Донат Ответы На Вопросы О Пк
Вечерне Ночной Стрим Майнкрафт Sidemc Мини Игры В Майнкрафт Выживание В Майнкрафт
Сотый Стрим И 666К Subnautica Без Урона Несколько Попыток
Как Вставить Вирус В Картинку
Редактирование Apk Файлов На Андроид
Скрываем Вирус От Антивируса 100 Криптование Вируса 2017 Г
Как Сделать Программу Ворующую Пароли Стиллер
TheARNOLDIK Channel moved to YaXe
Вирус Для Телефона Андроид Скачать И Установить Обзор
Как Написать Таймер Обратного Отчёта На Делфи 7
Кто Лучше Построит Дом Из Фруктов Челлендж
Age Of Karos X Майнкрафт Стрим X Донат X Майнкрафт Нубы Завоевывают Сервер X
Cs Go От 1 Сильвера До Глобала За Год Стрим Кс Го Мм Стрим По Кс Го Стрим Cs Go Stream Csgo
Этому Городу Нужен Коммандер Xcom Chimera Squad
98 100К Сабов Делаем Коллекцию Полицейских Каров В Gta Samp
Стрим Gta Crmp Крмп Amazing Rp 2 Yellow Амазинг Рп
Стрим По Brawl Stars Бесплатный Пиар Канала Бесплатная Оценка Каналов Взаимная Подписка
Вебка Розыгрыш Лицух И Оценка Каналов Стрим По Майнкрафт Лицензии Майн Minecraft
Стрим По Фортнайт Бесплатный Пиар Канала Бесплатная Оценка Каналов Взаимка Взаимная Подписка
Эмили 4 Энергии Решают Crossout
PupsFM и НЕофициальный Crossout
Стрим С Аледваном Каждый Час Новая Игра Pubg Lite Стим Pubg Cod Warzone
Розыгрыш Доната Для Подписчиков
Black Desert Ответы На Все Вопросы По Игре И Стриму На Сайте Inq Name
Лидер Банды На Arizona Rp Принимаю С 1 Лвл На 7 Ранг Стрим Gta Samp Гта Самп Вебка
Стрим Пиар Оценка Каналов Пиар Бесплатная Оценка Каналов
Выбиваю Перчатки За 100 000 Рублей Промо На Csgorun Розыгрыш
Cs Go От 1 Сильвера До Глобала За Год Стрим Кс Го Мм Стрим По Кс Го Стрим Cs Go Stream Csgo
The White Buffalo Problem Solution
Trick To Find Amazon Quiz Amazon Eureka Forbes Quiz Answer Win Aquasure Smart Plus Water Purifier
Kayada Bhimacha Marathi Bheemgeete By Anand Shinde Milind Shinde Full Audio Songs Juke Box
Kelly Clarkson Lose Yourself Eminem Cover Detroit Mi 8 10 12
Как Склеить Вирус С Читом Либо Любым Файлом
Just Dance 2015 The Fox What Does The Fox Say
Bmt Ijtimoiy Tarmoqlarda
Okaz Mi Boze Milosierdzie Twoje Lumen
Wave Gotik Treffen Leipzig Reportage Part 1
Underrated Emo Emo Rap Artists To Know Part 2
Михаил И Ирина Круг Тебе Моя Последняя Любовь Full Album
Minimon 3D How To Catch Darkyan
Valentina Yakunina In The Driver For One Trip 1981
Funtouch Os 10 Iqoo 3 Theme For All Vivo Series
Нереально Красивый Шансон 2019 И 2020 Новинка Очень Русские Песни 2020 Самые Популярные Песн
Motorola Edge Plus Price Specification Release Date In India Motorola Edge 2020
Robotic Wisp Toby Fox Megalo Strike Back Remix
Фалаки Кухистони Якчи Мехондай Неки
Свадьба В Малиновке Советский Фильм Комедия
Пародия На Песню Незабудка
Save The World Givaway Unlimited Rejoins X2 Loot Matierials And Guns Stw Givaway X2Loot
Новые Русские Сенсации Днк Для Внука Гитлера
О Как Остановить Бы Нам Года
Freddy Fazbear S Pizzeria Simulator Прохождение 1 Якобы Фнаф 6
Худшие Игры В Steam От Русских Или Же Игры На Слабый Пк Mysteryforce Реакция
Реакция Мамы На Miyagi Andy Panda Мало Нам
Русский Адский Марш 2016 Hd
Dj Bobo Let The Dream Come True Magic The Show
Бехтарин Клипи Ошики Суруди Эрони 2020 Самый Классный Иранский Песня
Komole Shake Manala Friends Comedy African Wedding Song By Eddy Kenzo
Юмористы Разговорного Жанра
Я Однолюб Сборная Союза
Strength Of Materials Module 4 Bending Of Beam Important Concepts Lecture 39
Фазилати Мохи Шарифи Рамазон
K M Star Band Kasotiya Fartikoy
Live Fortnite Arena Con Voi Road To 1100 Iscritti
Wgt May 2008 Walking In To The Agra
Heroic Socrethar Prot Paladin Soulbound Construct Pov Gear Grind Aerie Peak Us
Хочи Мирзо Дар Боби Рамазон Кисми 1
Noob Vs Pro Vs God Celebrity Photoshop Challenge
Summer Love Remember Na Na Na Hey Dj Flech Van Remix V Remix Dj Yunior 2019
Lps Trapped Halloween Movie Special
Национальный Осетинский Танец Симд На Льду
Коты Воители Заказ Чо Самоуничтожение Синяя Звезда
Сидим Дома Карантин Спб
Пожарный Сэм На Русском Команда Спасает Деньт Эпизоды Компиляция Новые Серии Hd Мультфильм
Mantiz Venus An Egpu Box Docking Station For Macbook Pro
Читайте также: