zoukankan      html  css  js  c++  java
  • 18. CTF综合靶机渗透(十一)

    靶机描述:

    SkyDog Con CTF 2016 - Catch Me If You Can

    难度:初学者/中级

    说明:CTF是虚拟机,在虚拟箱中工作效果最好。下载OVA文件打开虚拟框,然后选择文件->导入设备。从下载的地方选择OVA文件。在导入OVA文件之后,确保在启动VM之前禁用USB 2。默认情况下,只为主机设置适配器,但在启动之前,您可以根据网络设置改变这一点。虚拟机服务器配置为DHCP。如果你有任何问题,请在Twitter上告诉我JAMSBOWER,我很乐意帮忙。

    Flags

    The eight flags are in the form of flag{MD5 Hash} such as flag{1a79a4d60de6718e8e5b326e338ae533

    Flag #1 Don’t go Home Frank! There’s a Hex on Your House.

    Flag #2 Obscurity or Security?

    Flag #3 Be Careful Agent, Frank Has Been Known to Intercept Traffic Our Traffic.

    Flag #4 A Good Agent is Hard to Find.

    Flag #5 The Devil is in the Details - Or is it Dialogue? Either Way, if it’s Simple, Guessable, or Personal it Goes Against Best Practices

    Flag #6 Where in the World is Frank?

    Flag #7 Frank Was Caught on Camera Cashing Checks and Yelling - I’m The Fastest Man Alive!

    Flag #8 Franks Lost His Mind or Maybe it’s His Memory. He’s Locked Himself Inside the Building. Find the Code to Unlock the Door Before He Gets Himself Killed!

    我们可能要得到8个flag

    靶机渗透:

    本次攻击机采取的是parrot linux+windows,靶机采用的是桥接模式,

    攻击机IP为:192.168.0.104

    我们用nmap扫出靶机ip地址:

    nmap -sP 192.168.0.0/24

    我们探测出靶机IP为:192.168.0.109

    我们再用nmap探测一下靶机其他信息:

    nmap -p 1-65535 -T4 -A 192.168.0.109

     

    发现开放了4个端口:

    22/tcp         closed    ssh

    80/tcp         open      http

    443/tcp       open      ssl/http

    22222/tcp   open      ssh

    同时发现在22222端口上开放了OpenSSH的服务

    我们访问 http://192.168.0.109 靶机主页:

    查看网页源代码,也没有什么发现,扫一下目录:

    dirb http://192.168.0.109 /usr/share/wordlists/dirb/big.txt

    发现了一个返回值为200目录:/assert/

    然后用web漏洞扫描器AWVS对网站进行扫描,挖掘前,准备工作要做好:

    扫出的漏洞有点鸡肋:

    不过我们对目录结构有了大致的了解:

    发现我们用dirb漏扫了一个/oldIE/目录

    我们访问 http://192.168.0.109/oldIE/  :

    我们继续深入:

    发现了这一串数字:

    666c61677b37633031333230373061306566373164353432363633653964633166356465657d 

    我们来看flag1的提示:

    Flag #1 Don’t go Home Frank! There’s a Hex on Your House.

    翻译:弗兰克,不要回家!你的房子有hex。

    我们推测这就是hex过后的字符串,我们尝试解hex:

    果然是flag,我们成功得到flag1,但flag1的内容感觉像是md5加密,

    我们对flag1的内容尝试md5解密:

     提示是nmap,我们已经使用nmap来扫描出靶机的端口,难道flag2要从靶机的

    端口入手,根据nmap扫描端口的结果,我们发现在22端口的ssh服务关闭,但

    是在22222端口上开放了OpenSSH的服务,尝试连接22222端口:

    ssh root@192.168.0.109 -p 22222

    emmm...需要密码才能连接,但是我们得到了flag!!!

    Flag{53c82eba31f6d416f331de9162ebe997}

    我们顺利得到了flag2,顺便md5解密,看一下提示

    encrypt....翻译过来就是 加密 的意思

    我们看一下题设flag3的提示:

    Flag #3 Be Careful Agent, Frank Has Been Known to Intercept Traffic Our Traffic.

    翻译:小心代理,弗兰克已经知道拦截我们的交通。

    emmm...到目前为止,唯一与拦截流量跟加密有关的就是默认站点使用的ssl,

    HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息

    非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure So

    ckets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来

    说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比

    http协议安全。

    我们直接访问 https://192.168.0.109

    发现证书不安全,导致站点不被信任,ssl连接出问题,我们查看证书内容:

     

    意外的发现了flag3:flag3{f82366a9ddc064585d54e3f78bde3221}

    我们依旧md5解密:

    personnel...翻译过来就是 人员 的意思,

    我们看一下题设flag4的提示:

    Flag #4 A Good Agent is Hard to Find.

    翻译:一个好的代理人很难找到。

    完全与题设不搭,感觉应该是目录,尝试访问:

    http://192.168.0.109/personnel

    访问过后有一句话:

    ACCESS DENIED!!! You Do Not Appear To Be Coming From An FBI Workstation. Preparing Interrogation Room 1. Car Batteries Charging....

    翻译:访问被拒绝!!!!你似乎不是来自FBI工作站。准备审讯室1。汽车电池充电…

    说我们不是来自FBI工作站的,拒绝访问...但我们有题设啊,我们可以找个代理人去访问啊

    题设中把这个代理人译为 Agent ,我联想到了 User-Agent ,是否可以通过修改User-Agent

    来实现代理访问,因为User-Agentt是用来标识用户的操作系统、浏览器以及其版本信息等...

    但是我们怎么伪造呢?到目前为止,唯一得到的文件只有ssl的证书 oldIE目录下的html5.js。

    ssl证书在flag3已经分析过,没有其他不寻常的东西,我们只有分析这个html5.js,打开一看是

    一堆乱七八糟的东西,但是我们搜索关键字:agent,FBI

    提示已经很明显了:Adding temporary support for IE4 FBI Workstations

    还有一个:doug.perterson@fbi.gov   像是一个邮箱,感觉应该有用,先放在这里

    我们可以伪造IE4的User-Agent信息:

    (User-Agent各个版本参考:https://www.xuebuyuan.com/271243.html)

    Mozilla/4.0 (compatible; MSIE 4.0; Windows NT)

     

    成功伪造,并得到了flag4: flag{14e10d570047667f904261e6d08f520f}

    <h3>Flags</h3>
    <p> flag{14e10d570047667f904261e6d08f520f} </p>
    <p> Clue = new+flag</p>

    还有一个提示:

    Clue = new+flag

    我们顺便md5解密这个flag:

    evidence...翻译过来就是 证据 的意思

    根据刚刚flag得到的提示:Clue = new+flag = newevidence

    我们看题设的提示,发现除了提醒细心,没什么卵用,

    有了上次的经验,我们尝试访问这个 newevidence 目录:

    还是这个页面,不过也证明了,newevidence确实是一个目录,我们继续伪造User-Agent头,访问尝试:

     

    弹出了一个框,让输入用户名跟密码...

    现在得到的只有上个flag访问  /oldIE/html5.js  时得到的一个邮箱: doug.perterson@fbi.gov

    发现用户名的构成是: 名字.姓氏

    再上一个伪造User-Agent头获得flag时的burp返回包中除了flag,好像还有个用户名:

    可以看到有个 :Welcome Agent Hanratty

    这个 Agent Hanratty 应该是一个人,遂百度一下:

     我们初步可以判断这个FBI探员的姓名:Carl.Hanratty

    所以用户名为:carl.hanratty

    但是我们不知道密码...毫无提示,只能霸王硬上弓,用burp爆破

    最后爆破得到密码为 : Grace

    尝试登陆:

     

     点击 " Evidence Summary File ",发现直接跳到 http://192.168.0.109/newevidence/Evidence.txt

     

    同时我们也得到了flag5:flag{117c240d49f54096413dd64280399ea9}

    当我们点击 " Possible Location  ",发现直接跳到 http://192.168.0.109/newevidence/image.jpg

    当我们点击 " Case Invoice  ",发现直接跳到 http://192.168.0.109/newevidence/Invoice.pdf

    我们分别把这个newevidence.jpg,invoice.pdf下载到本地:

    我们把flag5的内容md5解密:

    panam...翻译过来就是  泛美航空公司  感觉跟题目没有一点关系,

    推测可能是目录,或者登录用户名或者密码,尝试访问目录:

    发现不是目录

    我们看一下题设flag6的提示:

    Flag #6 Where in the World is Frank?

     翻译:弗兰克到底在哪儿?

    emmm...现在我们唯一可以利用的就是上个flag获得的newevidence.jpg跟Invoice.pdf

    我们先查看这个Invoice.pdf:

    我认为有价值的线索都已经标出来。

    中间那段话的翻译:

          亲爱的 Agent Amdursky,

          请在下面找到一个最近完成工作的成本分解。请尽早付款,并随时联系我。

          多谢,Stefan Hetzl

    Google搜索一下这个 " Stefan Hetzl ":

    搜索结果:http://steghide.sourceforge.net/index.php

     

    发现Stefan Hetzl是Steghide的作者。Steghide是一个非常棒的使用隐写术的工具

    能够隐藏各种图像和音频文件中的数据,我们似乎还有一张图片 newevidence.jpg 没利用,

    我们利用parrot linux自带的Steghide工具来剖析这张图片:

    (steghide命令详解:https://blog.csdn.net/Jeanphorn/article/details/45034859

    steghide --info newevidence.jpg

    还要密码!!!我直接就想到了上一个flag md5解密后的结果 panam:

    果然里面隐藏了flag,我们把flag.txt提取出来:

    steghide extract -sf newevidence.jpg -p panam

    成功获得flag6:flag{d1e5146b171928731385eb7ea38c37b8}

    md5直接解密:

    发现题目已经解出来了 ILoveFrance

    还有其他的提示:clue = iheartbrenda

    猜想是不是目录:

    ....那估计是用户名或者密码

    看一下题设flag7给的提示:

    Flag #7 Frank Was Caught on Camera Cashing Checks and Yelling - I’m The Fastest Man Alive!

    翻译:弗兰克被摄像机拍到,大喊大叫,我是活着的最快的人!

    这是一个奇怪的提示,弗兰克为什么大喊 "我是活着最快的人!"?

    Google了这句话  I’m The Fastest Man Alive!

     

    这是闪电侠说的一句话!!!

    原话是:my name is Barry Allen and i am the fastest man alive
    when i was a child , i saw my mother killed by something impossible

    这里有个姓名 :Barry Allen 

    推测用户名为:barryallen

    密码的话我想起来上一个flag留下来了一个线索 iheartbrenda

    推测密码为: iheartbrenda

    有用户名跟密码就得有登陆的地方,我们开始时用nmap发现开了4个端口,

    我们曾经登陆过22222端口,好像有个输入密码的地方,我们用barryallen用户

    连接22222端口:

    ssh barryallen@192.168.0.109 -p 22222

    我们输入密码: iheartbrenda

    我们成功得到flag7:flag{bd2f6a1d5242c962a05619c56fa47ba6}

    我们md5解密flag7:

    同时发现目录下面除了flag.txt,还有 security-system.data 的文件,

    我们将这个文件下载到本地:

    我们先用parrot linux自带的binwalk工具分析一下这个文件:

    binwalk security-system.data

     

    发现是一个zip文件,看不出来啊,才开始还以为是data文件...

    我们要想把zip解压出来,首先要把它变成zip文件:

     mv security-system.data  security-system.data.zip

     然后使用unzip命令来解压这个zip文件:

    unzip security-system.data.zip

     

    现在security-system.data显示为简单的数据。在文件上运行字符串我看到很多

    内存提到,所以我在想它是一台机器的内存映像。

    接下来使用Volatility来进行电子取证:

    (Volatility介绍及用法:

    https://www.anquanke.com/post/id/86036

    https://blog.csdn.net/kevinhanser/article/details/80013033

    https://tools.kali.org/forensics/volatility)

    首先查看一下文件信息:

    volatility -f security-system.data iamgeinfo

     

    我们直接用notepad查看当前显示过得笔记本内容:

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

    发现有Test有一行内容:

    666c61677b38343164643364623239623066626264383963376235626537363863646338317d

    明显是hex过后的,我们直接解码:

    得到了最后一个flag8:flag{841dd3db29b0fbbd89c7b5be768cdc81}

     md5解密:

     

    两只小老鼠...hahaha

  • 相关阅读:
    informatica 学习日记整理
    informatica 学习日记整理
    执行异步任务,并记录时间
    Calling a Web API From a .NET Client (C#)
    PIVOT运算符使用(动态行转列)
    Replication--如何使用快照来初始化化请求订阅
    Replication--备份初始化需要还原备份么?
    疑难杂症--SQL SERVER 18056的错误
    TSQL--如何突破PRINT的8000大限
    执行计划--在存储过程中使用SET对执行计划的影响
  • 原文地址:https://www.cnblogs.com/bmjoker/p/9357820.html
Copyright © 2011-2022 走看看