zoukankan      html  css  js  c++  java
  • 猫鼠游戏CTF(SkyDog: 2016 – Catch Me If You Can)

    写在前边

      这篇是直接拿Jerry师傅的文档然后自己再修改总结的,相关的详细知识点会在后续更新(下次一定,下次一定,不会咕的,不会咕的)

      电影《Catch MeIf You Can》的中译名是《猫鼠游戏》,这个靶机的以此为灵感,作者在靶机中以{MD5 Hash}的形式放置了8个flag,我们的目标就是拿到这八个flag。

      官方靶机地址https://download.vulnhub.com/skydog/SkyDogConCTF2016VBoxV10.ova  难度:初级&中级

      我这边是直接导入虚拟机的,通过桥接连接。

      攻击机(kali):192.168.1.104

      靶机(SkyDog: 2016 – Catch Me If You Can)192.168.1.103

    解题

    1======>Flag1

    卡尔提示弗兰克”你的Home(家)有Hex(独角兽)“核心意思在Hex上,以及Home(意指站点);概括起来讲就是你的站点源码里有Hex(16进制编码)的值

    注释1:

    • Hex是Hexadecimal(十六进制)的简写,是16进制数的表示形式;
    • Hex数值可与ASC·II码进行对照转换,可参考ASCII码表与HEX对照转换表;
    • 一般CTF可能会在一些JS文件里隐藏Flag

    注释2:

    • 一般CTF可能会在一些JS文件里隐藏Flag

      

    • 在浏览器里访问这个html5.js之后,第一行就是一串Hex过的字符串 

     

    方法一:使用bp把这串字符解码

     

    解码后的flag是MD5编码,使用https://www.cmd5.com/在线解码

    方法二:在kali2中使用xxd命令

    xxd命令:输出Hex进制数或者解密Hex进制数

    示例:用vim命令创建一个a.txt文件(内容为:abcdefg),再进行如下操作

    接下来,解密我们发现的Hex

     

     

    2======>Flag2

     

    卡尔开始怀疑弗兰克潜藏着危险性(Obscurity or Security?【隐晦的安全?】),卡尔探员验证弗兰克的危险性;结合Flag1的值:nmap;则我们可以用nmap检查一下我们网站主机是否有危险性(我们是FBI探员卡尔,网站及主机是弗兰克的角色)

    1.nmap扫描主机所有端口(扫描时间可能比较漫长)

    方法一:

    方法二:

     

    方法三:

     

    方法一和方法二,扫描非常慢,扫不出主机上安装的服务的版本;方法三不但可加快扫描速度,而且还能详细扫描出服务的版本号;此命令的扫描结果如下:

    结果分析:

    一共扫描出四个tcp端口,其中22端口是闭关的,即ssh服务不能用;其他三个端口是开放的,其中有一个openssh的端口22222,可尝试用ssh连接一下这个端口。

    2.ssh连接22222端口

     

    3.发现第二Flag,用MD5解密

     

    3======>Flag3

    卡尔说:“注意证据(Agent,已经了解了弗兰克是这起交通事故的肇事者”;这句话里关键是Agent,Agent在我们安全技术领域里就是【代理】的意思,再结合Flag2的解密结果encrypt【加密】,于是我们联想到了SSL协议及及证书,结合加密技术,进行数据安全传输(即https协议);于是可以尝试使用https协议访问此网站

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。

    1.使用https协议访问网站

     

    根据提示需要在【高级】选项里查看一下SSL证书

      

     

     

    发现两个一样的flag

    2.解密Flag

    通过cmd5解密Flag。

     

    4======》Flag4

     

    卡尔说“找到一条有用的证据是非常难的”。言外之意就是说,弗兰克这么聪明狡猾,想通过他个人资料获取有用的证据,非常不容易呀!!!

    结合Flag3的值personnel,一般个人资料都会放在自己的personnel目录下,因此猜测站点里可能有个personnel目录

    1.访问站点的personnel目录

     

    既然弗兰克不能直接接近FBI,则弗兰克作为一个用户(User),可以找一个中间人(Agent)去接近FBI呀,此时我们可以联想到User-Agent

    2.发现user-agent

    如何知道FBI的html页面用什么样的User-Agent来访问呢?还记得我们曾经在站点文件里发现过一个html5.js文件吗?从这个文件的全名上,可以猜测这个文件里面应该有定义关于html5页面的访问规则,规则中可能会包含一些站点访问的user-agent!!!

    而且我们还在这个文件里发现了第一个flag!!!!

    通过浏览器访问html5.js源码,在源码中查找FBI,curt+F快捷键,结果如下

     

    可以看出,要想访问FBI的站点,必须使用IE4这个代理(中间人)

    3.通过抓包伪造IE4的User-Agent来访问FBI站点

    1)抓包

      

    2)接下来再改包

    先改IE代理为IE4.0

     

    3)修改代理后:

    使用新的代理后,FBI站点可以访问,如图

      

    4.上图发现了Flag4,由cmd5解密Flag4 

     

    5=======》Flag5

     

    翻译过来:细节里暗藏魔鬼,或许它可能一个【对话框】的形式?无论是哪种形式,如果它简单,可猜测的,就不符合最佳实践了

    注意,这段话提示我们站点里可能隐藏一个对话框,那如何找到这个对话框呢。只能去试着访问站点的某个资源目录,来弹出这个对话框咯。而且根据红色提示信息,对话框里肯定要输入一些复杂的数据

    1.猜测

    先猜测可以访问的能弹出对话框的站点目录

    根据FBI站点的/personnel资源目录页面(如下图),我们还发现了一个clue(即线索)

     

    Clue(线索)=new+flag=newevidence(evidence是Flag4的值),这个单词与personnel一样,没有特别意义,猜测很有可能是一个目录

     

    2.访问newevidence目录

    那么,可以使用访问personnel目录的方式,访问newevidence目录

    即:使用bp工具,修改User-Agent为IE4

     

    1修改代理后,正常访问,如下图

     

     现在关键是找用户名,根据对话框提示,只能FBI里的人才可以访问,那我们知道FBI探员卡尔的全名是Carl.Hanratty,一般用户名都小写,猜测最终用户名应该是carl.hanratty,那密码怎么猜呢,只能用密码爆破,还好我有关于这个电影的一些用户信息字典。(说明:这个字典里是由用户名:密码的base64编码形式,用户名主要为电影里的一些角色名组成,密码也是用户名及一些经典对话的词汇构造的)

     

    Bp抓到的包:

     

    2bpDecoder模块解码:

      

    3.爆破

    把上次抓到的包再发送到intruder模块,开始爆破:

    字典:
    Y2FybC5oYW5yYXR0eTpKZXJyeQ== Y2FybC5oYW5yYXR0eTpoYW5yYXR0eQ== Y2FybC5oYW5yYXR0eTpjYXJsaGFucmF0dHk= Y2FybC5oYW5yYXR0eTpncmFjZQ== Y2FybC5oYW5yYXR0eTpHcmFjZQ== Y2FybC5oYW5yYXR0eTptaWNlCg== Y2FybC5oYW5yYXR0eTpNaWNlCg== Y2FybC5oYW5yYXR0eTpDcmVhbQo= Y2FybC5oYW5yYXR0eTpjcmVhbQo= Y2FybC5oYW5yYXR0eTpidXR0ZXIK Y2FybC5oYW5yYXR0eTpCdXR0ZXIK cm9nZXIuc3Ryb25nOkJ1dHRlcgo= cm9nZXIuc3Ryb25nOmJ1dHRlcgo= cm9nZXIuc3Ryb25nOnJvZ2UKCg== cm9nZXIuc3Ryb25nOlJvZ2UKCg== cm9nZXIuc3Ryb25nOnJvZ2VzdHJvbmcKCg== cm9nZXIuc3Ryb25nOlJvZ2VTdHJvbmcKCg== cm9nZXIuc3Ryb25nOmdyYWNlCgo= cm9nZXIuc3Ryb25nOkdyYWNlCgo=

    1)在intruderoptions选项里选择参数位置,添加参数占位符

      

    2intruderpayloads里的Payload Options[Simple list]里选择字典

     

    3)在intruderpayloads启动爆破

     

    4)分析结果

     

    5)解码结果里的值

     

    得到了用户名和密码,用户名:carl.hanratty  密码:Grace,尝试登录

     

    正确登录,页面如下

     

    点开第一个超链接,发现了Flag

     

    4.Cmd5解密FLAG

    6======Flag6

    FBI探员自己在思索:“弗兰克的证据究竟隐藏在哪里呢?”;人就在眼前,就是找不到证据抓他,真是愁死人呐!!还得从上一个Flag的过程里找线索呀,因为上一个Flag的过程里出现了newevidence(新的证据)目录和这个Flag提示里的证据相呼应,继续访问这个目录里的资源,寻找线索。

    1.消息搜集

    • 继续点开这个目录页面的其他两个链接

     

    打开第2个链接是一张图片(或许图片里隐藏着猫腻哦!!!)

     

    2.图片隐写

    还是分析一下图片内容吧,这时候我们想到了一种技术:图片隐写术!对应的工具就是就是隐写工具:steghide, 是一款开源的隐写术软件,它可以让你在一张图片或者音频文件中隐藏你的秘密信息,而且你不会注意到图片或音频文件发生了任何的改变。

    1)把图片下载到kali

     

    2)steghide命令

    使用steghide命令分析图片,命令格式如下:steghide info xxx.jpg,若没安装使用命令

    apt-get install steghide -y  

    分析结果如下:

     

    需要输入密码,联想到Flag5中解码出来一个值:panam,还没有派到任何用场,此时应该派上用场咯。。。。。

     

    把捆绑的flag.txt文件输出出来用如下命令:steghide extract -sf image.jpg

     

    3.查看flag.txt里的内容

    7=======Flag7

     

    为什么弗兰克为会对着取款机的摄像头大喊:“我是飞人”!!这是一个很奇怪的线索,用社工手段在baidu上搜索了一下这句话 “I’m The Fastest Man Alive!”?

     

    1.分析

    原来是闪电侠Baryy.Allen说的;这个barry.allen我们联想到了应该是用户名,用户名应该类似barry.allen和barryallen这种方式,根据Flag6中给出的Flag的值和一个线索值,联想到这两个值可能是密码;基于用户名和密码互相匹配比较麻烦,我们可以写一个用户名的字典和一个密码的字典,用hydra进行爆破!但这个用户名和密码用在哪个服务上呢?在nmap扫描端口的时候发现有个ssh22222端口,于是我们就可用hydra进行ssh爆破;

    2.创建用户名字典和密码字典

    用户名字典主要包含carl/frank/barry的人名组合

    密码字典以用户名字典内容为主+Flag6中的Flag值及线索的值

    catchme-sshuser.txt

    barryallen
    barry.allen
    Baryy.Allen
    BarryAllen
    barry
    allen
    Barry
    Allen
    carl.hanratty
    Carl.Hanratty
    carlhanratty
    carl
    hanratty
    Carl
    Hanratty
    Frank.Abagnale
    frank.abagnale
    frankabagnale
    Frank
    Abagnale
    frank
    abagnale

    catchme-sshpassword.txt

    iheartbrenda
    barryallen
    barry.allen
    Baryy.Allen
    BarryAllen
    barry
    allen
    Barry
    Allen
    carl.hanratty
    Carl.Hanratty
    carlhanratty
    carl
    hanratty
    Carl
    Hanratty
    Frank.Abagnale
    frank.abagnale
    frankabagnale
    Frank
    Abagnale
    frank
    abagnale
    panam
    ILoveFrance

    3.使用hydra进行ssh爆破

    把以上两个文件复制到Kali虚拟机的某个目录下(这里是在/根目录),开始爆破

    hydra -L catchme-sshuser.txt -P catchme-sshpassword.txt -s 22222 192.168.1.103 ssh

      

    4.登陆

    • 爆破成功后,使用用户名:barryallen和密码:iheartbrenda登录ssh端口22222

      

    登陆成功,查看文件

     

    5.解密

    查看flag.txt文件,发现了第7个Flag

     

     

    8=========》Flag8

     

    弗兰克失去了理智(变得疯狂),也有可能是因为他的记忆里(Memory)做了太多(大文件的坏事。他把自己锁(Locked)在大楼里,在他自杀之前他找出了打开大门的密码

    1.分析

    这个描述里有一个Memory,是内存的意思,我们联想到内存分析这个工具;同时联想到被分析的文件应该会很大,而且根据描述的提示,Flag(就是描述中的密码)肯定是被绑定(Locked)在这个大文件里。

    2.解包

    1)信息搜集

    • 根据Flag7中的线索,当用我们用ssh成功登录22222端口后,看见一个71M的文件(估计可能是一个系统备份文件)

    查看一下security-system.data这个文件所在的目录

     

    2)分析数据

    • 把这个文件scp到本地(kali系统中),以便作进一步分析

      

    • 查看一下security-system.data文件的真实类型

     

    • 既然是zip文件,则可以把扩展名data改为zip,以方便用unzip命令进行解压缩

     

    • 用unzip解压:

     

    根据security-systedm.data的文件名和文件的扩展名,猜测其可能是一个设备固件的驱动备份文件,由此使用Binwalk进行文件 扫描

    Binwalk是一款取证分析工具,旨在协助技术人员对文件进行分析,提取及逆向工程。

    • 然而,也没发现什么有价值的线索

     

    • 转而根据题目中的描述的提示有个Memory,联想到对这个文件使用内存取证分析工具Volatility,这个工具里面包含了相当多的插件:

     

     

    其中较常用的是:cmdscan和imageinfo这两个插件

     

    使用volatility命令分析文件的思路就是,首先使用imageinfo插件分析文件中的profile值,然后根据profile的值,再结合Cmdscan插件分析出在内存中的使用的命令。

    • 分析文件的profile的值

    volatility imageinfo -f security-system.data

     

    • 用profile的值结合cmdscan插件分析内存里驻留的命令

    volatility --profile=WinXPSP2x86 -f security-system.data cmdscan

     

    把上面那个内存里的命令copy下在命令行里执行一下

    使用sed去掉字符串的空格

     

    3.解密

    使用BP解码,得到第8个Flag

     

    用cmd5解密,但需要付费,解码后:

     

    翻译出来,原来是“两只小老鼠”

    转载请注明

  • 相关阅读:
    第一个android App, hello world
    chrome网页重定向
    自动获取MyEcilipse注册名和注册码的方法
    jsp中两种include的区别【转】
    Eclipse中web项目部署至Tomcat【转】
    JAVA EE中session的理解
    JavaBean,POJO,VO,DTO的区别和联系
    Linux下apache+phppgadmin+postgresql安装配置
    Linux下apache+phppgadmin安装配置
    linux下jdk和tomcat的安装配置
  • 原文地址:https://www.cnblogs.com/Lee-404/p/12781894.html
Copyright © 2011-2022 走看看