代码编织梦想

**

VulnHub-DEFCON Toronto: Galahad-Walkthrough

**

靶机地址:https://www.vulnhub.com/entry/defcon-toronto-galahad,194/
靶机难度:初级(CTF)
靶机发布日期:2017年6月1日
靶机描述:
Defcon Toronto于2016年9月主办的在线CTF中使用的其中一种VM,进行了略微修改以适应boot2root的挑战。
信息:总共要收集7个标记,id 0是最后一步。
目标:得到root权限&找到flag.txt
作者:大余
时间:2020-02-02
请注意:对于所有这些计算机,我已经使用VMware运行下载的计算机。我将使用Kali Linux作为解决该CTF的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。

一、信息收集

在这里插入图片描述
我们在VM中需要确定攻击目标的IP地址,需要使用nmap获取目标IP地址:
在这里插入图片描述
我们已经找到了此次CTF目标计算机IP地址:192.168.182.144
在这里插入图片描述
nmap扫描发现开放了22、80、50000端口…
在这里插入图片描述
01是二进制值…翻译后:
For the cuorius out there the binary translates to:
Welcome
This is were the adventure begins -.-
DC416 Team
btw
no flag here 😭
没啥有用的…
在这里插入图片描述
发现前端代码使用firefox API在控制台上打印内容…查看Console可以看到这是ROT-13加密后的值…
在这里插入图片描述
flag1{m00nc4ke}n,成功查看到flag1…
在这里插入图片描述
在这里插入图片描述
显示存在/staff目录…
在这里插入图片描述
在这里插入图片描述
dirb、nikto和uniscan发现了三个目录…
在这里插入图片描述.
在staff目录下发现了s.txt和nsa.jpg文件…
在这里插入图片描述
应该是base64编码…需要把他解开看看…
在这里插入图片描述
命令:or i in $(cat s.txt); do echo -n $i | base64 --decode; done
发现类似密码:edward
在这里插入图片描述
这边我开始用了各种工具分析,还是没发现jpg有啥…后来找到了steghide隐写工具后,发现了flag2
在这里插入图片描述
flag2{M00nface},还发现了一个URL… :/cgi-bin/vault.py?arg=message
继续访问刚给的信息…
在这里插入图片描述
拒绝访问nsa.gov??
在这里插入图片描述
用burp suite渗透分析后,使用上面的脚本进行intruder即可找到flag3…
在这里插入图片描述
flag3{p0utin3}
在这里插入图片描述
发现可以下载文件…下载下来
在这里插入图片描述
在admin目录发现enc.zip文件,分析下…
在这里插入图片描述

  1. git clone https://github.com/wibiti/uncompyle2
  2. cd uncompyle2
  3. python setup.py install
    命令:uncompyle2 enc.pyc > enc.py
    这里可以看到pyc文件无法直接阅读…需要用到uncompyle2进行编译py后才可以…(没有的需要安装,安装命令在上面…)
    这里,我是服了作者的思维…它的意思是下划线一横代表数量1,例如str2有六横就是数字6,然后二十六个字母表里,数字第六位就是F…
    按照我这个思路一路填写即可…
    在这里插入图片描述
    flag{f0urd1g1tz} 数得我眼睛疼…
    在这里插入图片描述
    50000?是不是按时flag5??
    在这里插入图片描述
    禁止访问???
    在这里插入图片描述
    SECURITY THROUGH OBSCURITY 34343434 0d 0a UDP
    这里的意思是0x34是4…就是4444…
    在这里插入图片描述
    在这里插入图片描述
    尝试通过UDP敲端口,但没有成功…
    4444:udp 8331:tcp 7331:tcp 31337:tcp 31338:tcp…这不是最正确的顺序,因为会变…
    可以了解到knock敲震方法,如果顺序不对,是不会开门的…敲对会开FTP21端口…
    在这里插入图片描述
    发现21端口打开了…
    里面有两个文件…bar.pcap和foo.pcap…流量文件…
    检查bar.pcap在这里插入图片描述
    flag5{th3fuzz}
    第二个foo.pcap文件中找到了第六个标志的线索…
    隔离了包含JPEG的数据流后…获得jpeg文件…
    在这里插入图片描述
    是个电厂图,左上角还有uid,看到有个用户名:nitro
    看了这个资料我才知道…密码是zeus…链接
    在这里插入图片描述
    通过SSH登陆后发现又要玩游戏???
    游戏要求您赢3/5游戏…很坑的是每次都是随机的…

在这里插入图片描述
别回来问我怎么过的,一个一个一个无限制试… 我这里也花了时间…
Flag: flag6{s1xfl4gs}
Hint: Did you know that Galahad is just one of a few round-table knights?
需要列出所有圆桌骑士的清单,然后对每个骑士进行了DNS查询,才能找到最终的…
在这里插入图片描述
先把所有圆桌骑士都统计好…我这边试了很久都执行不下去…
我这里执行不下去了…我放着以后做把…听说不止7个flag…好像有11个flag???
我能力有限,等我强大了,回来解决它!!!

如果有会的,或者通关的小伙伴,恳请告诉我方法,感谢!!

虽然只拿了六个flag…还是得继续努力加油,脑补把!!!

如果你有其他的方法,欢迎留言。要是有写错了的地方,请你一定要告诉我。要是你觉得这篇博客写的还不错,欢迎分享给身边的人。

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/qq_34801745/article/details/104150751

LeetCode 61. Rotate List (Java版; Medium)-爱代码爱编程

LeetCode Top Interview Questions 61. Rotate List (Java版; Medium) 题目描述 Given a linked list, rotate the list to the right by k places, where k is non-negative. Example 1: Input:

Java笔记-02 简单的桌球动画-爱代码爱编程

尚学堂Java桌球小游戏,照着视频敲的代码主要遇到的花费时间多的是图片的路径,使用maven创建项目,图片放在src的images文件夹下,后面使用相对路径为src/images/ball.png,开头不需要加反斜杠,相对路径是相对项目的目录,这里是testjava下。BallGame2.java文件如下import javax.swing.*; impo

线程的生命周期及各种状态的转换-爱代码爱编程

线程的生命周期及各种状态的转换 写在前面线程六种状态详解图解线程六种状态间的转换源码分析线程的六种状态 写在前面 很多地方说线程有五种状态我觉得有些笼统,在Thread类的源码中明确描述了线程共有六种状态,分别是:NEW、RUNNABLE、BLOCKED、WAITING、TIME_WAITING、TERMINATED线程六种状态详解 NEW

ThreadLocal原理与使用-爱代码爱编程

一. 是什么? 一般而言,全局变量都是由线程共享的。引入ThreadLocal,可以给多个线程提供同一个变量的多个拷贝(副本)。 二. 为什么要用? 突出该技术概念有什么优点是值得投入使用的 简单 不需要考虑多线程容易引起的数据一致性问题。 降低了编程复杂度,能够直接以单线程思维编程。 性能好 更少的同步等待,更少占用cpu时间片 安全 具有

LeetCode 225题用队列实现栈(Implement Stack using Queues) Java语言求解-爱代码爱编程

链接 https://leetcode-cn.com/problems/implement-stack-using-queues/ 思路 首先演示push()操作; 将元素依次进入队1,进入时用top元素保存当前进入的元素; 如下图: 然后演示pop()操作; 先将除队1中的最后一个元素出队并进入队2,入队2时用top存储入队元素; 再将队列1

equals()与hashcode()-爱代码爱编程

equals()与hashcode()都是Object类定义的方法,实际使用时可override,在覆盖时都须遵守各自的通用约定。 一. 覆盖equals() 1. 覆盖的时机 当某个类的超类未覆盖equals(),而该类又有自身的逻辑相等概念,就需覆盖。覆盖后的equals()用于判断对象在逻辑上是否相等,而非是否指向同一对象。 2. equal

Python jieba库的使用方法-爱代码爱编程

jieba库是一个python的第三方词库,是用来中文分词的这个库是需要下载的,我们需要在命令行输入pip install jieba来下载 pip install jieba 需要找到python安装路径的Scripts目录切换到该目录使用pip才有用,当然配了环境变量的是不需要的,如果使用的是pycharm也可以在pycharm的控制台直接使用

python实现艾宾浩斯抗遗忘曲线(记忆曲线)-爱代码爱编程

用python实现艾宾浩斯抗遗忘曲线(记忆曲线)学习复习计划表,代码如下 from datetime import date, timedelta times = [2, 5, 8, 15, 30, 60] #复习间隔,以天数为单位 for a in times: review_time = date.today() - timedelta(a

python CCF 201509-4 高速公路-爱代码爱编程

【问题描述】   某国有n个城市,为了使得城市间的交通更便利,该国国王打算在城市之间修一些高速公路,由于经费限制,国王打算第一阶段先在部分城市之间修一些单向的高速公路。   现在,大臣们帮国王拟了一个修高速公路的计划。看了计划后,国王发现,有些城市之间可以通过高速公路直接(不经过其他城市)或间接(经过一个或多个其他城市)到达,而有的却不能。如果城市A可以通

JWT认证方案与禁用令牌策略-爱代码爱编程

认证方案 1.1 jwt 对比状态保持机制 APP不支持状态保持状态保持有同源策略, 无法跨服务器传递 不可逆加密 md5 sha1 sha256主要用于数据认证, 防止数据被修改 消息摘要 MD 通过哈希算法将任意长度内容转为定长内容, 且相同内容的哈希值始终相同, 不同内容的哈希值不同(极小概率出现碰撞) 由于其唯一性, 一

Python高级用法 #GIL #拷贝 #私有化 #MRO #类 #实例对象 #with与上下文管理器-爱代码爱编程

文章目录 一、全局解释器锁GIL1.1查看资源占用1.2单线程死循环1.3多线程死循环1.4多进程死循环1.5GIL全局解释器锁1.6解决GIL二、拷贝1.深拷贝与浅拷贝2.拷贝的其它方式2.1切片是浅拷贝2.2复制字典是浅拷贝2.3传递参数传递的是引用三、私有化四、import1.1导入模块的几种方式1.2导入模块的先后顺序1.3重新加载模块1.

python -- 20 面向对象(1)-- 定义和使用类-爱代码爱编程

定义类 class <类名>(父类名): pass class:定义类的关键字pass:空语句 pass语句表示什么都不做,常用来预留语句位置或临时未写等待以后完成 定义一个最简单的类只需要两行! >>> class myClass: pass >>> dir(myClass) ['_