Содержание статьи
Клавиатурные шпионы — весьма необычный класс программ, название которых давно не отражает их сути. Современные кейлоггеры могут делать скриншоты, следить через веб-камеру, записывать звук с микрофона, определять местоположение ноутбука, отсылать вместе с отчетом файлы указанного типа, дублировать историю браузера на случай ее удаления и делать множество других вещей.
WARNING
Вся информация предоставляется в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный упомянутыми в статье утилитами.
От утилиты до трояна — один байт
Статус многих хакерских утилит постоянно балансирует на грани между легитимным и вредоносным. С одной стороны, любая программа всего лишь инструмент, ответственность за который ложится на пользователя. С другой — ее функции могут считаться потенциально опасными, особенно если в ней реализовано глубокое внедрение в систему, а при написании кода были использованы спорные трюки.
Само слово «кейлоггер» — это устоявшееся, но некорректное название. Первые утилиты этого класса действительно записывали в лог только нажатия клавиш и вели себя почти как обычные программы. По мере развития они научились скрывать свою активность все лучше и собирать гораздо больше данных о действиях за компьютером, на котором были запущены.
INFO
Первый кейлоггер был установлен КГБ в 1976 году на печатные машинки IBM Selectric, стоявшие в американском посольстве и консульстве. Он выполнял аналого-цифровые преобразования, используя 1 бит памяти.
Именно возможность скрытого запуска позволила отнести их в конце девяностых к «потенциально вредоносным» на радость производителям антивирусов. С распространением доступного интернета в кейлоггерах появились функции отправки логов и удаленного управления. Это дало повод классифицировать их уже как трояны и бэкдоры, из-за чего одни авторы забросили выпуск обновлений, а другие приняли вызов и стали искать методы обхода антивирусов.
Теперь кейлоггеры приходится скрывать не только от пользователя, но и от антивирусных сканеров. Совершенствование способов маскировки стало не разовой необходимостью, а постоянным процессом. Терпения на него редко хватало даже у истинных хакеров, поскольку кейлоггеры они писали в основном забавы ради. К примеру, актуальность потерял Ghost Spy — лучший кейлоггер своего времени.
Большинство других разработчиков стали продавать под видом крутых кейлоггеров более простые программы для «родительского контроля». Они слабо маскируют свое присутствие в системе, а для нормальной работы обычно требуется добавить их в исключения антивируса и создать разрешающие правила файрвола. Получается прямо как в анекдоте про таджикский вирус, который лишь выводил на экран сообщение: «Мы не умеем программировать, поэтому удалите свои файлы сами».
Современные антивирусы реагируют на многие хакерские утилиты, и вирусописатели этим часто пользуются: они подсовывают свои творения всем, кто ищет кейлоггеры. Неискушенный пользователь скорее разведет на своем компе табун троянов, чем скачает действующий клавиатурный перехватчик.
Конечно, родительский контроль, перехват паролей и шпионаж — далеко не единственное назначение этих программ. Вариантов использования может быть много: некоторые кейлоггеры позволяют искать украденные ноутбуки, попутно собирая доказательства вины и протоколируя все действия воров, а удаленное прослушивание и подключение к веб-камере — это отличные охранные функции.
The Rat!
Программа The Rat, написанная человеком с псевдонимом HandyCat, — образец настоящего ассемблерного искусства. Это целая серия кейлоггеров, некоторые версии предусматривают даже удаленную установку. По словам автора, первоначально форк The RatKid задумывался как упрощенная версия. Однако вскоре он превратился в отдельную утилиту, временно ставшую даже более мощной, чем ее прародительница. Сейчас внутренняя конкуренция устранена: The Rat и The RatKid почти идентичны. Отдельно существует лишь старый The Rat v.10, оптимизированный под Windows XP. Последний же релиз — The Rat v.13 Lucille был создан в мае этого года. Скачать можно как полную, так и демоверсию.
Каждый дистрибутив The Rat представляет собой архив в архиве. Внутри .zip находится самораспаковывающийся модуль WinRAR, закрытый паролем. В демоверсии он сообщается: TheRatKlg. Чтобы узнать пароль для полной версии, необходимо связаться с HandyCat по указанному на сайте адресу. После распаковки архива получишь два исполняемых файла: RatCenter.exe — центр управления и RatExtractor.exe — просмотрщик логов. Еще там есть подробная справка и файл лицензии.
Хакер #202. Скажи нет большому брату!
Весь файловый набор занимает 1,6 Мбайт, но большая часть этого объема приходится на графический интерфейс центра управления. За счет упаковщика сам кейлоггер умещается в 20 Кбайт ассемблерного кода, а распакованная версия — в 50 Кбайт. Работает он с любой раскладкой клавиатуры, включая арабскую и японскую. Совместимость проверена на всех версиях Windows от XP до 8.1. На «десятке» он еще не тестировался, но должен работать.
По умолчанию в настройках отмечена опция уведомления пользователя о слежке за ним. У демоверсии она не отключается, и при каждом перезапуске Windows на экране появляется соответствующее окно программы с единственной кнопкой ОK. В полной версии демаскировку можно отключить. К тому же в ней есть еще один уникальный компонент — программа для объединения нескольких файлов FileConnector. Она может присоединить кейлоггер к любому исполняемому или мультимедийному файлу. Результатом работы FileConnector всегда будет новый экзешник, содержащий код исходной программы и The Rat. Правда, актуально это только для слежки за неопытными пользователями, которых не смутит расширение avi.exe или mp3.exe. Ограничения: исходный и конечный файл должны содержать в названии только латиницу и цифры.
Основное назначение FileConnector — упростить удаленную установку методом социальной инженерии. Например, можно отправить пользователю прикольную игру или самораспаковывающийся архив с важными документами, к которому прикреплен кейлоггер. Полная версия The Rat также использует упаковщик/шифровальщик исполняемых файлов, чтобы уменьшить размер «довеска» и затруднить его обнаружение.
В дополнение ко всем традиционным функциям кейлоггеров The Rat умеет отслеживать действия в окнах предварительно выбранных приложений и реагировать на ключевые слова, делать скриншоты через заданный интервал времени или при каждом нажатии клавиши Enter. Это существенно снижает количество мусора в логах и упрощает их передачу. Полнофункциональная версия дополнительно выполняет задачи снифера: максимально подробно протоколирует всю работу в интернете и локальной сети. В отличие от других кейлоггеров, The Rat может перехватывать подстановку сохраненных паролей и данные автозаполняемых форм.
Также в The Rat есть интересная функция локального поисковика. Он может скрыто найти один или несколько файлов по предварительно заданной маске, а затем отправить их копии вместе с логом по почте или на FTP, указанный в настройках Rat(Kid)Center. Как искать FTP с анонимным входом и возможностью записи, я писал в статье о методах скрытой пересылки больших файлов.
Многие из старых кейлоггеров больше не актуальны в связи с переходом SMTP-серверов на безопасное подключение. В The Rat поддерживается протокол TLS, а потому он способен отправлять логи через современные почтовые сервисы. Если же у пользователя кейлоггера есть физический доступ к наблюдаемому компьютеру, то ему пригодится другой нетривиальный метод получения лога — автокопирование. Начиная с одиннадцатой версии, Rat(Kid)Center умеет создавать флешку, при вставке которой в USB произойдет автоматическая запись лога клавиатурного шпиона.
Ключевая особенность всех последних версий TheRat — работа по принципу бестелесных вирусов. При запуске The RatKid, а также The Rat v.11 и выше не создается отдельных исполняемых файлов. Он запускается один раз из центра управления или модифицированного экзешника, а затем полностью скрывает следы пребывания и существует только в оперативной памяти. Любое штатное выключение и даже перезагрузка по короткому нажатию Reset оставляет его в системе. Удалить The Rat(Kid) можно отдельной утилитой Rat(Kid)Finder из комплекта соответствующей полной версии. Она обнаруживает сам клавиатурный шпион, отыскивает созданный им лог, позволяет изменить настройки и узнать горячие клавиши для отключения кейлоггера.
Альтернативный вариант его выгрузки — мгновенное обесточивание компьютера. Он действует только в том случае, если при установке кейлоггера не было предпринято дополнительных мер защиты. В настольных системах для этого потребуется выдернуть сетевой шнур, а у ноутбуков — аккумулятор. Простое выключение кнопкой бесполезно. «Крысу» размером пятьдесят килобайт легко сохранить не только в ОЗУ, но и в кеше процессора, накопителя, CMOS и любой другой доступной памяти, которая не обнулится при наличии дежурного источника питания.
Если же The Rat был присоединен к любому исполняемому файлу из списка автозапуска, то для удаления клавиатурного перехватчика после обесточивания компьютера придется сначала загрузить другую ОС и найти модифицированный экзешник. Лучше всего это делают дисковые ревизоры (такая функция есть, к примеру, у AVZ) и программы, способные вычислять хеш-функции. Например, Autoruns сверит не только их, но и цифровые подписи объектов автозапуска, а все подозрительные файлы отправит на сервис онлайновой проверки VirusTotal. Впрочем, это не панацея. Малый файл кейлоггера не обязательно будет внедрен в другой. Он может существовать как спутник — например, в альтернативных потоках NTFS.
К плюсам The Rat также можно отнести его невидимость в списке процессов для всех известных вьюверов, полное отсутствие записей в реестре, умение обходить некоторые программные файрволы (в том числе и с проверкой контрольных сумм файлов) и возможность самоуничтожиться в указанное время, при которой не остается следов и не требуется перезагрузка.
Минус у кейлоггера один — предсказуемый и существенный: в настоящее время его файлы определяются большинством антивирусов. Поэтому перед использованием на целевом компьютере их придется доработать упаковщиками с функцией шифрования или обфускации кода.
SpyGo
SpyGo — принципиально другой по своей логике работы кейлоггер для Windows (от XP до 8.1, поддерживается и 64-разрядная версия). В нем используется куда менее агрессивное поведение. Из-за этого его сравнительно легко обнаружить, зато он считается вполне законным. Его автор даже не прячется за ником — это программист Антон Карташов из города Бердска Новосибирской области. Он старается развивать проект не столько как хакерский софт для шпионажа, сколько в качестве легального средства мониторинга.
Разработчик делает все возможное, чтобы избежать попадания SpyGo в базы антивирусов. Дистрибутив хоть и зашифрован при помощи Enigma Protector, но имеет цифровую подпись Spygo Software, заверенную в центре сертификации Comodo. Пока на SpyGo (точнее — на упаковщик) ругаются только два из полусотни сканеров, да и то на уровне параноидальной эвристики. Смотри отчет VirusTotal.
Этот клавиатурный перехватчик доступен в версиях Lite, Home и Ultima Edition. Последний релиз (3.6 build 50315) вышел в июне этого года. Отличия между версиями касаются в основном продвинутых функций. В Lite и Home недоступна удаленная прослушка через микрофон и определение местоположения отслеживаемого ноутбука. Также в этих версиях не работают все дистанционные функции: удаленный просмотр логов, трансляция по сети выводимого на экран изображения, наблюдение через веб-камеру, управление самой программой и ее деинсталляция. В версии Lite отсутствует и функция доставки отчетов (на email или по FTP) и моментальное оповещение на электронную почту о посещении веб-сайтов, отмеченных как «нежелательные».
Мы протестировали версию Ultima Edition, которая умеет практически все. Разумеется, среди реализованных функций есть запись клавиатурных нажатий и копирование текста из буфера обмена. В SpyGo протоколируется и общая статистика работы за компьютером: время его включения и выключения, запуск определенных программ и действия в них. Кейлоггер особенно внимательно наблюдает за браузером: собирает статистику посещаемых сайтов и отслеживает поисковые запросы. Среди дополнительных возможностей есть создание скриншотов (работает в том числе в играх и при просмотре фильмов), получение фотографий с веб-камеры, создание лога всех операций с файлами в выбранном каталоге или на всем диске, а также подключение съемных носителей.
Среди рядовых пользователей сейчас наиболее востребованы такие возможности, как мониторинг действий своих домочадцев в социальных сетях и чтение их переписки в разных мессенджерах. SpyGo все это умеет делать и записывает в лог подряд или отлавливая только отдельные фразы по ключевым словам.
SpyGo интересен еще и тем, что может запускаться в определенное время и выполнять выборочный мониторинг — это помогает уменьшить размер лога. Все логи шифруются. Предполагается, что просмотреть их можно только из SpyGo. Записанные события сгруппированы в отчете по вкладкам. Они создают довольно точное представление о работе пользователя, однако встречаются и расхождения. К примеру, в утилите AVZ мы просто выполнили быстрое сканирование, а в разделе «Нажатые клавиши» лог-файла отобразился странный текст «еуыыеу...» на две строки. В других программах подтверждению действия кликом мыши соответствовала запись о вводе «y», что укладывается в консольную логику работы.
Изначально программа действует явно. Мастер установки даже создает ярлык на рабочем столе, а в настройках есть отдельная опция «Уведомлять пользователя этого компьютера о наблюдении». Если ее отметить, то при включении компьютера будет отображаться текст предупреждения. Сделано это для того, чтобы избежать обвинений в незаконной слежке. К примеру, все уже привыкли к стикерам «Ведется видеонаблюдение» и фразам автоинформатора «Все разговоры записываются». Здесь то же самое: корпоративная политика и борьба за дисциплину.
Естественный для кейлоггера «тихий» режим включается вручную после первого запуска. Он убирает окно программы, скрывает ее из панели задач, списка установленных программ и всячески маскирует активность. Вернуть окно SpyGo можно нажатием заранее установленной комбинации клавиш (по умолчанию это
Скрытие запущенной программы действует как в системном диспетчере процессов, так и в его продвинутых аналогах вроде Process Explorer. Популярные антивирусы также игнорируют работу кейлоггера, однако он моментально определяется анализатором AVZ как маскирующийся процесс.
В файловой системе кейлоггер вообще особо не прячется. Он лишь устанавливает атрибут «скрытый» на свой каталог, так что его не будет видно в проводнике с настройками по умолчанию. Естественно, он остается видим другими файловыми менеджерами по стандартному адресу С:\ProgramData\SGO\sgo.exe
. Путь установки можно задать другой, но помогает это слабо — экзешник всегда одинаковый, иначе бы его определяли как полиморфный вирус. Сравнение секций автозапуска до и после установки SpyGo показывает добавление библиотеки RTDLib32.dll. Антивирусы ее пропускают, но торчит она в системе довольно явно.
Разных кейлоггеров можно найти много, и каждый из них интересно изучать. Однако в конечном счете любой из них будет аналогом зубастого The Rat или няшного SpyGo. Эти два разных подхода к написанию утилит двойного назначения будут сосуществовать всегда. Если надо обезопасить свой ноут, проследить за ребенком или нерадивым сотрудником, смело ставь SpyGo и контролируй все действия через удобный интерфейс. Если же требуется полная скрытность — бери за основу ассемблерную «Крысу» и прячь ее от антивирусов на время установки, как умеешь. Дальше она сама побежит, прогрызая дыры даже в мощной защите. The Rat исключительно сложно детектировать в работающей системе, и этот кейлоггер стоит потраченных усилий. Скорее всего, ты сможешь написать свой к тому времени, когда полностью разберешься с ним.