吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7295|回复: 8
收起左侧

[CTF] 第二届360网络攻防大赛总结及re部分writeup

  [复制链接]
purpleroc 发表于 2014-5-27 15:36
本帖最后由 purpleroc 于 2014-5-27 15:58 编辑

原文来自:Tracy'Blog——【第二届360网络攻防大赛总结及re部分writeup】

两天完了,昏昏呼呼的,貌似没有蛮大感觉。也说不出个所以然,就想那天做的那个梦差不多吧,各种想使上劲,可却发现各种使不上力。于是乎,第二天的比赛就是那梦的诠释。
先来总结一番,再细谈reverse的五个题目吧。
我也不清楚我们当时到底是懂了比赛规则还是没懂,或者说,没有完全懂吧。以为是分数高的队伍点开的题目,大家才能做,所以,第一天一整场,我们都压根没怎么去看web,从而让了队伍中的web牛过客同志无所适从~后来才知道,我们点开的下一层的题目是别的队伍想做同一层次题目的关卡。于是,浪费了一好些机会,算是一个教训,以后,还是先弄懂规则。不过,从一开始就一直往逆向开,估计还是给其他队伍造成了不少的麻烦。于是,第一天,得了380,居榜首。

第二天就几乎是噩梦了。怎么说呢,手速变慢了,或者说,渗透经验不足吧,整个一天都没得分,跑了一天的wpa,结果密码就写在了网页上,好不容易找到了突破口,可都被别人捷足先等了。于是,还是380。不过,有收获的就是,找到了不足,至少,比赛过程中,又回到了以前一台台电脑,每个端口都测试的气氛,感觉还是不错,慢慢的学习msf。虽说,多数的是网站的,拿着nmap和msf使不上什么劲,不过,我庆幸尝试了一天。

最重要的是,这次比赛又是一次和小伙伴的磨合,挺开心的。

好吧,不多唠叨了。技术不过硬,这是摆在眼前的,好好加油吧~期待11111010越来越好!


开始writeup吧。
一开始比赛,立马点开RE1,不到两分钟,提交key,拿下一血:
Re1:
一个crackme,随意输入个key,点确定。
直接拖到c32asm,查找字符串,网上翻,找到下面内容.
一看就知道什么情况了吧.004014E4那里,明显一个JNZ.OD加载,Ctrl+G定位到004014E4.然后看了下,发现,这上面一段代码是明显的单字节判断的地方.
[Asm] 纯文本查看 复制代码
CPU DisasmAddress   Hex dump          Command                                  Comments004014B5  |> /8A10          /MOV     DL,BYTE PTR DS:[EAX]004014B7  |. |8ACA          |MOV     CL,DL004014B9  |. |3A16          |CMP     DL,BYTE PTR DS:[ESI]004014BB  |. |75 1C         |JNE     SHORT CrackMe.004014D9004014BD  |. |84C9          |TEST    CL,CL004014BF  |. |74 14         |JZ      SHORT CrackMe.004014D5004014C1  |. |8A50 01       |MOV     DL,BYTE PTR DS:[EAX+1]004014C4  |. |8ACA          |MOV     CL,DL004014C6  |. |3A56 01       |CMP     DL,BYTE PTR DS:[ESI+1]004014C9  |. |75 0E         |JNE     SHORT CrackMe.004014D9004014CB  |. |83C0 02       |ADD     EAX,2004014CE  |. |83C6 02       |ADD     ESI,2004014D1  |. |84C9          |TEST    CL,CL004014D3  |.^\75 E0         \JNZ     SHORT CrackMe.004014B5

找到第一条,004014B5处下断点.然后F9运行,随意输入一个key,确定.后面的就不说了吧:

提交,拿下十分。然后队友也紧接着把web10搞定。立马打开re2.

Re2:
提示一个有问题的程序,不能运行,必须修复好程序才行。
直接双击,弹出

貌似要在命令行下完。
拖到IDA里看了看。
先shift+F12吧,貌似没发现什么有用的信息:
庆幸的是,没几个函数:

定位到start,看了看,觉得4011BC太复杂,不想去分析,就直接把它当做是取参数的函数了。有参数了后做了什么呢?F5看了下:

还算好理解,先打开文件,然后读文件,然后处理,再复制,接着是要写文件的。看到了.db,附件中有一个pass.db,这个肯定是要被read的。
不管了,od加载这个文件,设定参数为pass.db。下断点到读文件的地方吧,先看他能不能执行过来。
发现,断下了。可,以外的发现了个问题。
这个buffer居然是空指针.难怪会异常。

那,随意给他指一个地方吧,反正文件也不大,就用旁边的00403020吧。于是,Ctrl+E改掉buffer的值。
再继续F8,到
异常,然后,把ESI的地址改为刚才读取的buffer。
然后你就在刚才的地方得到了key

坑爹的题目中说的是,修复好了后,执行两次,你会得到key。尼玛,IDA中F5一看,各种亦或操作,你执行两次有几个意思呢?
然后,有四十分的基础,立马开R3.

R3:
这题的提示是,exe是一个被病毒感染过的文件,需要手动修复,修复好了后,运行会弹出key。记得,是会弹出key。
尼玛,运行是必须运行不了的。无奈的拖到ida中。胡乱翻了下,没找到啥。然后,od加载,来到入口点。
开头就一个跳转,也没细看,总是模模糊糊的感觉以前见过入口是跳转的,比如VB、BC++,于是也就没有太在意了,直接跟了过去,               
开始还正常,后面就乱码了.复制地址进ida看了下:
key no,嘿嘿,开心啊,不过,这显然是障眼法。提交,不正确。
然后呢,看了下这几个push和call,根据题目一次,不是说,弹出key么?messagebox么?然后,发现参数也刚好是的。
就想着,肯定是要修复输入表了。很久没脱壳,没有玩修复了。这,怎么整。半天无脑乱碰后,去看了看其他的题目,这会儿,我们的分数开始反超了。有80分的队伍出现。然后,转了一圈,发现没有结果后,再回来看这题目,顺着ida往下拉,发现了一串可疑的字符串。
随手试了下,尼玛还真是key~艹,不能再坑啊~~~
不过,幸好这题目不是把sendmessage过去的明文算一次得到key,不然,还真指不定能在比赛的时候做出来呢。
回来后,今天再看了看,队友跟别人交流后,给了句:其实就是nop掉jmp,然后再改改。
立马od加载一次,

CPU DisasmAddress   Hex dump          Command                                  Comments0040CE4C   .  FF15 68F34300 CALL    NEAR DWORD PTR DS:[<&KERNEL32.Ge ; [KERNEL32.GetVersion CPU Disasm Address Hex dump Command Comments 0040CEAC . FF15 4CF24300 CALL NEAR DWORD PTR DS:[<&KERNEL32.Ge ; [KERNEL32.GetCommandLineA CPU Disasm Address Hex dump Command Comments 0040CED7 . FF15 50F24300 CALL NEAR DWORD PTR DS:[<&KERNEL32.Ge ; \KERNEL32.GetStartupInfoA
这不就是VC++的入口点么?
然后,nop掉jmp后,弹出了key
是的,尼玛真弹出了~~擦,MessageBox那才叫弹出吧~~~不能再坑啊~于是,我们又回到了第一,立马开R4。

R4:
一个程序是用来往图片中写入隐藏信息的,也就是相当于LSB之类的。然后,提示中明确了,解密要用的信息在压缩包中,图片中肯定有key:
挺漂亮的图片。还有一串数字,嘿嘿,无视掉。其实,看到这图片挺开心的,终于来了一次隐写了,好开心好开心,然后,拿着Stegsolve看了半天,结果,没看出啥,然后,对每个颜色的低1位、2位,等等各种组合都提取了一次信息,无果。再然后,自己用张小图片,用提供的程序往里面隐藏数字1,再和原图片二进制对比,看了半天,还是无果。之后,总觉得这程序在哪见过,界面如下:
然后去pudn一顿搜,一顿下载,发现,还是不对。折腾了两三个小时,都快要哭了,然后,队友说,人家是逆向题,你还是老老实实逆向算法去吧。晴空一个霹雳啊,尼玛。逆向题,然后,用pexplorer看了下界面,没有发现隐藏的控件。
然后,丢到C32asm中去看字符串。
发现了个疑点,这尼玛什么个情况,居然有“提取信息完毕!”,然后回想题目中那句,解密功能也在程序里。顿时哭了,谁要我自作聪明去玩隐写呢?
然后,就定位到“提取信息完毕”的地方,拖到ida中,定位,然后一直往上翻,到上面有一个retn的地方。
停下,然后再同样的方法去“隐藏信息完毕!”的地方往上找。发现代码几乎一样。
记下这两个地址,解决思路是,猜这两个地方就是按键按下后跳转并执行的地方,那么,没有提取信息的按钮怎么办?自己弄一个上去,或者是,控制程序走向,显然,者更容易实现。于是,有什么办法呢?改004017A0处,改为什么呢?就jmp 00401c00吧。汇编代码就是:E9 5B 04 00 00.当时比赛用的是od2.0,貌似不能直接写jmp 00401C00,然后自己用E9 算了半天又不对,只能很无奈的,把这个地方改了个FF E0,就是jmp eax,然后在这里下断点,点下按键后,就断下,然后手动改eax的值为00401C00。
改完后,00401C00处下断点,然后,等下还要调试。因为你不知道哪个框是图片哪个是文本。
其实可以看C32asm里面的字符串,你就知道哪段是图片,哪段是文本了。
我们用pexplorer把,那两个小的txt控件,拉开,如图:
记得,然后点开始隐藏。
C32asm里面看到处00401C44是“打开含有信息的图片出错”,所以,得到
这里应该是c:\1.bmp了,也就是,第二个框框里是图片。
这里可以手动调一下,之后,弹出对话框,提示解密成功。
然后打开txt得到key如下:
B0ACD1BDA3FD1CD6
然后,我们再来处理一下这个程序吧,用pexplorer,打造一个专门解密的。
如图:
到这里的时候,是下午3点,我们拿下了230分了,再然后不到30分钟内,取证的40和80也搞定了,分数到达370。之后,就是恶心的Re5了。

R5:
额,大概原理也知道,程序访问127.0.0.1的exploit.html然后,然后把exploit.html复制到自己开辟的空间,这里因为大小问题造成了溢出。题目的考点就是修复好这个exploit.html就可以得到key。
这个exploit.html的作用其实就是用同样的方法,访问127.0.0.01/shell.dat,然后用shell.dat中的数据来计算得到key。
由于,还没整出来,所以,暂时先不写这篇的。弄出来了再详细分析吧。

给出题目连接吧:
http://pan.baidu.com/s/1ntJm7Dv


——Tracy_梓朋
2014年5月27日15:32:01


免费评分

参与人数 2热心值 +2 收起 理由
♂偶是屌丝℡ + 1 膜拜 大神呀 虽然看不懂 还是要顶
ja3klyTim9k + 1 第四题想到了跳转,,还修改过,但是读出来的.

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

TMTT 发表于 2014-5-27 15:55
膜拜大神阿……
羅少 发表于 2014-5-27 16:10
°放肆的猪 发表于 2014-5-27 17:19
ja3klyTim9k 发表于 2014-5-27 20:20
读出来的参数始终不对,被两个小框坑了...
 楼主| purpleroc 发表于 2014-5-28 13:12
ja3klyTim9k 发表于 2014-5-27 20:20
读出来的参数始终不对,被两个小框坑了...

题目都很坑~
 楼主| purpleroc 发表于 2014-5-28 14:05
°放肆的猪 发表于 2014-5-27 17:19
虽然看不懂 可感觉好厉害的样子。

感觉出错了~
chenchenchen 发表于 2014-5-28 16:16 来自手机
好像很厉害的样子啊
heyaoting 发表于 2014-5-29 17:25
很厉害的样子~我刚大学毕业,感觉很喜欢破解
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-20 08:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表