靶机地址:https://www.vulnhub.com/entry/skytower-1,96/
靶机难度:中级(CTF)
靶机发布日期:2014年6月26日
靶机描述:该CTF是由Telspace Systems在ITWeb安全峰会和BSidesCPT(开普敦)上为CTF设计的。目的是测试中级到高级的安全爱好者使用多方面方法攻击系统并获得“标志”的能力。
目标:得到root权限&找到flag.txt
作者:嗯嗯呐
信息收集
nmap扫描靶机地址
nmap扫描端口
22 SSH
80 http
3128 代理
访问80端口,一个登陆的窗口,看看存不存在sql注入
sql注入绕过验证
发现返回sql报错
看来系统没有过滤单元号,那看一看可不可以绕过
根据返回分析,对and、=字符过滤
这里可以使用||符,替代and
利用成功返回了账号密码
getshell
根据提示通过SSH登陆
username: john
Password: hereisjohn
测试发现无法直接连接22端口,可能需要代理跳转,现在我们设置一下代理
proxytunnel -a 6666 -p 192.168.56.104:3128 -d 192.168.56.104:22
-a 指定本地侦听端口
-p 使用代理IP和端口
-d 指定访问的目标和端口
ssh登陆,登陆成功,但是有踢下来了
ssh john@127.0.0.1 -p 6666
没事,ssh可以登陆就行,也可以执行命令
通过执行/bin/bash,获得交换界面
看一下.bashrc文件,是不是在这里配置了john不能登陆
bash 在每次启动时都会加载 .bashrc 文件的内容。每个用户的 home 目录都有这个 shell 脚本。它用来存储并加载你的终端配置和环境变量。
cat .bashrc
删除.bashrc文件中最后一行exit函数
sed -i '$d' .bashrc
登陆主机
提权
检查了一下靶机,看一看内核可不可以提权
提权失败,目前能想到的思路就是看看数据库能不能登陆
进入/var/www
看一下这几个文件
登录数据库,查看SKYTech库下,查询login表,获得web界面的登陆账号密码
1 、john@skytech.com | hereisjohn
2 、sara@skytech.com | ihatethisjob
3 、william@skytech.com | senseable
登陆获得提示
继续登陆,再次遇到相同的问题
重复之前的操作,登陆
发现可以在/accounts/*使用使用root的cat和ls命令
直接cat shadow文件
sudo cat /accounts/../etc/shadow
破解root用户密码
跑了半天也出来结果,直接看一下root目录下flag.txt文件
找到了root用户的密码,登陆获得flag
完成!!!
总结
目前感觉越来越6了
1、首先在登陆界面利用靶机对|| 不过滤的sql注入漏洞,绕过登陆验证获得ssh普通用户账号密码。
2、等在proxytunnel命令,将通过靶机的代理端口3128访问22端口,将流量转发到攻击者6666端。
3、访问本地6666端,流量将转发至靶机3128,再到22端口,登陆靶机ssh。
4、通过靶机明文存储mysql数据库账号密码,获得mysql数据库的root权限。并获得其他用户的账号密码。
5、根据提示获得sara用户,发现此用户可以在/accounts/*使用root的cat和ls命令,因为linux特点任何目录下都存在 .
和..
目录,通过构造命令,获得root目录下flag并获得root用户密码。