最近話題になっているJavaのロギングライブラリLog4jの脆弱性(CVE-2021-44228)を狙う攻撃が我が家のWebサーバ宛にも送られてきたので、分析してみました。
送られてきたもの
送られてきたリクエストは以下のようなものです。
オレンジ: WebサーバIP
水色:攻撃者グローバルIP
黄緑:base64文字列の一部マスク
jndi:ldapという文字列に加え、base64の文字列が渡されています。
攻撃者IPのロケーションはSt Petersburg, St.-Petersburg, Russia (RU)でした。
base64のデコード
base64部がどのようなものか、デコードして確認します。
pyhtonで以下のようなコードを実行しました。
---
import base64
print(base64.b64decode(b'base64文字列').decode())
---
結果は以下のようになっています。
これを見るとcurlかwgetで文字列を取得し、bashに渡していることがわかります。
また、パス内に私のWebサーバのグローバルIPアドレスが入っており、相手を識別しているように見えます。
つまり、攻撃者のサーバに置かれた任意の文字列をbashで実行できてしまうため、何でもやり放題です。Webの書き換え、BotNetに取り込む、踏み台にする etc....
(未対策のJavaで作られた鯖にアクセスしたくなくなりますね...何が置かれてるかわからない...)
curlでアクセスしてみた
GCPに捨てインスタンスを立てて、curlでアクセスしてみました。
が、パスに自身のグローバルIPは使いたくなかったので、0.0.0.0に置き換えています。
IPを置き換えたことに起因しているのか、偵察的なアクセスで空なのかはわかりません。
(他の人の情報を見ていると同じ様に何も帰って来ないようだったので、追求しないことにしました。)
まとめ
今回の検証で、Log4jの脆弱性はかなり簡単にリモートコードを実行できるヤバい奴だということがよくわかりました。みなさんもセキュリティパッチの適応やマメなアップデートの適応、ファイアウォールの設定等を忘れないようにしましょう。
-追伸
2021-12-13の攻撃を確認した所、WAF対策と思われる処理をしたリクエストが飛んできていた。
ばいち
コメント