http://p6.qhimg.com/t0111da8ca85a2772d3.jpg


 前言


在第一部分我们讲过的基础知识:

使用凭证

dump凭据

执行命令

使用payload模块

在第二部分我们将介绍CME的内部数据库以及如何使用 metasploit和 Empire来拿到shell.


数据库


CME的内部数据库可以通过使用cme_db.py脚本进行查询,两件事情会自动记录到数据库中:

CME所访问到的所有主机

拥有管理员权限的每台主机上的所有可获取的凭据

此外CME还会记录哪些凭据对哪些主机具有管理员权限。这项功能是非常有用的,因为在一个大型的网络环境中,我们可以拿到的凭据的数量是十分大的,如果完全人工分析,工作量会非常大.

使用hosts 命令我们可以查看所有我们交互过的主机

http://p5.qhimg.com/t017f1c663725ce31c2.png

这个的输出会返回所有我们交互过的主机以及每台机器上我们已经获得的管理员凭据数目.如果我们想查看某台特定主机的凭据信息可以把主机名或者ip地址传递给 hosts命令.

http://p0.qhimg.com/t01493e8d5f522f6b3e.png

同时我们还可以查询每个已获得的凭据对哪些机器具有管理员权限.我们可以使用: creds命令来概览下:

t01c42b5c2742913d83.png

输出返回凭据的ID,类型,用户名,密码以及该凭据具有管理员权限的机器的数量。要了解详细情况我们可以直接把 用户名 作为参数传递给 creds命令.

http://p0.qhimg.com/t01fcaab2a7eccb4c3c.png


拿到所有的shell


在第一部分中我们已经拿到了域管理员权限,我们就能拿到所有东西的shell啦!首先介绍如和拿到meterpreter session.

先来看看meterpreter_inject模块的说明.

http://p6.qhimg.com/t01ce9dab83dcdbfa61.png

现在我们在每台机器上运行meterpreter_inject模块,然后设置LHOST和LPORT参数( 设为我们在 handler中设置的一样)

t01fddd94455078261c.gif

然后shell就到我们的metasploit中了.....

http://p5.qhimg.com/t01235f82a275319f68.png

接下来介绍如何使用Empire获取所有的shell,首先看看模块的说明

http://p2.qhimg.com/t01954db95b62fa0280.png

empire_agent_exec模块需要Empire监听器的名称,然后使用Empire's RESTful API 来生成一个合法的加载器.首先启动Empire RESTful API

http://p3.qhimg.com/t013bc99e492122da98.png

(你需要在cme.conf文件中配置 Empire RESTful API的host ,用户名,密码来对Empire RESTful API进行认证)

然后创建一个名为CMETest的监听器

http://p6.qhimg.com/t013228e1a74d70f120.png

准备工作已经搞定,下面来接shell吧......

t0182bce3d438f71b45.gif

这里我使用了一个 -id 的参数指定了管理员的凭据,因为前面CME会把所有的凭据都存到数据库中,所以当我们指定 CredID 时他们会从后端数据库自动到指定的凭据来验证指定的机器!接着使用了LISTENER参数指定了Empire监听器的名称,然后CME会自动的去连接Empire RESTful API,生成加载器并且执行他,整个过程都是自动化的.下面来看看我们的shell

http://p4.qhimg.com/t01abeb28ca5a8e3d7e.png


总结


在这里介绍了如何在大型网络环境中使用CWE,通过使用这款工具可以节省我们很多时间。



本文由 安全客 翻译,作者hac425

原文链接:https://byt3bl33d3r.github.io/getting-the-goods-with-crackmapexec-part-2.html