cmd
没有类似于 bash
的配置文件,但是 powershell
是有的
https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-7.4
PowerShell 控制台支持以下基本配置文件。配置文件按照执行顺序列出。
-
所有用户,所有主机
-
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
-
$PROFILE
自动变量存储当前会话中可用的 PowerShell 配置文件的路径。
若要查看配置文件路径,请显示 $PROFILE
变量的值。还可以在命令中使用 $PROFILE
变量来表示路径。
$PROFILE
变量存储“当前用户,当前主机”配置文件的路径。其他配置文件保存在 $PROFILE
变量的注释属性中。
例如,$PROFILE
变量在 Windows PowerShell 控制台中具有以下值。
-
当前用户,当前主机 -
$PROFILE
-
当前用户,当前主机 -
$PROFILE.CurrentUserCurrentHost
-
当前用户,所有主机 -
$PROFILE.CurrentUserAllHosts
-
所有用户,当前主机 -
$PROFILE.AllUsersCurrentHost
-
所有用户,所有主机 -
$PROFILE.AllUsersAllHosts
由于每个用户和每个主机应用程序中 $PROFILE
变量的值发生更改,因此请确保在所使用的每个 PowerShell 主机应用程序中显示配置文件变量的值。
若要查看 $PROFILE
变量的当前值,请键入:
PowerShell
$PROFILE | Select-Object *
AllUsersAllHosts : C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1
AllUsersCurrentHost : C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1
CurrentUserAllHosts : C:\Users\Administrator\Documents\WindowsPowerShell\profile.ps1
CurrentUserCurrentHost : C:\Users\Administrator\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
这些配置文件中都可以类似 Bash
配置文件一样,在其中放置后门程序
默认情况下都不存在这些文件
接下来进行试验
创建 C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1
输出字符 I am a Backdoor
Write-Host "I am a Backdoor"
在 cmd
中输入 powershell
进入 powershell
创建 C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1
输出字符 I am the second Backdoor
在 powershell
中输入 powershell
进入新的 powershell
创建 C:\Users\Administrator\Documents\WindowsPowerShell\profile.ps1
输出 I am the third Backdoor
发现连 WindowsPowerShell
这个目录都没有,创建目录及文件
在 powershell
中输入 powershell
进入新的 powershell
创建 C:\Users\Administrator\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
输出 I am the fourth Backdoor
刚才已经创建了目录,现在直接创建文件了
在 powershell
中输入 powershell
进入新的 powershell
这四个配置文件均可正常使用
尝试重启电脑,再次进入 powershell
仍然有效
现在有一个疑问,如果不是进入 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
中
先是在 cmd
中进行测试
powershell ./demo.ps1
删除 backdoor.txt
图形化右键执行 demo.ps1
也就是说这类后门对所有的 powershell 程序有效
「圈子的最近主题和圈子内部工具一些展示」
纷传100%官方认证授权,可在发现-圈子页面查看
poc漏洞库 8000+src陆续更新中 -紧跟时代发展争做先进网安人
一起愉快刷分-榜上有名
免杀-护网必备
新手学习、老手巩固-温故而知新
学习报告-三人行必有我师
各类会员-尊贵的SVIP
「你即将失去如下所有学习变强机会」
学习效率低,学不到实战内容
一顿自助钱,我承诺一定让用户满意,也希望用户能给予我一份信任
【详情下方图片了解】,【扫下方二维码加入】:只做高质量优质精品内容」
圈子目前价格为¥99元(交个朋友啦!),现在星球有近150+位师傅相信并选择加入我们,圈子每天都会更新内容,老用户可永久享受初始加入价格,圈子内容持续更新中
一张图总结
免责声明
由于传播、利用本公众号所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本公众号及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!