CLR SqlShell IOCs

security IOC

Вредоносное ПО CLR SqlShell используется для атак на серверы MS-SQL. Подобно WebShell, который может быть установлен на веб-серверы, SqlShell - это штамм вредоносного ПО, который после установки на сервер MS-SQL поддерживает различные функции, такие как выполнение команд от субъектов угроз и осуществление различного рода вредоносного поведения. Серверы MS-SQL поддерживают метод, известный как CLR Stored Procedure, который позволяет использовать расширенные возможности, а SqlShell - это DLL, созданная с помощью этого метода. CLR Stored Procedure - это один из основных методов, который субъекты угроз могут использовать для выполнения вредоносных команд на серверах MS-SQL наряду с командой xp_cmdshell.

Хотя CLR Stored Procedure содержит функцию выполнения заданных команд, вполне возможно, что SqlShell была создана для законных целей. Однако она используется практически во всех атаках, направленных на серверы MS-SQL. Субъекты угроз обычно используют SqlShell как средство для конечной установки вредоносных программ, таких как CoinMiner или ransomware. В этой статье блога мы проанализируем и рассмотрим функции, поддерживаемые различными типами SqlShell, а также реальные случаи их использования в атаках.

Анализ CLR SqlShell, используемого для атак на серверы MS-SQL

Серверы MS-SQL с простыми паролями и открытым доступом во внешний интернет являются одним из основных векторов атак, используемых при атаке на системы Windows. Угрозы находят плохо управляемые серверы MS-SQL и сканируют их, после чего проводят атаки методом грубой силы или по словарю, чтобы войти в систему с правами администратора. Достигнув этой точки, угрозы используют различные средства для установки вредоносного ПО и получения контроля над зараженными системами.

После того как объект угрозы входит на сервер MS-SQL с учетной записью администратора, наиболее распространенным методом установки вредоносного ПО является команда xp_cmdshell. Вредоносные команды, которые могут функционировать даже в среде Windows, могут быть выполнены с помощью этой команды. Кроме того, существуют и другие способы выполнения команд Windows, такие как регистрация команд в хранимой процедуре OLE или регистрация вредоносных команд в задаче под названием MS-SQL Agent Jobs. Помимо вышеупомянутого метода выполнения команд, существует еще один метод, при котором создается исполняемый файл с определенными функциями, регистрируется и заставляется выполнять эти функции. Серверы MS-SQL поддерживают библиотеки Extended Stored Procedure и CLR Stored Procedure DLL для таких расширенных функций, что позволяет предоставлять определенные функции по мере того, как разработчики создают и регистрируют библиотеки DLL с желаемыми функциями.

AhnLab Security Emergency response Center (ASEC) опубликовал ежеквартальную статистику в ASEC Report о штаммах вредоносных программ, которые использовались в атаках на плохо управляемые серверы MS-SQL. Согласно статистике, существует значительное количество вредоносных программ, относящихся к категории CLR Shell (SqlShell). Все они представляют собой вредоносные программы в виде DLL CLR Stored Procedure. Вместо того чтобы использовать эти вредоносные программы самостоятельно, большинство субъектов угроз применяют их в процессе установки других вредоносных программ, таких как ransomware и CoinMiner.

Как правило, субъекты угроз и вредоносные программы ищут среду, в которой установлена служба MS-SQL, сканируя серверы с открытым портом 1433. После процесса сканирования они пытаются войти на подтвержденный сервер MS-SQL с помощью грубой силы или атак по словарю. Кроме того, большинство функций, позволяющих выполнять команды ОС Windows, требуют наличия SQL Admin (sa), другими словами, учетной записи администратора.

Бывают случаи, когда объект угрозы не выполняет сканирование и атаку по словарю лично, а вместо этого вредоносное ПО распространяется путем самораспространения на плохо управляемые серверы MS-SQL. Наиболее известным в этом случае является LemonDuck CoinMner. Ниже приведен список паролей учетных записей sa, используемых LemonDuck при проведении атак по словарю.

Кроме того, если LemonDuck использует словарные атаки на серверы MS-SQL в процессе внутреннего распространения, также известного как латеральное движение, то Kingminer и Vollgar CoinMiner используют атаки методом перебора на доступные извне серверы MS-SQL.

После получения учетной записи sa или привилегий учетной записи sa, агент угрозы или вредоносное ПО либо выполняет вредоносные команды, либо устанавливает собственно вредоносное ПО для получения контроля над зараженной системой. Кроме того, привилегии учетной записи sa предоставляют контроль только над серверами баз данных MS-SQL, а не над самой ОС Windows. Другими словами, хотя выполнение команд SQL разрешено, функции, которые могут непосредственно влиять на ОС Windows, по умолчанию не предоставляются.

Однако MS-SQL предоставляет различные функции, которые позволяют выполнять команды ОС в ОС Windows. Эксплуатация этих возможностей в конечном итоге позволяет выполнять команды ОС. В следующем разделе будут рассмотрены методы, позволяющие выполнять команды ОС через серверы баз данных MS-SQL. Эти возможности уязвимы с точки зрения безопасности, поскольку они не являются командами SQL по умолчанию, поэтому большинство из них отключены по умолчанию. Однако учетные записи администраторов могут включать эти параметры, то есть вход в учетную запись администратора позволяет получить доступ к этим функциям. Таким образом, контроль над ОС Windows может быть получен в результате приобретения учетной записи sa.

Команды xp_cmdshell имеют функцию, которая выполняет команды, полученные в качестве аргументов в оболочке Windows. Команды Windows, выполненные как команды xp_cmdshell, запускаются через команду "cmd.exe /c" процессом sqlservr.exe.

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

Метод, использующий хранимую процедуру OLE, предполагает использование возможностей OLE для выполнения других приложений. В данном случае другие приложения являются вредоносными командами или вредоносным ПО. OLE также отключена, как и команды xp_cmdshell, поэтому ее также необходимо включить.

Ниже приводится воспроизведение реальной процедуры атаки, используемой вредоносной программой MyKings CoinMiner.

Как и в вышеупомянутом методе, использование функции под названием MS-SQL Agent Jobs позволяет регистрировать задания, выполняющие команды Windows. SQL Server Agent поддерживает простой метод CmdExec, выполняющий команды ОС, и метод ActiveScripting, позволяющий использовать сценарии JS или VBS.

Серверы MS-SQL поддерживают метод под названием Extended Stored Procedure для предоставления расширенного набора функций. Субъекты угроз создают вредоносные DLL, регистрируют их с помощью команды sp_addextendedproc, а затем выполняют функцию экспорта DLL, чтобы загрузить вредоносную DLL и запустить функцию экспорта, отвечающую за вредоносное поведение.

Хранимая процедура CLR похожа на описанную выше расширенную хранимую процедуру, но ее можно отличить по использованию .NET DLL. Кроме того, для регистрации и использования CLR Stored Procedure требуется процесс активации, например xp_cmdshell.

Как упоминалось выше, LemonDuck использует не только xp_cmdshell, но и CLR Stored Procedure.

Анализ CLR SqlShell

Базовый тип

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

Выполнение команд (LEMONDUCK)

LemonDuck регистрирует и использует метод ExecCommand() класса StoredProcedures, а метод ExecCommand() внутренне вызывает метод RunCommand(). С именем evilclr.dll его единственной функциональностью является процедура выполнения команды. LemonDuck использует зарегистрированную таким образом функцию ExecCommand() сборки CLR для загрузки дополнительной полезной нагрузки.

Поддержка команд загрузки (SHAW20211224)

Далее следует SqlShell с именем "shaw20211224.dll", который предоставляет не только функцию RunCommand(), выполняющую полученные команды, но и функцию DownloadRun(), загружающую внешние файлы, и функцию PutDatas(), похищающую файлы из полученных директорий.

Выполнение шеллкода (Metasploit)

Кроме того, Metasploit, инструмент для тестирования на проникновение, также поддерживает атаки, направленные на эти серверы MS-SQL. Metasploit предлагает различные техники, начиная от вышеупомянутых атак по словарю и повышения привилегий, до выполнения различных команд ОС, и, конечно, техника CLR SqlShell также предусмотрена.

В процессе атаки Metasploit устанавливает следующий SqlShell, который отвечает за выполнение полученного шеллкода в памяти. Metasploit также предоставляет простые формы обратного шелла, bind shell и бэкдор Meterpreter, который предоставляет различные другие возможности. Metasploit выполняет шеллкод, который устанавливает желаемое вредоносное ПО субъекта угрозы.

Типы, предоставляющие расширенные возможности

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

SQLHELPER (TRIGONA Ransomware)

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

Кроме того, SqlShell, обнаруженный в ранее рассмотренном случае атаки Trigona ransomwar, также был SqlHelper. SqlHelper, использованный угрозой Trigona, также содержит процедуру атаки на уязвимость MS16-032 для повышения привилегий. Угрожающий агент использовал ее для выполнения службы MS-SQL с повышенными привилегиями, и с этими привилегиями он зарегистрировал в службе Trigona ransomware.

CLRSQL (Группа угроз SHADOWFORCE)

SqlShell под названием CLRSQL также похож на SqlHelper. При рассмотрении поддерживаемых функций, таких как задачи, связанные с файлами/каталогами/процессами/учетными записями, становится очевидным его сходство с вредоносным ПО WebShell.

По сравнению с рассмотренными выше типами, CLRSQL SqlShell имеют еще больше возможностей. Например, есть такие, которые реализованы с помощью PingCastle. PingCastle - это инструмент, который можно использовать для сбора информации, необходимой для атак в средах Active Directory.

CLRSQL SqlShell, реализованный в PingCastle, также используется в процессах атак группы угроз ShadowForce. ShadowForce - это группа угроз, действующая с 2013 года. Они известны своими атаками, направленными на корейские компании и агентства. Их склонность атаковать в основном серверы MS-SQL является одной из их отличительных характеристик.

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

Приведенный ниже журнал ASD показывает последовательное создание других вредоносных программ ShadowForce после того, как первым был установлен файл "Tmp1C4E.tmp", который является SqlShell. Таким образом, ShadowForce использует CLR Stored Procedure для установки дополнительных вредоносных программ после взлома плохо управляемых MS-SQL серверов. Подобный ход событий можно наблюдать в большинстве процессов атак.

CLR_MODULE (группа угроз SHADOWFORCE)

SqlShell под названием CLR_module также похож на CLRSQL, поскольку поддерживает PingCastle наряду с другими аналогичными функциями. Что касается различий, CLR_module также предоставляет инструменты эскалации привилегий, такие как BadPotato и EfsPotato, в дополнение к функциям, предоставляемым CLRSQL. Можно предположить, что эти дополнительные возможности являются причиной того, что во многих случаях CLRSQL также обнаруживается в процессе атак ShadowForce.

3.3. Установка CoinMiner

В разделе выше мы рассмотрели форму, аналогичную WebShell, которая будет получать и выполнять определенные команды от агента угрозы. В этом разделе будут рассмотрены SqlShell, самостоятельно реализующие определенные функции. Большинство этих форм направлены на установку CoinMiner, поэтому SqlShells, используемые в этих атаках, обычно выполняют функции загрузчиков или дропперов.

MRBMINER

MrbMiner был одним из основных CoinMiner, который распространялся на MS-SQL-серверах в прошлом. Впервые он был подтвержден в 2020 году, и в конечном итоге он устанавливает XMRig CoinMiner. SqlShell, используемый в процессе установки MrbMiner, обладает собственными методами срыва анализа, но в отличие от вышеупомянутых форм, он имеет только функцию загрузки для установки MrbMiner.

Хотя они могут отличаться в зависимости от версии, следующие жестко закодированные URL C&C можно подтвердить напрямую.

MYKINGS

MyKings CoinMiner распространяется различными способами и используется в нескольких методах атак на серверы MS-SQL. Первый метод - это хранимая процедура OLE, описанная выше, а также другие методы, такие как следующий, где используется сборка CLR через файл ExecCode.dll.

Метод SqlStoredProcedure1() загружает текстовый файл с определенного URL, который содержит URL, где могут быть загружены дополнительные полезные нагрузки. Затем он анализирует эти URL, чтобы установить фактическую полезную нагрузку MyKings. ExecCode.dll имеет простую форму, как показано выше, но среди сборок CLR, используемых MyKings, были обнаружены более сложные формы.

Подобно ExecCode.dll, MSSqlInterface.dll также выполняется через класс StoredProcedures и метод SqlStoredProcedure(), но он также предоставляет дополнительные возможности. Во-первых, она расшифровывает URL C&C, закодированный в 0xFA в виде 1-байтового XOR, во время своей начальной процедуры. Затем он регулярно отправляет основную информацию, которая была украдена, на C&C-сервер в главном цикле, а также загружает и выполняет файлы и шеллкод.

LOVEMINER

Как CoinMiner, распространяемый на уязвимые MS-SQL серверы, LoveMiner был найден с загрузчиками в виде исполняемых exe-файлов и хранимых процедур CLR.

Загрузчик LoveMiner обращается к определенному URL, где загружает и сохраняет CoinMiner в Base64-кодировке по пути "C:\windows\temp\0c0134c0cbebf48be8c95920f5ea74fc.txt". Если файл уже существует, он считывает и декодирует его в Base64 и загружает в память.

После окончательной загрузки DLL CoinMiner вызывается экспортная функция ExecSql() с аргументом. Эта DLL представляет собой адаптированный XMRig, который проверяет, является ли первая строка, полученная в качестве аргумента, "getmoney#2021". После этого она добывает монеты Monero после разбора адреса и ID майнинг-пула, полученных в качестве третьего аргумента.

Среди SqlShell, устанавливающих LoveMiner, некоторые даже поставляются в виде дроппера, а не загрузчика. XMRig CoinMiner сохраняется во внутренних ресурсах "gmp", а SqlShell отвечает за его загрузку в память. Будучи настроенным XMRig, gmp настраивает информацию, необходимую для майнинга, например, адрес майнинг-пула из начальной программы.

Установка Proxyware

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

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

Как видно из журнала ASD, угрожающий агент установил прокси-программу с именем "sdk.mdf" на сервер MS-SQL и использовал SqlShell для выполнения прокси-программы и кражи пропускной способности. "sdk.mdf" - это DLL-файл, отвечающий за фактические функции, а сам файл обладает только функциями, предоставляемыми платформами proxyware.

Однако создаваемый SqlShell "Tmp417C.tmp" загружает прокси-программу "sdk.mdf" и вызывает экспортную функцию p2p_start() так, что она работает без ведома пользователя. При вызове функции p2p_start() в качестве аргумента должен быть передан адрес электронной почты для получения прибыли, и адрес электронной почты актора угрозы можно подтвердить на следующем рисунке.

Кроме того, имя SqlShell - "SqlServerWorks.CLR.P2P.dll", что похоже на SqlShell LoveMiner, и предполагается, что они принадлежат одному и тому же субъекту угрозы, так как реальные журналы ASD показали, что LoveMiner и proxyware часто устанавливаются вместе.

Заключение

В последнее время вредоносное ПО SqlShell устанавливается на плохо управляемые серверы баз данных MS-SQL. SqlShell может устанавливать дополнительные вредоносные программы, такие как бэкдоры, CoinMiners и proxyware, или выполнять вредоносные команды, полученные от субъектов угрозы, аналогично WebShell.

Типичные атаки на серверы баз данных MS-SQL включают перебор и атаки по словарю на системы, где учетные данные плохо управляются. В случае с серверами MS-SQL, на которые направлены атаки, есть много случаев, когда они устанавливаются вместе в процессе установки ERP и бизнес-решений, помимо того, что они непосредственно построены как серверы баз данных.

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

Indicators of Compromise

IPv4 Port Combinations

54.36.10.73:1001

88.214.26.9:13785

Domain Port Combinations

  • adminserver.online:1001
  • pcadmin.online:1001
  • vihansoft.ir:3341

URLs

  • http://c.getmoney.company/CLRV7/data.txt
  • http://c.getmoney.company/CLRV7/ver.txt
  • http://c.getmoney.company/config.txt
  • http://c.getmoney.company/data.txt
  • http://c.getmoney.company/ver.txt
  • http://dl.love-network.cc/SqlBase.exe
  • http://js.f4321y.com:280/v.sct
  • http://load.wpd0126.info/pld
  • http://load2.wpd0126.info/pld

MD5

  • 012e607f99ecc5b108b292d72938456a
  • 130d2b07a1c4cde8f0804df9fa9622d4
  • 15c87480e0405b41f675222ef2bea95a
  • 17606de13187c780ad3bf6caf2d1bd8c
  • 1e92e397d0ad3d8006d99f81d913ffa1
  • 25dbf4f43b91bec3bfabac16b310bc08
  • 281735b72906841ad705017ddf529440
  • 2f1aecbdb7ffcb0016de8ab734c0de44
  • 329f6d74299141fe06a5e222efcb06f8
  • 380702ee8884e4676d837a866b6be4c2
  • 383d20de8f94d12a6ded1e03f53c1e16
  • 3badb7bc10be12ddb710302e56445db9
  • 3e81a45507aea0945c57b67f193138a2
  • 46b639d59fea86c21e5c4b05b3e29617
  • 47cb400ee9d6cc9b951296b29488956b
  • 5d0ed9dc8864776021cf59099ca5af91
  • 61fabf8842e7a93236b16f42cfc16d19
  • 63609079a3e4af8643d33b05894e9670
  • 694d4270555f8b5e41a49990c8c62789
  • 6f3c3e5b69de7d192088ffb98a345e4d
  • 6ff71e8b324886e05deac82debc882af
  • 74b1a7e895df180d5d1fe60d4fc5fa69
  • 760cfbdd6abb9c0362feef3d6cad3d9b
  • 7a7eb2d08f427644c37f771a2d174376
  • 7ae173b79f3adfa3dec15c49a51ea235
  • 7ff7fbd615ea5da6d5d07d6af6a0442c
  • 896ad50bcf14cf7fd26538bfa5a95899
  • afd5b836bc4f6d276ba8cdf66afb7e93
  • b1c9a484d0fce8740438547694dbaadf
  • b2ecc580203ec41fa007021db3f2aceb
  • b37278c39d5eff637823b01f6dbb7c6d
  • b3f1b115efe4d58145be73ba8e2033ea
  • b87734108c8065bd8c6bc5f4096debed
  • ba1772486fd114b3a384d012645ac905
  • be12cf29d01de28944af89de391f2d9a
  • c3ce5aa5257d7a0d24c281a77b08c4d1
  • cc677b21dfda8718ab0431813bc7f0d2
  • cfbadc45f2ca5ecd4c663d37afd784a2
  • ddec0377794f1e3d7c0cb4c93b1cb3c1
  • e16bd473c6dcfdc62053864c8a52060d
  • e4518c9f624775ebdbc4c26d70df4356
  • f0b837709ddde332bd2d7c8db9ccc1a2

 

SEC-1275-1
Добавить комментарий