AirJD 焦点
AirJD

没有录音文件
00:00/00:00
加收藏

CTF Binary小技巧 by WinsOn

发布者 security
发布于 1448413292799  浏览 7010 关键词 网络安全 
分享到

第1页

Wins0n
CTF Binary小技巧
2015-01-10

第2页

关于我
微博:@HiWinson
博客:http://www.programlife.net/
Wins0n
Light4Freedom战队成员
业余CTF选手
关注二进制相关内容
逆向、编程、算法样样精通
号称蓝莲花最怕选手

第3页

赛前准备
工欲善其事,必先利其器
常用的工具有:
Windbg / OllyDbg / Immunity Debugger / PEiD 
IDA Pro / Hex-Rays Decompiler / ARM / x64 ……
ILSpy
Metasploit
Python
Putty / WinSCP / nc
C32Asm / 010Editor
SysinternalsSuite / PCHunter
ApkTool /JD-GUI/dex2jar…

第4页

赛前准备
提前准备好虚拟机镜像
出于安全性考虑,不要在物理机上运行题目所给的程序;
HDUSEC 2013 关机
HCTF 2014 蓝屏
64位的ELF经常出现于RE和PWN(Linux x64);
64位的PE文件偶尔也会出现(Mdebug / Windbg)(Windows x64) ;
给虚拟机打个快照,可以快速恢复调试状态;

第5页

案例分析
加了VMP的x64驱动
在HCTF线下赛中,有一个题目所给的驱动是x64的,而且还加了VMP,想要进行调试需要配置Windbg和VMWare,最好还能事先下载好符号文件!

实际情况是,Windbg无论如何都连不上VMWare……

解决方法:在虚拟机加载驱动文件后,使用PCHunter把驱动Dump出来,然后拖入IDA分析,在字符串中看到Flag明文。

第6页

案例分析
带“隐写”的逆向题
在逆向分析时,偶尔会遇到一些有“隐写”有关的题目,包括对常见文件类型的识别等。

在HDUSEC 2013中,在分析一个逆向题时提取出一段二进制内容,文件开头内容为RIFF WAVEfmt,实际上是一个wav音频文件,而且声音经过了反转处理。

第7页

案例分析
带“隐写”的逆向题
在逆向分析时,偶尔会遇到一些有“隐写”有关的题目,包括对常见文件类型的识别等。

在HDUSEC 2013中,出现过许多抹去了文件头的情况,PNG / BMP / RAR。

对于完整文件的格式识别,推荐使用TrID工具
http://mark0.net/soft-trid-e.html

第8页

案例分析
解压缩工具妙用
有些可执行程序附加了一些资源,如果要通过调试分析来进行提取可能十分麻烦,在某些情况下,使用7zip/WinRar等工具可以进行快速提取。

在ISCC 2013中,一个CrackMe实际上是个自解压文件,直接用WinRar处理就好了。

第9页

案例分析
解压缩工具妙用
有些可执行程序附加了一些资源,如果要通过调试分析来进行提取可能十分麻烦,在某些情况下,使用7zip/WinRar等工具可以进行快速提取。

在SSCTF中,使用7zip可以快速提取出EXE文件里的有用信息。

第10页

案例分析
借助现有工具加速分析
对于加壳、加密等各种措施进行保护的程序,可以尝试利用已有的工具加速分析过程。

在0ops CTF中,有一个逆向分析题给了一个Inno Setup的安装包,但是需要密码才能进行下一步安装操作,网上找了一个InnoExtractor工具,可以直接提取安装包内的文件。

第11页

案例分析
事先准备好提交脚本
有时候无法通过逆向分析得到完整的Flag,因此可以尝试通过脚本来批量提交(如果不需要验证码的话)。

在HCTF线下赛中,某逆向分析题通过分析无法得到完整的flag字符串,如hctf{jQuery1102011214318289576952_1448413347878a_y*c7%etk!},其中问号代表一个数字,所以这里有100种可能,因此可以使用脚本提交Flag,当然也可以使用BurpSuite。

Flag提交脚本在攻防模式解题时是必备工具。

第12页

案例分析
关于流量重放
在攻防模式的比赛中,定时抓取和分析对手的攻击流量是必要的,从对手的攻击流量中或许就能提取出exploit。

注意:不要在物理机重放流量,否则可能被rm -rf /

第13页

案例分析
PEiD不止能查壳
识别程序内部所使用的加密算法,可以在一定程度加快我们的分析效率。

PEiD附带的Krypto ANALyzer可以快速识别成熟的密码算法。

第14页

案例分析
.NET程序分析
对于简单的.NET程序,可以直接使用ILSpy工具进行分析,在ILSpy中可以看到反编译的源码。

HCTF资格赛送分题:

第15页

案例分析
IDA设置FLIRT Signature
有时候IDA无法正确应用FLIRT Signature,比如一个Delphi编译的程序,如果没有被正确识别,那么很多库函数都无法自动识别。

设置方式:File -> Load File -> FLIRT signature file

第16页

案例分析
逆向与编程
除了逆向分析之外,动手写代码也是必须具备的技能。

AliCTF RE400:给定一个编译好的Gh0st,分析出其中的隐藏功能,完成从主控端下载一个文件。

思路:下载Gh0st源代码,配合给定的二进制程序进行逆向对比分析,找到隐藏的文件下载协议,给服务端添加下载功能完成文件下载。

第17页

其他技能
可以了解的东西
IDA脚本(花指令处理);
OD脚本(脱壳处理);
易语言;
……

PWN学习(https://exploit-exercises.com/)
CTF Writeups(https://github.com/ctfs/write-ups)
CTF Time(https://ctftime.org/)
……

第18页

如何混入赛棍圈子
加入一个合理的团队,团队成员全面覆盖Web / Bin / Misc / Crypto等知识点。
多和身边的小伙伴交流

第19页

我的参赛经历
ISCC   2011
ISCC   2013
XDSEC  2013
HDUSEC 2013
BCTF   2014
起步入门,第一次参加安全技术类比赛;

ISCC特点:
1. 考察范围广;
2. 内容比较基础;
3. 比赛时间长,新手也有充分的学习时间;
4. 决赛随机组队,可以认识各种牛逼选手;

第20页

我的参赛经历
ISCC   2011
ISCC   2013
XDSEC  2013
HDUSEC 2013
BCTF   2014
认识新的小伙伴,在比赛中认识了Puzzor、菊花等,从这里开始接触到各种早期赛棍,为后来混入赛棍圈子奠定基础。

第21页

我的参赛经历
ISCC   2011
ISCC   2013
XDSEC  2013
HDUSEC 2013
BCTF   2014
两三个人一起玩比赛,有时间就玩,找人一起去线下赛打酱油。

第22页

我的参赛经历
ISCC   2011
ISCC   2013
XDSEC  2013
HDUSEC 2013
BCTF   2014
加入Light4Freedom战队,认识了更多的小伙伴,参加ACTF、0opsCTF等作为练习赛。

有了固定的团队,不定期参加国内各种比赛,成功混入赛棍圈子。
AliCTF/XCTF
……

第23页

谢谢观看
支持文件格式:*.pdf
上传最后阶段需要进行在线转换,可能需要1~2分钟,请耐心等待。