网络攻防技术与实践课件 chat缓冲区溢出分析.pptVIP

  • 4
  • 0
  • 约1.11万字
  • 约 41页
  • 2025-06-15 发布于河北
  • 举报

网络攻防技术与实践课件 chat缓冲区溢出分析.ppt

ICST-ERCIS*内容安排问题背景知识调试分析触发漏洞分析漏洞原因构造攻击代码分析攻击原理问题回答ICST-ERCIS*问题一从中分析查找缓冲区溢出漏洞位置前面我们已经分析得到,漏洞函数的起始地址为0x8049850该漏洞函数中,把参数字符串逐个拷贝到局部数组中去,拷贝以’\0’作为结束标志从而,传递一个大于该局部数组的参数进去之后,就发生了溢出*如下方式可以创建一个拥有root权限的后门(初始时必须暂时拥有root权限)#cp/bin/bashbackdoor#chmodu+sbackdoor#sunormal_user$./backdoor–p(-p选项是必须的,见下面解释)$cat/var/mail/root 验证取得了root权限manbashInvokedwithunequaleffectiveandrealUID/GIDsIfBashisstartedwiththeeffectiveuser(group)idnotequaltotherealuser(group)id,andthe-poptionisnotsupplied,nostartupfilesareread,shellfunctionsarenotinheritedfromtheenvironment,theSHELLOPTSvariable,ifitappearsintheenvironment,isignored,andtheeffectiveuseridissettotherealuserid.Ifthe-poptionissuppliedatinvocation,thestartupbehavioristhesame,buttheeffectiveuseridisnotreset.而且,对于shell脚本设置suid位时,脚本启动后bash自动把suid丢弃(没有验证过)*intsetuid(intuid);(POSIX版本)设置当前进程的effectiveuid。如果调用该函数的进程的euid为root(特权进程),那么ruid和suid同样被设置成uid。(意味着root权限无法重新获得)作用是:suid进程可以抛弃它的特权执行一些非特权工作特权进程调用它时,可以设置为任意uid,不过此时ruid和suid也要被设置为参数uid非特权进程调用它时,参数euid只能为调用者的ruid或者suid(调用者的euid不知道是否可以)成功时返回0,错误时返回-1错误原因之一,用户没有CAP_SETUID能力,且uid不等于调用者进程的ruid或者suidintseteuid(intuid);(non-POSIX,BSD)设置当前进程的effectiveuid。不改变ruid,但是可能会更改suid(不同libc的实现策略:setreuid(-1,uid)可能改变suid,setresuid(-1,uid,-1)不改变suid)特权进程调用它时,可以设置为任意uid非特权进程调用它时,只能设置为调用者的ruid、euid或者suid成功时返回0,错误时返回-1,errno保存了错误代码错误的原因是:用户没有CAP_SETUID权限,并且uid不等于调用者的ruid、euid或者suidintsetreuid(intruid,inteuid);intsetresuid(intruid,inteuid,intsuid);ICST-ERCIS*北京大学网络攻防技术与实践课程

chat缓冲区溢出分析讲解ICST-ERCIS*内容安排问题背景知识调试分析触发漏洞分析漏洞原因构造攻击代码分析攻击原理问题回答ICST-ERCIS*内容安排问题背景知识调试分析触发漏洞分析漏洞原因构造攻击代码分析攻击原理问题回答ICST-ERCIS*问题RedHat7.3下的程序/usr/sbin/chat存在缓冲区溢出漏洞问题:1.从中分析查找缓冲区溢出漏洞位置2.编写本地缓冲区溢出渗透攻击代码,并进行攻击确认是否可获得root权限,如否,为什么,前提条件是什么?3.针对发现的漏洞,给该程序编写一个补丁程序,使之修补所发现漏洞。ICST-ERCIS*内容安排问题背景知识调试分析触发漏洞分析漏洞原因构造攻击代码分析攻击原理问题

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档