CTF-web Xman-2018 第一天 入营msic

广度大,深度不怎么深,涉及的方面有各种加密,流量分析,隐写,文件恢复等 这种类型的题目主要是在于手中的工具要全,很多时候都是依靠工具来完成的,一部分是自己如何找到题目的要点,使用对的工具

考的东西:

        细心50

        套路40

        发散10

Recent Misc Challenge

        主流方向,考察点一张大图,网上应该有。

        信息收集,编码,取证,隐写,多媒体。

变化方向

         涉及越来越广,需要收集信息学习的比例越来越高。

         信息搜索可以划分为两个方向:社工(狭义) anywhere(广义)

例题(狭义收集 谷歌 论坛等)

        从攻击日志中寻找攻击者,发现IP然后搜索,发现其在某一网站的注册信息

        邮箱 电话号-》贴吧-》QQ-》猜域名 从已知中对其信息进行搜索,社工的过程

01 encode

bin dec hex base url acsii 莫尔斯编码 曼彻斯特 差分曼彻斯特等

二进制与字符串转换 0101可以跟很多东西结合 (ascii,二维码,进制转换,排列形式等)

例题

{二维码:使用25*25=625位二进制,变为二维码,长度必须为次方数}

{字符化:使用01拼凑排列,变成有字的长方形,离远看能看出来字}

{压缩文件注释的地方,三行空白的地方,sublim可以看出空格和tab空白,也可以看16进制明显的09 20分区,转化为0101,再转换为ascii}

{二进制与莫斯电码转换,音频中的电码,简单的听就能听出来}

base64

可逆的拆分编码方式,编码后的数据是一个字符串,只有a-zA-Z0-9最后还有填充字符=,攻击64个=26+26+10+1+1。识别方式=。

Base64本质上是一种将二进制数据转成文本数据的方案。对于非二进制数据,是先将其转换成二进制形式,然后每连续6比特(2的6次方=64)计算其十进制值,根据该值在上面的索引表中找到对应的字符,最终得到一个文本字符串。假设我们对Hello!进行Base64编码,按照ASCII表,其转换过程如下图所示:

base64隐写,判别方式:先解码在编码会出现不一样的地方。

摩斯电码

非常明显,点岗,举了一个音频的例子

图像码(条形码,二维码)

一个网站//online-barcode

常见的套路:黑白颠倒,补充,修复,定位框等,可以结合编码,隐写等,还可能有gif分块放映等。

混淆加密 :asp php css/js vbscript

Brainfuck : +-<>等

Jsfuck :  ()[ ]+!等

Jother  :+![ ]等

常用工具

LINUX命令-awk cat sed

ctf中的编码与加密 一个博客:https://www.baidu.com/link?url=n2EiZcsJOfk94baRiSn0sIx0MQFyTf-okc7uAtuQn-MVg9AmWUl_W74tN0lvDBafeLtlbDxsygICMrV-580RKa&wd=&eqid=e43d13aa0005101b000000065b626646

例题 liuux 受限ssh连接 很多都用不了(RBASH)

minBash

这个题目考的点是沙盒绕过,第一次玩这个东西??反正进去之后尝试ls,cat,file等各种那个命令均无效果,都会显示 
-rbash: ls: command not found 
发现有一篇好文章,有空瞅瞅:http://cauc.me/2017/11/16/python沙盒绕过/ 
一开始谷歌一下,发现解决办法是这样的

    export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

输入之后发现还是不行显示 -rbash: PATH: readonly variable 
我们可以尝试python里面的库去执行,用的是os库里面的listdir函数

>>> import os
>>> os.listdir('.')

注意函数里面的.代表的是当前目录,而..代表的是上级目录,也可以是绝对路径 
得到当前目录的结果为

    ['.bash_logout', '.profile', '.bashrc', 'bin', 'c8049f64c8080af25f414b15cb6f80c3']

检验一下那个一串的东西是文件还是文件夹

    >>> os.path.isfile('c8049f64c8080af25f414b15cb6f80c3')

发现是文件,这里提供两种方法读取文件, 
第一种直接用Python读取文件

      >>> f = open('c8049f64c8080af25f414b15cb6f80c3','rb')
      >>> f.read()

得到结果

'SUSCTF{e6b729cdf8885b16e7b949e85772e340}\n'

另一种是,返回到Linux命令行用strings命令

strings c8049f64c8080af25f414b15cb6f80c3

02 forensci&&steg  比赛的时候也经常是结合的

正规比赛中以这个为主,图像文件{jpg,png重点,gif,bmp} ,音频视频,压缩包{zip重点,rar},流量包{协议分析,数据提取,流量分析重点},虚拟机磁盘文件-内存取证,pdf-word等,一般情况下可以借助工具,很少纯人工分析。

需要一定的编程能力,对常见的文件格式的了解(文件头,特殊的文件png等),有很多可以使用的工具

编码:base64,hex,bin。

python:字符串处理,二进制处理,文件处理(zip,png),网络编程。

常用工具:

File: 用来鉴定文件类型

• Windows trid.exe

• Strings: 查看文件中可见字符串,一般用来找到hint

• Binwalk(自动提取),foremost: 用于分析文件,自动切割文件

• Winhex,010Editor(有文件模板): 16进制文件编辑器

• Grep,awk: 关键信息检索提取

Binwalk filename(自动识别提取包含的文件)

Binwalk is a fast, easy to use tool for analyzing, reverse engineering, and extracting firmware images

根据文件头识别包含文件

并进行自动化提取

搜索嵌入的二进制镜像文件的代码及文件

1)使用dd命令分离(linux/unix下)

        我们可以使用dd命令分离出隐藏文件:

        binwalk carter.jpg     # 文件名

        dd if=carter.jpg of=carter-1.jpg skip=140147 bs=1  

        可以参考dd命令详解,这里if是我们的输入文件,of是指定输出文件名,skip是指定从输入文件开头跳过140147个块后再开始复制,bs设置每次读写块的大小为1字节 。即为分离之意

(2)使用foremost工具分离

        foremost是一个基于文件文件头和尾部信息以及文件的内建数据结构恢复文件的命令行工具,win可以下载地址,Linux可以

        通过下面命令安装使用:

        # apt-get install foremost

        安装foremost后你可以使用foremost -help查看使用帮助,这里最简单分离文件的命令为:

         # foremost carter.jpg

    当我们使用这行命令后,foremost会自动生成output目录存放分离出文件:

MetaData

• Identifiy 获取图形文件的格式与特性

• -format print various properties and other settings associated with an image

• https://www.imagemagick.org/script/escape.php

• Strings

• ExifTools

下午

PNG编码格式

每个数据块的作用,文件头标识,文件结束。

常见:修改标识损坏格式。

           IHDR宽高被修改(有时候不是随意填的,需要根据CRC值爆破)。

           IDAT连续数据段,人为的增加(使用010编辑器或者脚本)

           IEND结束之后又加了一个文件,用binwalk看就行

           LSB最低有效为隐写,有工具可以逐位查看

习题:

IHDR修改高度

使用010editor打开,加载插件,可以看到数据块,第一个就是IHDR,里面已经标注了尺寸,我们可以修改一下

使用的是四个字节保存,我们修改为800

IDAT图像数据块修改

我们打开图像之后,可以看到多出的数据块

前面都是10000h的,最后是AFEFh chuan[25],IEND是chunk[27],多出来了chunk[26],长度为96h,我们将数据复制出来,然后在线解码就可以。

教练我想打ctf

使用stegsolve,打开使用analyse功能,选择最低位分析

根据标识符ZIP Archive (zip),文件头:504B0304,我们可以知道这是一个zip文件,save bin保存为zip文件

打开之后是一个1文件,类型未知,对文件头ELF Executable elf;; 0x7F454C4601010100识别,是linux可执行文件。

Gif

套路:split差分,按时间轴隐藏

音频

频谱的隐藏,对波形有无高低的隐藏方法

音乐中突然地噪声等,使用音频分析软件

工具:MP3stego,SlientEye

zip格式隐藏

多次压缩,使用脚本,或者使用软件

修改加密标志位的伪加密

CRC32碰撞

明文攻击:压缩包里的文件有密码,恰巧拥有某个文件对应的明文,有解密之后的文件。(ARCHRP)

流量分析(重要的地方)

三个方面

        修复-pcapfix,一键修复

        分析-Wireshark,命令行形式的是 tshark,可以配合使用脚本

常见的协议:

        http,https,dns,ftp

隐藏方式

        通信的规律

        ttl字段,一般比较小,前两个可以被利用

数据提取

内存取证

主要是volatility,对内存进行分析

得到敏感的文件或者进程,通过dump等获取内存或文件,之后变为进程或文件分析

步骤:

        确定内存结构

        查看进程列表

        根据提示,寻找进程等

常用命令(定位进程,敏感路径)

python字节码空间,冗余的隐藏。

03 take a look

4 misc+

猜你喜欢

转载自blog.csdn.net/iamsongyu/article/details/84674198