Struts2が攻撃を受けているか、CVE-2013-2115

Struts2プロジェクトを所有している人のために小さな記事を書きたいです。 皆さん、CERTニュースレターと私のTwitterアカウントを読んでいないなら(大丈夫、これは許せますが...)、更新についてStruts2ニュースレターに注意を払わないで、考え直してください。この話はあなたのためです。









スタート。





この物語は7月16日に始まりました。 地下鉄で平和に乗って、Isaac Asimovを読みました。 それまでの間、私は会社のメールをチェックすることにし、中国のオフィスから来た人たちからの手紙を見つけました。 連中は、Struts2に脆弱性に関するメッセージがあったと言いました。この脆弱性により、Webサービスの権限でサーバーを完全にリモートコントロール(任意のコードを実行)できるようになります。 Palekhce guys ...現在の日が始まった。 わかりましたが、さらに、私たちの仲間はこれを中国のハッカーフォーラムで発見しました。そこでは、他の面白い男が「ボタンを押してインターネットをハッキングした」などの本格的なエクスプロイトを投稿しました。これは、これらすべての面白い男がこの不幸なインターネットを破り始めることを意味します このフレームワークに基づいたいくつかのサービスがあることに気付いたとき、これは特に快適ではありません。 神経質に私の脚をけいれんさせて、私は精神的に組成物の動きを加速しました。 そして今、私はオフィスに駆け込み、ラップトップの電源を入れます。 はい、確かに-ベンダーからのアドバイス-http ://struts.apache.org/release/2.3.x/docs/s2-016.html はい、彼らは彼らのメッセージに少し切り取られた悪用例を追加しました。 そして...これもまたOGNLです... Struts2にはOGNLとの永遠の問題があります:



http://blog.o0o.nu/2010/07/cve-2010-1870-struts2xwork-remote.html(2010

http://blog.o0o.nu/2012/01/cve-2011-3923-yet-another-struts2.html(2011

https://communities.coverity.com/blogs/security/2013/05/29/struts2-remote-code-execution-via-ognl-injection(2013年 5月)



そしてまた...わかりました。 しかし、今回は、問題は時間によって制限されます-中国のフォーラムでは、一般に公開されています-「Exploit for all」 -http://kuxoo.com/archives/260/



象形文字とのリンクを開かない分割の例-ログを見てください:



localhost/Struts2/test.action?redirect:${#a=(new java.lang.ProcessBuilder(new java.lang.String[]{'netstat'})).start(),#b=#a.getInputStream(),#c=new java.io.InputStreamReader(#b),#d=new java.io.BufferedReader(#c),#e=new char[50000],#d.read(#e),#matt=#context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse'),#matt.getWriter().println(#e),#matt.getWriter().flush(),#matt.getWriter().close()}







これはどういう意味ですか? そして、時間が秒単位で過ぎているという事実。 同時に、テストや他の手順なしにStruts2から更新プログラムを取得して配置するだけではなく、地域ごとに異なるタイムゾーンを設定することはできないことを理解してください。 これらはすべて通常の作業の瞬間であり、可能な限りどこでも-修正がロールアップされ、他の場所でIPS / WAFが調整され、3番目のサービスフィルターで-脅威を防ぐ方法に関する一般的な決定で-多くの場合、すべてが保護されるように行われました攻撃の可能性。



17日、国境で敵が発見されました。 主に中国のIPアドレス。 この特定の脆弱性のスキャンに失敗しました。 パッチがリリースされた瞬間から侵入を防ぐための反応時間は1日であり、決定的であったことが判明しました。 中国人は皆、同じエクスプロイトを使用しました。これは、変数mattによって決定できます。 OGNL式を介してコードを実行する方法には多くのオプションがありますが、Javaのほとんどすべての能力は攻撃者の手にあります。



インターネット応答





現時点では、インターネットはブロゴスフィア、ニュース、さらにはTwitterでも静かでした。 これはIBコミュニティにあまり似ていません-Struts2の人気を考えると、あまりにも静かです。これは奇妙です。 私はこのトピックについてツイートしましたが、それは静かでした。少数の同僚だけが彼らが力と主力で反撃していると言った。

少し遅れて(21日または22日)、developer.apple.comのハッキングのニュースが爆発しました。 私が注意を払わなかったのは、そのときだけ、開発者ポータルがStruts2上にあることに突然気付きました。 どうやら彼らはそのように彼らに到達しました...もちろん、研究者が脆弱性を報告したというニュースがありましたが、私はそれを信じていません。 ほとんどの場合、この男は中国のパブリックスプリットを繰り返し、バグを報告しましたが、彼の前に、サーバーは既にハッキングされていました。 そうでなければ、それらは長い間切断されなかったでしょう。 そして、この男は彼の最愛の人を称えてPRキャンペーンをやめることにした、と彼はAppleをハッキングしたと言う。 24日から25日にかけて、私にとっては面白くなりました。少なくとも、誰かが自分自身を傷つけて修正しました。

たとえば、あるベラルーシの大規模な銀行は25日にのみ修正しました。 QIWIについては、 http: //habrahabr.ru/company/qiwi/blog/187724/#comment_6524512をご覧ください 。 ロシアの残りは静かで滑らかです。 発見された政府命令のシステムは脆弱です。 ロシア連邦省の重要なサービスの1つは、個人的でより興味深いデータが多数あり、脆弱です。 どんな種類のサイバー戦争について話すことができるか、ルカツキーは彼のブログでこれについて書いていない-そして彼とのイチジク、しかし中国の同志がトップでバックドアを注いでいるという事実-気にする人、それは簡単にPDについて議論するためではない。 パッチがリリースされてから1週間以上たった今でも、最も深刻な時期に有名な1日間の攻撃に対して、この国が0日間の準備ができていないのは悲しいことです! CIS銀行はより迅速であることが判明しました。 しかし、あなたがロシアだけですべてが常に悪いと思うなら、あなたは間違っています。 私はあまり面倒ではなく、最も興味深いリソースをスキャンしました-他の国の政府リソースはまだ脆弱です。 さらに、それらのいくつかに対する攻撃は、物理的な世界で非常に興味深い結果をもたらします。



すべての回避策が良いわけではありません





2番目の観測は、攻撃とバグ知っていて、ホットフィックスを汚した人々です。 主要なグローバルベンダーの2つのサービスを見つけました。 両方のサーバーには、攻撃の通過を妨げる修正プログラムがありました。 しかし、両方のベンダーが同じ間違いを犯しました。 アドバイザリおよびパブリックエクスプロイトには、GETリクエストという1つの攻撃ベクトルしかありませんでした。 しかし、確認してPOSTする価値があります。 戦いの最中に、彼らはこれを予見しませんでした。結局、私は両方のサーバーでシェルを受け取りました。それをすぐに両社に報告しました。 修正は数時間後に出てきました。 雑誌の次号のアクセス証明付きスクリーンショット] [



結論の代わりに





何と理由、そしてそれと生き、戦う方法についての結論として、私はこの雑誌に向けて出発しましたが、これはとても明白です。 しかし、私は警告するのは簡単なHabrに書くことに決めました-各ベンダー、特に政府の構造や銀行に個人的に書くことはできません-これはあなたの仕事ではありません、あなたはあなたの事件に対応しなければなりません1週間待ちます(敬意を表します)。 残りは-知っているだけで行動を起こします。なぜなら、敵はパッチがリリースされた瞬間から1か月待たないからです。これは、あなたが誇らしげに満たしている紙の標準に書かれているためです...



All Articles