靶机实战(4):Funbox: Rookie

靶机官方:Funbox: Rookie[1]

实战思路:

  1. 一、主机发现

  2. 二、端口发现(服务、组件、版本)

  3. 三、漏洞发现(获取权限)

    1. 21端口/FTP服务

      1. 组件漏洞

      2. 口令漏洞 4

    2. 22端口/SSH服务 9

      1. 组件漏洞 9

      2. 口令漏洞 10

      3. 口令泄露 10

    3. 80端口/HTTP服务 11

      1. 组件漏洞 11

      2. URL漏洞(目录、文件) 12

  4. 四、越权提权 15

    1. sudo 15

    2. suid 15

    3. 信息收集 18

    4. sudo

一、主机发现

本次攻击指定IP,不涉及主机发现过程。

二、端口发现(服务、组件、版本)

使用命令sudo -u root nmap 172.16.33.30 -n -Pn -p- --reason -sV -sC -O获得主机开放的端口、提供的服务、使用的组件、组件的版本。

靶机实战(4):Funbox: Rookie_第1张图片

开放的端口

提供的服务

使用的组件

组件的版本

21/tcp

ftp

ProFTPD

1.3.5e

22/tcp

ssh

OpenSSH

7.6p1

80/tcp

http

Apache httpd

2.4.29

-

os

Ubuntu Linux

三、漏洞发现(获取权限)

21端口/FTP服务

组件漏洞

使用命令 searchsploit ProFTPD 1.3.5e searchsploit ProFTPD 1.3.5,发现1.3.5版本存在多个RCE漏洞的EXP。

靶机实战(4):Funbox: Rookie_第2张图片

查看发现都是CVE-2015-3306漏洞,在1.3.5a版本中已修复,因此这里的1.3.5e版本不受影响。    

靶机实战(4):Funbox: Rookie_第3张图片

靶机实战(4):Funbox: Rookie_第4张图片

但是EXP找都找到了,不影响也试试呗,试完发现确实不受影响。    

靶机实战(4):Funbox: Rookie_第5张图片

口令漏洞

使用命令ftp 172.16.33.30连接FTP服务,使用匿名账号anonymous空口令登录,使用命令dir查看文件情况,发现有很多文件。

先使用命令prompt off关闭交互模式,避免批量下载文件时每个文件都询问是否下载;再使用命令mget *批量下载所有文件,最后使用命令bye退出FTP服务。

备注:后来发现使用命令dir -lals -la可以查看隐藏文件的情况,虽然此处帮助不大。

靶机实战(4):Funbox: Rookie_第6张图片

使用命令for f in $(ls *.zip); do unzip $f; done;解压缩所有压缩包,发现所有压缩包都需要密码才能解压缩。  

靶机实战(4):Funbox: Rookie_第7张图片

使用命令for f in $(ls *.zip); do zipinfo $f; done; 查看所有压缩包里的文件,发现都是SSH私钥文件id_rsa。由此可知,压缩包的文件名是SSH用户名,压缩包里是对应的SSH私钥。 

靶机实战(4):Funbox: Rookie_第8张图片

使用命令zip2john marge.zip > marge.hashjohn marge.john爆破压缩包的解压密码,无收获。

靶机实战(4):Funbox: Rookie_第9张图片

备注:前面都是对单个压缩包爆破解压密码,无收获就去查看22端口和80端口了。后面倒回来才对所有压缩包爆破解压密码,也就是下文。

使用命令for f in $(ls *.zip); do zip2john $f > $f.john; done;for f in $(ls *.zip.john); do john $f; done;批量爆破压缩包的解压密码,获得cathrine.zip的解压缩密码catwomantom.zip的解压缩密码iubire

靶机实战(4):Funbox: Rookie_第10张图片

靶机实战(4):Funbox: Rookie_第11张图片

最终获得cathrinetom的用户名和SSH密钥。

靶机实战(4):Funbox: Rookie_第12张图片

22端口/SSH服务

组件漏洞

使用命令searchsploit OpenSSH 7.6,发现3个EXP,均是CVE-2018-15473用户名枚举漏洞。

靶机实战(4):Funbox: Rookie_第13张图片

本来想验证一下前面拿到的SSH用户名是否真实存在,结果EXP的执行结果不准,只能放弃。

靶机实战(4):Funbox: Rookie_第14张图片

口令漏洞

基于前面拿到的SSH用户名,外加root用户名,使用命令hydra -L user.txt -P /usr/share/seclists/Passwords/500-worst-passwords.txt 172.16.33.30 ssh,未爆破出弱口令。

靶机实战(4):Funbox: Rookie_第15张图片

口令泄露

使用命令ssh [email protected] -i tom_id_rsa,发现前面获得的cathrinetom的SSH密钥,只有tom能成功登录,可能是cathrine用户更新了SSH密钥。

靶机实战(4):Funbox: Rookie_第16张图片

80端口/HTTP服务

组件漏洞

使用命令searchsploit Apache 2.4.29searchsploit httpd 2.4.29,除了本地提权外,未发现其它可利用漏洞。

靶机实战(4):Funbox: Rookie_第17张图片

使用Wappalyzer、FindSomething自动识别网站组件,无收获。

靶机实战(4):Funbox: Rookie_第18张图片

URL漏洞(目录、文件)

01、手动浏览

访问首页http://172.16.33.30/,发现啥也没有,是中间件默认页面。

靶机实战(4):Funbox: Rookie_第19张图片

02、目录扫描

使用命令dirb http://172.16.33.30/ /usr/share/seclists/Discovery/Web-Content/common.txt -R对网站目录和文件进行遍历,发现/index.html文件和/robots.txt文件,约等于没有任何发现。

靶机实战(4):Funbox: Rookie_第20张图片

7fffe790e62f60f6011b3a20e37307f2.png

6ef07ec0a7bda3af04799a566d2abe6c.png

/robots.txt文件中的/logs/目录下也是空的。

靶机实战(4):Funbox: Rookie_第21张图片

03、模糊测试

基于目前已知信息,没有对网站的目录和文件进行FUZZ的必要。

04、信息收集

前面在Firefox翻找网站的流量全都走Burp Suite代理,在Burp Suite中未发现敏感信息泄露。    

靶机实战(4):Funbox: Rookie_第22张图片

四、越权提权

sudo

使用命令sudo -l查看tom用户的特权命令,发现需要tom用户的SSH密码才能执行。

31ce06408be72a834e12d879817b4a31.png

suid

使用命令find / -perm -u=s -ls 2>/dev/null查看特权程序,发现比较多的系统命令,但在GTFOBins[2]并未搜索到可用于suid提权的。

靶机实战(4):Funbox: Rookie_第23张图片

信息收集

使用命令ls -la查看文件情况,发现.mysql_history文件。使用命令cat .mysql_history查看文件内容,发现不知道是什么服务的账号tom和密码xx11yy22!

靶机实战(4):Funbox: Rookie_第24张图片

尝试看看这个账号密码能否登录SSH服务,竟然登录成功,获得用户tom的SSH密码xx11yy22!

那么为什么能在MySQL数据库中找到SSH服务的账号密码?我想应该是受害人在多个平台都使用了相同的账号密码吧,所以我们能在拿到A系统的账号密码后(MySQL数据库中),用于登录B系统(SSH服务)。

靶机实战(4):Funbox: Rookie_第25张图片

sudo

使用命令sudo -l查看tom用户的特权命令,输入SSH密码后,发现(ALL : ALL) ALL,用户tom可以执行所有命令。那就执行一下切换到root用户的命令sudo su,获得root账号的权限。

靶机实战(4):Funbox: Rookie_第26张图片

参考资料

[1]

Funbox: Rookie: https://www.vulnhub.com/entry/funbox-rookie,520/

[2]

GTFOBins: https://gtfobins.github.io/

你可能感兴趣的:(安全,网络,web安全,服务器,运维)