跨平台横向移动 [ winRM服务利用 ]

admin 2021年7月25日06:27:30评论97 views字数 3458阅读11分31秒阅读模式


跨平台横向移动 [ winRM服务利用 ]


0x01 本节重点快速预览

  • 首先,先来简单理解下WinRM是什么

  • 再来大致了解些winRM的基础利用前提

  • 基于winRM的手工在远程目标机器上执行任意指令的几种方式

  • 关于msf中的一些winrm利用模块的简单应用

  • 如何简单配置当前机器的WinRM服务

 

0x02 首先,就先来简单理解下WinRM到底是干什么用的

官方说明:

WinRM是Microsoft对WS-Management协议的实现,WS-Management协议即一种基于标准简单对象访问协议[SOAP]的 "防火墙友好" 协议,它让来自不同供应商的硬件和操作系统能够互相操作

 

通俗来讲:

只是Windows下众多可用于远程管理[执行任意指令]方式中的其中一种,默认会以服务的形式存在于系统中,既是服务也就意味着,肯定就会有客户端和服务端,默认winRM服务端工作在5985[http]或5986[https]端口上,WinRM实际上是借助HTTP协议以SOAP格式来进行数据交换传输的,这样做的好处在于,HTTP数据通常情况下对各类防火墙的穿透性相对较好,这也是有别于其它横向手法的地方,更细节的东西先不多说,暂时只需要知道,用它可以在目标内网中帮我们实现快速横向的目的即可,至于其底层在调用哪些东西,如何深层实现,以及针对这种横向手法怎样进行更彻底的防御,后续有机会咱们再单聊

tcp.port==5985 and http.request.method=="POST"

跨平台横向移动 [ winRM服务利用 ]

跨平台横向移动 [ winRM服务利用 ]


0x03 接着,再来大致看下winRM的一些利用前提条件

首先,winRM更适用于win7之后版本的系统[虽然03r2也支持,但确实犯不着这么干,因为关于老系统的其它利用方式非常多],除win7外,其它版本的winRM服务默认就是自启动状态[只不过是延迟的,5985端口默认也是对内开放的],其次注意,在小于2008r2的默认配置下,winrm是没有被配置成允许远程任意主机来管理的[也就是说,在2008r2以下的系统中,默认配置状态下,我们是没法直接拿来横向的,当然,也不排除有些管理员或者同行事先已帮我们配置好],稍有鸡肋的地方就在这儿,只有在win 2012之后的版本才默认就直接允许远程任意主机来管理,再者,就是需要目标机器防火墙要放开对tcp 5985或5986端口的连入,最后,还需要有图形界面支持[因为密码框要用来接收密码,所以得有图形支持才行]和正确的目标系统管理员的账号及明文密码,总之,一句话概括就是,这种横向方式通常只适用于win2012之后的系统上,到这里,我想我应该把注意事项差不多都说明白了


0x04 而后,就来着重看下如何借助winRM在远程目标机器上执行任意指令

首先,需要快速扫描下当前目标内网中所有开了winRM服务的机器,并顺带识别下对应的详细windows版本,因为下手的目标主要还集中在windows 2012 以后的系统上,特别注意下,此处nmap对目标系统详细版本的识别是有问题的,可能是nmap自身规则库的问题吧,实际上我的目标系统是windows 2012r2,但这里识别出的却是windows 2008r2,不过,关于此类的识别工具多如牛毛,比如,msf之类的,就不细说了,大家明白意思就行,不用过于拘泥于某个工具,那些东西都是死的,而且实战中一上来就操着nmap扫显然是极不明智的,废话不多说,咱们继续

跨平台横向移动 [ winRM服务利用 ]

    

    接着,简单测试下目标机器的winRM服务工作是否正常,如果看到类似下面的提示信息,则说明目标机器的winRM服务一切正常,接下来的事情就很简单了,无非就是基于此的各种利用方式罢了

跨平台横向移动 [ winRM服务利用 ]


  • 基于winRM的Powershell远程执行

    既然前面已经探测到了目标内网中所有开了winRM服务的机器,接着就该拿着通过其它方式搞到的目标系统的管理账号密码去尝试远程执行了,此处我们先用powershell内置的Invoke-Command方法来搞,如下

跨平台横向移动 [ winRM服务利用 ]

实际的远程命令执行效果如下

跨平台横向移动 [ winRM服务利用 ]


能执行命令,也就意味着肯定能执行payload,我们不妨尝试直接弹回一个beacon的shell,如下

跨平台横向移动 [ winRM服务利用 ]


    注意,此处仅仅只是个demo,告诉大家可以这么用,但实际利用肯定是要比这个复杂的多的多,关于windows众多的无文件执行方式,想必大家早都应该比较熟练了,就不多说了,大家请自行发挥

跨平台横向移动 [ winRM服务利用 ]

跨平台横向移动 [ winRM服务利用 ]


    当然,除了像上面那种直接远程执行命令的方式,你也可以尝试用Enter-PSSession方法,把目标系统的半交互ps shell弹回来,默认shell是在当前用户的Documents目录下,如下

跨平台横向移动 [ winRM服务利用 ]

跨平台横向移动 [ winRM服务利用 ]


  • 于winRM的内置winrs工具使用

关于winrs的简单说明:

WinRS是Windows Vista和Windows Server 2008的完整安装中包含的命令行工具,它依赖于Windows远程管理[WinRM]来执行远程命令,换句话说,这玩意儿只在win7之后的系统中默认才有,使用它的前提是得保证winRM客户端和服务端事先已能正常工作才行,ok,简单了解之后,我们就来看下它怎么用,其实都非常简单,如下


首先,尝试在远程目标机器上执行任意指令

跨平台横向移动 [ winRM服务利用 ]


其次,尝试直接用winrs弹个半交互的目标系统的cmd shell回来

跨平台横向移动 [ winRM服务利用 ]


0x06 最后,就是在msf中的一些winRM相关利用模块的使用 [ 关于其它的一些winrm模块暂时还有些问题,不过话说回来,一旦我们拿到以后的利用方式就不再局限了,完全不必再执着msf ]


    众所周知,在一般的内网渗透中,我们可以对smb 的445端口进行针对性爆破,很显然,这种方式同样也适用于winRM服务的 5985/5986端口上,在msf中也早就为我们提供好了对应的模块,实际效果如下

跨平台横向移动 [ winRM服务利用 ]


0x07 简单配置当前机器的winRM服务

偶尔,我们可能会有这样的需求,其它的横向方式都有问题,但短时间又不知道具体是什么问题,经过测试,似乎只有winrm能正常工作,为了方便后续能从目标内网的其它机器上远程过来操作当前机器,我们就需要事先把当前机器的winrm服务简单配置下,以备不时之需,具体如下

 

    首先,启动当前机器的winrm服务,并允许任意远程主机通过winrm来进行管理

跨平台横向移动 [ winRM服务利用 ]

    

    等上面的winrm服务起好以后,接着就可以到同内网下找台windows机器来简单测试下刚刚的机器的winrm服务能否正常工作,具体如下

跨平台横向移动 [ winRM服务利用 ]


    最后,直接尝试用winrs远程执行任意命令,至于停用就简单了,最根本的方式,就是直接禁用winRM服务

跨平台横向移动 [ winRM服务利用 ]


0x08 关于winRM的跨平台实现,早已经有人写好了对应的py库,非常简单,就不再细说了,开始试着自己愉快的写脚本吧

    https://github.com/diyan/pywinrm


一点小结

    大家也发现了,此处全程的操作全部都在图形桌面的原生cmd下进行,所不管是弹shell,输入确认["Y"]指令,弹密码框都没有任何问题,至于这些东西在实战中怎么去应用,只能根据大家各自的实际需求决定了,毕竟,一篇短短的文章最多也只是个demo参考,至于更深度的衍生应用,只能靠大家自行去解决了,但话说回来,不管是用哪种工具,用powershell也好,用内置的winrs也好,甚至你自己去写基于winRM的工具也好,前提是务必得保证本地winRM客户端和目标winRM服务端要能正常工作才行,因为这些工具也都是基于此服务的,服务都没正常,下面的工具,自然也就没啥存在的意义了,另外,在实际用的时候,如果报错了,多注意仔细看下报错的具体内容是什么,然后再尝试针对性的解决,上面的演示,全部都在工作组环境下,同样它也完全适用于域环境,而且工作的会相对更好,至于,必须要用密码框接收密码以及针对性的防御问题,待后续更新...



注:  写文不易,公众号之外的转载请务必通过此公众号事先与作者本人联系并严格声明文章出处,非常感谢 !



另:  本公众号的所有文章仅作攻防研究学习之用,严禁私自用所学技术去从事一切未经合法授权的入侵攻击破坏活动,因此所产生的一切不良后果与本文作者及该公众号无关 



    更多更优质的精品原创实用技术干货分享,和众多资深apt及红队玩家一起深度无缝交流,欢迎微信扫码加入小密圈,另外,关于本文完整pdf原件现也已分享到自己密圈中,我们会在那里一直等你

跨平台横向移动 [ winRM服务利用 ]


    更多优质公开技术分享,欢迎关注个人公众号 "红队攻防揭秘",另,同时欢迎大家的无私 转发 , 打赏 , 点赞 与 留言, 非常感谢

跨平台横向移动 [ winRM服务利用 ]


本文始发于微信公众号(红队防线):跨平台横向移动 [ winRM服务利用 ]

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年7月25日06:27:30
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   跨平台横向移动 [ winRM服务利用 ]http://cn-sec.com/archives/346469.html

发表评论

匿名网友 填写信息