逆向心法修炼之道-Flare on Challenge 4th

百家 作者:绿盟科技 2017-10-17 09:04:57

见龙在田-注册

9月2日凌晨,Flare-on开通了第四届的逆向挑战赛,

网址为https://2017.flare-on.com。

国内的很多用户在填写完信息提交的时候发现页面有如下提示:

什么鬼,难道注册就是第一关吗?其实,注册页面使用了google的人机身份验证,所以注册需要使用VPN才可以注册成功。通过VPN访问的页面如下:

飞龙在天-login.htm


序:

注册成功后就看到了第一关,显示要下载名为login.html的文件,通过文件名可以知道通过的此部分就正式开启逆向之路了,在浏览器中打开此文件,显示如下:

随便输入一段字符串,提示如下:

龙跃在渊- IgniteMe.exe

序:

拿到程序后,首先在命令行上运行一下,看有什么提示。

根据提示可以知道如果输入了正确的flag,那么程序应该会有不同的提示。

将程序载入到IDA,看一下验证流程。

潜龙勿用-greek_to_me.exe

序:

闯入第三关之后,会看到FLARE给了你一些赞赏,但同时对你的能力还有一点的怀疑,他们是这么说的“我的天!怀疑我的能力?不能忍!下载下来,就是干!”。

双击运行,眼前一片漆黑,既无法输入数据,又没法获得数据。使用IDA打开,静态看一下到底是怎么回事,通过查看IDA,只有四个函数,从start函数往里面跟进,函数sub_401121创建套接字,监听2222端口,接收数据,并从接收到的数据中取出一个字节,与loc_40107C处的数据进行异或操作,操作完之后,将异或后的loc_40107C传入sub_4011E6进行校验,整体流程图为:

神龙摆尾-notepad.exe


序:

题目提示我们是否在VM中运行,意思就是暗示我们需要在虚拟机中运行(在本机运行了,果然没有反应)。运行之后,首先弹出了一个时间的对话框,然后就显示notepad界面。


如果直接定位到弹出对话框的地址处进行分析,完全看不出来是什么意思,因为程序调用的函数都是经过动态获得的,所以还是使用IDA从头开始看。

从IDA中可以看到,此程序有99个函数,不过不要被这个数字吓到,跟着程序流程走,还是比较简单的。

调用sub_1013F30时,传入的第二个参数是“C:Usersusernameflareon2016challenge”,如果没有这个文件夹的话,就需要创建此文件夹,因为后期程序将遍历此文件夹中的文件。在FindFirstFile循环遍历中,只有一个函数sub_1014E20,此函数的第二个参数是遍历到的文件的全路径,无疑,我们需要跟进这个函数,查看这个函数对遍历到的文件所做的操作。

这个函数有很多if else分支,不过它调用的函数,经过注释之后,流程还相对简单,此函数将遍历到的文件映射进内存中,并判断此文件是否为EXE文件,由此可知,程序要查找的文件是EXE形式的PE文件。

密云不雨-pewpewboat.exe

序:

穿过弯弯曲曲的盘山路,来到了河边,旁边有块牌子提示,“请放松一下,来做个游戏,只有通关了,才会有通往彼岸的吊桥”。

使用file命令查看文档格式,发现是一个64位的ELF程序。

运行后界面如下:

这是一个射击游戏,通过猜测目标位置来进行射击,成功打到所有目标即可过关。如此以来,需要逆向看看靶子上目标的坐标是如何生成的了。

突如其来-payload.dll

序:

从给出的名字可以知道出题者想考察一下参与者对于Windows动态库的掌握情况。

查看导出表如下:

双龙取水-zsud.exe

序:


到达第七关,依然是一个游戏关,下载后打开程序,界面如下图所示:

一个传统的文字解密类游戏,是不是勾起了很多老程序员的回忆。敲击help查看所有命令,可以看到游戏定义了一些内容:

1、行走方向:North、South、East、West、Up、Down;

2、动作:get、drop、wear、remove、look、inv(检查背包)、say、put、Take [something] off

从游戏中,我们能直接获取到的目前是只有这么多信息,我们分析下他的程序,看看如何能获取到key:

用IDA查看代码,发现里面有个深调用,隐藏了真实的函数实现:

震惊百里-flair.apk

序:

这是一道Android APK逆向题,总共4关,每一关输入正确的password后才能进入下一关。

以下是反编译后程序结构:

时乘六龙-remorse.ino.hex

序:

该题目是一道Arduino平台逆向题,题目提供了一个Arduino二进制程序,打开后,看到内容如下:

木有开发板?不知道有啥好用的Arduino调试器?这些都不重要,IDA在手,跟我走!

龙战于野-shell.php

序:

这一题是一个PHP文件,这个PHP程序接受POST的参数值,主要通过MD5算法计算出一个长度可变的字符串key,用key字符串通过XOR算法解开前面一部分的字符串,再将这一部分作为字符串去异或求出下一个分组的字符串,分组长度和key长度相同。

履霜冰至-covfefe.exe

序:

这一题是虚拟机代码分析的题目,通过IDA简单的分析可以知道,此代码写得非常简练,用一个减法操作和一个条件跳转来模拟左移,右移,乘法之类的运算。同时由于虚拟机代码固定长度为3个DWORD,可以比较方便对虚拟机代码进行解析。


亢龙有悔-一次APT攻击分析-[missing]


实战没有章法,需要审时度势,综合运用所掌握内容,夺取最终目标。



   (部分图片来源于网络)

完整内容请点击文末“阅读原文”



请点击屏幕右上方“…”

关注绿盟科技公众号
NSFOCUS-weixin

↑↑↑长按二维码,下载绿盟云APP

点击下方“阅读原文”查看完整内容


↓↓↓ 

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接