• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

CTF初学

武飞扬头像
wow2ok
帮助1

CTF基本赛制与题型

CTF的目标是什么?

CTF参赛队伍的目标是获尽可能多的flaq旗帜)。
参赛队伍需要通过解决信息安全的技术问题来获取flag。
flag可能来自于一台远端的服务器,一个复杂的软件,也可能隐藏在一段通过密码算法或协议加密的数据,或是一组网络流量及音频视频文件中。
选手需要综合利用自己掌握的安全技术,并辅以快速学习新知识,通过获取服务器权限,分析并破解软件或是设计解密算法等不限定途径来获取flag。

CTF的比赛形式

  1. 解题模式
    通常为在线比赛,目前大多数国内外CTF比赛的主流形式,选手自由组队参赛(在线比赛人数一般不做限制)。题目通常在比赛过程中陆续放出。解出一道题目后,提交题目对应的flag即可得分,比赛结束时分高者胜。;

  2. 攻防模式
    通常为现场比赛,多数CTF决赛的比赛形式,选手自由组队参赛,但通常队伍人数会受到限制(3~8人不等)。相比于解题模式,时间更短,比赛中更注重临场反应和解题速度,需要能够快速攻击目标主机并获取主机的权限,考察团队多方面的综合安全能力。

题目类型

  1. web安全
    通过浏览器访问题目服务器上的网站,,寻找网站漏洞( sql注入,xss,文件上传,包含漏,XXe, ssrf,命令执行,代码审计等),利用网站漏洞获得服务器的部分或全部权限,拿到flag,通常包含分值最大的web渗透题;
  2. 逆向工程(Reverse )
    题目就是一个软件,但通常没有软件的源代码﹔需要利用工具对软件进行反编译甚至反汇编,从而理解软件内部逻辑和原理,找出与flag计算相关的算法并破解这个算法,获取flag ;
  3. 漏洞挖掘与漏洞利用(PWN,EXPLOIT )
    访问一个本地或远程的二进制服务程序,通过逆向工程找出程序中存在的漏洞,并利用程序中的漏洞获取远程服务器的部分或全部权限,拿到flag ;
  4. 密码学(Crypto )
    分析题目中的密码算法与协议,利用算法或协议的弱点来计算密钥或对密文进行解密,从而获取flag。
    编码:base64
    加密:凯撒
    摘要:MD5; SHA1
  5. **调查取证(Misc) **
    利用隐写术等保护技术将信息隐藏在图像、音频、视频,压缩包中,或者
    信息就在一段内存镜像或网络流量中,尝试将隐藏的信息恢复出来即可获得flag。
  6. 移动安全(Mobile )
    对安卓和IOS系统的理解,逆向工程等知识。

CTF备战思路

学新通

web方向
学新通
实验吧:http://www.shiyanbar.com/ctf/practice
答案:http://hebin.me
学新通

替换:Ctrl/Command G

语言环境安装

python java php

工具安装

编辑器使用:Notepad
火狐浏览器

杂项

文件操作与隐写

文件类型识别

1.File 命令
当一个文件没有后缀的时候而无法正常打开时,
在Linux中可以使用: file 文件名 此命令来识别

  1. winhex
    通过winhex程序中可以查看文件头类型,根据文件头类型判断出文件类型
    使用场景: windows下通过文件头信息判断文件类型
    学新通
    3.文件头残缺/错误
    通常文件无法正常打开有两种情况,一种是文件头部残缺,另一种是文件头部字段错误。
    针对文件头部残缺的情况,使用winhex程序添加相应的文件头,针对头部字段错误,可以找一个相同类型的文件进行替换。
    使用场景:文件头部残缺或文件头部字段错误无法打开正常文件。
    当使用: file 文件名 这个命令进行查看时,会显示文件为data

学新通

文件分离操作

1.Binwalk工具
Binwalk是Linux下用来分析和分离文件的工具,可以快速分辨文件是否由多个文件合并而成,并将文件进行分离。
如果分离成功会在目标文件的目录。
同目录下生成一个形如_文件名_extracted的文件目录,目录中有分离后的文件。
用法:
分析文件: binwalk filename
分离文件: binwalk -e filename
学新通
2.foremost
如果binwalk无法正确分离出文件,可以使用foremost,将目标文件复制到kali中,成功执行后,会在目标文件的文件目录下生成我们设置的目录,目录中会按文件类型分离出文件。

用法:

foremost 文件名 -o 输出目录名

3.dd
当文件自动分离出错或者因为其他原因无法自动分离时,可以使用dd实现文件手动分离。
格式:
dd if=源文件 of=目标文件名名 bs=1 skip=开始分离的字节数
参数说明:
if=file #输入文件名,缺省为标准输入。
of =file #输出文件名,缺省为标准输出。
bs=bytes #同时设置读写块的大小为bytes ,可代替ibs 和obs 。
skip=blocks #从输入文件开头跳过blocks个块后再开始复制。

4.Winhex
除了使用dd外,还可以使用winhex实现文件手动分离,将目标文件拖入winhex中,找到要分离的部分,点击复制即可。
使用场景: windows下利用winhex程序对文件进行手动分离
例:新建一个文件,文件大小1byte,在文件开头位置点击粘贴,弹出提示框选否、确定,将文件保存为想要的后缀即可。
学新通

5.010Editor
将某块区域文件保存的方式如下:
学新通将16进制字符文件导入保存操作方法如下:

  1. 将16进制字符文件保存在一个文件
  2. 打开010Editor ——> import Hex
    学新通

文件合并操作

1.Linux下的文件合并
使用场景:linux下,通常对文件名相似的文件要进行批量合并。
格式: cat 合并的文件 > 输出的文件
学新通

完整性检测:linux下计算文件md5:

md5sum 文件名

学新通

2.Windows下的文件合并
使用场景: windows下,通常要对文件名相似的文件进行批量合并
格式: copy /B 合并的文件输出的文件命令
学新通
完整性检测: windows下计算文件md5: certutil -hashfile 文件名 md5
学新通

文件内容隐写

直接将KEY以十六进制的形式写在文件中,通常在文件的开头或结尾部分,分析时通常**重点观察文件开头和结尾部分**。如果在文件中间部分,通常搜索关键字KEY或者flag来查找隐藏内容。

使用场景: windows下,搜索隐写的文件内容

1.Winhex / 010Editor
通常将要识别的文件拖入winhex中,查找具有关键字或明显与文件内容不和谐的部分,通常优先观察文件首部和尾部,搜索flag或key等关键字,最后拖动滚轮寻找。

图片隐写术

  1. 细微的颜色差别
  2. GIF图多帧隐藏
    (1).颜色通道隐藏
    (2).不同帧图信息/隐藏
    (3).不同帧对比隐写
  3. Exif信息隐藏
  4. 图片修复
    (1)图片头修复
    (2)图片尾修复
    (3)CRC校验修复
    (4)长、宽、高度修复
  5. 最低有效位LSB隐写
  6. 图片加密
    (1).Stegdetect
    (2).outguess
    (3).Jphide
    (4).F5

1.Firework

使用winhex打开文件时会看到文件头部中包含firework的标识,通过firework可以找到隐藏图片。
使用场景:查看隐写的图片文件

2.Exif
Exif按照PEG的规格在JPEG中插入一些图像/数字相机的信息数据以及缩略图像.可以通过与IPEG兼容的互联网浏览器/图片浏览器/图像处理等一些软件来查看Exif格式的图像文件.就跟浏览通常的IPEG图像文件一样
图片右键属性,查看exif或查看详细信息,在相关选项卡中查找flag信息。
学新通
Linux中使用exiftool 文件名来查看属性
学新通
3.Stegsolve
当两张jpg图片外观、大小、像素都基本相同时,可以考虑进行结合分析,即将两个文件的像素RGB值进行xOR、ADD、SUB等操作,看能否得到有用的信息,StegSolve可以方便的进行这些操作。
使用场景:两张图片信息基本相同
stegsolve的链接
1.打开第一张图片,点击analyse -> lmage combiner
学新通
2.在弹出的窗口中点击左右按钮选择处理方式,点击save保存有价值的结果。
学新通

4.LSB(最低有效位Least Significant Bit)
LSB替换隐写基本思想是用嵌入的秘密信息取代载体图像的最低比特位,原来的的7个高位平面与替代秘密信息的最低位平面组合成含隐藏信息的新图形。
1.像素三原色(RGB)
2.通过修改像素中最低位的1bit来达到隐藏的效果
3.工具: stegsolve、zsteg、wbstego4、python脚本
学新通
Stegsolve.jar工具
1.打开文件>> Analyse >> Data Extract
学新通
2.调整Bit Planes,Bit Order , Bit Plane Order
学新通

zsteg工具
detect stegano-hidden data in PNG &BMP
lnstallation

root@kali:/# gem install zsteg

检测LSB隐写

zsteg xxx.png

学新通
wbstego4工具(适用文件: .bmp .rle .txt .asc .html .xml .pdf)
解密通过lsb加密的图片jpg可以转成bmp
学新通
学新通
学新通
python脚本
将以下脚本放在kali中运行,将目标文件放在脚本同目录下,将脚本中的文件名修改为目标文件名,运行python即可
学新通

#coding:utf-8
import PIL.Image
def foo():
    im=PIL.Image.open('01.bmp')
    im2=im.copy()
    pix=im2.load()
    width,height=im2.size

    for x in xrange(0,width):    
        for y in xrange(0,height):
            if pix[x,y]&0x1==0
                pix[x,y]=0
            else:
                pix[x,y]=255
    im2.show()
    pass
if __name__=='__main__':
    foo()
    print 'ok'
    pass

TweakPNG

weakpng是一款简单易用的png图像浏览工具,它允许查看和修改一些png图像文件的元信息存储,

使用场景:文件头正常却无法打开文件,利用tweakpng修改crc
学新通

1.当PNG文件头正常但无法打开文件,可能是cRc校验出错,可以尝试通过TweakPNG打开PNG,会弹出校验错误的提示,这里显示CRC是fe1a5ab6,正确的是b0a7a9f1。打开winhex搜索fe1a5ab6将其改为boa7a9f1。
学新通

特殊情况:有时候crc没有错误,但是图片的宽度或者高度发生错误,需要通过用python脚本利用crc计算出正确的高度宽度.
学新通
需要修改文件名, 和当前图片的crc值

import os
import binascii
import struct
crcbp = open( r"C:\Users\Administrator\Desktop\6.png" , "rb" ).read()
for i in range(1024):
    for j in range(1024):
        data = crcbp[12:16]   struct.pack('>i', i)   struct.pack('>i ', j)   crcbp[24:29]
        crc32 = binascii.crc32(data) & 0xffffffff
        if crc32 == xcbd6df8a:
            print(i, j)
            print("hex", hex(i), hex(j))

学新通
6.Bftools
bftools用于解密图片信息。
使用场景:在windows的cmd下,对加密过的图片文件进行解密
格式:

Bftools.exe decode braincopter要解密的图片名称-output输出文件名
Bftools.exe run 上一步输出的文件

学新通
⑦ silentEye
silenteye是一款可以将文字或者文件隐藏到图片的解密工具。
使用场景: windows下打开silentEye工具,对加密的图片进行解密
例:
1.使用silentEye程序打开目标图片,点击image->decode,点击decode,可以查看隐藏文件,点击保存即可
学新通

2.如果需要密码,勾选encrypted data,输入密码和确认密码,点击decode再解密
学新通
8.JPG图像加密
(1)Stegdetect工具探测加密方式
Stegdetect程序主要用于分析PEG文件。因此用stegdetect 可以检测到通过JSteg. JPHide. OutGuess. Invisible Secrets. F5、 appendX 和Camoufloge等这些隐写工具隐藏的信息。

stegdetect xx.jipg
stegdetect -s敏感度xx.jpgexi
学新通
2)Jphide
Jphide是基于最低有效位LSB的JPEG格式图像隐写算法.
例:
Stegdetect提示jphide加密时,可以用Jphs. 工具进行解密,打开jphswin.exe, 使用open jpeg打开图片,点击seek,
输入密码和确认密码,在弹出文件框中选择要保存的解密文件位置即可,结果保存成txt文件。
学新通
3) Outguess
outguess一般用于解密文件信息。
使用场景: Stegdetect识别出来或者题目提示是outguess加密的图片
该工具需编译使用: ./configure && make && make install
格式: outguess-r 要解密的文件名输出结果文件名
学新通4)F5
F5一般用于解密文件信息。
使用场景: Stegdetect识别 出来是F5加密的图片或题目提示是F5加密的图片
进入F5-steganography_F5目录,将图片文件拷贝至该目录下,从CMD进入该目录
格式: Java Exrtact要解密的文件名 -p密码
学新通
9.二维码处理(二维码可能被改成彩色、黑白色调换等等)
工具:CQR.exe(或者电脑桌面二维码扫描器)结合Stegsolve工具使用
1.使用二维码扫描工具CQR.exe打开图片,找到内容字段
学新通

2.如果二维码某个定位角被覆盖了,该工具有时候也可以自动识别,如果识别失败,需要使用PS或画图工具将另外几个角的定位符移动到相应的位置,补全二维码。
学新通
3.如果某个二维码的定位点中间是白色,可能被反色了,使用画图工具把颜色反色回来再扫描即可。
学新通

流量取证技术

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfkkaec
系列文章
更多 icon
同类精品
更多 icon
继续加载