作者:sakura@白帽汇零妖攻防实验室
前言
得到用户授权对其整个相关资产进行测试,重点是测试其邮件服务器,在测试的过程中发现弱口令漏洞已被修复,账号密码被修改为
PdkaDk***
Kddk***;kKddk***
用户内部网络比较庞大,在内网横向的时候发现40万多台内网机器,并装有卡巴企业版,对绕过卡巴抓取密码也有提及。
正文
通过扫描工具得知此站采用Java+AXIS实现Web Service服务端。
扩展:
Axis是一个开源、基于xm l的Web服务架构。最开始由IBM公司研发,叫IBM-SOAP。后来由Apache基金会在SOAP的基础上推出了AXIS。AXIS本质是一个Java语言编写的SOAP引擎。利用它我们可以在各种分布式应用中,让各个应用能够彼此操作、交互。
这个服务端漏洞为弱口令漏洞,直接访问
https://xxx.xxx.xx/xx/axis2-admin/
使用任意密码登录返回界面为
正常情况时不会出现这个界面的,出现这个界面的原因可能为网站是废的,程序有问题的网站,但是利用扫描工具是可以确认此站点的漏洞,说明这个站点是存在猫腻的。
利用工具扫描此漏洞时发送的请求包到burp重新发送,发现是有正常响应反馈的。后来发现浏览器端发送的请求和burp工具发送的请求的区别在于,浏览器会把账号密码数据发送到http://xxx.xxx.xx/xx/axis2-admin/,这就是问题所在。因为此漏洞需要登录成功后,还需要一些上传的操作,必然用浏览器去操作会很方便。解决思路为不让数据发送到http上,把网页html代码下载下来。
把里面的http换为https,然后利用此html页面去登录网站。在后续的操作中都需重复此操作,否则提交给http不解析。用默认账号密码admin/axis2登录成功以后利用服务上传这个功能上传服务。
进入上传界面
此处直接上传一句话是不行的,只能上传aar,推荐一个axis2的webshell https://github.com/CaledoniaProject/AxisInvoker上传aar文件后。利用
https://xxx.xxx.xx/xx/services/AxisInvoker/exec?cmd=ipconfig,来执行命令。既然可以执行命令,那么把自己的木马写进去也就不是难事了。此处依然有个猫腻,就是这个站点做了负载均衡,上传的东西,突然就不见了,过了一会再访问又回来了。
通过ipconfig查看为域环境,接下来进行内网渗透了。先收集有用信息,比如说数据库密码,本机密码。数据库密码直接翻阅文件即可找到,然后是本机密码,本机存在卡巴杀软
有卡巴的情况下是无法通过正常手段进行抓密码的,在19年年底procdump工具被卡巴拦截,所以只能用过卡巴的工具。
卡巴对LSASS保护的很好,目前有两种方法是可以的,一种是动态添加SSP,一种是RPC添加,动态的会在进程里留存DLL,这个不好,RPC是临时,用完就没了。还有一种是手工添加SSP,不过需要重启生效。目前此处我使用的是绕过卡巴斯基的工具进行抓密。当然在此期间利用inbt进行部分内网扫描,尝试利用17010进行攻打,但鉴于其内网规模巨大,且多次尝试无效。利用抓到的账号密码对shell机器的c段进行扫描,成功登录几台机器,并把其机器密码抓到。不幸的是并未找到管理员账号密码。
抓到的域用户所在组都为mef组的成员。通过查看,发现有3000多个组,40万多台内网机器,10多万个用户。如此庞大的计算机群,找不到管理员也属于正常现象。
通过对现在的信息,总结出渗透思路为:先去找到mef组的管理员,利用mef管理员账户去登录更多的机器,并寻找出管理员。
mef的管理员很容易就被找到,通过mef管理员账号和inbt工具,成功登录了几百台机器。通过批处理task list /v每台机器进行逐个检查。虽然未发现域管理,但是在10.10段中机器中的c:\users中发现域管理员的用户,查看Credential Caching域缓存凭证,利用hashcat跑密码未果。
缓存密码由于加密方式问题,即使密码简单,CMD5也是破解不了的。
渗透思路:既然找不到域管理,就先不局限于mef组,通过对每个可控机器的tasklist /v中查找到其他组的成员,然后再找其他组的管理员,如此重复。
直到找到一个D*\KL-AK-AEEC6572C1FD26用户为卡巴组的管理员。因为从可控的千余台机器中发现,几乎所有的机器都装有卡巴企业版,所以我判断,此用户会一打一大片,果不其然,利用此用户,成功拿下数千余台机器,并且各个内网段机器都有。利用这个账户对每台机器进行查看。利用这个用户依旧未找到域管理,但是可以找到很多其他组的管理员。在task list /v的用户中找到D*\KozlenkovVV所在组为*Domain_DHCP_Admins中,利用这个管理员对其内网重复之前的操作,终于在一台10.10段中的机器找到域管理。但是是个高版本机器,无法直接抓取明文密码,导出hash,利用hashcat跑密码。先把注册表修改成功,为了以后导出明文密码。因为进程中有域管理用户的进程,那就直接利用这个进程去控制域控。此处用到token.exe进程小偷,执行命令,ntds导出所有域hash,并修改了域控和邮件服务器mail.xxx.xx的注册表,最终抓到管理员账号密码。
邮件服务器为outlook,第二天抓取密码,只能抓到2,3个用户,这是一种奇怪的现象。后来用管理员账号密码登录油服,发现没有开通owa收件服务,只有ecp权限。Ecp权限其实已经可以查看每个人的邮件了,但是只能控制16个人的邮件。我怀疑这个邮件服务器并不是员工登录的服务器。通过内网机器443端口识别,把所有的outlook网站的内网ip进行登录查验,均为16个用户。后利用wevtutil内网工具,在域控上查询用户访问过哪个IP,命令如图。
最后找到一处ip,其域名为web.xxx.xxx.xx的网站,此域名在域名搜索引擎上是找不到的,经确认这里是真正的油服。
过程当中还有很多小插曲,比如说有的用户密码里带”/”,经测试IPC是连接不了的,只能用base64转码了,如图。
后记