2015/5/1516:04:49前面我们简单介绍了Hacker的编程基础,然后讲解了Linux下缓冲区漏洞的基本原理,从中我们了解到一个典型的缓冲区漏洞攻击总是由下面三个部分组成:具体的实现可能会有变化,但是“万变不离其宗”,基本原理还是不变的。我们注意到攻击功能的实现由shellcode来..
分类:
系统相关 时间:
2015-05-15 18:03:36
阅读次数:
175
一、事件回放
网络管理员在服务器上通过网络监控软件检测到,有程序在不断向外发包,并且ip地址显示国外的区域,经过相关安全工程师的分析和定位,最确定是微软操作系统上的Power Shell程序出现异常。发现的这个Power Shell程序和微软操作系统上的Power Shell程序不同,出现异常的这个Power Shell会不断的向外发包。经过该安全工程师的分析和反编译程序,最终得到了下面这段关键...
分类:
系统相关 时间:
2015-05-13 14:58:02
阅读次数:
635
shellcode学习第一个例子。以下有一段c语言编写的命令行程序,检验用户输入的数字,并判断是否合法。这里用户的输入被放在了函数的缓冲区里,但程序没有对缓冲区长度做检查,留下了漏洞。这里可以利用该漏洞绕过数字检察,使得任意输入都会被判定为正确。
在 validate_serial 中,do_valid_stuff 的地址溢出到函数的返回值上,就可实现。源程序#include ...
分类:
系统相关 时间:
2015-05-11 17:57:39
阅读次数:
150
网上看到一篇不错的介绍shellcode的入门文章,我就大致翻译一下,算是自己真正跨入二进制安全相关领域的学习吧。原文地址:http://www.primalsecurity.net/0x0-shellcoding-tutorial-introduction-to-asm/ 以下为翻译内容:(非逐句...
分类:
系统相关 时间:
2015-05-08 14:25:40
阅读次数:
188
4.3.2 Linux32环境下函数的返回地址
编译、链接、执行程序buffer_overflow.c,并关闭Linux的栈保护机制,参见截图:
下面用gdb调试程序:
在foo函数的入口、调用strcpy函数处和foo返回处设置断点:
继续运行,找到函数的返回地址:
buff的起始地址B到保存函数的返回地址A之间的偏移:
A-B=0xbffff29c-...
分类:
系统相关 时间:
2015-05-07 18:59:56
阅读次数:
367
前言
上次我们已经讨论了缓冲区溢出的原理,而这次我们需要利用这个原理来构造条件,从而利用这个漏洞。
其实缓冲区溢出漏洞的利用主要是需要解决以下三个问题:
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
坏字符过滤 使用msf generate模块来过滤...
分类:
其他好文 时间:
2015-04-25 18:26:43
阅读次数:
238
一.实验描述缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况,这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段。这一漏洞的出现时由于缓冲器和返回地址的暂时关闭,溢出会引起返回地址被重写。二.实验准备练习1:3.1初始设置3.2 shellcode一般情况下,缓冲区溢...
分类:
其他好文 时间:
2015-04-24 00:57:45
阅读次数:
140