熊猫烧香病毒在当年可是火的一塌糊涂,感染非常迅速,算是病毒史上比较经典的案例。不过已经比较老了,基本上没啥危害,其中的技术也都过时了。作为练手项目,开始对熊猫烧香病毒进行分析。首先准备好病毒样本(看雪论坛有),VM虚拟机和Xp Sp3系统。样本参数如下: 病毒名称:panda.exe 文件大小:61 ...
分类:
其他好文 时间:
2017-08-20 19:48:02
阅读次数:
217
《缓冲区溢出分析》这一系列的内容是我为“i春秋”(www.ichunqiu.com)所录制的同名视频课程的讲稿汇总。每次我都是在写完课程的文档后,再依据文档内容进行课程的讲解。而本系列的内容也是从零开始,来给大家由浅入深地进行缓冲区溢出漏洞的讲解。整个课程是理论与实践相结合,每讲完几个基础理论后,都会配以实际的软件中的漏洞进行分析,以帮助大家更好地理解漏洞的原理。有兴趣的朋友可以结合本文与配套视频...
分类:
其他好文 时间:
2015-06-21 18:36:59
阅读次数:
256
《缓冲区溢出分析》这一系列的内容是我为“i春秋”(www.ichunqiu.com)所录制的同名视频课程的讲稿汇总。每次我都是在写完课程的文档后,再依据文档内容进行课程的讲解。而本系列的内容也是从零开始,来给大家由浅入深地进行缓冲区溢出漏洞的讲解。整个课程是理论与实践相结合,每讲完几个基础理论后,都会配以实际的软件中的漏洞进行分析,以帮助大家更好地理解漏洞的原理。有兴趣的朋友可以结合本文与配套视频...
前言
我在之前的课程中讨论过W32Dasm这款软件中的漏洞分析与利用的方法,由于使用该软件的人群毕竟是小众群体,因此该漏洞的危害相对来说还是比较小的。但是如果漏洞出现在Windows系统中,那么情况就会很不一样了。毕竟Windows统治了全球九成以上的计算机操作系统,因此如果该系统中出现了漏洞,而这个漏洞又被别有用心者所利用,那么就必然会出现数以亿计的受害者。
MS06-...
分类:
其他好文 时间:
2015-05-02 09:50:14
阅读次数:
154
漏洞报告分析
学习过破解的朋友一定听说过W32Dasm这款逆向分析工具。它是一个静态反汇编工具,在IDA Pro流行之前,是破解界人士必然要学会使用的工具之一,它也被比作破解界的“屠龙刀”。
但是即便是这么一款破解界的“神器”,竟然也是存在着缓冲区溢出的漏洞的。可见,它在破解无数程序的同时,其自身也存在着被“黑”的风险。那么我们可以首先分析一下漏洞报告:
##...
分类:
其他好文 时间:
2015-05-02 09:48:17
阅读次数:
346
前言
经过上次的分析,我们已经知道了MS06-040漏洞的本质,那么这次我们就通过编程实现漏洞的利用。
编写漏洞利用程序的框架
这里我使用的是VC++6.0进行编写,需要将包含有漏洞的netapi32.dll文件与工程文件放置在同一个目录下。程序如下:
#include
typedef void (*MYPROC)(LPTSTR, ...);
in...
分类:
其他好文 时间:
2015-05-02 09:39:26
阅读次数:
223
前言
经过前两次的分析,我们已经对Netapi32.dll文件中所包含的漏洞成功地实现了利用。在系统未打补丁之前,这确实是一个非常严重的漏洞,那么打了补丁之后,这个动态链接库是不是就安全了呢?答案是否定的。即便是打了补丁,虽说我们之前所分析的漏洞已被补上,但是这个程序中依旧存在着其它的问题。
对漏洞函数进行静态分析
我们之前所研究的Netapi32.dl...
分类:
其他好文 时间:
2015-05-02 09:38:04
阅读次数:
246
前言
上次我们已经讨论了缓冲区溢出的原理,而这次我们需要利用这个原理来构造条件,从而利用这个漏洞。
其实缓冲区溢出漏洞的利用主要是需要解决以下三个问题:
1、精确定位返回地址的位置
2、寻找一个合适的地址,用于覆盖原始返回地址
3、编写Shellcode到相应的缓冲区中
这次我们就结合实验程...
分类:
其他好文 时间:
2015-05-01 17:31:17
阅读次数:
268
前言
ShellCode究竟是什么呢,其实它就是一些编译好的机器码,将这些机器码作为数据输入,然后通过我们之前所讲的方式来执行ShellCode,这就是缓冲区溢出利用的基本原理。那么下面我们就来编写ShellCode。为了简单起见,这里我只想让程序显示一个对话框:
图1
获取相关函数的地址
那么我们下面的工作就是让存在着缓冲区溢出漏洞的程序显...
分类:
系统相关 时间:
2015-05-01 17:30:11
阅读次数:
347
前言
我们这次的实验所要研究的是如何编写通用的ShellCode。可能大家会有疑惑,我们上次所编写的ShellCode已经能够很好地完成任务,哪里不通用了呢?其实这就是因为我们上次所编写的ShellCode,是采用“硬编址”的方式来调用相应API函数的。也就是说,我们需要首先获取所要使用函数的地址,然后将该地址写入ShellCode,从而实现调用。这种方式对于所有的函数,通用...
分类:
系统相关 时间:
2015-05-01 17:25:59
阅读次数:
390