CVE-2019-12725(ZeroShell)の脆弱性の検証をやってみた

セキュリティ

少し前に以下のニュースがあったので、今回は久しぶりに検証をやりたいと思います。

「ZeroShell」の既知脆弱性を狙った攻撃に注意

環境準備から行っていきますので、興味がある方は見ていってください。

なお、この記事についてはハッキングを推奨するものではありません。悪用は厳禁ですので予めご認識ください。

ZeroShellの準備

ZeroShellについては私は全然知らなかったのですが、LANに必要なネットワークサービスを提供することができるLinuxディストリビューションだそうです。

しかも管理機能が、Webのインターフェースで提供されているので、私みたいな人間にはうってつけですね。

今回検証する脆弱性についてはCVE番号を見ればわかる通り、昨年(2019年)に報告された脆弱性であり、発表されてから約一年たっています。

しかし、攻撃が最近観測されているということです。

過去に検出された脆弱性でもいまだに残っているということは多くあります。(脆弱性診断とかしているとほんとに多い)

検証環境の準備

早速準備していきましょう。なお、具体的な設定については自分の環境に合わせて行ってくださいね。

ここにアクセスすると、以下のようにisoファイルやimgファイルがダウンロードできます。

いろいろバージョンがありますが、JVNのページを見ると脆弱性は「3.9.3」で解消されているということなので、上記の赤枠で囲まれている「Install/Live CD x86/x86_64」の「3.9.0」をダウンロードしました。

ダウンロードしたファイルについてはisoファイルですので、VMに読み込ませることで、環境を作ることができます。

なお、構築時の参考としてこちらのyoutubeを参考にしていますので、こちらを見ていただくのが一番です。(なお、作成者と私は全く接点はありません。)

このブログではVMでの新規作成は省略して、仮想マシンの再生が終わったところから解説します。
※前段階が不明な方はコメント等いただければお答えします。

以下は起動が終わった際の画面です。

画面の右上に「http://192.168.0.75」と記載があり、これにアクセスすればいけそうな感じがしますが、おそらくアクセスできないかと思います。

なので、IPの設定を変更します。上記画面で「IP Manager」を選択します。

次に、「Modify IP address」を選択します。

次にInterfaceを聞かれますが、そのままEnterします。

IP to modifyもそのままEnterします。(画像では1を入力してますが、特に違いはないです。)

IPのところに自分がアクセスできる環境のIPアドレスを入力します。

私の環境だと、192.168.70.xxxのレンジがVMware Network Adapterに設定されていますので、他のVMに被らないIPアドレスを適当に設定しました。(windowsのコマンドプロンプトから確認できます。)

「Netmask」、「IP status」はEnter連打です。

これで準備はOKです。さっそくブラウザから「http://192.168.70.150」(設定したIP)にアクセスしてみましょう。

以下の画面が表示されれば問題ありません。

ログインしなくても脆弱性の検証はできますが、念のため、ログインしてみましょう。

ID/Passwordは起動時の画面に記載されています。デフォルトは「admin/zeroshell」です。

ログインすると、以下のように脆弱性のあるバージョンであることも確認できますね。

これで準備はOKです!

脆弱性の検証

最新の脆弱性であればここからが勝負です。

英語圏以外のサイトを巡ったり、githubを巡回しながら攻撃コードを探していくのですが、この脆弱性については発見されてからすでに一年以上経過しているので、すぐに見つかります。

今回はGitHubではなく、Exploit Databaseから確認しています。もちろんGitHubにもPoCはありましたので、お好きな方を選択してください。

この攻撃はGETメソッドで発動する脆弱性のようです。

認証していない状態でも発生するため、非常に使いやすいです。

具体的には以下のURLにアクセスするとコマンドが実行されます。

http://192.168.70.150/cgi-bin/kerbynet?Action=StartSessionSubmit&User=%27%0acat%20/etc/passwd%0a%27&PW=

パラメータ「User」に「シングルクォート」と「改行」を挿入した際に発現するので、非常に簡単ですね・・・

URLにアクセスすると以下のように「/etc/passwd」の中身が画面上に出力されています。

脆弱性のあるバージョンを使用していた場合は簡単にやられてしまいますね。

最後に

ZeroShellの脆弱性を検証しました。

非常に簡単に使用できる脆弱性なので、もし古いバージョンを使用している場合は直ちにアップデートするようにしてください。

また、任意のコマンドが動くので、攻撃者はReverse Shellやバックドアを置いている可能性があるので、アップデート後に怪しいファイルがないかを確認することを推奨します。

不明点や要望やこういったこともやって欲しいとの要望があれば、お問い合わせページやコメント、ツイッターからでも結構ですので、気軽にご連絡ください。

コメント