描述: __________
获取标志
难度:简单
1、下载靶场
靶机名称:driftingblues
下载地址:
DriftingBlues: 1 ~ VulnHub
2、安装靶场
以DC-1为例,将文件解压(一压缩包形式进行下载)。
打开虚拟机,选择解压好的文件导入虚拟机( vof 版本高于4.0,点击重试即可导入)
导入成功,开启此虚拟机( 当页面出现 driftingblues login 时表示安装成功)。
3、获取靶机的flag(两个flag)
前提:
1、已知kali的IP地址(ifconfig) —— kali IP地址:192.168.108.129/24 |
2、driftingblues 和kali在同一网段 | 已知 driftingblues 所在的网段 —— driftingblues IP地址:192.168.108.162/24 |
信息收集
获取 driftingblues 的IP地址
命令:arp-scan -I eth0 -l
端口扫描
命令:nmap -sV -p- -O 192.168.108.162
//-sV:扫描系统版本和程序版本号检测,-p-:全端口扫描
获取信息如下:
端口号 |
服务 |
版本 |
22 |
ssh |
OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0) |
80 |
http |
Apache httpd 2.4.18 ((Ubuntu)) |
操作系统:OS details: Linux 4.15 - 5.6
访问80端口的web页面,查看源码发现了一个应该是base64加密的密文(L25vdGVmb3JraW5nZmlzaC50eHQ=)
密文:L25vdGVmb3JraW5nZmlzaC50eHQ=
解密:/noteforkingfish.txt
访问 /noteforkingfish.txt 文件之后发现还是一个跟明显的加密(ook加密)
ook解密:
my man, i know you are new but you should know how to use host file to reach our secret location. -eric
获得提示:eric(猜测是一个用户名),还提到了 host file(猜测是需要修改hosts文件,绑定域名)
目录扫描也没有什么发现,可能域名就在主页,在主页中找到一个可以域名,绑定之后进行子域名爆破
dirb http://192.168.108.162
结合首页中的疑似域名(driftingblues.box)修改hosts文件,尝试进行子域名爆破
绑定ip、域名
重新使用gobuster进行本地域名爆破,这里如果出现错误无法扫描成功的话,重启一下靶机,再把刚刚填写上的数据删掉,再填写一次,最后再次尝试即可解决问题
探测到一个子域名:test.driftingblues.box
直接访问不成功,将test.driftingblues.box再写入host再访问
进行目录爆破,得到两个目录地址(index.html、robots.txt)
dirb http://test.driftingblues.box
访问 robots.txt 文件,获得了新的目录地址:/ssh_cred.txt
访问 /ssh_cred.txt 地址(http://test.driftingblues.box/ssh_cred.txt)
根据提示信息可以知道 ssh 的登陆密码就是 1mw4ckyyucky 加一个数字,尝试制作密码字典和之前获取到的用户名(eric)对ssh进行暴力破解
九头蛇爆破ssh,成功跑出来一组账号密码(eric、1mw4ckyyucky6)
hydra -l eric -P Desktop/passwd1 ssh://192.168.108.162
使用该长啊后密码(eric、1mw4ckyyucky6)进行ssh登录之后在当前目录下获取到第一个flag(user.txt)
查看是否存在和sudo提权suid提权,没有太好的突破点
sudo -l
find / -perm -4000 2>/dev/null
查看是否有定时执行的计划任务或者备份文件
为了便于查看,给靶机上传一个 pspy64s 文件
执行pspy64s
可以看到 root用户每分钟都会执行一次 /var/backups/backup.sh 文件
研究一下 /var/backups/backup.sh 脚本文件,看看有没有提权的办法
脚本内容:
#!/bin/bash
/usr/bin/zip -r -0 /tmp/backup.zip /var/www/
/bin/chmod
#having a backdoor would be nice
sudo /tmp/emergency
查看发现脚本中最后一条命令(sudo /tmp/emergency)中执行的文件(/tmp/emergency)并不存在
提权思路:
创建一个 /tmp/emergency 文件,在root在执行 sudo /tmp/emergency 的时候完成提权
原理:将 eric用户加入 sudo组中(echo 'cp /bin/bash /tmp/getroot; chmod +s /tmp/getroot' > /tmp/emergency)
在 root用户 sudo 执行该文件之后成功提权,在 root用户的家目录下获取到第二个flag(root.txt)