В последнее время стали довольно частыми случаи заражения USB-флешек и компьютеров вирусом Worm.Win32.Radminer.x (согласно классификации Каспера). Детали здесь и, к примеру, здесь.
Итак, недавно и моя флешка пала жертвой данного творения, за сим, я проведя некоторые эксперименты с целью обезопасить себя в дальнейшем, и пишу эту статью.
Вирус представляет собой не что иное, как серверную часть популярной утилиты для удаленного администрирования RAdmin, собственно, отсюда и пошло название этого зловреда. Но интересна сама реализация распространения. Дело в том, что при заражении этим вирусом характерным симптомом является исчезновение всех папок с флешки, и появления на их месте *.exe исполняемых файлов с названиями удаленных папок. Если просматривать содержимое флешки каким-нибудь файловым менеджером с включенным отображением скрытых папок под Windows, или даже под Linux — данных все-равно не видно, хотя место на диске они занимают по-прежнему. Если запустить какую-нибудь утилиту для восстановления удаленных файлов — то она покажет то, что все папки перемещены в созданную в корне папку с названием, состоящим из двух точек («..»), что характерно для DOS-, Windows-систем, как команда возврата на уровень директории выше. Я было, даже начал восстанавливать файлы с помощью соответствующих утилит, но т.к. это занимало уж очень много времени (с битком набитой 32gb флешки) я попробовал найти другое решение. Вскоре я наткнулся на чудную статью, которая повествует нам о том, что на самом деле в силу особенности названия этой папки (зарезервированные две точки, как, к примеру, nul, con или prn) она не отображается обычными методами. Для того, чтобы все-же взглянуть на нее, следует в консоли Windows сформировать листинг с опцией отображения коротких имен файлов (рудимент из DOS’a) такой командой: dir /x. И… о, чудо! В листинге мы видим папку с коротким именем «E2E2~1» и длинным — «..». Соответственно, если бы мы пытались перейти в каталог по его длинному названию (cd ..) то мы бы остались в том же каталоге (т.к. каталога более верхнего уровня, чем корень нету), но если мы укажем системе короткое имя, она послушно выполнит команду (cd e2e2~1). Далее на картинке наглядно показано то, как папка сначала вроде как и не отображается, потом мы видим ее короткое имя, а в дальнейшем и вовсе попадаем в эту «скрытую» папку, где видим все свои данные в целости и сохранности.
В принципе, как и было написано в той статье, теперь, когда мы удостоверились, что данные уцелели, нам достаточно переименовать папку из e2e2~1 в более удобоваримое системой название или сразу переместить все данные из нее в корень. Но статья как раз о том, как предотвратить заражение флешки, если она будет присоединена к зараженному данным вирусом компьютеру.
Соглашусь, метод крайне извращенный, но все же действенный. Пришел я к такому решению уже от безысходности, т.к. поначалу наивно полагал, что если я создам файл с названием e2e2~1, папка уже не создастся. Дело в том, что в силу особенности файловых систем FATxx и NTFS объект с конкретным названием может присутствовать только один, и этот объект — либо файл, либо папка. Данный «метод защиты» флешек родился вследствие нежелания дать ни единого шанса вирусам типа autoruner, которые усердно пытаются записать в корень съемного устройства файл autorun.inf, который воспринимается системой Windows (с включенной опцией автозапуска) как файл, указывающий на то, что нужно запустить при подсоединении флешки, вставке диска и пр. Я бы даже сказал: слишком усердно. Порой может и компьютер повиснуть намертво до тех пор, пока не извлекут флешку. Метод как раз состоит в том, что нужно создать в корне устройства папку с названием autorun.inf, чтобы файл вирусом уже не создался (но, опять-таки это срабатывает не во всех случаях и является отдельной темой для дискуссий).
Пока я лью тут воду из пустого в порожнее, сообразительный читатель, наверное, уже догадался, что к чему и решил не забивать себе мозг лишним бредом, т.к. всегда можно зайти в консоль и переименовать двухточечную папку. Если же ты, анонимус, имеешь ряд садомазохистских наклонностей — читай дальше.
Итак, ради такого эксперимента, я специально создал виртуальную машину с Windows SP2 на борту, указал проводнику (через Меню — Сервис — Свойства папки), что не нужно скрывать системные файлы и расширения, а также то, что нужно отображать скрытые файлы и папки:
Далее, я подсоединил флешку (уже здоровую) к виртуальной машине, и удостоверился в ее девственной не зараженности:
как видим, папки имеют тип «Папка с файлами». Следующим моим шагом являлось заражение виртуальной системы, для этого я запустил припасенный исполняемый файл вируса, который ранее заменил собой папку с таким же названием
в результате заражения сам исполняемый файл система перестала видеть, а на его месте образовалась папка с таким же названием и моя виртуалка стала еще одним послушным хомячком в децентрализованном (об этом позже) ботнете.
Что самое интересное, флешка заразилась не сразу (как и в тот мой первый раз), поэтому пришлось для надежности перезагрузиться (ишь, какие вирусы привередливые пошли :))
Как видно с картинки. Папки успешно стали исполняемыми файлами, а данных и след простыл, хотя отображение в проводнике включено по максимуму. Далее заходим в консоль и наблюдаем наши данные, ну, это мы уже видели:
Далее, я, наивно полагаясь на действенность метода файлика с названием папки, создал файл e2e2~1 да еще и пометил его скрытым, системным и только для чтения:
Снова перегружаем машинку для пущей надежности заражения и успешно обламываемся. Вирус, а вернее сама система создала файлик по всем правилам краткого именования длинных имен файлов, т.е. изменив номер после тильды на единицу:
Далее, в глупой надежде, моими потугами являлось создать папки с названием будущих исполняемых файлов, то есть название папки.exe. Вирус и в этом случае не растерялся:
Итак, я не сдавался и написал командный файл, который в цикле создает пустые файлы с названиями e2e2~1, e2e2~2… и т.д. вплоть до e2e2~9. Почему не до 999? Ведь по идее максимальная длина короткого имени файла 8 знаков, значит, места хватит. А потому, что система при невозможности создать файл e2e2~9 начала уже штамповать файлы e2e~10 .. e2e~99. Дальше — еще веселее. Если существуют все файлы вплоть до e2e~99 то создастся файл e2~100. Так маразм крепчал я наращивал количество файлов — e2~100 .. e2~999, e~1000 .. e~9999 (вот же неугомонный), после чего нумерация ушла уже в расширение файла, в результате десятитысячный файл выглядел уже так: e2e2~100.00. Тут и пришло «гениальное» в своей простоте и громоздкости одновременно решение: использовать ограничение файловой системы FAT (только не надо мне теперь здесь про NTFS ничего говорить, и без вас плохо) в максимальное количество файлов в одной директории в 65535 (?). И это действительно сработало. Таким образом наша «вакцина» состоит в том, чтобы создать на носителе папочку, где собственно и будут храниться наши данные, а остальное пространство корневого каталога забить битком всяким мусором в общем количестве 65535 (минус наша одна папка) файлов. Далее я привожу листинг bat файла, который и генерирует все это дело на флешке, попутно создав папку «!DATA», в которой будут храниться наши данные и добавляя такие «вакцины» как папка autorun.inf, файл recycler и прочие глупостивкусности. Так как метод у нас, напомню — извращенный, то мусор создается все в том же виде — от e2e2~1 до e2e2~655.xx
@echo off setlocal enabledelayedexpansion set disk=J:\ md !disk!"!DATA" md !disk!autorun.inf attrib +R -A +S +H !disk!autorun.inf md !disk!autorun.bin attrib +R -A +S +H !disk!autorun.bin md !disk!autorun.exe attrib +R -A +S +H !disk!autorun.exe md !disk!autorun.ini attrib +R -A +S +H !disk!autorun.ini md !disk!autorun.bat attrib +R -A +S +H !disk!autorun.bat md !disk!folder.htt attrib +R -A +S +H !disk!folder.htt md !disk!ghost.bat attrib +R -A +S +H !disk!ghost.bat md !disk!khm attrib +R -A +S +H !disk!khm md !disk!khs attrib +R -A +S +H !disk!khs md !disk!kht attrib +R -A +S +H !disk!kht md !disk!"new folder.exe" attrib +R -A +S +H !disk!"new folder.exe" type >> !disk!krevedko attrib +R -A +S +H !disk!krevedko type >> !disk!recycled attrib +R -A +S +H !disk!recycled type >> !disk!recycler attrib +R -A +S +H !disk!recycler type >> !disk!release attrib +R -A +S +H !disk!release type >> !disk!restore attrib +R -A +S +H !disk!restore type >> !disk!system attrib +R -A +S +H !disk!system type >> !disk!windows attrib +R -A +S +H !disk!windows for /l %%i in (1, 1, 9) do type >> !disk!e2e2~%%i for /l %%i in (10, 1, 99) do type >> !disk!e2e~%%i for /l %%i in (100, 1, 999) do type >> !disk!e2~%%i for /l %%i in (1000,1, 9999) do type >> !disk!e~%%i for /l %%a in (100, 1, 654) do ( type >> !disk!e2e2~%%a.00 for /l %%i in (1, 1, 9) do type >> !disk!e2e2~%%a.0%%i for /l %%i in (10,1, 99) do type >> !disk!e2e2~%%a.%%i ) type >> !disk!e2e2~655.00 for /l %%i in (1, 1, 9) do type >> !disk!e2e2~655.0%%i for /l %%i in (10,1, 17) do type >> !disk!e2e2~655.%%i attrib +R -A +S +H !disk!e*.* exit
Единственное замечание — в начале bat’ника нужно указать букву диска для флешки, в данном примере она J: (строка «set disk=J:\»).
Также, можно скачать отдельным файлом:
vaccine.bat (870 Загрузок)
Это все хорошо. Но что там с децентрализованным ботнетом? Судя по описанию зловреда в этой статье, некоторые вариации могут сканировать ближние диапазоны IP-адресов на наличие открытого порта RAdmin’а и, если таковой присутствует, пытаются залогиниться со стандартным паролем 12345678 (или 123456789). Если подключение произведено успешно, то вирус также инфицирует данный компьютер. Однако тут есть одно НО! Собранные адреса червь сохраняет в файлике c:\loggg.txt. Так что, если вы заметили на компьютере присутствие данного вируса, проверьте диск Цэ на наличие данного файла, там может быть много интересного.