出品|MS08067實驗室(www.ms08067.com)
滲透環境
??首先介紹此次滲透的環境:假設我們現在已經滲透了一臺服務器PAVMSEF21,該服務器內網IP為10.51.0.21,掃描后發現內網網路結構大概如圖所示,其中PAVMSEF21是連接外網和內網的關鍵節點,內網其他服務器均不能直接連接,

我們的滲透目標是通過一個普通的WebShell權限一步步地獲得域管權限,從而掌控整個內網,
一. 提升權限
??上傳免殺的Payload到機器名為PAVMSEF21、IP為10.51.0.21的服務器上,然后在“中國菜刀”或者WebShell下運行,如圖所示,

??獲得Meterpreter Shell后要做的第一件事情就是提權,通常,在滲透程序中很有可能只獲得了一個系統的Guest或User權限,低的權限級別將使我們受到很多的限制,所以必須將訪問權限從Guset提升到User,再到Administrator,最后到SYSTEM級別,
??我們先嘗試利用本地溢位漏洞提權,即使用本地漏洞的利用程式(Local Exploit)提升權限,也就是說,通過運行一些現成的、能造成溢位漏洞的Exploit,把用戶從User組或其他系統用戶組提升到Administrator組(或root),
??此時,我們獲取的權限是一個普通域用戶權限,如圖所示,

??首先利用本地溢位漏洞提權,發現服務器補丁打得很全,嘗試利用MS1505、MS15078等,都以失敗告終,如圖所示,

??再嘗試繞過Windows賬戶控制(UAC),我們現在具有一個普通域用戶的權限,利用Bypass UAC模塊提權,又以失敗告終,如果成功會回傳一個新的Meterpreter Shell,如圖所示,

??使用Bypass UAC模塊進行提權時,系統當前用戶必須在管理員組,而且用戶賬戶控制程式UAC設定為默認,即“僅在程式試圖更改我的計算機時通知我”,而且Bypass UAC模塊運行時會因為在目標機上創建多個檔案而被殺毒軟體識別,我們沒能繞過UAC,可能是這兩個原因,
??其實提權沒有成功也不要緊,我們還是可以以此服務器為跳板,攻擊其他服務器的,
二. 資訊收集
??我們此時雖然提權不成功,但還是可以進行域滲透測驗的,有了內網的第一臺機器的權限后,收集資訊是很關鍵的一步,也是內網滲透中不可或缺的一部分,
??首先要查看當前機器的網路環境,收集域里的相關資訊,包括所有的用戶、所有的計算機,以及相關關鍵組的資訊,下面列出了常用的命令及其作用,如圖所示,
net user /domain:查看域用戶,
net view /domain:查看有幾個域,
net view /domain:XXX:查看域內的主機,
net group /domain:查看域里面的組,
net group “domain computers” /domain:查看域內所有的主機名,
net group “domain admins” /domain:查看域管理員,
net group “domain controllers” /domain:查看域控制器,
net group “enterprise admins” /domain:查看企業管理組,
nettime/domain:查看時間服務器,






??通過收集以上資訊,我們可以分析出很多重要的線索,例如內網是怎么劃分的,各機器名的命名規則,根據機器名嘗試找出重要人物的計算機,以及目標機是否為多層域結構,關鍵是要探測出域管理員的名字和域服務器的名字等資訊,
三. 獲取一臺服務器的權限
??我們的目標是域服務器,此時有兩種情況:當前服務器可以直接攻擊域服務器和不可以直接攻擊域服務器,不可以直接攻擊又分為兩種情況:如果是權限不夠就需要提升權限;如果是不能連接到域服務器,則需要攻擊內網中某個可以連接到域服務器的服務器,然后以此為跳板再攻擊域服務器,
??現在因為權限問題不可以直接攻擊域服務器,整理下思路,可以采取以下方法繼續滲透,
— 使用Meterpreter目前擁有的權限添加內網路由,進行弱口令掃描,
— 使用PowerShell對內網進行掃描(要求目標機是Windows 7以上的服務器),
— 架設Socks4a,然后Socks會自動進行內網掃描,
— 利用當前權限進行內網IPC$滲透,
— 其他方法,
??通過上面的分析,我們先選擇最簡單的方法,在net view的機器名里選擇一個和我們機器名相似的服務器來試試,不出意外的話,成功率很高,如圖所示,

??下面再給讀者溫習下經典的IPC$入侵,
??IPC$入侵,即通過使用Windows系統中默認啟動的IPC$共享獲得計算機控制權的入侵,在內網中極其常見,
??假設現在有一臺IPC$主機:127.0.0.25,輸入以下命令,
D:>net use \127.0.0.25\ipc$ #連接127.0.0.25的IPC$共享
D:>copy srv.exe \127.0.0.25\ipc$ #復制srv.exe上去
D:>net time \127.0.0.25 #查時間
D:>at\127.0.0.25 10:50 srv.exe #用at命令在10點50分啟動srv.exe(注意這里設定的時間要比主機時間快)
??上述命令中的at就是讓計算機在指定的時間做指定事情的命令(例如運行程式),
這里把免殺的Payload上傳到PAVMSEP131服務器,然后利用at命令啟動Payload,反彈回Meterpreter Shell,具體操作如圖所示,

將木馬復制到目標服務器

查看系統時間

使用at命令啟動木馬
??接著回傳handler監聽,可以看到反彈成功了,我們獲得了PAVMSEP131服務器的Meterpreter Shell,如圖所示,

我們先看看PAVMSEP131服務器的資訊和現在的權限,如圖所示,

??可以看到沒有SYSTEM權限,說明既可以用Mimikatz等工具,也可以用run post/windows/gather/hashdump來抓Hash,
??我們在用Mimikatz抓Hash之前要注意一點:如果服務器安裝的是64位作業系統,要把Mimikatz行程遷移到一個64位的程式行程中,才能查看64位系統的密碼明文,32位系統沒有這個限制,
??這里使用Mimikatz抓Hash,具體操作如圖所示,


接著查看抓到的域用戶的權限,如圖所示,

四. PowerShell尋找域管在線服務器
??Windows PowerShell是一種命令列外殼程式和腳本環境,使命令列用戶和腳本撰寫者可以利用.NET Framework的強大功能,PowerShell還允許將幾個命令組合起來放到檔案里執行,實作檔案級的重用,也就是說有腳本的性質,
??將Hunter模塊上傳到主機名為PAVMSEP131,IP為10.51.0.131的服務器中,然后輸入Invoke-UserHunter,如圖所示,
??具體命令如下所示,
powershell.exe -exec bypass -Command "&{Import-Module .\powerview.ps1;Invoke-UserHunter}"`

??可以看到域管理員當前在線登錄的機器主機名為PAVMSXD30,IP為10.51.0.30,此時需要入侵此服務器,然后將其遷移到域管理登錄所在的行程,這樣便擁有了域管理的權限,
五. 獲取域管權限
??利用獲取到的HASH,我們成功地獲取到主機名PAVMSXD30,IP為10.51.0.30的服務器權限,接下來就可以滲透域控了,
??首先利用getsystem命令提升權限,如圖所示,


??可以看到我們現在的UID是sonicwall,從前面獲取的域管理員賬號資訊中已知sonicwall是域管理員,
??然后利用ps命令找到域管理所在的行程,把Meterpreter Shell行程遷移到此行程中,成功后就獲得了域管理權限,如圖所示,

??這里除了遷移行程外,也可以使用Metasploit中的竊取令牌功能,同樣能獲得獲得域管理權限,
??接著查看主域控IP,這里使用net time命令,一般來說時間服務器都是域服務器,如圖所示,

??可以看到域服務器的主機名為PAVMSAD64,IP地址為10.51.0.63,
??現在我們可以使用經典的IPC$入侵來反彈一個Meterpreter Shell,具體操作如圖所示,


??提示at命令已經被棄用,現在使用schtasks添加計劃任務,因為目標機的系統是Windows 2012,因為現在已經在域管理員權限下面了,所以要給域控添加一個管理員賬戶,如圖所示,

??利用如下命令確認賬戶是否添加成功,如圖所示,

??可以看到我們已經成功添加了管理員賬戶,
六. 登錄域控制器
??現在域控的權限也終于到手了,接下來就要登陸域控,然后抓域控的Hash,
??整理下思路,常見的登錄域控的方式有以下幾種,
1.利用IPC上傳AT&Schtasks遠程執行命令,
2.利用埠轉發或者Socks登錄域控遠程桌面,
3.登錄對方內網的一臺電腦使用pstools工具包中的PsExec來反彈Shell,
4.使用Metasploit下的psexec, psexec_psh;Impacket psexec;pth-winexe;Empire Invoke-Psexec等PsExec類工具反彈shell,
5.使用Metasploit下的smb_login來反彈Meterpreter,
6.使用WMI(Windows Management Instrumentation)來進行攻擊,
7.使用PsRemoting posershel遠程執行命令,其他一些方法,
??這里采用最常見也是效果最好的,Metasploit下的PsExec來反彈Meterpreter,使用時注意以下這兩點,如圖所示,
????— MSF中的PsExec模塊,
????— cuestom模塊,建議使用類似Veil之類的工具來生成免殺的Payload,
??這里采用最常見也是效果最好的方式——Metasploit下的PsExec來反彈Meterpreter,使用時注意以下兩點,如圖所示,

— MSF中的PsExec模塊,
— cuestom模塊,建議使用類似Veil之類的工具生成免殺的Payload,
??可以看到已經反彈成功了,然后先遷移行程,查看域控的系統資訊和sessions控制圖,如圖所示,


??思路:可以看到現階段控制的session共有5個,session1為WebShell反彈,session2利用ipc$入侵,滲透session4是為了獲取域管在線服務器,session5為域,整個滲透程序一環套一環,環環相扣,
??有了域控的權限,接著來抓Hash,常用方法有以下幾種,
— 使用Metasploit自帶的dumphash或者smart_hashdump模塊匯出用戶的Hash,
— 利用PowerShell的相應模塊匯出Hash,
— 使用WCE、Mimikatz等工具,
— 其他方法,
??這里使用了Metasploit自帶的dumphash模塊,需要注意:要想使用此模塊匯出Hash,必須要有SYSTEM的權限才行,具體操作如圖所示,

七. SMB爆破內網
??有了域控的密碼,接下來只要快速在內網擴大控制權限就好,具體操作如下所示,
— 利用當前獲取到的域控賬戶密碼,對整個域控IP段進行掃描,
— 使用SMB下的smb_login模塊,
— 埠轉發或者Socks代理進內網,
??我們先在Metasploit添加路由,然后使用smb_login模塊或者psexec_scanner模塊進行爆破,具體操作如圖所示,



??可以看出,我們獲取了大量內網服務器的密碼,下面就可以暢游內網了,可以使用Meterpreter的埠轉發,也可以使用Metasploit下的Socks4a模塊或者第三方軟體,
??這里簡單地使用Meterpreter的埠轉發即可,如圖所示,

八. 清理日志
??清理日志主要有以下幾個步驟,如圖所示,
— 洗掉之前添加的域管理賬號,
— 洗掉所有在滲透程序中使用過的工具,
— 洗掉應用程式、系統和安全日志,
— 關閉所有的Meterpreter連接,



?
?
?
轉載請聯系作者并注明出處!
Ms08067安全實驗室專注于網路安全知識的普及和培訓,團隊已出版《Web安全攻防:滲透測驗實戰指南》,《內網安全攻防:滲透測驗實戰指南》,《Python安全攻防:滲透測驗實戰指南》,《Java代碼安全審計(入門篇)》等書籍,
團隊公眾號定期分享關于CTF靶場、內網滲透、APT方面技術干貨,從零開始、以實戰落地為主,致力于做一個實用的干貨分享型公眾號,
官方網站:https://www.ms08067.com/
掃描下方二維碼加入實驗室VIP社區
加入后邀請加入內部VIP群,內部微信群永久有效!
?
?
?
?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/270671.html
標籤:其他
上一篇:(一)SQL注入
