商城首页欢迎来到中国正版软件门户

您的位置:首页 >PowerShell 后门配置 | Windows 安全隐患解析

PowerShell 后门配置 | Windows 安全隐患解析

  发布于2025-07-29 阅读(0)

扫一扫,手机访问

PowerShell 控制台与 Bash 不同,支持多个配置文件。这些配置文件的执行顺序如下:

所有用户,所有主机:

  • Windows: $PSHOME\Profile.ps1
  • Linux: /opt/microsoft/powershell/7/profile.ps1
  • macOS: /usr/local/microsoft/powershell/7/profile.ps1

所有用户,当前主机:

  • Windows: $PSHOME\Microsoft.PowerShell_profile.ps1
  • Linux: /opt/microsoft/powershell/7/Microsoft.PowerShell_profile.ps1
  • macOS: /usr/local/microsoft/powershell/7/Microsoft.PowerShell_profile.ps1

当前用户,所有主机:

  • Windows: $HOME\Documents\PowerShell\Profile.ps1
  • Linux: ~/.config/powershell/profile.ps1
  • macOS: ~/.config/powershell/profile.ps1

当前用户,当前主机:

  • Windows: $HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
  • Linux: ~/.config/powershell/Microsoft.PowerShell_profile.ps1
  • macOS: ~/.config/powershell/Microsoft.PowerShell_profile.ps1

PowerShell 中的 $PROFILE 变量存储当前会话中可用的配置文件路径。要查看配置文件路径,可以显示 $PROFILE 变量的值。$PROFILE 变量的不同属性存储其他配置文件的路径。例如,在 Windows PowerShell 控制台中,$PROFILE 变量的值如下:

  • 当前用户,当前主机:$PROFILE
  • 当前用户,当前主机:$PROFILE.CurrentUserCurrentHost
  • 当前用户,所有主机:$PROFILE.CurrentUserAllHosts
  • 所有用户,当前主机:$PROFILE.AllUsersCurrentHost
  • 所有用户,所有主机:$PROFILE.AllUsersAllHosts

由于 $PROFILE 变量的值在不同用户和主机应用程序中会变化,建议在每个 PowerShell 主机应用程序中查看其值。

要查看 $PROFILE 变量的当前值,可以输入以下命令:

$PROFILE | Select-Object *

PowerShell 配置文件后门 | Windows 后门系列

这些配置文件可以像 Bash 配置文件一样用于放置后门程序。

PowerShell 配置文件后门 | Windows 后门系列

默认情况下,这些文件不存在。接下来我们进行试验。

创建 C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1,并在其中输出字符 "I am a Backdoor":

Write-Host "I am a Backdoor"

PowerShell 配置文件后门 | Windows 后门系列

cmd 中输入 powershell 进入 powershell

PowerShell 配置文件后门 | Windows 后门系列

创建 C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1,并在其中输出字符 "I am the second Backdoor"。

PowerShell 配置文件后门 | Windows 后门系列

powershell 中输入 powershell 进入新的 powershell

PowerShell 配置文件后门 | Windows 后门系列

创建 C:\Users\Administrator\Documents\WindowsPowerShell\profile.ps1,并在其中输出 "I am the third Backdoor"。由于 WindowsPowerShell 目录不存在,我们需要先创建目录和文件。

PowerShell 配置文件后门 | Windows 后门系列PowerShell 配置文件后门 | Windows 后门系列

powershell 中输入 powershell 进入新的 powershell

PowerShell 配置文件后门 | Windows 后门系列

创建 C:\Users\Administrator\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1,并在其中输出 "I am the fourth Backdoor"。因为目录已创建,我们直接创建文件。

PowerShell 配置文件后门 | Windows 后门系列

powershell 中输入 powershell 进入新的 powershell

PowerShell 配置文件后门 | Windows 后门系列

这四个配置文件均可正常使用。

尝试重启电脑,再次进入 powershell,确认配置文件仍然有效。

PowerShell 配置文件后门 | Windows 后门系列

现在有一个疑问,如果不是进入 powershell 控制台,直接执行正常的 powershell 脚本会执行吗?编写一个向控制台输出 "Hello World" 并弹出消息框的脚本 demo.ps1

Write-Host "Hello World"
# 弹出一个消息框
Add-Type -AssemblyName PresentationFramework
[System.Windows.MessageBox]::Show("Hello, World!")

在第一个后门文件中额外插入 powershell 代码,将 "I am a Backdoor" 写入到桌面的 backdoor.txt 中。

PowerShell 配置文件后门 | Windows 后门系列

先是在 cmd 中进行测试:

powershell ./demo.ps1

PowerShell 配置文件后门 | Windows 后门系列PowerShell 配置文件后门 | Windows 后门系列

删除 backdoor.txt,图形化右键执行 demo.ps1

PowerShell 配置文件后门 | Windows 后门系列PowerShell 配置文件后门 | Windows 后门系列PowerShell 配置文件后门 | Windows 后门系列

也就是说,这类后门对所有的 powershell 程序有效。

本文转载于:https://cloud.tencent.com/developer/article/2378915 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注