横向移动工具开发:wmiexec-Pro(二)

本文涉及的产品
云防火墙,500元 1000GB
简介: 早于两年前,我基于wmihacker免杀横向的思路,造轮子写了个wmipersist-Modify.py的横向工具,相对于wmihacker来说,无需配合mimikatz的PTH,即可进行PTH

0x04 添加模块:防火墙模块

  • • 主要是玩转MSFT_NetProtocolPortFilter, MSFT_NetFirewallRule, MSFT_NetFirewallProfile这三个类,目前实现了启用禁用删除某条规则,MSFT_NetProtocolPortFilterMSFT_NetFirewallRule 这个两个类属性里面的InstanceID是关联的,然后动动手指,就可以写出一个基于端口查找防火墙规则的一个东西
  • • 演示如下,查找445端口的规则,rule id如下 {D13E226E-A4C0-4CD3-A4E1-17B5948121DE}

  • • 445此时是联不通的

  • • 然后,直接禁用规则,445联通了

  • • 你还可以删除它,之后就找不到了

  • • 还可以禁用全部防火墙的profile


  • • 聪明的你来到这里,一定发现了,怎么没有添加规则?这里就是就涉及到了impacket的问题了,impacket目前还不能发送string 类型的array,如果你愿意研究一下,可以看看我提的issues:[How to submit "String Array" type value when doing SpawnInstance() · Issue #1514] https://github.com/fortra/impacket/issues/1514

  • • 还有一个问题,如果你的防火墙名称里面有中文,windows数据包只支持latin-1,如果不好采有中文,那会报错,解决办法就是,重写防火墙规则的名称(用latin-1编码一遍结果看看有没有报错,报错代表有中文)

  • • 但是你可以更加恶意点,直接设置个空格,管理员怎么点都会报错

  • • 创建一个中文名字的防火墙规则,禁用端口445

  • • 获取规则ID

  • • 禁用

  • • 可以看到变成一片空了
    image.png
  • • 点进去就报错

  • • 可能你会说,噢,那我改回来不就ok了吗,但是遇到系统自定义的规则呢?改系统自定义的,留空,就纯恶心管理员了

  • • 留空后

0x05 添加模块:RDP Wrapper

  • • RDP这个就好解决了,设置个认证等级RPC_C_AUTHN_LEVEL_PKT_PRIVACY,然后直接改对应的值,第一个1代表开启rdp,第二个1代表同时配置防火墙

  • • 开启 Restricted Admin Mode 和查找 RDP端口就好办了,直接调用 StdRegProv 类,一把梭

0x06 添加模块:WINRM Wrapper

  • • WINRM也很好弄,调用 win32_service 开启winrm服务,然后同时调用上述防火墙模块配置好防火墙规则,系统内置了winrm的防火墙规则的,只需要enable它即可

0x07 添加模块:AMSI 绕过

  • • 这个模块只是在注册表创建一个名为 AmsiEnable的键值对,实际有没有用还需要自己测试,来源于blackhat asia 2018中Tal-Liberman 的分享(实际上有没有用,我还没测试过,看GhostPack的SharpWMI添加了这个,我也加上一个)

0x08 模块改进:命令执行

  • • 延续上一个项目 wmiexec-RegOut中的 wmipersist-Modify.py的思路,执行WMIHACKER的VBS模板,但是不同以往的是,这次选择把命令执行结果写到自己创建的类里面

  • • 注意,命令执行到这里不是程序卡住了,等一会即可,后续再去执行命令就很快了,应该是和EventFilter的WQL语句有关,需要排查一下

0x10 WMI爆破

  • • 恰好之前着手给CME写了个WMI协议

  • • 一次经典的实战案例,有个内网里面445/139全部关闭,管理员又恰好只开放了135,不小心你就错过了很多咯

  • • 给CME官方交PR了,但是作者一直没通过 : ( [[New protocol] Add WMI support by XiaoliChan · Pull Request #657 · Porchetta-Industries/CrackMapExec (github.com)]https://github.com/Porchetta-Industries/CrackMapExec/pull/657

0x09 Outro

  • • 项目链接:https://github.com/XiaoliChan/wmiexec-Pro 希望有看完的大哥觉得还不错的话可以给小弟我点个star
  • • 程序中还有很多不足的地方,例如命令执行这里,看GhostPack的SharpWMI的历史commit中,Ridter师傅用的回显方法是把命令执行结果写到已存在的类且无关重要的属性中,后续也可以根据这个思路继续修改

  • • Impacket 调用PutClass实在是不懂怎么用
  • • 本人只测试了有Defender / 火绒 / 360的情况下横向,结果都没触发告警
相关文章
开源测试平台横向测评系列『流马』篇:流马使用及总结
【使用篇】 ● 接口测试:创建接口(添加引用公共参数、添加引用自定义参数)、测试用例(参数关联)、业务流程测试实践 ● web自动化测试:元素管理(添加元素)、测试用例(添加元素)、设计测试场景 ● 测试计划、测试集合与测试用例相互之间的关系 【总结篇】 ● 使用总结:常见的使用注意事项,如变量引用、函数引用、关联参数引用等 ● 优化建议:结合真实使用过程,从用户角度出发,提出的7条优化建议 ● 优缺点总结:优点、缺点、评分(从不同角度评测打分)
开源测试平台横向测评系列『流马』篇:流马使用及总结
|
网络协议 Ubuntu Linux
在IPad Pro上怎么实现代码自由,如何让IPad Pro变成你的生产力工具?
如何让IPad Pro变成你的生产力工具?在IPad上用Vscode写代码搞开发
326 1
在IPad Pro上怎么实现代码自由,如何让IPad Pro变成你的生产力工具?
|
8月前
|
存储 SQL 数据库
构建高效Android应用:采用Jetpack架构组件的实践之路
【4月更文挑战第7天】 在快速迭代的移动开发领域,构建一个既健壮又易于维护的Android应用至关重要。本文将深入探讨如何利用Google推出的Jetpack架构组件,实现Android应用的模块化和组件化,从而提升开发效率和应用性能。我们将通过具体实例分析生命周期管理、UI控制器、数据存储等核心组件,展示其在真实应用中的运用,以及如何借助这些组件简化日常开发任务,确保代码的可扩展性和可测试性。
|
存储
ArcGIS Pro新功能 | 模型构建器篇
ArcGIS Pro新功能 | 模型构建器篇
265 0
|
存储
横向移动工具开发:wmiexec-Pro(一)
• 早于两年前,我基于wmihacker免杀横向的思路,造轮子写了个wmipersist-Modify.py的横向工具,相对于wmihacker来说,无需配合mimikatz的PTH,即可进行PTH
|
缓存 运维 Kubernetes
CNStack 网络插件:hybridnet 的设计与实现
CNStack 网络插件:hybridnet 的设计与实现
CNStack 网络插件:hybridnet 的设计与实现
|
传感器 自动驾驶 定位技术
千耘导航QY210Pro|常见故障及解决方案
在作业季节来临前,为了让用户更好的使用千耘农机导航,我们挑选出几个千耘QY210Pro常见问题,帮助大家应对,更好的保障春耕作业。
千耘导航QY210Pro|常见故障及解决方案
|
前端开发 关系型数据库 MySQL
开源测试平台横向测评系列『流马』篇:流马部署
【简介篇】 • 项目概述:技术栈、工作原理 • 项目功能简介:功能特点 【部署篇】 • 部署规划 • 依赖环境部署(JDK、MySQ、NGINX、Git、NodeJS、Python3) • 代码打包:克隆项目、前端代码打包、后端代码打包 • 项目部署:前端部署、后端部署、执行引擎部署
开源测试平台横向测评系列『流马』篇:流马部署
|
测试技术
【开源测试平台横向测评系列】预告篇
近几年来,随着互联网行业的高速发展,各类开源自动化测试框架、工具、平台如雨后春笋般涌现。应当说,各个平台均有其各自的优缺点,这也给广大用户尤其是我这类“选择困难症”患者带来了一定的困扰:哪个更好用?哪个更适合当前团队?到底该选择哪个?本系列文章或许可以带你窥探一二
【开源测试平台横向测评系列】预告篇

热门文章

最新文章