-
或者去CNKI找,你也可以找到它。
我会给你另一个链接。
-
我一般都是这样做的。
1 寻找系统漏洞。 查找可用作缓冲区溢出的漏洞。 当然,这必须基于你的精确目标和对目标的一定理解。
例如,目标的操作系统、打开的服务和永久程序(这必须是管理员用户打开的程序)。 你可以在网上查一下,最好不要自己找,这个是凭空发现的,一般比较困难和麻烦。 很多国外黑客会公布最新的漏洞,在中国也有一些E语言不方便,但在中国比较慢。
当然,也有一些所谓的工具可以扫描它,但除非你没有固定目标来攻击任何人,否则它通常对固定目标扫描不是很有用。
2 反汇编漏洞部分**。 如果是开源系统或程序,反汇编获取溢出栈地址,即调用函数后返回的函数指针地址。
第一次做这个很难,所以最好找个人指导你,当然你也可以找我,它是免费的,但你需要对GDB和汇编语言有一些基本的了解。 (你不必太强,你可以只是触及表面,因为我也不强),当然,相当一部分已发布的漏洞都会公布。
3. 写入缓冲区溢出地址对应的执行**,然后利用缓冲区溢出漏洞将堆栈函数返回的地址映射到你的执行函数。 你必须事先写这个。 为了你的目的,你可以提升你的权利,或者复制一个文件什么的,这取决于你自己的爱好,win和linux使用exe函数来执行shell或直接系统调用,反正你已经有管理员权限了。
这些**中有很多不想在互联网上写作的人,原理很简单。
4 扫尾巴。 特别是对于大**或者大公司的服务器,如果不想让别人发现,别忘了把改回去,当然可以手动创建一个有漏洞的程序,然后以管理员权限定期运行,为下一个条目做准备。 此类程序通常对防病毒软件不是很敏感(只要您不更改人们的密码),定期运行,并且不让人们看到该过程。
以上只是最简单的原理步骤,师傅们会在此基础上用到很多高超的技巧,当然具体问题一定要因地制宜,这不是一两句话说清楚的,希望对大家有所帮助。
请遵守当地法律,不要从事非法活动。
-
通过向程序的缓冲区写入超过其长度的内容,缓冲区会溢出并破坏程序的堆栈,导致程序执行其他指令以达到攻击的目的。 缓冲区溢出是由于用户输入的参数未在程序中仔细检查而引起的。 例如,以下过程:
void function(char *str)
上面的 strcpy() 会将 str 的内容直接复制到缓冲区中。 这样,只要 str 的长度大于 16,就会造成缓冲区溢出,导致程序运行不正常。 有 strcpy 等问题的标准函数有 strcat()、sprintf()、vsprintf()、gets()、scanf() 等。
当然,用某些东西填充缓冲区并导致其溢出通常只会导致分段错误,而不会达到攻击的目的。 最常见的方法是创建缓冲区溢出,使程序运行用户 shell,然后通过 shell 执行其他命令。 如果程序是 root 权限并具有 suid 权限,则攻击者将获得具有 root 权限的 shell,并可以在系统上执行任意操作。
缓冲区溢出攻击之所以是常见的安全攻击媒介,是因为缓冲区溢出漏洞非常普遍且易于实现。 此外,缓冲区溢出之所以成为远程攻击的主要手段,是因为缓冲区溢出漏洞为攻击者提供了他想要的一切:植入并执行攻击**。
植入的攻击**运行具有缓冲区溢出漏洞的程序,该程序具有某些权限,以获取对受感染主机的控制权。
在 1998 年林肯实验室用于评估入侵检测的五次远程攻击中,有两次是缓冲区溢出。 在1998年的13项CERT建议中,有9项与缓冲区溢出有关,而在1999年,至少有一半与缓冲区溢出有关。 在 UGTRAQ 的调查中,三分之二的受访者认为缓冲区溢出漏洞是一个严重的安全问题。
缓冲区溢出漏洞和攻击有多种形式,第 2 节对它们进行了描述和分类。 相应地,防御手段因攻击方法而异,将在第四节中加以说明,它包括对每一种攻击的有效防御手段。
缓冲区溢出原理:
通过向程序的缓冲区写入超过其长度的内容,缓冲区会溢出并破坏程序的堆栈,导致程序执行其他指令以达到攻击的目的。 缓冲区溢出是由于用户输入的参数未在程序中仔细检查而引起的。 例如,以下过程: >>>More
缓冲区溢出是指当计算机用数据位数填充缓冲区时,数据溢出超过缓冲区本身的容量,并且数据溢出覆盖在合法数据上,理想情况下,程序会检查数据长度,不允许输入超过缓冲区长度的字符, 但大多数程序会假设数据长度始终与分配的存储空间匹配,这为缓冲区溢出埋下了隐患。 >>>More