Crackmapexec 6.1.0 和一些杂项
Author:Xiaoli-小离
0x01 Intro
-
• 在内网渗透中,一般收集到了凭据,都会去用CME挂个代理去爆破一遍,尝试扩大你的战果,但有个协议估计没什么人会focus
-
• 本文也谈谈我近期对CME提交的PR,以及一些关于CME的事情
0x02 被人遗忘的协议 - WMI / RPC(ncacn_ip_tcp)
-
• 相信大家对CME的使用流程已经基本很熟悉了,收集到凭据后,美美的跑一波SMB + WINRM爆破,所以普遍来说,管理员印象中只对445,139特别关照,而WINRM这个,实战没遇到多少台机器开,基本上也可以忽略了,除了你打HTB之外
-
• 很早之前Orange-Cyberdefense也写过这个协议,但是CME已经更新多个版本了,这个模块也是用不了了,这也萌生了重写的想法 [Orange-Cyberdefense/cme-wmi: A standalone WMI protocol for CrackMapExec (github.com)]https://github.com/Orange-Cyberdefense/cme-wmi 一个看上去什么都没的内网
-
但是,让我们切换到135,此时出现了惊喜
-
目前我给这两个协议预留了两种命令执行方法,第一种是普通的wmiexec,但是也是不使用SMB,第二种则是和wmiexec-Pro一样的方法,原定计划还有第三种,atexec,(其实只需要改一改代码,就可以让atexec不走ncacn_np,走ncacn_ip_tcp,要考虑的就是防火墙问题了) 目前你可以在CME体验到该协议,具体的Commit你可以在CME官方看到,mpgn也以该PR为CME 6.1.0划上了句号(感动 TAT)
0x03 RDP模块重写
-
• 使用效果和wmiexec-Pro一样,通过wmi开启,不需要cmd
0x04 题外话1 - 武器化你的工具
-
• 还有很多bug修复之类的,这里就不一一说了,有兴趣的可以去看我的commit
-
• 此外,我最近看到很多文章,都在写impacket GUI,什么什么impacket图形化之类的,但是我没get到意义何在,更有甚者JAVA套壳impacket,我承认java很屌,但是写这些东西,真的有意义吗?(似乎在往一条错误的道路前进,也许我是傻逼,没看懂操作,欢迎多多指教)
-
• 很多时候,我们需要快准狠的工具作为内网渗透,但是像CME这种已经很成熟的工具,动动手指,基本上就可以写出一个CME模块,并且剩下你大量的时间
-
• 以下是一个例子:上一篇文章我写了个zerologon-Shot,但是有不少人私下找我反馈,参数太麻烦,基本上没啥bug,都能做到自动恢复DC密码 看到CME,已经是很屌的一个核心了,因此可以基于该核心编写一个模块 如图所示,当你还在慢慢寻找恢复密码的命令/脚本,绑定Hosts,找笔记之类的繁琐过程,而我已经可以做到一步到位,剩下的时间用来截图写报告之类的
0x05 题外话2 - 是否要打开潘多拉魔盒?
-
• CME虽然支持rdp协议,但是用的是aardwolf,这个项目是真的屌,但是也存在许多BUG,例如判断信息非常不准确,如图所示,和调用popen的xfreerdp相比,这种错误是实战不允许的
-
-
• 但是和其他开发者交流过,他们觉得不应该打开这个Popen潘多拉魔盒,目前你需要的话可以在这里获取到相关代码 [XiaoliChan/CrackMapExec-Extension: CrackMapExec extension module/protocol support (github.com)]https://github.com/XiaoliChan/CrackMapExec-Extension
0x06 题外话2 - 交PR的心得
-
• 在给CME交PR的过程中,不仅能锻炼你的英语,更重要的是,你能知道其他开发者这么想,而我更喜欢这一种氛围
-
• 代码要注意规范,不然会被卡rewiew,WMI那个PR就是了,九世看着我写,卡PR卡了挺久的
-
• 早在上一年,我就看到mpgn在给CME 的contributiors赠送CME 纪念币,但是努力也换来了回报
0x07 题外话3 - CME代码之争
-
• 在mpgn发布6.1.0之后,原先的作者byt3bl33d3r想继续发布半开源(现在的状态时,他更偏向于把代码商业化),以sponsorware模型发布CME(赞助者能比开源版早获取1-2个月的代码更新),最终的结局就是mpgn退出了他们的组织,同时遭到多名开发者反对sponsorware,坚持要求全开源 [So what happens now? the future of CrackMapExec · Porchetta-Industries/CrackMapExec · Discussion #801 (github.com)]https://github.com/Porchetta-Industries/CrackMapExec/discussions/801
-
• 和mpgn私下聊了,他表示不会再去管理任何关于CME的东西,等他下个新项目(我也不知道是什么项目)
-
• 同时和另外一名开发者neff也聊了,他表示会fork一份出来,和他一起维护:[Pennyw0rth/CrackMapExec: A swiss army knife for pentesting networks (github.com)]https://github.com/Pennyw0rth/CrackMapExec
0x08 Outro
-
• 原PO文:[(1) X 上的 mpgn:“New release of crackmapexec is out ! 6.1.0🥳 This version now support of a new protocol : WMI by @Memory_before ! If the SMB port is filtered, you can still pwn3d everything !! 🔥 Quick list of improvements 🔽 - CME now works against Windows 2003 and Windows 7 (it was broken)… https://t.co/0HMu538enM” / X (twitter.com)]https://twitter.com/mpgn_x64/status/1698384195641389559
-
• 文章有些地方是我本人的观点,只代表我本人,如果你觉得有更好的心得,亦或者感到困惑,有疑问,欢迎各位留言,我有时间也会一一解答,虚心倾听各位意见
-
• 感谢mpgn和neff,这两位大哥几乎天天帮我检查代码,估计眼都要瞎了XD
-
• mpgn's twitter:[mpgn (@mpgn_x64) / X (twitter.com)]https://twitter.com/mpgn_x64
-
• neff's twitter: [Alex neff (@al3x_n3ff) / X (twitter.com)]https://twitter.com/al3x_n3ff
-
• 有大哥人写了一篇文章,有兴趣可以去看看:[X 上的 Kostas:“New blog: Understanding Red to Be Better at Blue: Navigating New CrackMapExec Updates ✅Keeping up with the red team ✅Breaking down CME’s new key features ✅From code to behavioural hunting & detections ✅Illustrations with examples https://t.co/ok1gZS7JXX” / X (twitter.com)]https://twitter.com/Kostastsale/status/1699082642988122622