不乱于心,不困于情。
不畏将来,不念过往。如此,安好。

SkyDog Con CTF 2016 – Catch Me If You Can (writeup)

靶机描述: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

赞(0)
未经允许不得转载:seo优化_前端开发_渗透技术 » SkyDog Con CTF 2016 – Catch Me If You Can (writeup)